From f021c94f5117e01bc36f6da18f2512ec566c28be Mon Sep 17 00:00:00 2001 From: Ricardo Carrillo Date: Tue, 18 Jun 2024 18:00:47 -0700 Subject: [PATCH] Deployed to Base Sepolia, modified hardhat config, modified deploy script for Base Sepolia --- hardhat.config.ts | 21 +- .../artifacts/BasedWhale#BasedWhale.dbg.json | 4 + .../artifacts/BasedWhale#BasedWhale.json | 799 + .../20347fb4e2fe24b67c06bbc7cb0f9af4.json | 53079 ++++++++++++++++ .../chain-84532/deployed_addresses.json | 3 + .../deployments/chain-84532/journal.jsonl | 12 + ignition/modules/BasedWhale.ts | 13 +- 7 files changed, 53924 insertions(+), 7 deletions(-) create mode 100644 ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.dbg.json create mode 100644 ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.json create mode 100644 ignition/deployments/chain-84532/build-info/20347fb4e2fe24b67c06bbc7cb0f9af4.json create mode 100644 ignition/deployments/chain-84532/deployed_addresses.json create mode 100644 ignition/deployments/chain-84532/journal.jsonl diff --git a/hardhat.config.ts b/hardhat.config.ts index 0a027cf..4697a96 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,16 +1,29 @@ import { HardhatUserConfig } from "hardhat/config"; import "@nomicfoundation/hardhat-toolbox"; +const ALCHEMY_BASE_MAINNET_API_KEY: string = process.env.ALCHEMY_API_KEY!!; +const BASE_ENGINEERING_DEPLOYER_PRIVATE_KEY: string = process.env.BASE_ENGINEERING_DEPLOYER_PRIVATE_KEY!!; +const ALCHEMY_BASE_SEPLOYIA_API_KEY: string = process.env.ALCHEMY_BASE_SEPOLIA_API_KEY!!; +const BASESCAN_BASED_WHALE_API_KEY: string = process.env.BASESCAN_BASED_WHALE_API_KEY!!; + const config: HardhatUserConfig = { solidity: "0.8.24", networks: { hardhat: { forking: { - url: `https://base-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_API_KEY}`, + url: `https://base-mainnet.g.alchemy.com/v2/${ALCHEMY_BASE_MAINNET_API_KEY}`, blockNumber: 15972484 - } - } - } + }, + }, + // Base Sepolia + sepolia: { + url: `https://base-sepolia.g.alchemy.com/v2/${ALCHEMY_BASE_SEPLOYIA_API_KEY}`, + accounts: [BASE_ENGINEERING_DEPLOYER_PRIVATE_KEY], + }, + }, + etherscan: { + apiKey: BASESCAN_BASED_WHALE_API_KEY, + }, }; export default config; diff --git a/ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.dbg.json b/ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.dbg.json new file mode 100644 index 0000000..35dd30b --- /dev/null +++ b/ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/20347fb4e2fe24b67c06bbc7cb0f9af4.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.json b/ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.json new file mode 100644 index 0000000..39dc6a4 --- /dev/null +++ b/ignition/deployments/chain-84532/artifacts/BasedWhale#BasedWhale.json @@ -0,0 +1,799 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BasedWhale", + "sourceName": "contracts/BasedWhale.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "cap_", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_marketingMultiSig", + "type": "address" + }, + { + "internalType": "address", + "name": "_exchangeMultiSig1", + "type": "address" + }, + { + "internalType": "address", + "name": "_exchangeMultiSig2", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "increasedSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "cap", + "type": "uint256" + } + ], + "name": "ERC20ExceededCap", + "type": "error" + }, + { + "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": "uint256", + "name": "cap", + "type": "uint256" + } + ], + "name": "ERC20InvalidCap", + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "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": "address", + "name": "buyerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfTokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "taxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "BuyTaxed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "launcherAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Launched", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "liquidityPairAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfTokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfETH", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfLiquidityTokensBurned", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "LiquidityLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "renouncerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "nullAddressOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sellerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfTokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "taxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "SellTaxed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "zeroedBuyTaxRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "zeroedSellTaxRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "TaxRatesSetToZero", + "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": "BURN_ADDRESS", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_TICKER_SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "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": "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": "buyTaxRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "cap", + "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": "exchangeMultiSig1", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exchangeMultiSig2", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_uniswapV2Router", + "type": "address" + } + ], + "name": "initializeUniswapLiquidity", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "marketingMultiSig", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sellTaxRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "setTaxRatesToZero", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenState", + "outputs": [ + { + "internalType": "enum BasedWhale.TokenState", + "name": "", + "type": "uint8" + } + ], + "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": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "uniswapV2PairAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "uniswapV2Router", + "outputs": [ + { + "internalType": "contract IUniswapV2Router02", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x60a0604052606460095561012c600a553480156200001c57600080fd5b50604051620039d9380380620039d9833981810160405281019062000042919062000bb9565b83620000536200043060201b60201c565b60ff16600a62000064919062000dc4565b8662000071919062000e15565b6040518060400160405280600b81526020017f4261736564205768616c650000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5748414c450000000000000000000000000000000000000000000000000000008152508160039081620000ee9190620010d0565b508060049081620001009190620010d0565b505050600081036200014c5760006040517f392e1e27000000000000000000000000000000000000000000000000000000008152600401620001439190620011fa565b60405180910390fd5b806080818152505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001ca5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001c1919062001228565b60405180910390fd5b620001db816200043960201b60201c565b5082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002fe600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646005620002da620004ff60201b60201c565b620002e6919062000e15565b620002f2919062001274565b6200050960201b60201c565b6200035d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600562000339620004ff60201b60201c565b62000345919062000e15565b62000351919062001274565b6200050960201b60201c565b620003bc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600562000398620004ff60201b60201c565b620003a4919062000e15565b620003b0919062001274565b6200050960201b60201c565b7f8ad1ba2dbd33c6313fa50cd4016351a36437d7dcd0e0800a3a0b191d22095d933342604051620003ef929190620012bd565b60405180910390a16001600560146101000a81548160ff0219169083600481111562000420576200041f620012ea565b5b0217905550505050505062001463565b60006012905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000608051905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200057e5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000575919062001228565b60405180910390fd5b62000592600083836200059660201b60201c565b5050565b60026004811115620005ad57620005ac620012ea565b5b600560149054906101000a900460ff166004811115620005d257620005d1620012ea565b5b14158062000619575060036004811115620005f257620005f1620012ea565b5b600560149054906101000a900460ff166004811115620006175762000616620012ea565b5b145b156200063857620006328383836200081860201b60201c565b62000813565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006f6576103e8600a5483620006a3919062000e15565b620006af919062001274565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc84838342604051620006e8949392919062001319565b60405180910390a1620007ae565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620007ad576103e8600954836200075f919062000e15565b6200076b919062001274565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab88127283838342604051620007a4949392919062001319565b60405180910390a15b5b6000811115620007fe57620007ed84600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200081860201b60201c565b8082620007fb919062001366565b91505b620008118484846200081860201b60201c565b505b505050565b6200082b838383620008da60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008d557600062000872620004ff60201b60201c565b905060006200088662000b0a60201b60201c565b905081811115620008d25780826040517f9e79f854000000000000000000000000000000000000000000000000000000008152600401620008c9929190620013a1565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000930578060026000828254620009239190620013ce565b9250508190555062000a06565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620009bf578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620009b69392919062001409565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a51578060026000828254039250508190555062000a9e565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000afd919062001446565b60405180910390a3505050565b6000600254905090565b600080fd5b6000819050919050565b62000b2e8162000b19565b811462000b3a57600080fd5b50565b60008151905062000b4e8162000b23565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b818262000b54565b9050919050565b62000b938162000b74565b811462000b9f57600080fd5b50565b60008151905062000bb38162000b88565b92915050565b600080600080600060a0868803121562000bd85762000bd762000b14565b5b600062000be88882890162000b3d565b955050602062000bfb8882890162000ba2565b945050604062000c0e8882890162000ba2565b935050606062000c218882890162000ba2565b925050608062000c348882890162000ba2565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ccf5780860481111562000ca75762000ca662000c41565b5b600185161562000cb75780820291505b808102905062000cc78562000c70565b945062000c87565b94509492505050565b60008262000cea576001905062000dbd565b8162000cfa576000905062000dbd565b816001811462000d13576002811462000d1e5762000d54565b600191505062000dbd565b60ff84111562000d335762000d3262000c41565b5b8360020a91508482111562000d4d5762000d4c62000c41565b5b5062000dbd565b5060208310610133831016604e8410600b841016171562000d8e5782820a90508381111562000d885762000d8762000c41565b5b62000dbd565b62000d9d848484600162000c7d565b9250905081840481111562000db75762000db662000c41565b5b81810290505b9392505050565b600062000dd18262000b19565b915062000dde8362000b19565b925062000e0d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cd8565b905092915050565b600062000e228262000b19565b915062000e2f8362000b19565b925082820262000e3f8162000b19565b9150828204841483151762000e595762000e5862000c41565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ee257607f821691505b60208210810362000ef85762000ef762000e9a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f23565b62000f6e868362000f23565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000fb162000fab62000fa58462000b19565b62000f86565b62000b19565b9050919050565b6000819050919050565b62000fcd8362000f90565b62000fe562000fdc8262000fb8565b84845462000f30565b825550505050565b600090565b62000ffc62000fed565b6200100981848462000fc2565b505050565b5b8181101562001031576200102560008262000ff2565b6001810190506200100f565b5050565b601f82111562001080576200104a8162000efe565b620010558462000f13565b8101602085101562001065578190505b6200107d620010748562000f13565b8301826200100e565b50505b505050565b600082821c905092915050565b6000620010a56000198460080262001085565b1980831691505092915050565b6000620010c0838362001092565b9150826002028217905092915050565b620010db8262000e60565b67ffffffffffffffff811115620010f757620010f662000e6b565b5b62001103825462000ec9565b6200111082828562001035565b600060209050601f83116001811462001148576000841562001133578287015190505b6200113f8582620010b2565b865550620011af565b601f198416620011588662000efe565b60005b8281101562001182578489015182556001820191506020850194506020810190506200115b565b86831015620011a257848901516200119e601f89168262001092565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b6000620011e2620011dc620011d684620011b7565b62000f86565b62000b19565b9050919050565b620011f481620011c1565b82525050565b6000602082019050620012116000830184620011e9565b92915050565b620012228162000b74565b82525050565b60006020820190506200123f600083018462001217565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012818262000b19565b91506200128e8362000b19565b925082620012a157620012a062001245565b5b828204905092915050565b620012b78162000b19565b82525050565b6000604082019050620012d4600083018562001217565b620012e36020830184620012ac565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060808201905062001330600083018762001217565b6200133f6020830186620012ac565b6200134e6040830185620012ac565b6200135d6060830184620012ac565b95945050505050565b6000620013738262000b19565b9150620013808362000b19565b92508282039050818111156200139b576200139a62000c41565b5b92915050565b6000604082019050620013b86000830185620012ac565b620013c76020830184620012ac565b9392505050565b6000620013db8262000b19565b9150620013e88362000b19565b925082820190508082111562001403576200140262000c41565b5b92915050565b600060608201905062001420600083018662001217565b6200142f6020830185620012ac565b6200143e6040830184620012ac565b949350505050565b60006020820190506200145d6000830184620012ac565b92915050565b60805161255a6200147f6000396000610796015261255a6000f3fe6080604052600436106101855760003560e01c806363cae94f116100d157806395d89b411161008a578063e90dd9e211610064578063e90dd9e21461057a578063eaff1cbc146105a5578063f2fde38b146105bc578063fccc2813146105e55761018c565b806395d89b41146104d5578063a9059cbb14610500578063dd62ed3e1461053d5761018c565b806363cae94f146103d5578063691f224f1461040057806370a082311461042b578063715018a61461046857806385df1d1c1461047f5780638da5cb5b146104aa5761018c565b806324024efd1161013e578063355274ea11610118578063355274ea146103385780635265ee551461036357806352cd23881461038e5780635ecf7a67146103b95761018c565b806324024efd146102b75780632b653d44146102e2578063313ce5671461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd14610224578063188214001461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610610565b6040516101b39190611c6f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611d2a565b6106a2565b6040516101f09190611d85565b60405180910390f35b34801561020557600080fd5b5061020e6106c5565b60405161021b9190611dff565b60405180910390f35b34801561023057600080fd5b506102396106eb565b6040516102469190611e29565b60405180910390f35b34801561025b57600080fd5b506102646106f5565b6040516102719190611c6f565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190611e44565b61072e565b6040516102ae9190611d85565b60405180910390f35b3480156102c357600080fd5b506102cc61075d565b6040516102d99190611e29565b60405180910390f35b3480156102ee57600080fd5b506102f7610763565b6040516103049190611ea6565b60405180910390f35b34801561031957600080fd5b50610322610789565b60405161032f9190611edd565b60405180910390f35b34801561034457600080fd5b5061034d610792565b60405161035a9190611e29565b60405180910390f35b34801561036f57600080fd5b506103786107ba565b6040516103859190611c6f565b60405180910390f35b34801561039a57600080fd5b506103a36107f3565b6040516103b09190611ea6565b60405180910390f35b6103d360048036038101906103ce9190611ef8565b610819565b005b3480156103e157600080fd5b506103ea610cde565b6040516103f79190611ea6565b60405180910390f35b34801561040c57600080fd5b50610415610d04565b6040516104229190611e29565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190611ef8565b610d0a565b60405161045f9190611e29565b60405180910390f35b34801561047457600080fd5b5061047d610d52565b005b34801561048b57600080fd5b50610494610e49565b6040516104a19190611ea6565b60405180910390f35b3480156104b657600080fd5b506104bf610e6f565b6040516104cc9190611ea6565b60405180910390f35b3480156104e157600080fd5b506104ea610e99565b6040516104f79190611c6f565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190611d2a565b610f2b565b6040516105349190611d85565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190611f25565b610f4e565b6040516105719190611e29565b60405180910390f35b34801561058657600080fd5b5061058f610fd5565b60405161059c9190611fdc565b60405180910390f35b3480156105b157600080fd5b506105ba610fe8565b005b3480156105c857600080fd5b506105e360048036038101906105de9190611ef8565b6110e4565b005b3480156105f157600080fd5b506105fa61116a565b6040516106079190611ea6565b60405180910390f35b60606003805461061f90612026565b80601f016020809104026020016040519081016040528092919081815260200182805461064b90612026565b80156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b6000806106ad61116f565b90506106ba818585611177565b600191505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518060400160405280600b81526020017f4261736564205768616c6500000000000000000000000000000000000000000081525081565b60008061073961116f565b9050610746858285611189565b61075185858561121d565b60019150509392505050565b600a5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6040518060400160405280600581526020017f5748414c4500000000000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610821611311565b600180600481111561083657610835611f65565b5b600560149054906101000a900460ff16600481111561085857610857611f65565b5b14610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906120c9565b60405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a91906120fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1791906120fe565b6040518363ffffffff1660e01b8152600401610a3492919061212b565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906120fe565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060646055610ac5610792565b610acf9190612183565b610ad991906121f4565b9050610ae53082611398565b610af0308483611177565b6000429050600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008060008a6040518863ffffffff1660e01b8152600401610b6096959493929190612260565b60606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba391906122d6565b50915091506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690507ff07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684848473ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401610c4f9190611ea6565b602060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190612329565b88604051610ca2959493929190612356565b60405180910390a16002600560146101000a81548160ff02191690836004811115610cd057610ccf611f65565b5b021790555050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611311565b6003806004811115610d6f57610d6e611f65565b5b600560149054906101000a900460ff166004811115610d9157610d90611f65565b5b14610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc8906120c9565b60405180910390fd5b7fbc3fa950185893c8ddfff1dafec540ffc8d7e576295fea983a515e9a8e03acd733610dfb610e6f565b42604051610e0b939291906123a9565b60405180910390a16004600560146101000a81548160ff02191690836004811115610e3957610e38611f65565b5b0217905550610e4661141a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ea890612026565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612026565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b600080610f3661116f565b9050610f4381858561121d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560149054906101000a900460ff1681565b610ff0611311565b600280600481111561100557611004611f65565b5b600560149054906101000a900460ff16600481111561102757611026611f65565b5b14611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906120c9565b60405180910390fd5b60006009819055506000600a819055507fc4c7c69f1eeef4dcf5449fcee968e149b2646d141f0d9bb3d1de12de99d77f7e600954600a54426040516110ae939291906123e0565b60405180910390a16003600560146101000a81548160ff021916908360048111156110dc576110db611f65565b5b021790555050565b6110ec611311565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111559190611ea6565b60405180910390fd5b6111678161142e565b50565b600081565b600033905090565b61118483838360016114f4565b505050565b60006111958484610f4e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112175781811015611207578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111fe93929190612417565b60405180910390fd5b611216848484840360006114f4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112869190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113015760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016112f89190611ea6565b60405180910390fd5b61130c8383836116cb565b505050565b61131961116f565b73ffffffffffffffffffffffffffffffffffffffff16611337610e6f565b73ffffffffffffffffffffffffffffffffffffffff16146113965761135a61116f565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161138d9190611ea6565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114019190611ea6565b60405180910390fd5b611416600083836116cb565b5050565b611422611311565b61142c600061142e565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115665760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161155d9190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115cf9190611ea6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116c5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116bc9190611e29565b60405180910390a35b50505050565b600260048111156116df576116de611f65565b5b600560149054906101000a900460ff16600481111561170157611700611f65565b5b14158061174157506003600481111561171d5761171c611f65565b5b600560149054906101000a900460ff16600481111561173f5761173e611f65565b5b145b1561175657611751838383611914565b61190f565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576103e8600a54836117be9190612183565b6117c891906121f4565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc848383426040516117ff949392919061244e565b60405180910390a16118bd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118bc576103e8600954836118729190612183565b61187c91906121f4565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab881272838383426040516118b3949392919061244e565b60405180910390a15b5b6000811115611902576118f384600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611914565b80826118ff9190612493565b91505b61190d848484611914565b505b505050565b61191f8383836119ba565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b557600061195d610792565b905060006119696106eb565b9050818111156119b25780826040517f9e79f8540000000000000000000000000000000000000000000000000000000081526004016119a99291906124c7565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0c578060026000828254611a0091906124f0565b92505081905550611adf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611a8f93929190612417565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b285780600260008282540392505081905550611b75565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd29190611e29565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c19578082015181840152602081019050611bfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4182611bdf565b611c4b8185611bea565b9350611c5b818560208601611bfb565b611c6481611c25565b840191505092915050565b60006020820190508181036000830152611c898184611c36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cc182611c96565b9050919050565b611cd181611cb6565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b6000819050919050565b611d0781611cf4565b8114611d1257600080fd5b50565b600081359050611d2481611cfe565b92915050565b60008060408385031215611d4157611d40611c91565b5b6000611d4f85828601611cdf565b9250506020611d6085828601611d15565b9150509250929050565b60008115159050919050565b611d7f81611d6a565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b6000819050919050565b6000611dc5611dc0611dbb84611c96565b611da0565b611c96565b9050919050565b6000611dd782611daa565b9050919050565b6000611de982611dcc565b9050919050565b611df981611dde565b82525050565b6000602082019050611e146000830184611df0565b92915050565b611e2381611cf4565b82525050565b6000602082019050611e3e6000830184611e1a565b92915050565b600080600060608486031215611e5d57611e5c611c91565b5b6000611e6b86828701611cdf565b9350506020611e7c86828701611cdf565b9250506040611e8d86828701611d15565b9150509250925092565b611ea081611cb6565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611c91565b5b6000611f1c84828501611cdf565b91505092915050565b60008060408385031215611f3c57611f3b611c91565b5b6000611f4a85828601611cdf565b9250506020611f5b85828601611cdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60058110611fa557611fa4611f65565b5b50565b6000819050611fb682611f94565b919050565b6000611fc682611fa8565b9050919050565b611fd681611fbb565b82525050565b6000602082019050611ff16000830184611fcd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203e57607f821691505b60208210810361205157612050611ff7565b5b50919050565b7f46756e6374696f6e2063616e6e6f742062652063616c6c656420696e2074686960008201527f7320737461746500000000000000000000000000000000000000000000000000602082015250565b60006120b3602783611bea565b91506120be82612057565b604082019050919050565b600060208201905081810360008301526120e2816120a6565b9050919050565b6000815190506120f881611cc8565b92915050565b60006020828403121561211457612113611c91565b5b6000612122848285016120e9565b91505092915050565b60006040820190506121406000830185611e97565b61214d6020830184611e97565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061218e82611cf4565b915061219983611cf4565b92508282026121a781611cf4565b915082820484148315176121be576121bd612154565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121ff82611cf4565b915061220a83611cf4565b92508261221a576122196121c5565b5b828204905092915050565b6000819050919050565b600061224a61224561224084612225565b611da0565b611cf4565b9050919050565b61225a8161222f565b82525050565b600060c0820190506122756000830189611e97565b6122826020830188611e1a565b61228f6040830187612251565b61229c6060830186612251565b6122a96080830185611e97565b6122b660a0830184611e1a565b979650505050505050565b6000815190506122d081611cfe565b92915050565b6000806000606084860312156122ef576122ee611c91565b5b60006122fd868287016122c1565b935050602061230e868287016122c1565b925050604061231f868287016122c1565b9150509250925092565b60006020828403121561233f5761233e611c91565b5b600061234d848285016122c1565b91505092915050565b600060a08201905061236b6000830188611e97565b6123786020830187611e1a565b6123856040830186611e1a565b6123926060830185611e1a565b61239f6080830184611e1a565b9695505050505050565b60006060820190506123be6000830186611e97565b6123cb6020830185611e97565b6123d86040830184611e1a565b949350505050565b60006060820190506123f56000830186611e1a565b6124026020830185611e1a565b61240f6040830184611e1a565b949350505050565b600060608201905061242c6000830186611e97565b6124396020830185611e1a565b6124466040830184611e1a565b949350505050565b60006080820190506124636000830187611e97565b6124706020830186611e1a565b61247d6040830185611e1a565b61248a6060830184611e1a565b95945050505050565b600061249e82611cf4565b91506124a983611cf4565b92508282039050818111156124c1576124c0612154565b5b92915050565b60006040820190506124dc6000830185611e1a565b6124e96020830184611e1a565b9392505050565b60006124fb82611cf4565b915061250683611cf4565b925082820190508082111561251e5761251d612154565b5b9291505056fea2646970667358221220170fb5eefce9d28d8d1c509b4820f1a273901eb61e211d789627affd137a2f5264736f6c63430008180033", + "deployedBytecode": "0x6080604052600436106101855760003560e01c806363cae94f116100d157806395d89b411161008a578063e90dd9e211610064578063e90dd9e21461057a578063eaff1cbc146105a5578063f2fde38b146105bc578063fccc2813146105e55761018c565b806395d89b41146104d5578063a9059cbb14610500578063dd62ed3e1461053d5761018c565b806363cae94f146103d5578063691f224f1461040057806370a082311461042b578063715018a61461046857806385df1d1c1461047f5780638da5cb5b146104aa5761018c565b806324024efd1161013e578063355274ea11610118578063355274ea146103385780635265ee551461036357806352cd23881461038e5780635ecf7a67146103b95761018c565b806324024efd146102b75780632b653d44146102e2578063313ce5671461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd14610224578063188214001461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610610565b6040516101b39190611c6f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611d2a565b6106a2565b6040516101f09190611d85565b60405180910390f35b34801561020557600080fd5b5061020e6106c5565b60405161021b9190611dff565b60405180910390f35b34801561023057600080fd5b506102396106eb565b6040516102469190611e29565b60405180910390f35b34801561025b57600080fd5b506102646106f5565b6040516102719190611c6f565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190611e44565b61072e565b6040516102ae9190611d85565b60405180910390f35b3480156102c357600080fd5b506102cc61075d565b6040516102d99190611e29565b60405180910390f35b3480156102ee57600080fd5b506102f7610763565b6040516103049190611ea6565b60405180910390f35b34801561031957600080fd5b50610322610789565b60405161032f9190611edd565b60405180910390f35b34801561034457600080fd5b5061034d610792565b60405161035a9190611e29565b60405180910390f35b34801561036f57600080fd5b506103786107ba565b6040516103859190611c6f565b60405180910390f35b34801561039a57600080fd5b506103a36107f3565b6040516103b09190611ea6565b60405180910390f35b6103d360048036038101906103ce9190611ef8565b610819565b005b3480156103e157600080fd5b506103ea610cde565b6040516103f79190611ea6565b60405180910390f35b34801561040c57600080fd5b50610415610d04565b6040516104229190611e29565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190611ef8565b610d0a565b60405161045f9190611e29565b60405180910390f35b34801561047457600080fd5b5061047d610d52565b005b34801561048b57600080fd5b50610494610e49565b6040516104a19190611ea6565b60405180910390f35b3480156104b657600080fd5b506104bf610e6f565b6040516104cc9190611ea6565b60405180910390f35b3480156104e157600080fd5b506104ea610e99565b6040516104f79190611c6f565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190611d2a565b610f2b565b6040516105349190611d85565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190611f25565b610f4e565b6040516105719190611e29565b60405180910390f35b34801561058657600080fd5b5061058f610fd5565b60405161059c9190611fdc565b60405180910390f35b3480156105b157600080fd5b506105ba610fe8565b005b3480156105c857600080fd5b506105e360048036038101906105de9190611ef8565b6110e4565b005b3480156105f157600080fd5b506105fa61116a565b6040516106079190611ea6565b60405180910390f35b60606003805461061f90612026565b80601f016020809104026020016040519081016040528092919081815260200182805461064b90612026565b80156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b6000806106ad61116f565b90506106ba818585611177565b600191505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518060400160405280600b81526020017f4261736564205768616c6500000000000000000000000000000000000000000081525081565b60008061073961116f565b9050610746858285611189565b61075185858561121d565b60019150509392505050565b600a5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6040518060400160405280600581526020017f5748414c4500000000000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610821611311565b600180600481111561083657610835611f65565b5b600560149054906101000a900460ff16600481111561085857610857611f65565b5b14610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906120c9565b60405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a91906120fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1791906120fe565b6040518363ffffffff1660e01b8152600401610a3492919061212b565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906120fe565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060646055610ac5610792565b610acf9190612183565b610ad991906121f4565b9050610ae53082611398565b610af0308483611177565b6000429050600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008060008a6040518863ffffffff1660e01b8152600401610b6096959493929190612260565b60606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba391906122d6565b50915091506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690507ff07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684848473ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401610c4f9190611ea6565b602060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190612329565b88604051610ca2959493929190612356565b60405180910390a16002600560146101000a81548160ff02191690836004811115610cd057610ccf611f65565b5b021790555050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611311565b6003806004811115610d6f57610d6e611f65565b5b600560149054906101000a900460ff166004811115610d9157610d90611f65565b5b14610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc8906120c9565b60405180910390fd5b7fbc3fa950185893c8ddfff1dafec540ffc8d7e576295fea983a515e9a8e03acd733610dfb610e6f565b42604051610e0b939291906123a9565b60405180910390a16004600560146101000a81548160ff02191690836004811115610e3957610e38611f65565b5b0217905550610e4661141a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ea890612026565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612026565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b600080610f3661116f565b9050610f4381858561121d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560149054906101000a900460ff1681565b610ff0611311565b600280600481111561100557611004611f65565b5b600560149054906101000a900460ff16600481111561102757611026611f65565b5b14611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906120c9565b60405180910390fd5b60006009819055506000600a819055507fc4c7c69f1eeef4dcf5449fcee968e149b2646d141f0d9bb3d1de12de99d77f7e600954600a54426040516110ae939291906123e0565b60405180910390a16003600560146101000a81548160ff021916908360048111156110dc576110db611f65565b5b021790555050565b6110ec611311565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111559190611ea6565b60405180910390fd5b6111678161142e565b50565b600081565b600033905090565b61118483838360016114f4565b505050565b60006111958484610f4e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112175781811015611207578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111fe93929190612417565b60405180910390fd5b611216848484840360006114f4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112869190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113015760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016112f89190611ea6565b60405180910390fd5b61130c8383836116cb565b505050565b61131961116f565b73ffffffffffffffffffffffffffffffffffffffff16611337610e6f565b73ffffffffffffffffffffffffffffffffffffffff16146113965761135a61116f565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161138d9190611ea6565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114019190611ea6565b60405180910390fd5b611416600083836116cb565b5050565b611422611311565b61142c600061142e565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115665760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161155d9190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115cf9190611ea6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116c5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116bc9190611e29565b60405180910390a35b50505050565b600260048111156116df576116de611f65565b5b600560149054906101000a900460ff16600481111561170157611700611f65565b5b14158061174157506003600481111561171d5761171c611f65565b5b600560149054906101000a900460ff16600481111561173f5761173e611f65565b5b145b1561175657611751838383611914565b61190f565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576103e8600a54836117be9190612183565b6117c891906121f4565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc848383426040516117ff949392919061244e565b60405180910390a16118bd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118bc576103e8600954836118729190612183565b61187c91906121f4565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab881272838383426040516118b3949392919061244e565b60405180910390a15b5b6000811115611902576118f384600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611914565b80826118ff9190612493565b91505b61190d848484611914565b505b505050565b61191f8383836119ba565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b557600061195d610792565b905060006119696106eb565b9050818111156119b25780826040517f9e79f8540000000000000000000000000000000000000000000000000000000081526004016119a99291906124c7565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0c578060026000828254611a0091906124f0565b92505081905550611adf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611a8f93929190612417565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b285780600260008282540392505081905550611b75565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd29190611e29565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c19578082015181840152602081019050611bfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4182611bdf565b611c4b8185611bea565b9350611c5b818560208601611bfb565b611c6481611c25565b840191505092915050565b60006020820190508181036000830152611c898184611c36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cc182611c96565b9050919050565b611cd181611cb6565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b6000819050919050565b611d0781611cf4565b8114611d1257600080fd5b50565b600081359050611d2481611cfe565b92915050565b60008060408385031215611d4157611d40611c91565b5b6000611d4f85828601611cdf565b9250506020611d6085828601611d15565b9150509250929050565b60008115159050919050565b611d7f81611d6a565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b6000819050919050565b6000611dc5611dc0611dbb84611c96565b611da0565b611c96565b9050919050565b6000611dd782611daa565b9050919050565b6000611de982611dcc565b9050919050565b611df981611dde565b82525050565b6000602082019050611e146000830184611df0565b92915050565b611e2381611cf4565b82525050565b6000602082019050611e3e6000830184611e1a565b92915050565b600080600060608486031215611e5d57611e5c611c91565b5b6000611e6b86828701611cdf565b9350506020611e7c86828701611cdf565b9250506040611e8d86828701611d15565b9150509250925092565b611ea081611cb6565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611c91565b5b6000611f1c84828501611cdf565b91505092915050565b60008060408385031215611f3c57611f3b611c91565b5b6000611f4a85828601611cdf565b9250506020611f5b85828601611cdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60058110611fa557611fa4611f65565b5b50565b6000819050611fb682611f94565b919050565b6000611fc682611fa8565b9050919050565b611fd681611fbb565b82525050565b6000602082019050611ff16000830184611fcd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203e57607f821691505b60208210810361205157612050611ff7565b5b50919050565b7f46756e6374696f6e2063616e6e6f742062652063616c6c656420696e2074686960008201527f7320737461746500000000000000000000000000000000000000000000000000602082015250565b60006120b3602783611bea565b91506120be82612057565b604082019050919050565b600060208201905081810360008301526120e2816120a6565b9050919050565b6000815190506120f881611cc8565b92915050565b60006020828403121561211457612113611c91565b5b6000612122848285016120e9565b91505092915050565b60006040820190506121406000830185611e97565b61214d6020830184611e97565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061218e82611cf4565b915061219983611cf4565b92508282026121a781611cf4565b915082820484148315176121be576121bd612154565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121ff82611cf4565b915061220a83611cf4565b92508261221a576122196121c5565b5b828204905092915050565b6000819050919050565b600061224a61224561224084612225565b611da0565b611cf4565b9050919050565b61225a8161222f565b82525050565b600060c0820190506122756000830189611e97565b6122826020830188611e1a565b61228f6040830187612251565b61229c6060830186612251565b6122a96080830185611e97565b6122b660a0830184611e1a565b979650505050505050565b6000815190506122d081611cfe565b92915050565b6000806000606084860312156122ef576122ee611c91565b5b60006122fd868287016122c1565b935050602061230e868287016122c1565b925050604061231f868287016122c1565b9150509250925092565b60006020828403121561233f5761233e611c91565b5b600061234d848285016122c1565b91505092915050565b600060a08201905061236b6000830188611e97565b6123786020830187611e1a565b6123856040830186611e1a565b6123926060830185611e1a565b61239f6080830184611e1a565b9695505050505050565b60006060820190506123be6000830186611e97565b6123cb6020830185611e97565b6123d86040830184611e1a565b949350505050565b60006060820190506123f56000830186611e1a565b6124026020830185611e1a565b61240f6040830184611e1a565b949350505050565b600060608201905061242c6000830186611e97565b6124396020830185611e1a565b6124466040830184611e1a565b949350505050565b60006080820190506124636000830187611e97565b6124706020830186611e1a565b61247d6040830185611e1a565b61248a6060830184611e1a565b95945050505050565b600061249e82611cf4565b91506124a983611cf4565b92508282039050818111156124c1576124c0612154565b5b92915050565b60006040820190506124dc6000830185611e1a565b6124e96020830184611e1a565b9392505050565b60006124fb82611cf4565b915061250683611cf4565b925082820190508082111561251e5761251d612154565b5b9291505056fea2646970667358221220170fb5eefce9d28d8d1c509b4820f1a273901eb61e211d789627affd137a2f5264736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-84532/build-info/20347fb4e2fe24b67c06bbc7cb0f9af4.json b/ignition/deployments/chain-84532/build-info/20347fb4e2fe24b67c06bbc7cb0f9af4.json new file mode 100644 index 0000000..0d224e5 --- /dev/null +++ b/ignition/deployments/chain-84532/build-info/20347fb4e2fe24b67c06bbc7cb0f9af4.json @@ -0,0 +1,53079 @@ +{ + "id": "20347fb4e2fe24b67c06bbc7cb0f9af4", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.24", + "solcLongVersion": "0.8.24+commit.e11b9ed9", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n * ```\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/ERC20Capped.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC20} from \"../ERC20.sol\";\n\n/**\n * @dev Extension of {ERC20} that adds a cap to the supply of tokens.\n */\nabstract contract ERC20Capped is ERC20 {\n uint256 private immutable _cap;\n\n /**\n * @dev Total supply cap has been exceeded.\n */\n error ERC20ExceededCap(uint256 increasedSupply, uint256 cap);\n\n /**\n * @dev The supplied cap is not a valid cap.\n */\n error ERC20InvalidCap(uint256 cap);\n\n /**\n * @dev Sets the value of the `cap`. This value is immutable, it can only be\n * set once during construction.\n */\n constructor(uint256 cap_) {\n if (cap_ == 0) {\n revert ERC20InvalidCap(0);\n }\n _cap = cap_;\n }\n\n /**\n * @dev Returns the cap on the token's total supply.\n */\n function cap() public view virtual returns (uint256) {\n return _cap;\n }\n\n /**\n * @dev See {ERC20-_update}.\n */\n function _update(address from, address to, uint256 value) internal virtual override {\n super._update(from, to, value);\n\n if (from == address(0)) {\n uint256 maxSupply = cap();\n uint256 supply = totalSupply();\n if (supply > maxSupply) {\n revert ERC20ExceededCap(supply, maxSupply);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol": { + "content": "pragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint);\n\n function feeTo() external view returns (address);\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n function allPairs(uint) external view returns (address pair);\n function allPairsLength() external view returns (uint);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n function setFeeToSetter(address) external;\n}\n" + }, + "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol": { + "content": "pragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint value);\n event Transfer(address indexed from, address indexed to, uint value);\n\n function name() external pure returns (string memory);\n function symbol() external pure returns (string memory);\n function decimals() external pure returns (uint8);\n function totalSupply() external view returns (uint);\n function balanceOf(address owner) external view returns (uint);\n function allowance(address owner, address spender) external view returns (uint);\n\n function approve(address spender, uint value) external returns (bool);\n function transfer(address to, uint value) external returns (bool);\n function transferFrom(address from, address to, uint value) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n function nonces(address owner) external view returns (uint);\n\n function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\n\n event Mint(address indexed sender, uint amount0, uint amount1);\n event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint amount0In,\n uint amount1In,\n uint amount0Out,\n uint amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint);\n function factory() external view returns (address);\n function token0() external view returns (address);\n function token1() external view returns (address);\n function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\n function price0CumulativeLast() external view returns (uint);\n function price1CumulativeLast() external view returns (uint);\n function kLast() external view returns (uint);\n\n function mint(address to) external returns (uint liquidity);\n function burn(address to) external returns (uint amount0, uint amount1);\n function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\n function skim(address to) external;\n function sync() external;\n\n function initialize(address, address) external;\n}\n" + }, + "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol": { + "content": "pragma solidity >=0.6.2;\n\ninterface IUniswapV2Router01 {\n function factory() external pure returns (address);\n function WETH() external pure returns (address);\n\n function addLiquidity(\n address tokenA,\n address tokenB,\n uint amountADesired,\n uint amountBDesired,\n uint amountAMin,\n uint amountBMin,\n address to,\n uint deadline\n ) external returns (uint amountA, uint amountB, uint liquidity);\n function addLiquidityETH(\n address token,\n uint amountTokenDesired,\n uint amountTokenMin,\n uint amountETHMin,\n address to,\n uint deadline\n ) external payable returns (uint amountToken, uint amountETH, uint liquidity);\n function removeLiquidity(\n address tokenA,\n address tokenB,\n uint liquidity,\n uint amountAMin,\n uint amountBMin,\n address to,\n uint deadline\n ) external returns (uint amountA, uint amountB);\n function removeLiquidityETH(\n address token,\n uint liquidity,\n uint amountTokenMin,\n uint amountETHMin,\n address to,\n uint deadline\n ) external returns (uint amountToken, uint amountETH);\n function removeLiquidityWithPermit(\n address tokenA,\n address tokenB,\n uint liquidity,\n uint amountAMin,\n uint amountBMin,\n address to,\n uint deadline,\n bool approveMax, uint8 v, bytes32 r, bytes32 s\n ) external returns (uint amountA, uint amountB);\n function removeLiquidityETHWithPermit(\n address token,\n uint liquidity,\n uint amountTokenMin,\n uint amountETHMin,\n address to,\n uint deadline,\n bool approveMax, uint8 v, bytes32 r, bytes32 s\n ) external returns (uint amountToken, uint amountETH);\n function swapExactTokensForTokens(\n uint amountIn,\n uint amountOutMin,\n address[] calldata path,\n address to,\n uint deadline\n ) external returns (uint[] memory amounts);\n function swapTokensForExactTokens(\n uint amountOut,\n uint amountInMax,\n address[] calldata path,\n address to,\n uint deadline\n ) external returns (uint[] memory amounts);\n function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)\n external\n payable\n returns (uint[] memory amounts);\n function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\n external\n returns (uint[] memory amounts);\n function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\n external\n returns (uint[] memory amounts);\n function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)\n external\n payable\n returns (uint[] memory amounts);\n\n function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);\n function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);\n function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);\n function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);\n function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);\n}\n" + }, + "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol": { + "content": "pragma solidity >=0.6.2;\n\nimport './IUniswapV2Router01.sol';\n\ninterface IUniswapV2Router02 is IUniswapV2Router01 {\n function removeLiquidityETHSupportingFeeOnTransferTokens(\n address token,\n uint liquidity,\n uint amountTokenMin,\n uint amountETHMin,\n address to,\n uint deadline\n ) external returns (uint amountETH);\n function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\n address token,\n uint liquidity,\n uint amountTokenMin,\n uint amountETHMin,\n address to,\n uint deadline,\n bool approveMax, uint8 v, bytes32 r, bytes32 s\n ) external returns (uint amountETH);\n\n function swapExactTokensForTokensSupportingFeeOnTransferTokens(\n uint amountIn,\n uint amountOutMin,\n address[] calldata path,\n address to,\n uint deadline\n ) external;\n function swapExactETHForTokensSupportingFeeOnTransferTokens(\n uint amountOutMin,\n address[] calldata path,\n address to,\n uint deadline\n ) external payable;\n function swapExactTokensForETHSupportingFeeOnTransferTokens(\n uint amountIn,\n uint amountOutMin,\n address[] calldata path,\n address to,\n uint deadline\n ) external;\n}\n" + }, + "contracts/BasedWhale.sol": { + "content": "/*\n * SPDX-License-Identifier: Apache-2.0\n * WEBSITE: https://basedwhale.vip/\n * TELEGRAM: https://t.me/BasedWhaleVIP\n * TWITTER: https://x.com/basedwhalevip\n */\n\npragma solidity ^0.8.24;\n\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\";\nimport \"@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol\";\nimport \"@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol\";\n\ncontract BasedWhale is ERC20Capped, Ownable {\n // States for the contract\n enum TokenState {\n Default,\n Launched,\n LiquidityLocked,\n TaxRatesSetToZero,\n OwnershipRenounced\n }\n\n TokenState public tokenState;\n address public marketingMultiSig;\n address public exchangeMultiSig1;\n address public exchangeMultiSig2;\n // Represents 10% and 30% since Solidity does not support decimals.\n // Buy tax rate is 10% and sell tax rate is 30% at launch to prevent bots from pumping -> dumping.\n uint256 public buyTaxRate = 100;\n uint256 public sellTaxRate = 300;\n address public uniswapV2PairAddress;\n\n IUniswapV2Router02 public uniswapV2Router;\n\n string public constant TOKEN_NAME = \"Based Whale\";\n string public constant TOKEN_TICKER_SYMBOL = \"WHALE\";\n address public constant BURN_ADDRESS = 0x0000000000000000000000000000000000000000;\n\n event Launched(address launcherAddress, uint256 timestamp);\n event TaxRatesSetToZero(uint256 zeroedBuyTaxRate, uint256 zeroedSellTaxRate, uint256 timestamp);\n event BuyTaxed(\n address buyerAddress,\n uint256 amountOfTokens,\n uint256 taxAmount,\n uint256 timestamp\n );\n event SellTaxed(\n address sellerAddress,\n uint256 amountOfTokens,\n uint256 taxAmount,\n uint256 timestamp\n );\n event LiquidityLocked(\n address liquidityPairAddress,\n uint256 amountOfTokens,\n uint256 amountOfETH,\n uint256 amountOfLiquidityTokensBurned,\n uint256 timestamp\n );\n event OwnershipRenounced(address renouncerAddress, address nullAddressOwner, uint256 timestamp);\n\n modifier inState(TokenState state) {\n require(tokenState == state, \"Function cannot be called in this state\");\n _;\n }\n\n constructor(\n uint cap_,\n address _owner,\n address _marketingMultiSig,\n address _exchangeMultiSig1,\n address _exchangeMultiSig2\n )\n ERC20(TOKEN_NAME, TOKEN_TICKER_SYMBOL)\n ERC20Capped(cap_ * 10 ** uint256(decimals()))\n Ownable(_owner)\n {\n marketingMultiSig = _marketingMultiSig;\n exchangeMultiSig1 = _exchangeMultiSig1;\n exchangeMultiSig2 = _exchangeMultiSig2;\n\n // Allocate 5% to marketing\n _mint(marketingMultiSig, (cap() * 5) / 100);\n\n // Allocate 5% to exchangeMultiSig1\n _mint(exchangeMultiSig1, (cap() * 5) / 100);\n\n // Allocate 5% to exchangeMultiSig2\n _mint(exchangeMultiSig2, (cap() * 5) / 100);\n\n emit Launched(msg.sender, block.timestamp);\n tokenState = TokenState.Launched;\n }\n\n function initializeUniswapLiquidity(\n address _uniswapV2Router\n ) external payable onlyOwner inState(TokenState.Launched) {\n uniswapV2Router = IUniswapV2Router02(_uniswapV2Router);\n uniswapV2PairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(\n address(this),\n uniswapV2Router.WETH()\n );\n\n // provision and approve 85% for liquidity pool\n uint256 liquidityPoolAllocation = (cap() * 85) / 100;\n _mint(address(this), liquidityPoolAllocation);\n _approve(address(this), _uniswapV2Router, liquidityPoolAllocation);\n\n uint256 liquidityTimeStamp = block.timestamp;\n // Add liquidity to the pool, burn the tokens and lock the liquidity.\n (uint amountToken, uint amountETH, ) = uniswapV2Router.addLiquidityETH{value: msg.value}(\n address(this), // BasedWhale Token Address\n liquidityPoolAllocation, // amountTokenDesired\n 0, // amountTokenMin\n 0, // amountETHMin\n BURN_ADDRESS, // Recipient of the liquidity tokens\n liquidityTimeStamp // deadline for this liquidity provision\n );\n\n IUniswapV2Pair uniswapV2Pair = IUniswapV2Pair(uniswapV2PairAddress);\n emit LiquidityLocked(\n uniswapV2PairAddress,\n amountToken,\n amountETH,\n uniswapV2Pair.balanceOf(BURN_ADDRESS),\n liquidityTimeStamp\n );\n\n tokenState = TokenState.LiquidityLocked;\n }\n\n function setTaxRatesToZero() external onlyOwner inState(TokenState.LiquidityLocked) {\n buyTaxRate = 0;\n sellTaxRate = 0;\n\n emit TaxRatesSetToZero(buyTaxRate, sellTaxRate, block.timestamp);\n\n tokenState = TokenState.TaxRatesSetToZero;\n }\n\n function renounceOwnership()\n public\n virtual\n override\n onlyOwner\n inState(TokenState.TaxRatesSetToZero)\n {\n emit OwnershipRenounced(msg.sender, owner(), block.timestamp);\n tokenState = TokenState.OwnershipRenounced;\n super.renounceOwnership();\n }\n\n // To receive ETH from uniswapV2Router when swapping\n receive() external payable {}\n\n // Override the _beforeTokenTransfer function to add a temporary tax on buys and sells.\n function _update(address from, address to, uint256 value) internal override {\n // No liquidity pool/no tax rates == no taxes.\n if (tokenState != TokenState.LiquidityLocked || tokenState == TokenState.TaxRatesSetToZero) {\n super._update(from, to, value);\n return;\n }\n\n uint256 taxAmount = 0;\n if (to == uniswapV2PairAddress) {\n // Selling tokens\n taxAmount = (value * sellTaxRate) / 1000;\n emit SellTaxed(from, value, taxAmount, block.timestamp);\n } else if (from == uniswapV2PairAddress) {\n // Buying tokens\n taxAmount = (value * buyTaxRate) / 1000;\n emit BuyTaxed(to, value, taxAmount, block.timestamp);\n }\n\n if (taxAmount > 0) {\n super._update(from, marketingMultiSig, taxAmount);\n value = value - taxAmount;\n }\n\n super._update(from, to, value);\n }\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol\n\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol", + "start": -1 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol\n\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol", + "start": -1 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\n\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol", + "start": -1 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "1878", + "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\n\n", + "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol", + "start": -1 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 1032 + ], + "Ownable": [ + 147 + ] + }, + "id": 148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 148, + "sourceUnit": 1033, + "src": "128:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "136:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5, + "name": "Context", + "nameLocations": [ + "692:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1032, + "src": "692:7:0" + }, + "id": 6, + "nodeType": "InheritanceSpecifier", + "src": "692:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "175:487:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 147, + "linearizedBaseContracts": [ + 147, + 1032 + ], + "name": "Ownable", + "nameLocation": "681:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "706:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "735:85:0", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 13, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "858:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:0" + }, + "src": "825:50:0" + }, + { + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "881:82:0", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 18, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "994:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:0" + }, + "src": "968:41:0" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 24, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1042:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1073:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:0" + }, + "src": "1015:84:0" + }, + { + "body": { + "id": 49, + "nodeType": "Block", + "src": "1259:153:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1273:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:0", + "typeDescriptions": {} + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44, + "nodeType": "IfStatement", + "src": "1269:95:0", + "trueBody": { + "id": 43, + "nodeType": "Block", + "src": "1301:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:0", + "typeDescriptions": {} + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 36, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "1322:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 42, + "nodeType": "RevertStatement", + "src": "1315:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 46, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1392:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "1373:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 48, + "nodeType": "ExpressionStatement", + "src": "1373:32:0" + } + ] + }, + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "1105:115:0", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 50, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:0", + "nodeType": "VariableDeclaration", + "scope": 50, + "src": "1237:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:0" + }, + "scope": 147, + "src": "1225:187:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "1521:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 53, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1531:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "1531:13:0" + }, + { + "id": 56, + "nodeType": "PlaceholderStatement", + "src": "1554:1:0" + } + ] + }, + "documentation": { + "id": 51, + "nodeType": "StructuredDocumentation", + "src": "1418:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 58, + "name": "onlyOwner", + "nameLocation": "1509:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:0" + }, + "src": "1500:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 66, + "nodeType": "Block", + "src": "1693:30:0", + "statements": [ + { + "expression": { + "id": 64, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1710:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 63, + "id": 65, + "nodeType": "Return", + "src": "1703:13:0" + } + ] + }, + "documentation": { + "id": 59, + "nodeType": "StructuredDocumentation", + "src": "1568:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 67, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "1684:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:0" + }, + "scope": 147, + "src": "1638:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 83, + "nodeType": "Block", + "src": "1841:117:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 71, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1855:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 73, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1014, + "src": "1866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "IfStatement", + "src": "1851:101:0", + "trueBody": { + "id": 81, + "nodeType": "Block", + "src": "1880:72:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 77, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1014, + "src": "1928:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 76, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "1901:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 80, + "nodeType": "RevertStatement", + "src": "1894:47:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 68, + "nodeType": "StructuredDocumentation", + "src": "1729:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 84, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:0" + }, + "scope": 147, + "src": "1796:162:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 97, + "nodeType": "Block", + "src": "2347:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:0", + "typeDescriptions": {} + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 90, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2357:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "2357:30:0" + } + ] + }, + "documentation": { + "id": 85, + "nodeType": "StructuredDocumentation", + "src": "1964:324:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 98, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 88, + "kind": "modifierInvocation", + "modifierName": { + "id": 87, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2337:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:0" + }, + "returnParameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:0" + }, + "scope": 147, + "src": "2293:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 125, + "nodeType": "Block", + "src": "2613:145:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 106, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2627:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:0", + "typeDescriptions": {} + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 120, + "nodeType": "IfStatement", + "src": "2623:91:0", + "trueBody": { + "id": 119, + "nodeType": "Block", + "src": "2651:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:0", + "typeDescriptions": {} + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 112, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "2672:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 118, + "nodeType": "RevertStatement", + "src": "2665:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2742:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 121, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "2723:28:0" + } + ] + }, + "documentation": { + "id": 99, + "nodeType": "StructuredDocumentation", + "src": "2400:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 104, + "kind": "modifierInvocation", + "modifierName": { + "id": 103, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2603:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "2570:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:0" + }, + "returnParameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:0" + }, + "scope": 147, + "src": "2543:215:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "2975:124:0", + "statements": [ + { + "assignments": [ + 133 + ], + "declarations": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:0", + "nodeType": "VariableDeclaration", + "scope": 145, + "src": "2985:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 135, + "initialValue": { + "id": 134, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3004:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:0" + }, + { + "expression": { + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 136, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 137, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3020:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 141, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "3073:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 142, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3083:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 140, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 144, + "nodeType": "EmitStatement", + "src": "3047:45:0" + } + ] + }, + "documentation": { + "id": 127, + "nodeType": "StructuredDocumentation", + "src": "2764:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "2940:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:0" + }, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:0" + }, + "scope": 147, + "src": "2912:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 148, + "src": "663:2438:0", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24 + ] + } + ], + "src": "102:3000:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 284 + ], + "IERC20Errors": [ + 189 + ], + "IERC721Errors": [ + 237 + ] + }, + "id": 285, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 150, + "nodeType": "StructuredDocumentation", + "src": "138:139:1", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 189, + "linearizedBaseContracts": [ + 189 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 151, + "nodeType": "StructuredDocumentation", + "src": "307:309:1", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 159, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:1", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "652:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:1", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "668:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 157, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:1", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "685:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:1" + }, + "src": "621:80:1" + }, + { + "documentation": { + "id": 160, + "nodeType": "StructuredDocumentation", + "src": "707:152:1", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 164, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:1", + "nodeType": "VariableDeclaration", + "scope": 164, + "src": "889:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:1" + }, + "src": "864:41:1" + }, + { + "documentation": { + "id": 165, + "nodeType": "StructuredDocumentation", + "src": "911:159:1", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 169, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:1", + "nodeType": "VariableDeclaration", + "scope": 169, + "src": "1102:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:1" + }, + "src": "1075:45:1" + }, + { + "documentation": { + "id": 170, + "nodeType": "StructuredDocumentation", + "src": "1126:345:1", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 178, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "1509:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "1526:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "1545:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:1" + }, + "src": "1476:85:1" + }, + { + "documentation": { + "id": 179, + "nodeType": "StructuredDocumentation", + "src": "1567:174:1", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 183, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:1", + "nodeType": "VariableDeclaration", + "scope": 183, + "src": "1773:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:1" + }, + "src": "1746:45:1" + }, + { + "documentation": { + "id": 184, + "nodeType": "StructuredDocumentation", + "src": "1797:195:1", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 188, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "2023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:1" + }, + "src": "1997:43:1" + } + ], + "scope": 285, + "src": "278:1764:1", + "usedErrors": [ + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 190, + "nodeType": "StructuredDocumentation", + "src": "2044:141:1", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 237, + "linearizedBaseContracts": [ + 237 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 191, + "nodeType": "StructuredDocumentation", + "src": "2216:219:1", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 195, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 193, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:1", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "2465:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:1" + }, + "src": "2440:40:1" + }, + { + "documentation": { + "id": 196, + "nodeType": "StructuredDocumentation", + "src": "2486:132:1", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 200, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:1", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2652:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:1" + }, + "src": "2623:46:1" + }, + { + "documentation": { + "id": 201, + "nodeType": "StructuredDocumentation", + "src": "2675:289:1", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 209, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:1", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "2996:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:1", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "3012:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:1", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "3029:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:1" + }, + "src": "2969:75:1" + }, + { + "documentation": { + "id": 210, + "nodeType": "StructuredDocumentation", + "src": "3050:152:1", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 214, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:1", + "nodeType": "VariableDeclaration", + "scope": 214, + "src": "3233:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:1" + }, + "src": "3207:42:1" + }, + { + "documentation": { + "id": 215, + "nodeType": "StructuredDocumentation", + "src": "3255:159:1", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 219, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:1", + "nodeType": "VariableDeclaration", + "scope": 219, + "src": "3447:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:1" + }, + "src": "3419:46:1" + }, + { + "documentation": { + "id": 220, + "nodeType": "StructuredDocumentation", + "src": "3471:247:1", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 226, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:1", + "nodeType": "VariableDeclaration", + "scope": 226, + "src": "3756:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 224, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:1", + "nodeType": "VariableDeclaration", + "scope": 226, + "src": "3774:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:1" + }, + "src": "3723:68:1" + }, + { + "documentation": { + "id": 227, + "nodeType": "StructuredDocumentation", + "src": "3797:174:1", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 231, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:1", + "nodeType": "VariableDeclaration", + "scope": 231, + "src": "4004:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:1" + }, + "src": "3976:46:1" + }, + { + "documentation": { + "id": 232, + "nodeType": "StructuredDocumentation", + "src": "4028:197:1", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 236, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "4258:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 233, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:1" + }, + "src": "4230:46:1" + } + ], + "scope": 285, + "src": "2186:2092:1", + "usedErrors": [ + 195, + 200, + 209, + 214, + 219, + 226, + 231, + 236 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "4280:143:1", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 284, + "linearizedBaseContracts": [ + 284 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 239, + "nodeType": "StructuredDocumentation", + "src": "4455:361:1", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 249, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4854:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 243, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4870:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4887:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 247, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4903:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:1" + }, + "src": "4821:99:1" + }, + { + "documentation": { + "id": 250, + "nodeType": "StructuredDocumentation", + "src": "4926:152:1", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 254, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 252, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "5110:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 251, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:1" + }, + "src": "5083:43:1" + }, + { + "documentation": { + "id": 255, + "nodeType": "StructuredDocumentation", + "src": "5132:159:1", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 259, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 257, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:1", + "nodeType": "VariableDeclaration", + "scope": 259, + "src": "5325:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:1" + }, + "src": "5296:47:1" + }, + { + "documentation": { + "id": 260, + "nodeType": "StructuredDocumentation", + "src": "5349:256:1", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 266, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:1", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "5645:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:1", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "5663:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:1" + }, + "src": "5610:68:1" + }, + { + "documentation": { + "id": 267, + "nodeType": "StructuredDocumentation", + "src": "5684:174:1", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 271, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:1", + "nodeType": "VariableDeclaration", + "scope": 271, + "src": "5892:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:1" + }, + "src": "5863:47:1" + }, + { + "documentation": { + "id": 272, + "nodeType": "StructuredDocumentation", + "src": "5916:197:1", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 276, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 274, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:1", + "nodeType": "VariableDeclaration", + "scope": 276, + "src": "6147:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:1" + }, + "src": "6118:47:1" + }, + { + "documentation": { + "id": 277, + "nodeType": "StructuredDocumentation", + "src": "6171:280:1", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 283, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:1", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "6488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:1", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "6507:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:1" + }, + "src": "6456:73:1" + } + ], + "scope": 285, + "src": "4424:2107:1", + "usedErrors": [ + 249, + 254, + 259, + 266, + 271, + 276, + 283 + ], + "usedEvents": [] + } + ], + "src": "112:6420:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 1032 + ], + "ERC20": [ + 799 + ], + "IERC20": [ + 877 + ], + "IERC20Errors": [ + 189 + ], + "IERC20Metadata": [ + 1002 + ] + }, + "id": 800, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 286, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 288, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 878, + "src": "131:36:2", + "symbolAliases": [ + { + "foreign": { + "id": 287, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "139:6:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 290, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 1003, + "src": "168:63:2", + "symbolAliases": [ + { + "foreign": { + "id": 289, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "176:14:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 292, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 1033, + "src": "232:48:2", + "symbolAliases": [ + { + "foreign": { + "id": 291, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "240:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 294, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 285, + "src": "281:65:2", + "symbolAliases": [ + { + "foreign": { + "id": 293, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 189, + "src": "289:12:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 296, + "name": "Context", + "nameLocations": [ + "1428:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1032, + "src": "1428:7:2" + }, + "id": 297, + "nodeType": "InheritanceSpecifier", + "src": "1428:7:2" + }, + { + "baseName": { + "id": 298, + "name": "IERC20", + "nameLocations": [ + "1437:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "1437:6:2" + }, + "id": 299, + "nodeType": "InheritanceSpecifier", + "src": "1437:6:2" + }, + { + "baseName": { + "id": 300, + "name": "IERC20Metadata", + "nameLocations": [ + "1445:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1002, + "src": "1445:14:2" + }, + "id": 301, + "nodeType": "InheritanceSpecifier", + "src": "1445:14:2" + }, + { + "baseName": { + "id": 302, + "name": "IERC20Errors", + "nameLocations": [ + "1461:12:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 189, + "src": "1461:12:2" + }, + "id": 303, + "nodeType": "InheritanceSpecifier", + "src": "1461:12:2" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 295, + "nodeType": "StructuredDocumentation", + "src": "348:1052:2", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification." + }, + "fullyImplemented": true, + "id": 799, + "linearizedBaseContracts": [ + 799, + 189, + 1002, + 877, + 1032 + ], + "name": "ERC20", + "nameLocation": "1419:5:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1524:9:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1480:53:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 306, + "keyName": "account", + "keyNameLocation": "1496:7:2", + "keyType": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1488:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1480:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1507:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1612:11:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1540:83:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 312, + "keyName": "account", + "keyNameLocation": "1556:7:2", + "keyType": { + "id": 308, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1548:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1540:63:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 311, + "keyName": "spender", + "keyNameLocation": "1583:7:2", + "keyType": { + "id": 309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1575:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1567:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1594:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1646:12:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1630:28:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1630:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 317, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1680:5:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1665:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 316, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1665:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 319, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1706:7:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1691:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1691:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 335, + "nodeType": "Block", + "src": "1952:57:2", + "statements": [ + { + "expression": { + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 327, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "1962:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 328, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 322, + "src": "1970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1962:13:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "1962:13:2" + }, + { + "expression": { + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 331, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "1985:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 332, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "1995:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1985:17:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 334, + "nodeType": "ExpressionStatement", + "src": "1985:17:2" + } + ] + }, + "documentation": { + "id": 320, + "nodeType": "StructuredDocumentation", + "src": "1720:171:2", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 336, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 322, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1922:5:2", + "nodeType": "VariableDeclaration", + "scope": 336, + "src": "1908:19:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 321, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1908:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 324, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1943:7:2", + "nodeType": "VariableDeclaration", + "scope": 336, + "src": "1929:21:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 323, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1929:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1907:44:2" + }, + "returnParameters": { + "id": 326, + "nodeType": "ParameterList", + "parameters": [], + "src": "1952:0:2" + }, + "scope": 799, + "src": "1896:113:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 989 + ], + "body": { + "id": 344, + "nodeType": "Block", + "src": "2134:29:2", + "statements": [ + { + "expression": { + "id": 342, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "2151:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 341, + "id": 343, + "nodeType": "Return", + "src": "2144:12:2" + } + ] + }, + "documentation": { + "id": 337, + "nodeType": "StructuredDocumentation", + "src": "2015:54:2", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 345, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2083:4:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 338, + "nodeType": "ParameterList", + "parameters": [], + "src": "2087:2:2" + }, + "returnParameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "2119:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 339, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2119:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2118:15:2" + }, + "scope": 799, + "src": "2074:89:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 995 + ], + "body": { + "id": 353, + "nodeType": "Block", + "src": "2338:31:2", + "statements": [ + { + "expression": { + "id": 351, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "2355:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 350, + "id": 352, + "nodeType": "Return", + "src": "2348:14:2" + } + ] + }, + "documentation": { + "id": 346, + "nodeType": "StructuredDocumentation", + "src": "2169:102:2", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 354, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2285:6:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [], + "src": "2291:2:2" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 354, + "src": "2323:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 348, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2323:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2322:15:2" + }, + "scope": 799, + "src": "2276:93:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1001 + ], + "body": { + "id": 362, + "nodeType": "Block", + "src": "3058:26:2", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3075:2:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 359, + "id": 361, + "nodeType": "Return", + "src": "3068:9:2" + } + ] + }, + "documentation": { + "id": 355, + "nodeType": "StructuredDocumentation", + "src": "2375:622:2", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3011:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "3019:2:2" + }, + "returnParameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 363, + "src": "3051:5:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 357, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3051:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3050:7:2" + }, + "scope": 799, + "src": "3002:82:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 826 + ], + "body": { + "id": 371, + "nodeType": "Block", + "src": "3205:36:2", + "statements": [ + { + "expression": { + "id": 369, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "3222:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 368, + "id": 370, + "nodeType": "Return", + "src": "3215:19:2" + } + ] + }, + "documentation": { + "id": 364, + "nodeType": "StructuredDocumentation", + "src": "3090:49:2", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "3153:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3164:2:2" + }, + "returnParameters": { + "id": 368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 367, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 372, + "src": "3196:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3196:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3195:9:2" + }, + "scope": 799, + "src": "3144:97:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 834 + ], + "body": { + "id": 384, + "nodeType": "Block", + "src": "3373:42:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 380, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "3390:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 382, + "indexExpression": { + "id": 381, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 375, + "src": "3400:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3390:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 379, + "id": 383, + "nodeType": "Return", + "src": "3383:25:2" + } + ] + }, + "documentation": { + "id": 373, + "nodeType": "StructuredDocumentation", + "src": "3247:47:2", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 385, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3308:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 375, + "mutability": "mutable", + "name": "account", + "nameLocation": "3326:7:2", + "nodeType": "VariableDeclaration", + "scope": 385, + "src": "3318:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3318:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3317:17:2" + }, + "returnParameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 385, + "src": "3364:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3364:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3363:9:2" + }, + "scope": 799, + "src": "3299:116:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 844 + ], + "body": { + "id": 408, + "nodeType": "Block", + "src": "3685:103:2", + "statements": [ + { + "assignments": [ + 396 + ], + "declarations": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3703:5:2", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "3695:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3695:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 399, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 397, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1014, + "src": "3711:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3711:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3695:28:2" + }, + { + "expression": { + "arguments": [ + { + "id": 401, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "3743:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 402, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "3750:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 390, + "src": "3754:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 400, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "3733:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3733:27:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 405, + "nodeType": "ExpressionStatement", + "src": "3733:27:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3777:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 394, + "id": 407, + "nodeType": "Return", + "src": "3770:11:2" + } + ] + }, + "documentation": { + "id": 386, + "nodeType": "StructuredDocumentation", + "src": "3421:184:2", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 409, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3619:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "to", + "nameLocation": "3636:2:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "3628:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3628:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 390, + "mutability": "mutable", + "name": "value", + "nameLocation": "3648:5:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "3640:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3640:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3627:27:2" + }, + "returnParameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "3679:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 392, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3679:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3678:6:2" + }, + "scope": 799, + "src": "3610:178:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 854 + ], + "body": { + "id": 425, + "nodeType": "Block", + "src": "3935:51:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 419, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "3952:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "3964:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3952:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 423, + "indexExpression": { + "id": 422, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "3971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3952:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 418, + "id": 424, + "nodeType": "Return", + "src": "3945:34:2" + } + ] + }, + "documentation": { + "id": 410, + "nodeType": "StructuredDocumentation", + "src": "3794:47:2", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3855:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 412, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3873:5:2", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "3865:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3865:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3888:7:2", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "3880:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3880:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3864:32:2" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "3926:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3926:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3925:9:2" + }, + "scope": 799, + "src": "3846:140:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 864 + ], + "body": { + "id": 449, + "nodeType": "Block", + "src": "4372:107:2", + "statements": [ + { + "assignments": [ + 437 + ], + "declarations": [ + { + "constant": false, + "id": 437, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4390:5:2", + "nodeType": "VariableDeclaration", + "scope": 449, + "src": "4382:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4382:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 440, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 438, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1014, + "src": "4398:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4398:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4382:28:2" + }, + { + "expression": { + "arguments": [ + { + "id": 442, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 437, + "src": "4429:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 443, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "4436:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 444, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "4445:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 441, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 690, + "src": "4420:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4420:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 446, + "nodeType": "ExpressionStatement", + "src": "4420:31:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 435, + "id": 448, + "nodeType": "Return", + "src": "4461:11:2" + } + ] + }, + "documentation": { + "id": 427, + "nodeType": "StructuredDocumentation", + "src": "3992:296:2", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 450, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4302:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 429, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4318:7:2", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "4310:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4310:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 431, + "mutability": "mutable", + "name": "value", + "nameLocation": "4335:5:2", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "4327:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4327:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4309:32:2" + }, + "returnParameters": { + "id": 435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "4366:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 433, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4366:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4365:6:2" + }, + "scope": 799, + "src": "4293:186:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 876 + ], + "body": { + "id": 481, + "nodeType": "Block", + "src": "5132:151:2", + "statements": [ + { + "assignments": [ + 463 + ], + "declarations": [ + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5150:7:2", + "nodeType": "VariableDeclaration", + "scope": 481, + "src": "5142:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5142:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 466, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 464, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1014, + "src": "5160:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5160:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5142:30:2" + }, + { + "expression": { + "arguments": [ + { + "id": 468, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "5198:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 469, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "5204:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 470, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 457, + "src": "5213:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 467, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "5182:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5182:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 472, + "nodeType": "ExpressionStatement", + "src": "5182:37:2" + }, + { + "expression": { + "arguments": [ + { + "id": 474, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "5239:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 475, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "5245:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 476, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 457, + "src": "5249:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 473, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "5229:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5229:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "ExpressionStatement", + "src": "5229:26:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5272:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 461, + "id": 480, + "nodeType": "Return", + "src": "5265:11:2" + } + ] + }, + "documentation": { + "id": 451, + "nodeType": "StructuredDocumentation", + "src": "4485:549:2", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 482, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "5048:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "from", + "nameLocation": "5069:4:2", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5061:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5061:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 455, + "mutability": "mutable", + "name": "to", + "nameLocation": "5083:2:2", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5075:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5075:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 457, + "mutability": "mutable", + "name": "value", + "nameLocation": "5095:5:2", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5087:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5087:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5060:41:2" + }, + "returnParameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 460, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5126:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 459, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5126:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5125:6:2" + }, + "scope": 799, + "src": "5039:244:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "5725:231:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 492, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "5739:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5755:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5747:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5747:7:2", + "typeDescriptions": {} + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5747:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5739:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 506, + "nodeType": "IfStatement", + "src": "5735:86:2", + "trueBody": { + "id": 505, + "nodeType": "Block", + "src": "5759:62:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5807:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5799:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5799:7:2", + "typeDescriptions": {} + } + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5799:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 498, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "5780:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5780:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 504, + "nodeType": "RevertStatement", + "src": "5773:37:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 507, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "5834:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5848:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5840:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5840:7:2", + "typeDescriptions": {} + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5840:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5834:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 521, + "nodeType": "IfStatement", + "src": "5830:86:2", + "trueBody": { + "id": 520, + "nodeType": "Block", + "src": "5852:64:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5902:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5894:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5894:7:2", + "typeDescriptions": {} + } + }, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5894:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 513, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5873:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5873:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 519, + "nodeType": "RevertStatement", + "src": "5866:39:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 523, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "5933:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 524, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "5939:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 525, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "5943:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 522, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "5925:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5925:24:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 527, + "nodeType": "ExpressionStatement", + "src": "5925:24:2" + } + ] + }, + "documentation": { + "id": 483, + "nodeType": "StructuredDocumentation", + "src": "5289:362:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5665:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 485, + "mutability": "mutable", + "name": "from", + "nameLocation": "5683:4:2", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "5675:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5675:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 487, + "mutability": "mutable", + "name": "to", + "nameLocation": "5697:2:2", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "5689:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5689:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 489, + "mutability": "mutable", + "name": "value", + "nameLocation": "5709:5:2", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "5701:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 488, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5701:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5674:41:2" + }, + "returnParameters": { + "id": 491, + "nodeType": "ParameterList", + "parameters": [], + "src": "5725:0:2" + }, + "scope": 799, + "src": "5656:300:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 605, + "nodeType": "Block", + "src": "6346:1032:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 539, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6360:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6376:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6368:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6368:7:2", + "typeDescriptions": {} + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6368:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6360:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 576, + "nodeType": "Block", + "src": "6534:362:2", + "statements": [ + { + "assignments": [ + 551 + ], + "declarations": [ + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6556:11:2", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "6548:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6548:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 555, + "initialValue": { + "baseExpression": { + "id": 552, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "6570:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 554, + "indexExpression": { + "id": 553, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6580:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6570:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6548:37:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 556, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6603:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 557, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6617:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6603:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 566, + "nodeType": "IfStatement", + "src": "6599:115:2", + "trueBody": { + "id": 565, + "nodeType": "Block", + "src": "6624:90:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 560, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6674:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 561, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6680:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 562, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6693:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 559, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6649:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6649:50:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 564, + "nodeType": "RevertStatement", + "src": "6642:57:2" + } + ] + } + }, + { + "id": 575, + "nodeType": "UncheckedBlock", + "src": "6727:159:2", + "statements": [ + { + "expression": { + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 567, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "6834:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 569, + "indexExpression": { + "id": 568, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6844:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6834:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 570, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6852:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 571, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6866:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6852:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6834:37:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 574, + "nodeType": "ExpressionStatement", + "src": "6834:37:2" + } + ] + } + ] + }, + "id": 577, + "nodeType": "IfStatement", + "src": "6356:540:2", + "trueBody": { + "id": 549, + "nodeType": "Block", + "src": "6380:148:2", + "statements": [ + { + "expression": { + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 545, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6496:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 546, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6512:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6496:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "6496:21:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 578, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "6910:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6924:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6916:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6916:7:2", + "typeDescriptions": {} + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6916:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6910:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 597, + "nodeType": "Block", + "src": "7125:206:2", + "statements": [ + { + "id": 596, + "nodeType": "UncheckedBlock", + "src": "7139:182:2", + "statements": [ + { + "expression": { + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 590, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "7284:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 592, + "indexExpression": { + "id": 591, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "7294:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7284:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 593, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7301:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7284:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 595, + "nodeType": "ExpressionStatement", + "src": "7284:22:2" + } + ] + } + ] + }, + "id": 598, + "nodeType": "IfStatement", + "src": "6906:425:2", + "trueBody": { + "id": 589, + "nodeType": "Block", + "src": "6928:191:2", + "statements": [ + { + "id": 588, + "nodeType": "UncheckedBlock", + "src": "6942:167:2", + "statements": [ + { + "expression": { + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 584, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "7073:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 585, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7089:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7073:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 587, + "nodeType": "ExpressionStatement", + "src": "7073:21:2" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 600, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "7355:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 601, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "7361:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 602, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7365:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 599, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7346:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7346:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 604, + "nodeType": "EmitStatement", + "src": "7341:30:2" + } + ] + }, + "documentation": { + "id": 530, + "nodeType": "StructuredDocumentation", + "src": "5962:304:2", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 606, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6280:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "from", + "nameLocation": "6296:4:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "6288:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 534, + "mutability": "mutable", + "name": "to", + "nameLocation": "6310:2:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "6302:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 533, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6302:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "value", + "nameLocation": "6322:5:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "6314:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6314:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6287:41:2" + }, + "returnParameters": { + "id": 538, + "nodeType": "ParameterList", + "parameters": [], + "src": "6346:0:2" + }, + "scope": 799, + "src": "6271:1107:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 638, + "nodeType": "Block", + "src": "7777:152:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 614, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "7791:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7810:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7802:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7802:7:2", + "typeDescriptions": {} + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7802:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7791:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 628, + "nodeType": "IfStatement", + "src": "7787:91:2", + "trueBody": { + "id": 627, + "nodeType": "Block", + "src": "7814:64:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7864:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7856:7:2", + "typeDescriptions": {} + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7856:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 620, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "7835:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7835:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 626, + "nodeType": "RevertStatement", + "src": "7828:39:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7903:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7895:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7895:7:2", + "typeDescriptions": {} + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7895:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 634, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "7907:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 635, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "7916:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "7887:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7887:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 637, + "nodeType": "ExpressionStatement", + "src": "7887:35:2" + } + ] + }, + "documentation": { + "id": 607, + "nodeType": "StructuredDocumentation", + "src": "7384:332:2", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 639, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7730:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "account", + "nameLocation": "7744:7:2", + "nodeType": "VariableDeclaration", + "scope": 639, + "src": "7736:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7736:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "value", + "nameLocation": "7761:5:2", + "nodeType": "VariableDeclaration", + "scope": 639, + "src": "7753:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7735:32:2" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:2" + }, + "scope": 799, + "src": "7721:208:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 671, + "nodeType": "Block", + "src": "8303:150:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 647, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "8317:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8336:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8328:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8328:7:2", + "typeDescriptions": {} + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8328:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8317:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 661, + "nodeType": "IfStatement", + "src": "8313:89:2", + "trueBody": { + "id": 660, + "nodeType": "Block", + "src": "8340:62:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8388:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8380:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8380:7:2", + "typeDescriptions": {} + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8380:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 653, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "8361:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8361:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 659, + "nodeType": "RevertStatement", + "src": "8354:37:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 663, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "8419:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8436:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8428:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8428:7:2", + "typeDescriptions": {} + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8428:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 668, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "8440:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 662, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "8411:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8411:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 670, + "nodeType": "ExpressionStatement", + "src": "8411:35:2" + } + ] + }, + "documentation": { + "id": 640, + "nodeType": "StructuredDocumentation", + "src": "7935:307:2", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 672, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "8256:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "account", + "nameLocation": "8270:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "8262:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8262:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "value", + "nameLocation": "8287:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "8279:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8279:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8261:32:2" + }, + "returnParameters": { + "id": 646, + "nodeType": "ParameterList", + "parameters": [], + "src": "8303:0:2" + }, + "scope": 799, + "src": "8247:206:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 689, + "nodeType": "Block", + "src": "9063:54:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 683, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "9082:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 684, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "9089:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 685, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "9098:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9105:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 682, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 750, + "src": "9073:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9073:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 688, + "nodeType": "ExpressionStatement", + "src": "9073:37:2" + } + ] + }, + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "8459:525:2", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8998:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9015:5:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "9007:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9007:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9030:7:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "9022:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9022:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "value", + "nameLocation": "9047:5:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "9039:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9039:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9006:47:2" + }, + "returnParameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [], + "src": "9063:0:2" + }, + "scope": 799, + "src": "8989:128:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 749, + "nodeType": "Block", + "src": "10047:334:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 702, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "10061:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10078:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10070:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10070:7:2", + "typeDescriptions": {} + } + }, + "id": 706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10070:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10061:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 716, + "nodeType": "IfStatement", + "src": "10057:89:2", + "trueBody": { + "id": 715, + "nodeType": "Block", + "src": "10082:64:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10132:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10124:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10124:7:2", + "typeDescriptions": {} + } + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10124:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 708, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "10103:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10103:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 714, + "nodeType": "RevertStatement", + "src": "10096:39:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 717, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "10159:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10178:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10170:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10170:7:2", + "typeDescriptions": {} + } + }, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10170:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10159:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 731, + "nodeType": "IfStatement", + "src": "10155:90:2", + "trueBody": { + "id": 730, + "nodeType": "Block", + "src": "10182:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10231:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10223:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10223:7:2", + "typeDescriptions": {} + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10223:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 723, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "10203:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10203:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 729, + "nodeType": "RevertStatement", + "src": "10196:38:2" + } + ] + } + }, + { + "expression": { + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 732, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "10254:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 735, + "indexExpression": { + "id": 733, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "10266:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10254:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 736, + "indexExpression": { + "id": 734, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "10273:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10254:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 737, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "10284:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10254:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 739, + "nodeType": "ExpressionStatement", + "src": "10254:35:2" + }, + { + "condition": { + "id": 740, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 699, + "src": "10303:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 748, + "nodeType": "IfStatement", + "src": "10299:76:2", + "trueBody": { + "id": 747, + "nodeType": "Block", + "src": "10314:61:2", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 742, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "10342:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 743, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "10349:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 744, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "10358:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 741, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "10333:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10333:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 746, + "nodeType": "EmitStatement", + "src": "10328:36:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "9123:821:2", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 750, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9958:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9975:5:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "9967:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9967:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9990:7:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "9982:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9982:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "value", + "nameLocation": "10007:5:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "9999:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9999:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "10019:9:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "10014:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 698, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10014:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9966:63:2" + }, + "returnParameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [], + "src": "10047:0:2" + }, + "scope": 799, + "src": "9949:432:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "10752:388:2", + "statements": [ + { + "assignments": [ + 761 + ], + "declarations": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10770:16:2", + "nodeType": "VariableDeclaration", + "scope": 797, + "src": "10762:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10762:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 766, + "initialValue": { + "arguments": [ + { + "id": 763, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "10799:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 764, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "10806:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 762, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 426, + "src": "10789:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10789:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10762:52:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "10828:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10853:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10853:7:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 768, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10848:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10848:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10862:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10848:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10828:37:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 796, + "nodeType": "IfStatement", + "src": "10824:310:2", + "trueBody": { + "id": 795, + "nodeType": "Block", + "src": "10867:267:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 774, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "10885:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 775, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "10904:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10885:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 784, + "nodeType": "IfStatement", + "src": "10881:130:2", + "trueBody": { + "id": 783, + "nodeType": "Block", + "src": "10911:100:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 778, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "10963:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 779, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "10972:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 780, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "10990:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 777, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 178, + "src": "10936:26:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10936:60:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 782, + "nodeType": "RevertStatement", + "src": "10929:67:2" + } + ] + } + }, + { + "id": 794, + "nodeType": "UncheckedBlock", + "src": "11024:100:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 786, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "11061:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 787, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "11068:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 788, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "11077:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 789, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "11096:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11077:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11103:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 785, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 750, + "src": "11052:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11052:57:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "11052:57:2" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 751, + "nodeType": "StructuredDocumentation", + "src": "10387:271:2", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 798, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10672:15:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10696:5:2", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "10688:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 752, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10688:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 755, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10711:7:2", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "10703:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10703:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 757, + "mutability": "mutable", + "name": "value", + "nameLocation": "10728:5:2", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "10720:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10720:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10687:47:2" + }, + "returnParameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "10752:0:2" + }, + "scope": 799, + "src": "10663:477:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 800, + "src": "1401:9741:2", + "usedErrors": [ + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "105:11038:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 877 + ] + }, + "id": 878, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 801, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 802, + "nodeType": "StructuredDocumentation", + "src": "132:70:3", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 877, + "linearizedBaseContracts": [ + 877 + ], + "name": "IERC20", + "nameLocation": "213:6:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 803, + "nodeType": "StructuredDocumentation", + "src": "226:158:3", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 811, + "name": "Transfer", + "nameLocation": "395:8:3", + "nodeType": "EventDefinition", + "parameters": { + "id": 810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 805, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "420:4:3", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "404:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "404:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 807, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "442:2:3", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "426:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "426:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 809, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "454:5:3", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "446:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "446:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "403:57:3" + }, + "src": "389:72:3" + }, + { + "anonymous": false, + "documentation": { + "id": 812, + "nodeType": "StructuredDocumentation", + "src": "467:148:3", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 820, + "name": "Approval", + "nameLocation": "626:8:3", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "651:5:3", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "635:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "635:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "674:7:3", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "658:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "658:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "691:5:3", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "683:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "683:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "634:63:3" + }, + "src": "620:78:3" + }, + { + "documentation": { + "id": 821, + "nodeType": "StructuredDocumentation", + "src": "704:65:3", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 826, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "783:11:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [], + "src": "794:2:3" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "820:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "820:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "819:9:3" + }, + "scope": 877, + "src": "774:55:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 827, + "nodeType": "StructuredDocumentation", + "src": "835:71:3", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 834, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "920:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "account", + "nameLocation": "938:7:3", + "nodeType": "VariableDeclaration", + "scope": 834, + "src": "930:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "930:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "929:17:3" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 832, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 834, + "src": "970:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "970:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "969:9:3" + }, + "scope": 877, + "src": "911:68:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 835, + "nodeType": "StructuredDocumentation", + "src": "985:213:3", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1212:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 837, + "mutability": "mutable", + "name": "to", + "nameLocation": "1229:2:3", + "nodeType": "VariableDeclaration", + "scope": 844, + "src": "1221:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1221:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "value", + "nameLocation": "1241:5:3", + "nodeType": "VariableDeclaration", + "scope": 844, + "src": "1233:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1233:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1220:27:3" + }, + "returnParameters": { + "id": 843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 842, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 844, + "src": "1266:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 841, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1266:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1265:6:3" + }, + "scope": 877, + "src": "1203:69:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 845, + "nodeType": "StructuredDocumentation", + "src": "1278:264:3", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 854, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1556:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 847, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1574:5:3", + "nodeType": "VariableDeclaration", + "scope": 854, + "src": "1566:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1589:7:3", + "nodeType": "VariableDeclaration", + "scope": 854, + "src": "1581:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1581:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1565:32:3" + }, + "returnParameters": { + "id": 853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 852, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 854, + "src": "1621:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1621:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1620:9:3" + }, + "scope": 877, + "src": "1547:83:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 855, + "nodeType": "StructuredDocumentation", + "src": "1636:667:3", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 864, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2317:7:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 857, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2333:7:3", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "2325:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2325:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "value", + "nameLocation": "2350:5:3", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "2342:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2342:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2324:32:3" + }, + "returnParameters": { + "id": 863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "2375:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 861, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2375:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2374:6:3" + }, + "scope": 877, + "src": "2308:73:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 865, + "nodeType": "StructuredDocumentation", + "src": "2387:297:3", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 876, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2698:12:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 867, + "mutability": "mutable", + "name": "from", + "nameLocation": "2719:4:3", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2711:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2711:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 869, + "mutability": "mutable", + "name": "to", + "nameLocation": "2733:2:3", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2725:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2725:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "mutability": "mutable", + "name": "value", + "nameLocation": "2745:5:3", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2737:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2737:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2710:41:3" + }, + "returnParameters": { + "id": 875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 874, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2770:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2770:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2769:6:3" + }, + "scope": 877, + "src": "2689:87:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 878, + "src": "203:2575:3", + "usedErrors": [], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "106:2673:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol", + "exportedSymbols": { + "ERC20": [ + 799 + ], + "ERC20Capped": [ + 976 + ] + }, + "id": 977, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 879, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "122:24:4" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "../ERC20.sol", + "id": 881, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 977, + "sourceUnit": 800, + "src": "148:35:4", + "symbolAliases": [ + { + "foreign": { + "id": 880, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "156:5:4", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 883, + "name": "ERC20", + "nameLocations": [ + "296:5:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "296:5:4" + }, + "id": 884, + "nodeType": "InheritanceSpecifier", + "src": "296:5:4" + } + ], + "canonicalName": "ERC20Capped", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 882, + "nodeType": "StructuredDocumentation", + "src": "185:77:4", + "text": " @dev Extension of {ERC20} that adds a cap to the supply of tokens." + }, + "fullyImplemented": true, + "id": 976, + "linearizedBaseContracts": [ + 976, + 799, + 189, + 1002, + 877, + 1032 + ], + "name": "ERC20Capped", + "nameLocation": "281:11:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 886, + "mutability": "immutable", + "name": "_cap", + "nameLocation": "334:4:4", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "308:30:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "308:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 887, + "nodeType": "StructuredDocumentation", + "src": "345:59:4", + "text": " @dev Total supply cap has been exceeded." + }, + "errorSelector": "9e79f854", + "id": 893, + "name": "ERC20ExceededCap", + "nameLocation": "415:16:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 889, + "mutability": "mutable", + "name": "increasedSupply", + "nameLocation": "440:15:4", + "nodeType": "VariableDeclaration", + "scope": 893, + "src": "432:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "432:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 891, + "mutability": "mutable", + "name": "cap", + "nameLocation": "465:3:4", + "nodeType": "VariableDeclaration", + "scope": 893, + "src": "457:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "457:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "431:38:4" + }, + "src": "409:61:4" + }, + { + "documentation": { + "id": 894, + "nodeType": "StructuredDocumentation", + "src": "476:60:4", + "text": " @dev The supplied cap is not a valid cap." + }, + "errorSelector": "392e1e27", + "id": 898, + "name": "ERC20InvalidCap", + "nameLocation": "547:15:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 896, + "mutability": "mutable", + "name": "cap", + "nameLocation": "571:3:4", + "nodeType": "VariableDeclaration", + "scope": 898, + "src": "563:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "563:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "562:13:4" + }, + "src": "541:35:4" + }, + { + "body": { + "id": 917, + "nodeType": "Block", + "src": "742:102:4", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 904, + "name": "cap_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "756:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "764:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "756:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 912, + "nodeType": "IfStatement", + "src": "752:65:4", + "trueBody": { + "id": 911, + "nodeType": "Block", + "src": "767:50:4", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "30", + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "804:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 907, + "name": "ERC20InvalidCap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "788:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "788:18:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 910, + "nodeType": "RevertStatement", + "src": "781:25:4" + } + ] + } + }, + { + "expression": { + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 913, + "name": "_cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 886, + "src": "826:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 914, + "name": "cap_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "833:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "826:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 916, + "nodeType": "ExpressionStatement", + "src": "826:11:4" + } + ] + }, + "documentation": { + "id": 899, + "nodeType": "StructuredDocumentation", + "src": "582:129:4", + "text": " @dev Sets the value of the `cap`. This value is immutable, it can only be\n set once during construction." + }, + "id": 918, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 901, + "mutability": "mutable", + "name": "cap_", + "nameLocation": "736:4:4", + "nodeType": "VariableDeclaration", + "scope": 918, + "src": "728:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "727:14:4" + }, + "returnParameters": { + "id": 903, + "nodeType": "ParameterList", + "parameters": [], + "src": "742:0:4" + }, + "scope": 976, + "src": "716:128:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 926, + "nodeType": "Block", + "src": "976:28:4", + "statements": [ + { + "expression": { + "id": 924, + "name": "_cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 886, + "src": "993:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 923, + "id": 925, + "nodeType": "Return", + "src": "986:11:4" + } + ] + }, + "documentation": { + "id": 919, + "nodeType": "StructuredDocumentation", + "src": "850:68:4", + "text": " @dev Returns the cap on the token's total supply." + }, + "functionSelector": "355274ea", + "id": 927, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cap", + "nameLocation": "932:3:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [], + "src": "935:2:4" + }, + "returnParameters": { + "id": 923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 922, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 927, + "src": "967:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "967:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "966:9:4" + }, + "scope": 976, + "src": "923:81:4", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 606 + ], + "body": { + "id": 974, + "nodeType": "Block", + "src": "1143:287:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 941, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 930, + "src": "1167:4:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 942, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "1173:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 943, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "1177:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 938, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1153:5:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC20Capped_$976_$", + "typeString": "type(contract super ERC20Capped)" + } + }, + "id": 940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1159:7:4", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 606, + "src": "1153:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1153:30:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "1153:30:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 946, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 930, + "src": "1198:4:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1214:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1206:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 947, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1206:7:4", + "typeDescriptions": {} + } + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1206:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1198:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 973, + "nodeType": "IfStatement", + "src": "1194:230:4", + "trueBody": { + "id": 972, + "nodeType": "Block", + "src": "1218:206:4", + "statements": [ + { + "assignments": [ + 953 + ], + "declarations": [ + { + "constant": false, + "id": 953, + "mutability": "mutable", + "name": "maxSupply", + "nameLocation": "1240:9:4", + "nodeType": "VariableDeclaration", + "scope": 972, + "src": "1232:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1232:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 956, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 954, + "name": "cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "1252:3:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1252:5:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1232:25:4" + }, + { + "assignments": [ + 958 + ], + "declarations": [ + { + "constant": false, + "id": 958, + "mutability": "mutable", + "name": "supply", + "nameLocation": "1279:6:4", + "nodeType": "VariableDeclaration", + "scope": 972, + "src": "1271:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1271:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 961, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 959, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 372, + "src": "1288:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1288:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1271:30:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 962, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 958, + "src": "1319:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 963, + "name": "maxSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "1328:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1319:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 971, + "nodeType": "IfStatement", + "src": "1315:99:4", + "trueBody": { + "id": 970, + "nodeType": "Block", + "src": "1339:75:4", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 966, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 958, + "src": "1381:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 967, + "name": "maxSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "1389:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 965, + "name": "ERC20ExceededCap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "1364:16:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1364:35:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 969, + "nodeType": "RevertStatement", + "src": "1357:42:4" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 928, + "nodeType": "StructuredDocumentation", + "src": "1010:44:4", + "text": " @dev See {ERC20-_update}." + }, + "id": 975, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "1068:7:4", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 936, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1134:8:4" + }, + "parameters": { + "id": 935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 930, + "mutability": "mutable", + "name": "from", + "nameLocation": "1084:4:4", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "1076:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1076:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 932, + "mutability": "mutable", + "name": "to", + "nameLocation": "1098:2:4", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "1090:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 931, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1090:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 934, + "mutability": "mutable", + "name": "value", + "nameLocation": "1110:5:4", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "1102:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1102:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1075:41:4" + }, + "returnParameters": { + "id": 937, + "nodeType": "ParameterList", + "parameters": [], + "src": "1143:0:4" + }, + "scope": 976, + "src": "1059:371:4", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 977, + "src": "263:1169:4", + "usedErrors": [ + 159, + 164, + 169, + 178, + 183, + 188, + 893, + 898 + ], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "122:1311:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 877 + ], + "IERC20Metadata": [ + 1002 + ] + }, + "id": 1003, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 978, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 980, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1003, + "sourceUnit": 878, + "src": "151:37:5", + "symbolAliases": [ + { + "foreign": { + "id": 979, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "159:6:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 982, + "name": "IERC20", + "nameLocations": [ + "305:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "305:6:5" + }, + "id": 983, + "nodeType": "InheritanceSpecifier", + "src": "305:6:5" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 981, + "nodeType": "StructuredDocumentation", + "src": "190:86:5", + "text": " @dev Interface for the optional metadata functions from the ERC20 standard." + }, + "fullyImplemented": false, + "id": 1002, + "linearizedBaseContracts": [ + 1002, + 877 + ], + "name": "IERC20Metadata", + "nameLocation": "287:14:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 984, + "nodeType": "StructuredDocumentation", + "src": "318:54:5", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 989, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "386:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 985, + "nodeType": "ParameterList", + "parameters": [], + "src": "390:2:5" + }, + "returnParameters": { + "id": 988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 989, + "src": "416:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 986, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "416:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "415:15:5" + }, + "scope": 1002, + "src": "377:54:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 990, + "nodeType": "StructuredDocumentation", + "src": "437:56:5", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 995, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "507:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 991, + "nodeType": "ParameterList", + "parameters": [], + "src": "513:2:5" + }, + "returnParameters": { + "id": 994, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 993, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 995, + "src": "539:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 992, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "539:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "538:15:5" + }, + "scope": 1002, + "src": "498:56:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 996, + "nodeType": "StructuredDocumentation", + "src": "560:65:5", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 1001, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "639:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 997, + "nodeType": "ParameterList", + "parameters": [], + "src": "647:2:5" + }, + "returnParameters": { + "id": 1000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 999, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "673:5:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 998, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "673:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "672:7:5" + }, + "scope": 1002, + "src": "630:50:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1003, + "src": "277:405:5", + "usedErrors": [], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "125:558:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 1032 + ] + }, + "id": 1033, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1004, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:6" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1005, + "nodeType": "StructuredDocumentation", + "src": "127:496:6", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1032, + "linearizedBaseContracts": [ + 1032 + ], + "name": "Context", + "nameLocation": "642:7:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1013, + "nodeType": "Block", + "src": "718:34:6", + "statements": [ + { + "expression": { + "expression": { + "id": 1010, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1009, + "id": 1012, + "nodeType": "Return", + "src": "728:17:6" + } + ] + }, + "id": 1014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1006, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:6" + }, + "returnParameters": { + "id": 1009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1008, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "709:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:6" + }, + "scope": 1032, + "src": "656:96:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1022, + "nodeType": "Block", + "src": "825:32:6", + "statements": [ + { + "expression": { + "expression": { + "id": 1019, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:6", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1018, + "id": 1021, + "nodeType": "Return", + "src": "835:15:6" + } + ] + }, + "id": 1023, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1015, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:6" + }, + "returnParameters": { + "id": 1018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1017, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1023, + "src": "809:14:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1016, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:6" + }, + "scope": 1032, + "src": "758:99:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1030, + "nodeType": "Block", + "src": "935:25:6", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1027, + "id": 1029, + "nodeType": "Return", + "src": "945:8:6" + } + ] + }, + "id": 1031, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:6" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1031, + "src": "926:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:6" + }, + "scope": 1032, + "src": "863:97:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1033, + "src": "624:338:6", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:6" + }, + "id": 6 + }, + "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol": { + "ast": { + "absolutePath": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol", + "exportedSymbols": { + "IUniswapV2Factory": [ + 1095 + ] + }, + "id": 1096, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1034, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:24:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Factory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1095, + "linearizedBaseContracts": [ + 1095 + ], + "name": "IUniswapV2Factory", + "nameLocation": "36:17:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9", + "id": 1044, + "name": "PairCreated", + "nameLocation": "66:11:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1043, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1036, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nameLocation": "94:6:7", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "78:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "78:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1038, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nameLocation": "118:6:7", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "102:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "102:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nameLocation": "134:4:7", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "126:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "126:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1042, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "140:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1041, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "140:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "77:68:7" + }, + "src": "60:86:7" + }, + { + "functionSelector": "017e7e58", + "id": 1049, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nameLocation": "161:5:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1045, + "nodeType": "ParameterList", + "parameters": [], + "src": "166:2:7" + }, + "returnParameters": { + "id": 1048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1047, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1049, + "src": "192:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "192:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "191:9:7" + }, + "scope": 1095, + "src": "152:49:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "094b7415", + "id": 1054, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nameLocation": "215:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1050, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:2:7" + }, + "returnParameters": { + "id": 1053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1052, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1054, + "src": "252:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "252:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "251:9:7" + }, + "scope": 1095, + "src": "206:55:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e6a43905", + "id": 1063, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nameLocation": "276:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1056, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "292:6:7", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "284:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "284:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1058, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "308:6:7", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "300:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1057, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "300:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "283:32:7" + }, + "returnParameters": { + "id": 1062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1061, + "mutability": "mutable", + "name": "pair", + "nameLocation": "347:4:7", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "339:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1060, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "339:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "338:14:7" + }, + "scope": 1095, + "src": "267:86:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1e3dd18b", + "id": 1070, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nameLocation": "367:8:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1070, + "src": "376:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "376:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "375:6:7" + }, + "returnParameters": { + "id": 1069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1068, + "mutability": "mutable", + "name": "pair", + "nameLocation": "413:4:7", + "nodeType": "VariableDeclaration", + "scope": 1070, + "src": "405:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "404:14:7" + }, + "scope": 1095, + "src": "358:61:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "574f2ba3", + "id": 1075, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nameLocation": "433:14:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1071, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:7" + }, + "returnParameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1073, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1075, + "src": "473:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1072, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "473:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:6:7" + }, + "scope": 1095, + "src": "424:55:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c9c65396", + "id": 1084, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nameLocation": "494:10:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1080, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1077, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "513:6:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "505:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1079, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "529:6:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "521:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1078, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "504:32:7" + }, + "returnParameters": { + "id": 1083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1082, + "mutability": "mutable", + "name": "pair", + "nameLocation": "563:4:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "555:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "555:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "554:14:7" + }, + "scope": 1095, + "src": "485:84:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f46901ed", + "id": 1089, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nameLocation": "584:8:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1086, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1089, + "src": "593:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "593:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "592:9:7" + }, + "returnParameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [], + "src": "610:0:7" + }, + "scope": 1095, + "src": "575:36:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a2e74af6", + "id": 1094, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nameLocation": "625:14:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1092, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1094, + "src": "640:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1090, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "640:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "639:9:7" + }, + "returnParameters": { + "id": 1093, + "nodeType": "ParameterList", + "parameters": [], + "src": "657:0:7" + }, + "scope": 1095, + "src": "616:42:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1096, + "src": "26:634:7", + "usedErrors": [], + "usedEvents": [ + 1044 + ] + } + ], + "src": "0:661:7" + }, + "id": 7 + }, + "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol": { + "ast": { + "absolutePath": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol", + "exportedSymbols": { + "IUniswapV2Pair": [ + 1337 + ] + }, + "id": 1338, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1097, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:24:8" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Pair", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1337, + "linearizedBaseContracts": [ + 1337 + ], + "name": "IUniswapV2Pair", + "nameLocation": "36:14:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 1105, + "name": "Approval", + "nameLocation": "63:8:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1099, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "88:5:8", + "nodeType": "VariableDeclaration", + "scope": 1105, + "src": "72:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1098, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "72:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1101, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "111:7:8", + "nodeType": "VariableDeclaration", + "scope": 1105, + "src": "95:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "95:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1103, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "125:5:8", + "nodeType": "VariableDeclaration", + "scope": 1105, + "src": "120:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1102, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "120:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "71:60:8" + }, + "src": "57:75:8" + }, + { + "anonymous": false, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 1113, + "name": "Transfer", + "nameLocation": "143:8:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1107, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "168:4:8", + "nodeType": "VariableDeclaration", + "scope": 1113, + "src": "152:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "152:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1109, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "190:2:8", + "nodeType": "VariableDeclaration", + "scope": 1113, + "src": "174:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "174:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1111, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "199:5:8", + "nodeType": "VariableDeclaration", + "scope": 1113, + "src": "194:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1110, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "194:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "151:54:8" + }, + "src": "137:69:8" + }, + { + "functionSelector": "06fdde03", + "id": 1118, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "221:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1114, + "nodeType": "ParameterList", + "parameters": [], + "src": "225:2:8" + }, + "returnParameters": { + "id": 1117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1116, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "251:13:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1115, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "251:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "250:15:8" + }, + "scope": 1337, + "src": "212:54:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "95d89b41", + "id": 1123, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "280:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [], + "src": "286:2:8" + }, + "returnParameters": { + "id": 1122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "312:13:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1120, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "312:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "311:15:8" + }, + "scope": 1337, + "src": "271:56:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "313ce567", + "id": 1128, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "341:8:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1124, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:8" + }, + "returnParameters": { + "id": 1127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1126, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "375:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1125, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "375:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "374:7:8" + }, + "scope": 1337, + "src": "332:50:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "18160ddd", + "id": 1133, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "396:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1129, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:2:8" + }, + "returnParameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1133, + "src": "433:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1130, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "433:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "432:6:8" + }, + "scope": 1337, + "src": "387:52:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 1140, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "453:9:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1135, + "mutability": "mutable", + "name": "owner", + "nameLocation": "471:5:8", + "nodeType": "VariableDeclaration", + "scope": 1140, + "src": "463:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "463:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "462:15:8" + }, + "returnParameters": { + "id": 1139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1140, + "src": "501:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "501:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "500:6:8" + }, + "scope": 1337, + "src": "444:63:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 1149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "521:9:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1142, + "mutability": "mutable", + "name": "owner", + "nameLocation": "539:5:8", + "nodeType": "VariableDeclaration", + "scope": 1149, + "src": "531:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1144, + "mutability": "mutable", + "name": "spender", + "nameLocation": "554:7:8", + "nodeType": "VariableDeclaration", + "scope": 1149, + "src": "546:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "546:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "530:32:8" + }, + "returnParameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1149, + "src": "586:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "586:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "585:6:8" + }, + "scope": 1337, + "src": "512:80:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 1158, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "607:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "spender", + "nameLocation": "623:7:8", + "nodeType": "VariableDeclaration", + "scope": 1158, + "src": "615:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "615:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "value", + "nameLocation": "637:5:8", + "nodeType": "VariableDeclaration", + "scope": 1158, + "src": "632:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "632:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "614:29:8" + }, + "returnParameters": { + "id": 1157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1156, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1158, + "src": "662:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1155, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "662:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "661:6:8" + }, + "scope": 1337, + "src": "598:70:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 1167, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "682:8:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1160, + "mutability": "mutable", + "name": "to", + "nameLocation": "699:2:8", + "nodeType": "VariableDeclaration", + "scope": 1167, + "src": "691:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "691:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1162, + "mutability": "mutable", + "name": "value", + "nameLocation": "708:5:8", + "nodeType": "VariableDeclaration", + "scope": 1167, + "src": "703:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1161, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "703:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "690:24:8" + }, + "returnParameters": { + "id": 1166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1165, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1167, + "src": "733:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1164, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "733:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "732:6:8" + }, + "scope": 1337, + "src": "673:66:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 1178, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "753:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1174, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1169, + "mutability": "mutable", + "name": "from", + "nameLocation": "774:4:8", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "766:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "766:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1171, + "mutability": "mutable", + "name": "to", + "nameLocation": "788:2:8", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "780:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1173, + "mutability": "mutable", + "name": "value", + "nameLocation": "797:5:8", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "792:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "792:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "765:38:8" + }, + "returnParameters": { + "id": 1177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1176, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "822:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1175, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "822:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "821:6:8" + }, + "scope": 1337, + "src": "744:84:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "3644e515", + "id": 1183, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nameLocation": "843:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:8" + }, + "returnParameters": { + "id": 1182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1183, + "src": "885:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1180, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "885:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "884:9:8" + }, + "scope": 1337, + "src": "834:60:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "30adf81f", + "id": 1188, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nameLocation": "908:15:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1184, + "nodeType": "ParameterList", + "parameters": [], + "src": "923:2:8" + }, + "returnParameters": { + "id": 1187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1186, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "949:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1185, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "949:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "948:9:8" + }, + "scope": 1337, + "src": "899:59:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "7ecebe00", + "id": 1195, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nameLocation": "972:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1190, + "mutability": "mutable", + "name": "owner", + "nameLocation": "987:5:8", + "nodeType": "VariableDeclaration", + "scope": 1195, + "src": "979:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1189, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "979:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "978:15:8" + }, + "returnParameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1195, + "src": "1017:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1192, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1017:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1016:6:8" + }, + "scope": 1337, + "src": "963:60:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d505accf", + "id": 1212, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nameLocation": "1038:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1053:5:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1045:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1045:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1068:7:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1060:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1060:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "mutability": "mutable", + "name": "value", + "nameLocation": "1082:5:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1077:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1200, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1077:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1203, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1094:8:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1089:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1202, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1089:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1205, + "mutability": "mutable", + "name": "v", + "nameLocation": "1110:1:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1104:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1204, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1104:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1207, + "mutability": "mutable", + "name": "r", + "nameLocation": "1121:1:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1113:9:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1206, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1113:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1209, + "mutability": "mutable", + "name": "s", + "nameLocation": "1132:1:8", + "nodeType": "VariableDeclaration", + "scope": 1212, + "src": "1124:9:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1208, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1124:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1044:90:8" + }, + "returnParameters": { + "id": 1211, + "nodeType": "ParameterList", + "parameters": [], + "src": "1143:0:8" + }, + "scope": 1337, + "src": "1029:115:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "eventSelector": "4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f", + "id": 1220, + "name": "Mint", + "nameLocation": "1156:4:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1214, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1177:6:8", + "nodeType": "VariableDeclaration", + "scope": 1220, + "src": "1161:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1161:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1216, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nameLocation": "1190:7:8", + "nodeType": "VariableDeclaration", + "scope": 1220, + "src": "1185:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1215, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1185:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1218, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nameLocation": "1204:7:8", + "nodeType": "VariableDeclaration", + "scope": 1220, + "src": "1199:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1217, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1199:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1160:52:8" + }, + "src": "1150:63:8" + }, + { + "anonymous": false, + "eventSelector": "dccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496", + "id": 1230, + "name": "Burn", + "nameLocation": "1224:4:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1222, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1245:6:8", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "1229:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1229:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1224, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nameLocation": "1258:7:8", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "1253:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1223, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1253:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1226, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nameLocation": "1272:7:8", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "1267:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1267:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1228, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "1297:2:8", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "1281:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1281:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1228:72:8" + }, + "src": "1218:83:8" + }, + { + "anonymous": false, + "eventSelector": "d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "id": 1244, + "name": "Swap", + "nameLocation": "1312:4:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1232, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1342:6:8", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1326:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1326:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1234, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nameLocation": "1363:9:8", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1358:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1358:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1236, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nameLocation": "1387:9:8", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1382:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1235, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1382:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1238, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "1411:10:8", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1406:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1406:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1240, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "1436:10:8", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1431:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1431:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1242, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "1472:2:8", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1456:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1456:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1316:164:8" + }, + "src": "1306:175:8" + }, + { + "anonymous": false, + "eventSelector": "1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1", + "id": 1250, + "name": "Sync", + "nameLocation": "1492:4:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 1249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1246, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nameLocation": "1505:8:8", + "nodeType": "VariableDeclaration", + "scope": 1250, + "src": "1497:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 1245, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1497:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1248, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nameLocation": "1523:8:8", + "nodeType": "VariableDeclaration", + "scope": 1250, + "src": "1515:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 1247, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1515:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + } + ], + "src": "1496:36:8" + }, + "src": "1486:47:8" + }, + { + "functionSelector": "ba9a7a56", + "id": 1255, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "1548:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1251, + "nodeType": "ParameterList", + "parameters": [], + "src": "1565:2:8" + }, + "returnParameters": { + "id": 1254, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1253, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1255, + "src": "1591:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1252, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1591:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1590:6:8" + }, + "scope": 1337, + "src": "1539:58:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c45a0155", + "id": 1260, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nameLocation": "1611:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1256, + "nodeType": "ParameterList", + "parameters": [], + "src": "1618:2:8" + }, + "returnParameters": { + "id": 1259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1258, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "1644:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1644:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1643:9:8" + }, + "scope": 1337, + "src": "1602:51:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "0dfe1681", + "id": 1265, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nameLocation": "1667:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1261, + "nodeType": "ParameterList", + "parameters": [], + "src": "1673:2:8" + }, + "returnParameters": { + "id": 1264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1265, + "src": "1699:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1698:9:8" + }, + "scope": 1337, + "src": "1658:50:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d21220a7", + "id": 1270, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nameLocation": "1722:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1266, + "nodeType": "ParameterList", + "parameters": [], + "src": "1728:2:8" + }, + "returnParameters": { + "id": 1269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1268, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1270, + "src": "1754:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1754:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1753:9:8" + }, + "scope": 1337, + "src": "1713:50:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "0902f1ac", + "id": 1279, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nameLocation": "1777:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [], + "src": "1788:2:8" + }, + "returnParameters": { + "id": 1278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1273, + "mutability": "mutable", + "name": "reserve0", + "nameLocation": "1822:8:8", + "nodeType": "VariableDeclaration", + "scope": 1279, + "src": "1814:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 1272, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1814:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1275, + "mutability": "mutable", + "name": "reserve1", + "nameLocation": "1840:8:8", + "nodeType": "VariableDeclaration", + "scope": 1279, + "src": "1832:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 1274, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1832:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1277, + "mutability": "mutable", + "name": "blockTimestampLast", + "nameLocation": "1857:18:8", + "nodeType": "VariableDeclaration", + "scope": 1279, + "src": "1850:25:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1276, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1850:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1813:63:8" + }, + "scope": 1337, + "src": "1768:109:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5909c0d5", + "id": 1284, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nameLocation": "1891:20:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1280, + "nodeType": "ParameterList", + "parameters": [], + "src": "1911:2:8" + }, + "returnParameters": { + "id": 1283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1282, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "1937:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1281, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1937:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1936:6:8" + }, + "scope": 1337, + "src": "1882:61:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5a3d5493", + "id": 1289, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nameLocation": "1957:20:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1285, + "nodeType": "ParameterList", + "parameters": [], + "src": "1977:2:8" + }, + "returnParameters": { + "id": 1288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1289, + "src": "2003:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2003:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2002:6:8" + }, + "scope": 1337, + "src": "1948:61:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "7464fc3d", + "id": 1294, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nameLocation": "2023:5:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1290, + "nodeType": "ParameterList", + "parameters": [], + "src": "2028:2:8" + }, + "returnParameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "2054:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2054:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2053:6:8" + }, + "scope": 1337, + "src": "2014:46:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 1301, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "2075:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1296, + "mutability": "mutable", + "name": "to", + "nameLocation": "2088:2:8", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "2080:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2080:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2079:12:8" + }, + "returnParameters": { + "id": 1300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1299, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2115:9:8", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "2110:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1298, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2110:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2109:16:8" + }, + "scope": 1337, + "src": "2066:60:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "89afcb44", + "id": 1310, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "2140:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "to", + "nameLocation": "2153:2:8", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "2145:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2144:12:8" + }, + "returnParameters": { + "id": 1309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1306, + "mutability": "mutable", + "name": "amount0", + "nameLocation": "2180:7:8", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "2175:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1305, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2175:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1308, + "mutability": "mutable", + "name": "amount1", + "nameLocation": "2194:7:8", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "2189:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1307, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2189:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2174:28:8" + }, + "scope": 1337, + "src": "2131:72:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "022c0d9f", + "id": 1321, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "2217:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1312, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "2227:10:8", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "2222:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1311, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2222:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1314, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "2244:10:8", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "2239:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2239:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "to", + "nameLocation": "2264:2:8", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "2256:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2256:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "data", + "nameLocation": "2283:4:8", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "2268:19:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1317, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2268:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2221:67:8" + }, + "returnParameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [], + "src": "2297:0:8" + }, + "scope": 1337, + "src": "2208:90:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "bc25cf77", + "id": 1326, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nameLocation": "2312:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1323, + "mutability": "mutable", + "name": "to", + "nameLocation": "2325:2:8", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "2317:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2317:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2316:12:8" + }, + "returnParameters": { + "id": 1325, + "nodeType": "ParameterList", + "parameters": [], + "src": "2337:0:8" + }, + "scope": 1337, + "src": "2303:35:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "fff6cae9", + "id": 1329, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "2352:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1327, + "nodeType": "ParameterList", + "parameters": [], + "src": "2356:2:8" + }, + "returnParameters": { + "id": 1328, + "nodeType": "ParameterList", + "parameters": [], + "src": "2367:0:8" + }, + "scope": 1337, + "src": "2343:25:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "485cc955", + "id": 1336, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2383:10:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1331, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1336, + "src": "2394:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2394:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1333, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1336, + "src": "2403:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2403:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2393:18:8" + }, + "returnParameters": { + "id": 1335, + "nodeType": "ParameterList", + "parameters": [], + "src": "2420:0:8" + }, + "scope": 1337, + "src": "2374:47:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1338, + "src": "26:2397:8", + "usedErrors": [], + "usedEvents": [ + 1105, + 1113, + 1220, + 1230, + 1244, + 1250 + ] + } + ], + "src": "0:2424:8" + }, + "id": 8 + }, + "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol": { + "ast": { + "absolutePath": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol", + "exportedSymbols": { + "IUniswapV2Router01": [ + 1645 + ] + }, + "id": 1646, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1339, + "literals": [ + "solidity", + ">=", + "0.6", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:24:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Router01", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1645, + "linearizedBaseContracts": [ + 1645 + ], + "name": "IUniswapV2Router01", + "nameLocation": "36:18:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "c45a0155", + "id": 1344, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nameLocation": "70:7:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1340, + "nodeType": "ParameterList", + "parameters": [], + "src": "77:2:9" + }, + "returnParameters": { + "id": 1343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1342, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1344, + "src": "103:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "103:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "102:9:9" + }, + "scope": 1645, + "src": "61:51:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "ad5c4648", + "id": 1349, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "WETH", + "nameLocation": "126:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1345, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:9" + }, + "returnParameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1347, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1349, + "src": "156:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "156:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "155:9:9" + }, + "scope": 1645, + "src": "117:48:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e8e33700", + "id": 1374, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "180:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1351, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "210:6:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "202:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "202:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1353, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "234:6:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "226:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "amountADesired", + "nameLocation": "255:14:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "250:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1354, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "250:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "amountBDesired", + "nameLocation": "284:14:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "279:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1356, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "279:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1359, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "313:10:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "308:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1358, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "308:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1361, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "338:10:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "333:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "333:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1363, + "mutability": "mutable", + "name": "to", + "nameLocation": "366:2:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "358:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "358:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "383:8:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "378:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1364, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "378:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "192:205:9" + }, + "returnParameters": { + "id": 1373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1368, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "421:7:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "416:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "416:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1370, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "435:7:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "430:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1369, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "430:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1372, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "449:9:9", + "nodeType": "VariableDeclaration", + "scope": 1374, + "src": "444:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1371, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "444:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "415:44:9" + }, + "scope": 1645, + "src": "171:289:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f305d719", + "id": 1395, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addLiquidityETH", + "nameLocation": "474:15:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1376, + "mutability": "mutable", + "name": "token", + "nameLocation": "507:5:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "499:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "499:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "amountTokenDesired", + "nameLocation": "527:18:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "522:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1377, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "522:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1380, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "560:14:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "555:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1379, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "555:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1382, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "589:12:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "584:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1381, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "584:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "to", + "nameLocation": "619:2:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "611:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "611:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "636:8:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "631:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "631:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "489:161:9" + }, + "returnParameters": { + "id": 1394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1389, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "682:11:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "677:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1388, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "677:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1391, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "700:9:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "695:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1390, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "695:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1393, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "716:9:9", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "711:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "676:50:9" + }, + "scope": 1645, + "src": "465:262:9", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "baa2abde", + "id": 1416, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidity", + "nameLocation": "741:15:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1397, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "774:6:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "766:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "766:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1399, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "798:6:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "790:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "790:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "819:9:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "814:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1400, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "814:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "843:10:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "838:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1402, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "838:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "868:10:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "863:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "863:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1407, + "mutability": "mutable", + "name": "to", + "nameLocation": "896:2:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "888:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "888:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1409, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "913:8:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "908:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1408, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "908:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "756:171:9" + }, + "returnParameters": { + "id": 1415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "951:7:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "946:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "946:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1414, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "965:7:9", + "nodeType": "VariableDeclaration", + "scope": 1416, + "src": "960:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1413, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "960:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "945:28:9" + }, + "scope": 1645, + "src": "732:242:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "02751cec", + "id": 1435, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETH", + "nameLocation": "988:18:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "token", + "nameLocation": "1024:5:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1016:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1016:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1044:9:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1039:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1419, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1039:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1422, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "1068:14:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1063:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1063:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1424, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "1097:12:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1092:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1423, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1092:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1426, + "mutability": "mutable", + "name": "to", + "nameLocation": "1127:2:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1119:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1119:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1428, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1144:8:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1139:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1139:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1006:152:9" + }, + "returnParameters": { + "id": 1434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1431, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "1182:11:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1177:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1177:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1433, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "1200:9:9", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "1195:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1432, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1195:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1176:34:9" + }, + "scope": 1645, + "src": "979:232:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2195995c", + "id": 1464, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityWithPermit", + "nameLocation": "1225:25:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1437, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "1268:6:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1260:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1260:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "1292:6:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1284:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1284:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1441, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1313:9:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1308:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1308:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "1337:10:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1332:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1332:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "1362:10:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1357:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1444, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1357:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1447, + "mutability": "mutable", + "name": "to", + "nameLocation": "1390:2:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1382:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1382:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1449, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1407:8:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1402:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1448, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1402:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1451, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "1430:10:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1425:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1450, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1425:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1453, + "mutability": "mutable", + "name": "v", + "nameLocation": "1448:1:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1442:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1452, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1442:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1455, + "mutability": "mutable", + "name": "r", + "nameLocation": "1459:1:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1451:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1454, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1451:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1457, + "mutability": "mutable", + "name": "s", + "nameLocation": "1470:1:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1462:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1456, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1462:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1250:227:9" + }, + "returnParameters": { + "id": 1463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1460, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "1501:7:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1496:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1459, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1496:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "1515:7:9", + "nodeType": "VariableDeclaration", + "scope": 1464, + "src": "1510:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1510:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1495:28:9" + }, + "scope": 1645, + "src": "1216:308:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "ded9382a", + "id": 1491, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHWithPermit", + "nameLocation": "1538:28:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1466, + "mutability": "mutable", + "name": "token", + "nameLocation": "1584:5:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1576:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1576:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1468, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1604:9:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1599:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1467, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1599:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1470, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "1628:14:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1623:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1623:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1472, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "1657:12:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1652:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1471, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1652:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1474, + "mutability": "mutable", + "name": "to", + "nameLocation": "1687:2:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1679:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1679:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1476, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1704:8:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1699:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1475, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1699:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1478, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "1727:10:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1722:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1477, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1722:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1480, + "mutability": "mutable", + "name": "v", + "nameLocation": "1745:1:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1739:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1479, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1739:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1482, + "mutability": "mutable", + "name": "r", + "nameLocation": "1756:1:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1748:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1481, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1748:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "s", + "nameLocation": "1767:1:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1759:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1483, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1759:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1566:208:9" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1487, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "1798:11:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1793:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1486, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1793:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "1816:9:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1811:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1488, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1811:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1792:34:9" + }, + "scope": 1645, + "src": "1529:298:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "38ed1739", + "id": 1508, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "1841:24:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1493, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "1880:8:9", + "nodeType": "VariableDeclaration", + "scope": 1508, + "src": "1875:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1492, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1875:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1495, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "1903:12:9", + "nodeType": "VariableDeclaration", + "scope": 1508, + "src": "1898:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1494, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1898:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1498, + "mutability": "mutable", + "name": "path", + "nameLocation": "1944:4:9", + "nodeType": "VariableDeclaration", + "scope": 1508, + "src": "1925:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1496, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1925:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1497, + "nodeType": "ArrayTypeName", + "src": "1925:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1500, + "mutability": "mutable", + "name": "to", + "nameLocation": "1966:2:9", + "nodeType": "VariableDeclaration", + "scope": 1508, + "src": "1958:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1958:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1983:8:9", + "nodeType": "VariableDeclaration", + "scope": 1508, + "src": "1978:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1978:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1865:132:9" + }, + "returnParameters": { + "id": 1507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1506, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2030:7:9", + "nodeType": "VariableDeclaration", + "scope": 1508, + "src": "2016:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1504, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2016:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1505, + "nodeType": "ArrayTypeName", + "src": "2016:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2015:23:9" + }, + "scope": 1645, + "src": "1832:207:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "8803dbee", + "id": 1525, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapTokensForExactTokens", + "nameLocation": "2053:24:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1510, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2092:9:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "2087:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2087:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "amountInMax", + "nameLocation": "2116:11:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "2111:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2111:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1515, + "mutability": "mutable", + "name": "path", + "nameLocation": "2156:4:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "2137:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1513, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2137:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1514, + "nodeType": "ArrayTypeName", + "src": "2137:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1517, + "mutability": "mutable", + "name": "to", + "nameLocation": "2178:2:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "2170:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2170:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1519, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2195:8:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "2190:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1518, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2190:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2077:132:9" + }, + "returnParameters": { + "id": 1524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1523, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2242:7:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "2228:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2228:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1522, + "nodeType": "ArrayTypeName", + "src": "2228:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2227:23:9" + }, + "scope": 1645, + "src": "2044:207:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "7ff36ab5", + "id": 1540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactETHForTokens", + "nameLocation": "2265:21:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1527, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2292:12:9", + "nodeType": "VariableDeclaration", + "scope": 1540, + "src": "2287:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2287:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1530, + "mutability": "mutable", + "name": "path", + "nameLocation": "2325:4:9", + "nodeType": "VariableDeclaration", + "scope": 1540, + "src": "2306:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2306:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1529, + "nodeType": "ArrayTypeName", + "src": "2306:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1532, + "mutability": "mutable", + "name": "to", + "nameLocation": "2339:2:9", + "nodeType": "VariableDeclaration", + "scope": 1540, + "src": "2331:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2331:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1534, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2348:8:9", + "nodeType": "VariableDeclaration", + "scope": 1540, + "src": "2343:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2343:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2286:71:9" + }, + "returnParameters": { + "id": 1539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1538, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2422:7:9", + "nodeType": "VariableDeclaration", + "scope": 1540, + "src": "2408:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1536, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2408:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1537, + "nodeType": "ArrayTypeName", + "src": "2408:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2407:23:9" + }, + "scope": 1645, + "src": "2256:175:9", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "4a25d94a", + "id": 1557, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapTokensForExactETH", + "nameLocation": "2445:21:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1542, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2472:9:9", + "nodeType": "VariableDeclaration", + "scope": 1557, + "src": "2467:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1541, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2467:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1544, + "mutability": "mutable", + "name": "amountInMax", + "nameLocation": "2488:11:9", + "nodeType": "VariableDeclaration", + "scope": 1557, + "src": "2483:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1543, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2483:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1547, + "mutability": "mutable", + "name": "path", + "nameLocation": "2520:4:9", + "nodeType": "VariableDeclaration", + "scope": 1557, + "src": "2501:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2501:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1546, + "nodeType": "ArrayTypeName", + "src": "2501:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1549, + "mutability": "mutable", + "name": "to", + "nameLocation": "2534:2:9", + "nodeType": "VariableDeclaration", + "scope": 1557, + "src": "2526:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2526:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1551, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2543:8:9", + "nodeType": "VariableDeclaration", + "scope": 1557, + "src": "2538:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1550, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2538:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2466:86:9" + }, + "returnParameters": { + "id": 1556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1555, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2601:7:9", + "nodeType": "VariableDeclaration", + "scope": 1557, + "src": "2587:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1553, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2587:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1554, + "nodeType": "ArrayTypeName", + "src": "2587:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2586:23:9" + }, + "scope": 1645, + "src": "2436:174:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "18cbafe5", + "id": 1574, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForETH", + "nameLocation": "2624:21:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1559, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "2651:8:9", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "2646:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1558, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2646:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1561, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2666:12:9", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "2661:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1560, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2661:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "path", + "nameLocation": "2699:4:9", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "2680:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2680:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1563, + "nodeType": "ArrayTypeName", + "src": "2680:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "to", + "nameLocation": "2713:2:9", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "2705:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2705:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1568, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2722:8:9", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "2717:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1567, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2717:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2645:86:9" + }, + "returnParameters": { + "id": 1573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1572, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2780:7:9", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "2766:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1570, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2766:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1571, + "nodeType": "ArrayTypeName", + "src": "2766:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2765:23:9" + }, + "scope": 1645, + "src": "2615:174:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "fb3bdb41", + "id": 1589, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapETHForExactTokens", + "nameLocation": "2803:21:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1576, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2830:9:9", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "2825:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1575, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2825:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1579, + "mutability": "mutable", + "name": "path", + "nameLocation": "2860:4:9", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "2841:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2841:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1578, + "nodeType": "ArrayTypeName", + "src": "2841:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1581, + "mutability": "mutable", + "name": "to", + "nameLocation": "2874:2:9", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "2866:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2866:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1583, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2883:8:9", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "2878:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1582, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2878:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2824:68:9" + }, + "returnParameters": { + "id": 1588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1587, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2957:7:9", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "2943:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2943:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ArrayTypeName", + "src": "2943:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2942:23:9" + }, + "scope": 1645, + "src": "2794:172:9", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "ad615dec", + "id": 1600, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "2981:5:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1591, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2992:7:9", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "2987:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2987:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1593, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "3006:8:9", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "3001:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1592, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3001:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "3021:8:9", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "3016:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3016:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2986:44:9" + }, + "returnParameters": { + "id": 1599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1598, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "3059:7:9", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "3054:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3054:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3053:14:9" + }, + "scope": 1645, + "src": "2972:96:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "054d50d4", + "id": 1611, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "3082:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1602, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3100:8:9", + "nodeType": "VariableDeclaration", + "scope": 1611, + "src": "3095:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3095:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1604, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "3115:9:9", + "nodeType": "VariableDeclaration", + "scope": 1611, + "src": "3110:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3110:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1606, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "3131:10:9", + "nodeType": "VariableDeclaration", + "scope": 1611, + "src": "3126:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1605, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3126:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3094:48:9" + }, + "returnParameters": { + "id": 1610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1609, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3171:9:9", + "nodeType": "VariableDeclaration", + "scope": 1611, + "src": "3166:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1608, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3166:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3165:16:9" + }, + "scope": 1645, + "src": "3073:109:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "85f8c259", + "id": 1622, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountIn", + "nameLocation": "3196:11:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1613, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3213:9:9", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "3208:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1612, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3208:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1615, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "3229:9:9", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "3224:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1614, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3224:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1617, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "3245:10:9", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "3240:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1616, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3240:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3207:49:9" + }, + "returnParameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1620, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3285:8:9", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "3280:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3280:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3279:15:9" + }, + "scope": 1645, + "src": "3187:108:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d06ca61f", + "id": 1633, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "3309:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1624, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3328:8:9", + "nodeType": "VariableDeclaration", + "scope": 1633, + "src": "3323:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1623, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3323:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1627, + "mutability": "mutable", + "name": "path", + "nameLocation": "3357:4:9", + "nodeType": "VariableDeclaration", + "scope": 1633, + "src": "3338:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3338:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1626, + "nodeType": "ArrayTypeName", + "src": "3338:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3322:40:9" + }, + "returnParameters": { + "id": 1632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1631, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3400:7:9", + "nodeType": "VariableDeclaration", + "scope": 1633, + "src": "3386:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1629, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3386:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1630, + "nodeType": "ArrayTypeName", + "src": "3386:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3385:23:9" + }, + "scope": 1645, + "src": "3300:109:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1f00ca74", + "id": 1644, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountsIn", + "nameLocation": "3423:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3441:9:9", + "nodeType": "VariableDeclaration", + "scope": 1644, + "src": "3436:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1634, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3436:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1638, + "mutability": "mutable", + "name": "path", + "nameLocation": "3471:4:9", + "nodeType": "VariableDeclaration", + "scope": 1644, + "src": "3452:23:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3452:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1637, + "nodeType": "ArrayTypeName", + "src": "3452:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3435:41:9" + }, + "returnParameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3514:7:9", + "nodeType": "VariableDeclaration", + "scope": 1644, + "src": "3500:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1640, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3500:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1641, + "nodeType": "ArrayTypeName", + "src": "3500:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3499:23:9" + }, + "scope": 1645, + "src": "3414:109:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1646, + "src": "26:3499:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "0:3526:9" + }, + "id": 9 + }, + "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol": { + "ast": { + "absolutePath": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol", + "exportedSymbols": { + "IUniswapV2Router01": [ + 1645 + ], + "IUniswapV2Router02": [ + 1733 + ] + }, + "id": 1734, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1647, + "literals": [ + "solidity", + ">=", + "0.6", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:24:10" + }, + { + "absolutePath": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol", + "file": "./IUniswapV2Router01.sol", + "id": 1648, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1734, + "sourceUnit": 1646, + "src": "26:34:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1649, + "name": "IUniswapV2Router01", + "nameLocations": [ + "94:18:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1645, + "src": "94:18:10" + }, + "id": 1650, + "nodeType": "InheritanceSpecifier", + "src": "94:18:10" + } + ], + "canonicalName": "IUniswapV2Router02", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1733, + "linearizedBaseContracts": [ + 1733, + 1645 + ], + "name": "IUniswapV2Router02", + "nameLocation": "72:18:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "af2979eb", + "id": 1667, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHSupportingFeeOnTransferTokens", + "nameLocation": "128:47:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1652, + "mutability": "mutable", + "name": "token", + "nameLocation": "193:5:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "185:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "185:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1654, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "213:9:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "208:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1653, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "208:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1656, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "237:14:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "232:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1655, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "232:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1658, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "266:12:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "261:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1657, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "261:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1660, + "mutability": "mutable", + "name": "to", + "nameLocation": "296:2:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "288:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "288:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "313:8:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "308:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1661, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "308:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "175:152:10" + }, + "returnParameters": { + "id": 1666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1665, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "351:9:10", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "346:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1664, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:16:10" + }, + "scope": 1733, + "src": "119:243:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5b0d5984", + "id": 1692, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + "nameLocation": "376:57:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1669, + "mutability": "mutable", + "name": "token", + "nameLocation": "451:5:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "443:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "443:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1671, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "471:9:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "466:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "466:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "495:14:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "490:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1672, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "490:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1675, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "524:12:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "519:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "519:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "to", + "nameLocation": "554:2:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "546:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "546:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "571:8:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "566:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1678, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "566:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "594:10:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "589:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1680, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "589:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1683, + "mutability": "mutable", + "name": "v", + "nameLocation": "612:1:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "606:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1682, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "606:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "r", + "nameLocation": "623:1:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "615:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1684, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "615:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "s", + "nameLocation": "634:1:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "626:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1686, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "626:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "433:208:10" + }, + "returnParameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "665:9:10", + "nodeType": "VariableDeclaration", + "scope": 1692, + "src": "660:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "660:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "659:16:10" + }, + "scope": 1733, + "src": "367:309:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5c11d795", + "id": 1706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", + "nameLocation": "691:53:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1694, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "759:8:10", + "nodeType": "VariableDeclaration", + "scope": 1706, + "src": "754:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1693, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "754:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1696, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "782:12:10", + "nodeType": "VariableDeclaration", + "scope": 1706, + "src": "777:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1695, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "777:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1699, + "mutability": "mutable", + "name": "path", + "nameLocation": "823:4:10", + "nodeType": "VariableDeclaration", + "scope": 1706, + "src": "804:23:10", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "804:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1698, + "nodeType": "ArrayTypeName", + "src": "804:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "to", + "nameLocation": "845:2:10", + "nodeType": "VariableDeclaration", + "scope": 1706, + "src": "837:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "837:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "862:8:10", + "nodeType": "VariableDeclaration", + "scope": 1706, + "src": "857:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "857:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "744:132:10" + }, + "returnParameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [], + "src": "885:0:10" + }, + "scope": 1733, + "src": "682:204:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b6f9de95", + "id": 1718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", + "nameLocation": "900:50:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "965:12:10", + "nodeType": "VariableDeclaration", + "scope": 1718, + "src": "960:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "960:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1711, + "mutability": "mutable", + "name": "path", + "nameLocation": "1006:4:10", + "nodeType": "VariableDeclaration", + "scope": 1718, + "src": "987:23:10", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "987:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1710, + "nodeType": "ArrayTypeName", + "src": "987:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "to", + "nameLocation": "1028:2:10", + "nodeType": "VariableDeclaration", + "scope": 1718, + "src": "1020:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1045:8:10", + "nodeType": "VariableDeclaration", + "scope": 1718, + "src": "1040:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1040:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "950:109:10" + }, + "returnParameters": { + "id": 1717, + "nodeType": "ParameterList", + "parameters": [], + "src": "1076:0:10" + }, + "scope": 1733, + "src": "891:186:10", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "791ac947", + "id": 1732, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", + "nameLocation": "1091:50:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1720, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "1156:8:10", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "1151:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1151:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1722, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "1179:12:10", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "1174:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1721, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1174:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "path", + "nameLocation": "1220:4:10", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "1201:23:10", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1201:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1724, + "nodeType": "ArrayTypeName", + "src": "1201:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1727, + "mutability": "mutable", + "name": "to", + "nameLocation": "1242:2:10", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "1234:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1234:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1259:8:10", + "nodeType": "VariableDeclaration", + "scope": 1732, + "src": "1254:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1254:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1141:132:10" + }, + "returnParameters": { + "id": 1731, + "nodeType": "ParameterList", + "parameters": [], + "src": "1282:0:10" + }, + "scope": 1733, + "src": "1082:201:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1734, + "src": "62:1223:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "0:1286:10" + }, + "id": 10 + }, + "contracts/BasedWhale.sol": { + "ast": { + "absolutePath": "contracts/BasedWhale.sol", + "exportedSymbols": { + "BasedWhale": [ + 2217 + ], + "Context": [ + 1032 + ], + "ERC20": [ + 799 + ], + "ERC20Capped": [ + 976 + ], + "IUniswapV2Factory": [ + 1095 + ], + "IUniswapV2Pair": [ + 1337 + ], + "IUniswapV2Router01": [ + 1645 + ], + "IUniswapV2Router02": [ + 1733 + ], + "Ownable": [ + 147 + ] + }, + "id": 2218, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1735, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "163:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol", + "file": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol", + "id": 1736, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 977, + "src": "189:72:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 1737, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 148, + "src": "262:52:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol", + "file": "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol", + "id": 1738, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 1734, + "src": "315:75:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol", + "file": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol", + "id": 1739, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 1096, + "src": "391:69:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol", + "file": "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol", + "id": 1740, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 1338, + "src": "461:66:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1741, + "name": "ERC20Capped", + "nameLocations": [ + "552:11:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 976, + "src": "552:11:11" + }, + "id": 1742, + "nodeType": "InheritanceSpecifier", + "src": "552:11:11" + }, + { + "baseName": { + "id": 1743, + "name": "Ownable", + "nameLocations": [ + "565:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "565:7:11" + }, + "id": 1744, + "nodeType": "InheritanceSpecifier", + "src": "565:7:11" + } + ], + "canonicalName": "BasedWhale", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2217, + "linearizedBaseContracts": [ + 2217, + 147, + 976, + 799, + 189, + 1002, + 877, + 1032 + ], + "name": "BasedWhale", + "nameLocation": "538:10:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "BasedWhale.TokenState", + "id": 1750, + "members": [ + { + "id": 1745, + "name": "Default", + "nameLocation": "628:7:11", + "nodeType": "EnumValue", + "src": "628:7:11" + }, + { + "id": 1746, + "name": "Launched", + "nameLocation": "641:8:11", + "nodeType": "EnumValue", + "src": "641:8:11" + }, + { + "id": 1747, + "name": "LiquidityLocked", + "nameLocation": "655:15:11", + "nodeType": "EnumValue", + "src": "655:15:11" + }, + { + "id": 1748, + "name": "TaxRatesSetToZero", + "nameLocation": "676:17:11", + "nodeType": "EnumValue", + "src": "676:17:11" + }, + { + "id": 1749, + "name": "OwnershipRenounced", + "nameLocation": "699:18:11", + "nodeType": "EnumValue", + "src": "699:18:11" + } + ], + "name": "TokenState", + "nameLocation": "611:10:11", + "nodeType": "EnumDefinition", + "src": "606:115:11" + }, + { + "constant": false, + "functionSelector": "e90dd9e2", + "id": 1753, + "mutability": "mutable", + "name": "tokenState", + "nameLocation": "743:10:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "725:28:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + }, + "typeName": { + "id": 1752, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1751, + "name": "TokenState", + "nameLocations": [ + "725:10:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1750, + "src": "725:10:11" + }, + "referencedDeclaration": 1750, + "src": "725:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "63cae94f", + "id": 1755, + "mutability": "mutable", + "name": "marketingMultiSig", + "nameLocation": "772:17:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "757:32:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "757:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "85df1d1c", + "id": 1757, + "mutability": "mutable", + "name": "exchangeMultiSig1", + "nameLocation": "808:17:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "793:32:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "793:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "52cd2388", + "id": 1759, + "mutability": "mutable", + "name": "exchangeMultiSig2", + "nameLocation": "844:17:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "829:32:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "829:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "691f224f", + "id": 1762, + "mutability": "mutable", + "name": "buyTaxRate", + "nameLocation": "1051:10:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1036:31:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1036:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "313030", + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1064:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "24024efd", + "id": 1765, + "mutability": "mutable", + "name": "sellTaxRate", + "nameLocation": "1086:11:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1071:32:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1071:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "333030", + "id": 1764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1100:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_300_by_1", + "typeString": "int_const 300" + }, + "value": "300" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2b653d44", + "id": 1767, + "mutability": "mutable", + "name": "uniswapV2PairAddress", + "nameLocation": "1122:20:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1107:35:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1107:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "1694505e", + "id": 1770, + "mutability": "mutable", + "name": "uniswapV2Router", + "nameLocation": "1173:15:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1147:41:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + }, + "typeName": { + "id": 1769, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1768, + "name": "IUniswapV2Router02", + "nameLocations": [ + "1147:18:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1733, + "src": "1147:18:11" + }, + "referencedDeclaration": 1733, + "src": "1147:18:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "18821400", + "id": 1773, + "mutability": "constant", + "name": "TOKEN_NAME", + "nameLocation": "1216:10:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1193:49:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1771, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4261736564205768616c65", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1229:13:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d854e2042715fd6bf73cba94b5ae74529f139babebe7f4243797918358cc23a6", + "typeString": "literal_string \"Based Whale\"" + }, + "value": "Based Whale" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "5265ee55", + "id": 1776, + "mutability": "constant", + "name": "TOKEN_TICKER_SYMBOL", + "nameLocation": "1269:19:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1246:52:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1246:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "5748414c45", + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1291:7:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed4b80c86c7954bdbf516c492acb4a2899eb0ee85b7c74e26d85e55a07562c95", + "typeString": "literal_string \"WHALE\"" + }, + "value": "WHALE" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "fccc2813", + "id": 1779, + "mutability": "constant", + "name": "BURN_ADDRESS", + "nameLocation": "1326:12:11", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "1302:81:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1302:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "hexValue": "307830303030303030303030303030303030303030303030303030303030303030303030303030303030", + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1341:42:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x0000000000000000000000000000000000000000" + }, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "8ad1ba2dbd33c6313fa50cd4016351a36437d7dcd0e0800a3a0b191d22095d93", + "id": 1785, + "name": "Launched", + "nameLocation": "1394:8:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1781, + "indexed": false, + "mutability": "mutable", + "name": "launcherAddress", + "nameLocation": "1411:15:11", + "nodeType": "VariableDeclaration", + "scope": 1785, + "src": "1403:23:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1403:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1783, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1436:9:11", + "nodeType": "VariableDeclaration", + "scope": 1785, + "src": "1428:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1428:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1402:44:11" + }, + "src": "1388:59:11" + }, + { + "anonymous": false, + "eventSelector": "c4c7c69f1eeef4dcf5449fcee968e149b2646d141f0d9bb3d1de12de99d77f7e", + "id": 1793, + "name": "TaxRatesSetToZero", + "nameLocation": "1456:17:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1787, + "indexed": false, + "mutability": "mutable", + "name": "zeroedBuyTaxRate", + "nameLocation": "1482:16:11", + "nodeType": "VariableDeclaration", + "scope": 1793, + "src": "1474:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1474:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1789, + "indexed": false, + "mutability": "mutable", + "name": "zeroedSellTaxRate", + "nameLocation": "1508:17:11", + "nodeType": "VariableDeclaration", + "scope": 1793, + "src": "1500:25:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1500:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1791, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1535:9:11", + "nodeType": "VariableDeclaration", + "scope": 1793, + "src": "1527:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1527:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1473:72:11" + }, + "src": "1450:96:11" + }, + { + "anonymous": false, + "eventSelector": "4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab881272", + "id": 1803, + "name": "BuyTaxed", + "nameLocation": "1555:8:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1795, + "indexed": false, + "mutability": "mutable", + "name": "buyerAddress", + "nameLocation": "1577:12:11", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1569:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1569:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1797, + "indexed": false, + "mutability": "mutable", + "name": "amountOfTokens", + "nameLocation": "1603:14:11", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1595:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1595:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1799, + "indexed": false, + "mutability": "mutable", + "name": "taxAmount", + "nameLocation": "1631:9:11", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1623:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1798, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1623:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1801, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1654:9:11", + "nodeType": "VariableDeclaration", + "scope": 1803, + "src": "1646:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1800, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1646:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1563:104:11" + }, + "src": "1549:119:11" + }, + { + "anonymous": false, + "eventSelector": "4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc", + "id": 1813, + "name": "SellTaxed", + "nameLocation": "1677:9:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "indexed": false, + "mutability": "mutable", + "name": "sellerAddress", + "nameLocation": "1700:13:11", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "1692:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1692:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "indexed": false, + "mutability": "mutable", + "name": "amountOfTokens", + "nameLocation": "1727:14:11", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "1719:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1719:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1809, + "indexed": false, + "mutability": "mutable", + "name": "taxAmount", + "nameLocation": "1755:9:11", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "1747:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1747:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1811, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1778:9:11", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "1770:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1810, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1770:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1686:105:11" + }, + "src": "1671:121:11" + }, + { + "anonymous": false, + "eventSelector": "f07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179", + "id": 1825, + "name": "LiquidityLocked", + "nameLocation": "1801:15:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1815, + "indexed": false, + "mutability": "mutable", + "name": "liquidityPairAddress", + "nameLocation": "1830:20:11", + "nodeType": "VariableDeclaration", + "scope": 1825, + "src": "1822:28:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1822:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1817, + "indexed": false, + "mutability": "mutable", + "name": "amountOfTokens", + "nameLocation": "1864:14:11", + "nodeType": "VariableDeclaration", + "scope": 1825, + "src": "1856:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1856:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1819, + "indexed": false, + "mutability": "mutable", + "name": "amountOfETH", + "nameLocation": "1892:11:11", + "nodeType": "VariableDeclaration", + "scope": 1825, + "src": "1884:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1884:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1821, + "indexed": false, + "mutability": "mutable", + "name": "amountOfLiquidityTokensBurned", + "nameLocation": "1917:29:11", + "nodeType": "VariableDeclaration", + "scope": 1825, + "src": "1909:37:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1909:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1960:9:11", + "nodeType": "VariableDeclaration", + "scope": 1825, + "src": "1952:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1952:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1816:157:11" + }, + "src": "1795:179:11" + }, + { + "anonymous": false, + "eventSelector": "bc3fa950185893c8ddfff1dafec540ffc8d7e576295fea983a515e9a8e03acd7", + "id": 1833, + "name": "OwnershipRenounced", + "nameLocation": "1983:18:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1827, + "indexed": false, + "mutability": "mutable", + "name": "renouncerAddress", + "nameLocation": "2010:16:11", + "nodeType": "VariableDeclaration", + "scope": 1833, + "src": "2002:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2002:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1829, + "indexed": false, + "mutability": "mutable", + "name": "nullAddressOwner", + "nameLocation": "2036:16:11", + "nodeType": "VariableDeclaration", + "scope": 1833, + "src": "2028:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2028:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "indexed": false, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "2062:9:11", + "nodeType": "VariableDeclaration", + "scope": 1833, + "src": "2054:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2054:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2001:71:11" + }, + "src": "1977:96:11" + }, + { + "body": { + "id": 1846, + "nodeType": "Block", + "src": "2112:89:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + }, + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1839, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "2126:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1840, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "2140:5:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "2126:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "46756e6374696f6e2063616e6e6f742062652063616c6c656420696e2074686973207374617465", + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2147:41:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c", + "typeString": "literal_string \"Function cannot be called in this state\"" + }, + "value": "Function cannot be called in this state" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c", + "typeString": "literal_string \"Function cannot be called in this state\"" + } + ], + "id": 1838, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2118:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2118:71:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1844, + "nodeType": "ExpressionStatement", + "src": "2118:71:11" + }, + { + "id": 1845, + "nodeType": "PlaceholderStatement", + "src": "2195:1:11" + } + ] + }, + "id": 1847, + "name": "inState", + "nameLocation": "2086:7:11", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1836, + "mutability": "mutable", + "name": "state", + "nameLocation": "2105:5:11", + "nodeType": "VariableDeclaration", + "scope": 1847, + "src": "2094:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + }, + "typeName": { + "id": 1835, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1834, + "name": "TokenState", + "nameLocations": [ + "2094:10:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1750, + "src": "2094:10:11" + }, + "referencedDeclaration": 1750, + "src": "2094:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "visibility": "internal" + } + ], + "src": "2093:18:11" + }, + "src": "2077:124:11", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "2467:486:11", + "statements": [ + { + "expression": { + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1878, + "name": "marketingMultiSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "2473:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1879, + "name": "_marketingMultiSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2493:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2473:38:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1881, + "nodeType": "ExpressionStatement", + "src": "2473:38:11" + }, + { + "expression": { + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1882, + "name": "exchangeMultiSig1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1757, + "src": "2517:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1883, + "name": "_exchangeMultiSig1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1855, + "src": "2537:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2517:38:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1885, + "nodeType": "ExpressionStatement", + "src": "2517:38:11" + }, + { + "expression": { + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1886, + "name": "exchangeMultiSig2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1759, + "src": "2561:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1887, + "name": "_exchangeMultiSig2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1857, + "src": "2581:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2561:38:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "2561:38:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1891, + "name": "marketingMultiSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "2644:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1892, + "name": "cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "2664:3:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2664:5:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "35", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2672:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "2664:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1896, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2663:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2677:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "2663:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1890, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2638:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2638:43:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1900, + "nodeType": "ExpressionStatement", + "src": "2638:43:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1902, + "name": "exchangeMultiSig1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1757, + "src": "2734:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1903, + "name": "cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "2754:3:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2754:5:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "35", + "id": 1905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2762:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "2754:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1907, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2753:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2767:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "2753:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1901, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2728:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:43:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "2728:43:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1913, + "name": "exchangeMultiSig2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1759, + "src": "2824:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1914, + "name": "cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "2844:3:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2844:5:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "35", + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2852:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "2844:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1918, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2843:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 1919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2857:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "2843:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2818:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2818:43:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1922, + "nodeType": "ExpressionStatement", + "src": "2818:43:11" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1924, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2882:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2886:6:11", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2882:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1926, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "2894:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2900:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2894:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1923, + "name": "Launched", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1785, + "src": "2873:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2873:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1929, + "nodeType": "EmitStatement", + "src": "2868:42:11" + }, + { + "expression": { + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1930, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "2916:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1931, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2929:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2940:8:11", + "memberName": "Launched", + "nodeType": "MemberAccess", + "referencedDeclaration": 1746, + "src": "2929:19:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "2916:32:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "id": 1934, + "nodeType": "ExpressionStatement", + "src": "2916:32:11" + } + ] + }, + "id": 1936, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 1860, + "name": "TOKEN_NAME", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2362:10:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 1861, + "name": "TOKEN_TICKER_SYMBOL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "2374:19:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 1862, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1859, + "name": "ERC20", + "nameLocations": [ + "2356:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "2356:5:11" + }, + "nodeType": "ModifierInvocation", + "src": "2356:38:11" + }, + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1864, + "name": "cap_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "2411:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2418:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1868, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "2432:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2432:10:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2424:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2424:7:11", + "typeDescriptions": {} + } + }, + "id": 1870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2424:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2418:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2411:32:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1873, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1863, + "name": "ERC20Capped", + "nameLocations": [ + "2399:11:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 976, + "src": "2399:11:11" + }, + "nodeType": "ModifierInvocation", + "src": "2399:45:11" + }, + { + "arguments": [ + { + "id": 1875, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "2457:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1876, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1874, + "name": "Ownable", + "nameLocations": [ + "2449:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "2449:7:11" + }, + "nodeType": "ModifierInvocation", + "src": "2449:15:11" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "cap_", + "nameLocation": "2227:4:11", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2222:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1848, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2222:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "2245:6:11", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2237:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2237:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "_marketingMultiSig", + "nameLocation": "2265:18:11", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2257:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2257:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1855, + "mutability": "mutable", + "name": "_exchangeMultiSig1", + "nameLocation": "2297:18:11", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2289:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2289:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1857, + "mutability": "mutable", + "name": "_exchangeMultiSig2", + "nameLocation": "2329:18:11", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "2321:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2321:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2216:135:11" + }, + "returnParameters": { + "id": 1877, + "nodeType": "ParameterList", + "parameters": [], + "src": "2467:0:11" + }, + "scope": 2217, + "src": "2205:748:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2045, + "nodeType": "Block", + "src": "3083:1230:11", + "statements": [ + { + "expression": { + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1947, + "name": "uniswapV2Router", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1770, + "src": "3089:15:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1949, + "name": "_uniswapV2Router", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1938, + "src": "3126:16:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1948, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "3107:18:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$1733_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3107:36:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "src": "3089:54:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 1952, + "nodeType": "ExpressionStatement", + "src": "3089:54:11" + }, + { + "expression": { + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1953, + "name": "uniswapV2PairAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "3149:20:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1962, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3243:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + ], + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3235:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1960, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:11", + "typeDescriptions": {} + } + }, + "id": 1963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3235:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1964, + "name": "uniswapV2Router", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1770, + "src": "3256:15:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3272:4:11", + "memberName": "WETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 1349, + "src": "3256:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3256:22:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1955, + "name": "uniswapV2Router", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1770, + "src": "3190:15:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3206:7:11", + "memberName": "factory", + "nodeType": "MemberAccess", + "referencedDeclaration": 1344, + "src": "3190:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3190:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1954, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1095, + "src": "3172:17:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$1095_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3172:44:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$1095", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3217:10:11", + "memberName": "createPair", + "nodeType": "MemberAccess", + "referencedDeclaration": 1084, + "src": "3172:55:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3172:112:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3149:135:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1969, + "nodeType": "ExpressionStatement", + "src": "3149:135:11" + }, + { + "assignments": [ + 1971 + ], + "declarations": [ + { + "constant": false, + "id": 1971, + "mutability": "mutable", + "name": "liquidityPoolAllocation", + "nameLocation": "3351:23:11", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "3343:31:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3343:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1979, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1972, + "name": "cap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "3378:3:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3378:5:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3835", + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3386:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_85_by_1", + "typeString": "int_const 85" + }, + "value": "85" + }, + "src": "3378:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1976, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3377:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3392:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "3377:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3343:52:11" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1983, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3415:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + ], + "id": 1982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3407:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1981, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3407:7:11", + "typeDescriptions": {} + } + }, + "id": 1984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3407:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1985, + "name": "liquidityPoolAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1971, + "src": "3422:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1980, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "3401:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3401:45:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1987, + "nodeType": "ExpressionStatement", + "src": "3401:45:11" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1991, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3469:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + ], + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3461:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3461:7:11", + "typeDescriptions": {} + } + }, + "id": 1992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3461:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1993, + "name": "_uniswapV2Router", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1938, + "src": "3476:16:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1994, + "name": "liquidityPoolAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1971, + "src": "3494:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1988, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 690, + "src": "3452:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3452:66:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1996, + "nodeType": "ExpressionStatement", + "src": "3452:66:11" + }, + { + "assignments": [ + 1998 + ], + "declarations": [ + { + "constant": false, + "id": 1998, + "mutability": "mutable", + "name": "liquidityTimeStamp", + "nameLocation": "3533:18:11", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "3525:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3525:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2001, + "initialValue": { + "expression": { + "id": 1999, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3554:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3560:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3554:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3525:44:11" + }, + { + "assignments": [ + 2003, + 2005, + null + ], + "declarations": [ + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "3655:11:11", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "3650:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2002, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3650:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2005, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "3673:9:11", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "3668:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3668:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2021, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 2013, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3753:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasedWhale_$2217", + "typeString": "contract BasedWhale" + } + ], + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3745:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:7:11", + "typeDescriptions": {} + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3745:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2015, + "name": "liquidityPoolAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1971, + "src": "3794:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3847:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3874:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 2018, + "name": "BURN_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1779, + "src": "3899:12:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2019, + "name": "liquidityTimeStamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "3956:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2006, + "name": "uniswapV2Router", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1770, + "src": "3688:15:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$1733", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 2007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3704:15:11", + "memberName": "addLiquidityETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 1395, + "src": "3688:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256) payable external returns (uint256,uint256,uint256)" + } + }, + "id": 2010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "id": 2008, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3727:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3731:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3727:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3688:49:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$value", + "typeString": "function (address,uint256,uint256,uint256,address,uint256) payable external returns (uint256,uint256,uint256)" + } + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3688:333:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3649:372:11" + }, + { + "assignments": [ + 2024 + ], + "declarations": [ + { + "constant": false, + "id": 2024, + "mutability": "mutable", + "name": "uniswapV2Pair", + "nameLocation": "4043:13:11", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "4028:28:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$1337", + "typeString": "contract IUniswapV2Pair" + }, + "typeName": { + "id": 2023, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2022, + "name": "IUniswapV2Pair", + "nameLocations": [ + "4028:14:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1337, + "src": "4028:14:11" + }, + "referencedDeclaration": 1337, + "src": "4028:14:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$1337", + "typeString": "contract IUniswapV2Pair" + } + }, + "visibility": "internal" + } + ], + "id": 2028, + "initialValue": { + "arguments": [ + { + "id": 2026, + "name": "uniswapV2PairAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "4074:20:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2025, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1337, + "src": "4059:14:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$1337_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4059:36:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$1337", + "typeString": "contract IUniswapV2Pair" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4028:67:11" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2030, + "name": "uniswapV2PairAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "4129:20:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2031, + "name": "amountToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4157:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2032, + "name": "amountETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2005, + "src": "4176:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 2035, + "name": "BURN_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1779, + "src": "4217:12:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 2033, + "name": "uniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2024, + "src": "4193:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$1337", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 2034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4207:9:11", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1140, + "src": "4193:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4193:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2037, + "name": "liquidityTimeStamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "4238:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2029, + "name": "LiquidityLocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1825, + "src": "4106:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256)" + } + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4106:156:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2039, + "nodeType": "EmitStatement", + "src": "4101:161:11" + }, + { + "expression": { + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2040, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "4269:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 2041, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4282:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4293:15:11", + "memberName": "LiquidityLocked", + "nodeType": "MemberAccess", + "referencedDeclaration": 1747, + "src": "4282:26:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "4269:39:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "id": 2044, + "nodeType": "ExpressionStatement", + "src": "4269:39:11" + } + ] + }, + "functionSelector": "5ecf7a67", + "id": 2046, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1941, + "kind": "modifierInvocation", + "modifierName": { + "id": 1940, + "name": "onlyOwner", + "nameLocations": [ + "3044:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "3044:9:11" + }, + "nodeType": "ModifierInvocation", + "src": "3044:9:11" + }, + { + "arguments": [ + { + "expression": { + "id": 1943, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "3062:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3073:8:11", + "memberName": "Launched", + "nodeType": "MemberAccess", + "referencedDeclaration": 1746, + "src": "3062:19:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + } + ], + "id": 1945, + "kind": "modifierInvocation", + "modifierName": { + "id": 1942, + "name": "inState", + "nameLocations": [ + "3054:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1847, + "src": "3054:7:11" + }, + "nodeType": "ModifierInvocation", + "src": "3054:28:11" + } + ], + "name": "initializeUniswapLiquidity", + "nameLocation": "2966:26:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1938, + "mutability": "mutable", + "name": "_uniswapV2Router", + "nameLocation": "3006:16:11", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "2998:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2998:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2992:34:11" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [], + "src": "3083:0:11" + }, + "scope": 2217, + "src": "2957:1356:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2075, + "nodeType": "Block", + "src": "4401:165:11", + "statements": [ + { + "expression": { + "id": 2057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2055, + "name": "buyTaxRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "4407:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4420:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4407:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2058, + "nodeType": "ExpressionStatement", + "src": "4407:14:11" + }, + { + "expression": { + "id": 2061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2059, + "name": "sellTaxRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1765, + "src": "4427:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4441:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4427:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2062, + "nodeType": "ExpressionStatement", + "src": "4427:15:11" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2064, + "name": "buyTaxRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "4472:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2065, + "name": "sellTaxRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1765, + "src": "4484:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 2066, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4497:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4503:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4497:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2063, + "name": "TaxRatesSetToZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1793, + "src": "4454:17:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4454:59:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2069, + "nodeType": "EmitStatement", + "src": "4449:64:11" + }, + { + "expression": { + "id": 2073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2070, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "4520:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 2071, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4533:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4544:17:11", + "memberName": "TaxRatesSetToZero", + "nodeType": "MemberAccess", + "referencedDeclaration": 1748, + "src": "4533:28:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "4520:41:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "id": 2074, + "nodeType": "ExpressionStatement", + "src": "4520:41:11" + } + ] + }, + "functionSelector": "eaff1cbc", + "id": 2076, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2049, + "kind": "modifierInvocation", + "modifierName": { + "id": 2048, + "name": "onlyOwner", + "nameLocations": [ + "4355:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "4355:9:11" + }, + "nodeType": "ModifierInvocation", + "src": "4355:9:11" + }, + { + "arguments": [ + { + "expression": { + "id": 2051, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4373:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4384:15:11", + "memberName": "LiquidityLocked", + "nodeType": "MemberAccess", + "referencedDeclaration": 1747, + "src": "4373:26:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + } + ], + "id": 2053, + "kind": "modifierInvocation", + "modifierName": { + "id": 2050, + "name": "inState", + "nameLocations": [ + "4365:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1847, + "src": "4365:7:11" + }, + "nodeType": "ModifierInvocation", + "src": "4365:35:11" + } + ], + "name": "setTaxRatesToZero", + "nameLocation": "4326:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2047, + "nodeType": "ParameterList", + "parameters": [], + "src": "4343:2:11" + }, + "returnParameters": { + "id": 2054, + "nodeType": "ParameterList", + "parameters": [], + "src": "4401:0:11" + }, + "scope": 2217, + "src": "4317:249:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 98 + ], + "body": { + "id": 2105, + "nodeType": "Block", + "src": "4693:151:11", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 2087, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4723:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4727:6:11", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4723:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2089, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "4735:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4735:7:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2091, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4744:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4750:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4744:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2086, + "name": "OwnershipRenounced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "4704:18:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4704:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2094, + "nodeType": "EmitStatement", + "src": "4699:61:11" + }, + { + "expression": { + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2095, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "4766:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 2096, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4779:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4790:18:11", + "memberName": "OwnershipRenounced", + "nodeType": "MemberAccess", + "referencedDeclaration": 1749, + "src": "4779:29:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "4766:42:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "id": 2099, + "nodeType": "ExpressionStatement", + "src": "4766:42:11" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2100, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "4814:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_BasedWhale_$2217_$", + "typeString": "type(contract super BasedWhale)" + } + }, + "id": 2102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4820:17:11", + "memberName": "renounceOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 98, + "src": "4814:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4814:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2104, + "nodeType": "ExpressionStatement", + "src": "4814:25:11" + } + ] + }, + "functionSelector": "715018a6", + "id": 2106, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2080, + "kind": "modifierInvocation", + "modifierName": { + "id": 2079, + "name": "onlyOwner", + "nameLocations": [ + "4639:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "4639:9:11" + }, + "nodeType": "ModifierInvocation", + "src": "4639:9:11" + }, + { + "arguments": [ + { + "expression": { + "id": 2082, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4661:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4672:17:11", + "memberName": "TaxRatesSetToZero", + "nodeType": "MemberAccess", + "referencedDeclaration": 1748, + "src": "4661:28:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + } + ], + "id": 2084, + "kind": "modifierInvocation", + "modifierName": { + "id": 2081, + "name": "inState", + "nameLocations": [ + "4653:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1847, + "src": "4653:7:11" + }, + "nodeType": "ModifierInvocation", + "src": "4653:37:11" + } + ], + "name": "renounceOwnership", + "nameLocation": "4579:17:11", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2078, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4626:8:11" + }, + "parameters": { + "id": 2077, + "nodeType": "ParameterList", + "parameters": [], + "src": "4596:2:11" + }, + "returnParameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [], + "src": "4693:0:11" + }, + "scope": 2217, + "src": "4570:274:11", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "4930:2:11", + "statements": [] + }, + "id": 2110, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [], + "src": "4910:2:11" + }, + "returnParameters": { + "id": 2108, + "nodeType": "ParameterList", + "parameters": [], + "src": "4930:0:11" + }, + "scope": 2217, + "src": "4903:29:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 975 + ], + "body": { + "id": 2215, + "nodeType": "Block", + "src": "5102:755:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + }, + "id": 2123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2120, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "5163:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 2121, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "5177:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5188:15:11", + "memberName": "LiquidityLocked", + "nodeType": "MemberAccess", + "referencedDeclaration": 1747, + "src": "5177:26:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "5163:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2124, + "name": "tokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "5207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 2125, + "name": "TokenState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "5221:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenState_$1750_$", + "typeString": "type(enum BasedWhale.TokenState)" + } + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5232:17:11", + "memberName": "TaxRatesSetToZero", + "nodeType": "MemberAccess", + "referencedDeclaration": 1748, + "src": "5221:28:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenState_$1750", + "typeString": "enum BasedWhale.TokenState" + } + }, + "src": "5207:42:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5163:86:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2139, + "nodeType": "IfStatement", + "src": "5159:151:11", + "trueBody": { + "id": 2138, + "nodeType": "Block", + "src": "5251:59:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2132, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "5273:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2133, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "5279:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2134, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5283:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2129, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "5259:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_BasedWhale_$2217_$", + "typeString": "type(contract super BasedWhale)" + } + }, + "id": 2131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5265:7:11", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 975, + "src": "5259:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5259:30:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2136, + "nodeType": "ExpressionStatement", + "src": "5259:30:11" + }, + { + "functionReturnParameters": 2119, + "id": 2137, + "nodeType": "Return", + "src": "5297:7:11" + } + ] + } + }, + { + "assignments": [ + 2141 + ], + "declarations": [ + { + "constant": false, + "id": 2141, + "mutability": "mutable", + "name": "taxAmount", + "nameLocation": "5324:9:11", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "5316:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5316:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2143, + "initialValue": { + "hexValue": "30", + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5336:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5316:21:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2144, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "5347:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2145, + "name": "uniswapV2PairAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "5353:20:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5347:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2165, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "5527:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2166, + "name": "uniswapV2PairAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "5535:20:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5527:28:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2186, + "nodeType": "IfStatement", + "src": "5523:171:11", + "trueBody": { + "id": 2185, + "nodeType": "Block", + "src": "5557:137:11", + "statements": [ + { + "expression": { + "id": 2175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2168, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5588:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5601:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2170, + "name": "buyTaxRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "5609:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5601:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2172, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5600:20:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "31303030", + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5623:4:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "5600:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5588:39:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2176, + "nodeType": "ExpressionStatement", + "src": "5588:39:11" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2178, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "5649:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2179, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5653:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2180, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5660:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 2181, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5671:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5677:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5671:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2177, + "name": "BuyTaxed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1803, + "src": "5640:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" + } + }, + "id": 2183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5640:47:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2184, + "nodeType": "EmitStatement", + "src": "5635:52:11" + } + ] + } + }, + "id": 2187, + "nodeType": "IfStatement", + "src": "5343:351:11", + "trueBody": { + "id": 2164, + "nodeType": "Block", + "src": "5375:142:11", + "statements": [ + { + "expression": { + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2147, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5407:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2148, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5420:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2149, + "name": "sellTaxRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1765, + "src": "5428:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5420:19:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2151, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5419:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "31303030", + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5443:4:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "5419:28:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5407:40:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2155, + "nodeType": "ExpressionStatement", + "src": "5407:40:11" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2157, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "5470:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2158, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5476:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2159, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5483:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 2160, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5494:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5500:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5494:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2156, + "name": "SellTaxed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1813, + "src": "5460:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" + } + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5460:50:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2163, + "nodeType": "EmitStatement", + "src": "5455:55:11" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2188, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5704:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5716:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5704:13:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2206, + "nodeType": "IfStatement", + "src": "5700:116:11", + "trueBody": { + "id": 2205, + "nodeType": "Block", + "src": "5719:97:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2194, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "5741:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2195, + "name": "marketingMultiSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "5747:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2196, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5766:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2191, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "5727:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_BasedWhale_$2217_$", + "typeString": "type(contract super BasedWhale)" + } + }, + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5733:7:11", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 975, + "src": "5727:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5727:49:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2198, + "nodeType": "ExpressionStatement", + "src": "5727:49:11" + }, + { + "expression": { + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2199, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5784:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2200, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5792:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2201, + "name": "taxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "5800:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5792:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5784:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2204, + "nodeType": "ExpressionStatement", + "src": "5784:25:11" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2210, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "5836:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2211, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "5842:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2212, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "5846:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2207, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "5822:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_BasedWhale_$2217_$", + "typeString": "type(contract super BasedWhale)" + } + }, + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5828:7:11", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 975, + "src": "5822:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5822:30:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2214, + "nodeType": "ExpressionStatement", + "src": "5822:30:11" + } + ] + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "5035:7:11", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2118, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5093:8:11" + }, + "parameters": { + "id": 2117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "from", + "nameLocation": "5051:4:11", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "5043:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5043:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "mutability": "mutable", + "name": "to", + "nameLocation": "5065:2:11", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "5057:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5057:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "mutability": "mutable", + "name": "value", + "nameLocation": "5077:5:11", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "5069:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5069:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5042:41:11" + }, + "returnParameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [], + "src": "5102:0:11" + }, + "scope": 2217, + "src": "5026:831:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2218, + "src": "529:5330:11", + "usedErrors": [ + 13, + 18, + 159, + 164, + 169, + 178, + 183, + 188, + 893, + 898 + ], + "usedEvents": [ + 24, + 811, + 820, + 1785, + 1793, + 1803, + 1813, + 1825, + 1833 + ] + } + ], + "src": "163:5697:11" + }, + "id": 11 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC20Errors": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC721Errors": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol": { + "ERC20Capped": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "increasedSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "cap", + "type": "uint256" + } + ], + "name": "ERC20ExceededCap", + "type": "error" + }, + { + "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": "uint256", + "name": "cap", + "type": "uint256" + } + ], + "name": "ERC20InvalidCap", + "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": "cap", + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "cap()": "355274ea", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"increasedSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"ERC20ExceededCap\",\"type\":\"error\"},{\"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\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"ERC20InvalidCap\",\"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\":\"cap\",\"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\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that adds a cap to the supply of tokens.\",\"errors\":{\"ERC20ExceededCap(uint256,uint256)\":[{\"details\":\"Total supply cap has been exceeded.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidCap(uint256)\":[{\"details\":\"The supplied cap is not a valid cap.\"}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"cap()\":{\"details\":\"Returns the cap on the token's total supply.\"},\"constructor\":{\"details\":\"Sets the value of the `cap`. This value is immutable, it can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol\":\"ERC20Capped\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol\":{\"keccak256\":\"0x9a961321311c070327b31fba89d821346225a411f946c9e84b330afdfdbb1d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084698c9feace630ff29919baad9df0721944eb2ecaf942ef807935bbbe41b5a\",\"dweb:/ipfs/Qmet4EQYqPLSKo7UPBNGaVw5NPATNkiLsqSCnCgg5kAPg4\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol": { + "IUniswapV2Factory": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allPairs(uint256)": "1e3dd18b", + "allPairsLength()": "574f2ba3", + "createPair(address,address)": "c9c65396", + "feeTo()": "017e7e58", + "feeToSetter()": "094b7415", + "getPair(address,address)": "e6a43905", + "setFeeTo(address)": "f46901ed", + "setFeeToSetter(address)": "a2e74af6" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]}},\"version\":1}" + } + }, + "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol": { + "IUniswapV2Pair": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "PERMIT_TYPEHASH()": "30adf81f", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "burn(address)": "89afcb44", + "decimals()": "313ce567", + "factory()": "c45a0155", + "getReserves()": "0902f1ac", + "initialize(address,address)": "485cc955", + "kLast()": "7464fc3d", + "mint(address)": "6a627842", + "name()": "06fdde03", + "nonces(address)": "7ecebe00", + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf", + "price0CumulativeLast()": "5909c0d5", + "price1CumulativeLast()": "5a3d5493", + "skim(address)": "bc25cf77", + "swap(uint256,uint256,address,bytes)": "022c0d9f", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "token0()": "0dfe1681", + "token1()": "d21220a7", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]}},\"version\":1}" + } + }, + "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol": { + "IUniswapV2Router01": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "WETH()": "ad5c4648", + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700", + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719", + "factory()": "c45a0155", + "getAmountIn(uint256,uint256,uint256)": "85f8c259", + "getAmountOut(uint256,uint256,uint256)": "054d50d4", + "getAmountsIn(uint256,address[])": "1f00ca74", + "getAmountsOut(uint256,address[])": "d06ca61f", + "quote(uint256,uint256,uint256)": "ad615dec", + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde", + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec", + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a", + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c", + "swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41", + "swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5", + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5", + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739", + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a", + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":\"IUniswapV2Router01\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]}},\"version\":1}" + } + }, + "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol": { + "IUniswapV2Router02": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "WETH()": "ad5c4648", + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700", + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719", + "factory()": "c45a0155", + "getAmountIn(uint256,uint256,uint256)": "85f8c259", + "getAmountOut(uint256,uint256,uint256)": "054d50d4", + "getAmountsIn(uint256,address[])": "1f00ca74", + "getAmountsOut(uint256,address[])": "d06ca61f", + "quote(uint256,uint256,uint256)": "ad615dec", + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde", + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec", + "removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": "af2979eb", + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a", + "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "5b0d5984", + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c", + "swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41", + "swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5", + "swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": "b6f9de95", + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5", + "swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "791ac947", + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739", + "swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "5c11d795", + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a", + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\":\"IUniswapV2Router02\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\":{\"keccak256\":\"0x744e30c133bd0f7ca9e7163433cf6d72f45c6bb1508c2c9c02f1a6db796ae59d\",\"urls\":[\"bzz-raw://9bf2f4454ad63d4cff03a0630e787d9e8a9deed80aec89682cd8ad6379d9ef8c\",\"dweb:/ipfs/Qme51hQNR2wpax7ooUadhtqLtXm8ffeVVYyubLkTT4wMCG\"]}},\"version\":1}" + } + }, + "contracts/BasedWhale.sol": { + "BasedWhale": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "cap_", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_marketingMultiSig", + "type": "address" + }, + { + "internalType": "address", + "name": "_exchangeMultiSig1", + "type": "address" + }, + { + "internalType": "address", + "name": "_exchangeMultiSig2", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "increasedSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "cap", + "type": "uint256" + } + ], + "name": "ERC20ExceededCap", + "type": "error" + }, + { + "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": "uint256", + "name": "cap", + "type": "uint256" + } + ], + "name": "ERC20InvalidCap", + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "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": "address", + "name": "buyerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfTokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "taxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "BuyTaxed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "launcherAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Launched", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "liquidityPairAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfTokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfETH", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfLiquidityTokensBurned", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "LiquidityLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "renouncerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "nullAddressOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sellerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountOfTokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "taxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "SellTaxed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "zeroedBuyTaxRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "zeroedSellTaxRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "TaxRatesSetToZero", + "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": "BURN_ADDRESS", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOKEN_TICKER_SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "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": "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": "buyTaxRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "cap", + "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": "exchangeMultiSig1", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exchangeMultiSig2", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_uniswapV2Router", + "type": "address" + } + ], + "name": "initializeUniswapLiquidity", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "marketingMultiSig", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sellTaxRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "setTaxRatesToZero", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenState", + "outputs": [ + { + "internalType": "enum BasedWhale.TokenState", + "name": "", + "type": "uint8" + } + ], + "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": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "uniswapV2PairAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "uniswapV2Router", + "outputs": [ + { + "internalType": "contract IUniswapV2Router02", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1936": { + "entryPoint": null, + "id": 1936, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_336": { + "entryPoint": null, + "id": 336, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_918": { + "entryPoint": null, + "id": 918, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_mint_639": { + "entryPoint": 1289, + "id": 639, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 1081, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_2216": { + "entryPoint": 1430, + "id": 2216, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_606": { + "entryPoint": 2266, + "id": 606, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_975": { + "entryPoint": 2072, + "id": 975, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@cap_927": { + "entryPoint": 1279, + "id": 927, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decimals_363": { + "entryPoint": 1072, + "id": 363, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_372": { + "entryPoint": 2826, + "id": 372, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 2978, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 2877, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_addresst_addresst_addresst_address_fromMemory": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 4631, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack": { + "entryPoint": 4585, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4780, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4648, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 4797, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 5129, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4889, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_0_by_1__to_t_uint256__fromStack_reversed": { + "entryPoint": 4602, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 5190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 5025, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 3838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3680, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5070, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 4724, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_exp_helper": { + "entryPoint": 3197, + "id": null, + "parameterSlots": 4, + "returnSlots": 2 + }, + "checked_exp_t_uint256_t_uint256": { + "entryPoint": 3524, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_exp_unsigned": { + "entryPoint": 3288, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 3605, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 4966, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 4149, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 2932, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_0_by_1": { + "entryPoint": 4535, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2900, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2841, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 4110, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_rational_0_by_1_to_t_uint256": { + "entryPoint": 4545, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 3984, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 4304, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 3785, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 4274, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 3974, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 4242, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3137, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 4677, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 4842, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3738, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 3691, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 4024, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2836, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_dynamic": { + "entryPoint": 3875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_1_unsigned": { + "entryPoint": 3184, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 4229, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 4082, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 3888, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 4034, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2952, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2851, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 4077, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:14262:12", + "nodeType": "YulBlock", + "src": "0:14262:12", + "statements": [ + { + "body": { + "nativeSrc": "47:35:12", + "nodeType": "YulBlock", + "src": "47:35:12", + "statements": [ + { + "nativeSrc": "57:19:12", + "nodeType": "YulAssignment", + "src": "57:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:12", + "nodeType": "YulLiteral", + "src": "73:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:12", + "nodeType": "YulIdentifier", + "src": "67:5:12" + }, + "nativeSrc": "67:9:12", + "nodeType": "YulFunctionCall", + "src": "67:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:12", + "nodeType": "YulIdentifier", + "src": "57:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:12", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:12", + "nodeType": "YulTypedName", + "src": "40:6:12", + "type": "" + } + ], + "src": "7:75:12" + }, + { + "body": { + "nativeSrc": "177:28:12", + "nodeType": "YulBlock", + "src": "177:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:12", + "nodeType": "YulLiteral", + "src": "194:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:12", + "nodeType": "YulLiteral", + "src": "197:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:12", + "nodeType": "YulIdentifier", + "src": "187:6:12" + }, + "nativeSrc": "187:12:12", + "nodeType": "YulFunctionCall", + "src": "187:12:12" + }, + "nativeSrc": "187:12:12", + "nodeType": "YulExpressionStatement", + "src": "187:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:12", + "nodeType": "YulFunctionDefinition", + "src": "88:117:12" + }, + { + "body": { + "nativeSrc": "300:28:12", + "nodeType": "YulBlock", + "src": "300:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:12", + "nodeType": "YulLiteral", + "src": "317:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:12", + "nodeType": "YulLiteral", + "src": "320:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:12", + "nodeType": "YulIdentifier", + "src": "310:6:12" + }, + "nativeSrc": "310:12:12", + "nodeType": "YulFunctionCall", + "src": "310:12:12" + }, + "nativeSrc": "310:12:12", + "nodeType": "YulExpressionStatement", + "src": "310:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:12", + "nodeType": "YulFunctionDefinition", + "src": "211:117:12" + }, + { + "body": { + "nativeSrc": "379:32:12", + "nodeType": "YulBlock", + "src": "379:32:12", + "statements": [ + { + "nativeSrc": "389:16:12", + "nodeType": "YulAssignment", + "src": "389:16:12", + "value": { + "name": "value", + "nativeSrc": "400:5:12", + "nodeType": "YulIdentifier", + "src": "400:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:12", + "nodeType": "YulIdentifier", + "src": "389:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:12", + "nodeType": "YulTypedName", + "src": "361:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:12", + "nodeType": "YulTypedName", + "src": "371:7:12", + "type": "" + } + ], + "src": "334:77:12" + }, + { + "body": { + "nativeSrc": "460:79:12", + "nodeType": "YulBlock", + "src": "460:79:12", + "statements": [ + { + "body": { + "nativeSrc": "517:16:12", + "nodeType": "YulBlock", + "src": "517:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:12", + "nodeType": "YulLiteral", + "src": "526:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:12", + "nodeType": "YulLiteral", + "src": "529:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:12", + "nodeType": "YulIdentifier", + "src": "519:6:12" + }, + "nativeSrc": "519:12:12", + "nodeType": "YulFunctionCall", + "src": "519:12:12" + }, + "nativeSrc": "519:12:12", + "nodeType": "YulExpressionStatement", + "src": "519:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:12", + "nodeType": "YulIdentifier", + "src": "483:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:12", + "nodeType": "YulIdentifier", + "src": "508:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:12", + "nodeType": "YulIdentifier", + "src": "490:17:12" + }, + "nativeSrc": "490:24:12", + "nodeType": "YulFunctionCall", + "src": "490:24:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:12", + "nodeType": "YulIdentifier", + "src": "480:2:12" + }, + "nativeSrc": "480:35:12", + "nodeType": "YulFunctionCall", + "src": "480:35:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:12", + "nodeType": "YulIdentifier", + "src": "473:6:12" + }, + "nativeSrc": "473:43:12", + "nodeType": "YulFunctionCall", + "src": "473:43:12" + }, + "nativeSrc": "470:63:12", + "nodeType": "YulIf", + "src": "470:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:12", + "nodeType": "YulTypedName", + "src": "453:5:12", + "type": "" + } + ], + "src": "417:122:12" + }, + { + "body": { + "nativeSrc": "608:80:12", + "nodeType": "YulBlock", + "src": "608:80:12", + "statements": [ + { + "nativeSrc": "618:22:12", + "nodeType": "YulAssignment", + "src": "618:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "633:6:12", + "nodeType": "YulIdentifier", + "src": "633:6:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "627:5:12", + "nodeType": "YulIdentifier", + "src": "627:5:12" + }, + "nativeSrc": "627:13:12", + "nodeType": "YulFunctionCall", + "src": "627:13:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "618:5:12", + "nodeType": "YulIdentifier", + "src": "618:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "676:5:12", + "nodeType": "YulIdentifier", + "src": "676:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "649:26:12", + "nodeType": "YulIdentifier", + "src": "649:26:12" + }, + "nativeSrc": "649:33:12", + "nodeType": "YulFunctionCall", + "src": "649:33:12" + }, + "nativeSrc": "649:33:12", + "nodeType": "YulExpressionStatement", + "src": "649:33:12" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "545:143:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "586:6:12", + "nodeType": "YulTypedName", + "src": "586:6:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "594:3:12", + "nodeType": "YulTypedName", + "src": "594:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "602:5:12", + "nodeType": "YulTypedName", + "src": "602:5:12", + "type": "" + } + ], + "src": "545:143:12" + }, + { + "body": { + "nativeSrc": "739:81:12", + "nodeType": "YulBlock", + "src": "739:81:12", + "statements": [ + { + "nativeSrc": "749:65:12", + "nodeType": "YulAssignment", + "src": "749:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "764:5:12", + "nodeType": "YulIdentifier", + "src": "764:5:12" + }, + { + "kind": "number", + "nativeSrc": "771:42:12", + "nodeType": "YulLiteral", + "src": "771:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "760:3:12", + "nodeType": "YulIdentifier", + "src": "760:3:12" + }, + "nativeSrc": "760:54:12", + "nodeType": "YulFunctionCall", + "src": "760:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "749:7:12", + "nodeType": "YulIdentifier", + "src": "749:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "694:126:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "721:5:12", + "nodeType": "YulTypedName", + "src": "721:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "731:7:12", + "nodeType": "YulTypedName", + "src": "731:7:12", + "type": "" + } + ], + "src": "694:126:12" + }, + { + "body": { + "nativeSrc": "871:51:12", + "nodeType": "YulBlock", + "src": "871:51:12", + "statements": [ + { + "nativeSrc": "881:35:12", + "nodeType": "YulAssignment", + "src": "881:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "910:5:12", + "nodeType": "YulIdentifier", + "src": "910:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "892:17:12", + "nodeType": "YulIdentifier", + "src": "892:17:12" + }, + "nativeSrc": "892:24:12", + "nodeType": "YulFunctionCall", + "src": "892:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "881:7:12", + "nodeType": "YulIdentifier", + "src": "881:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "826:96:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "853:5:12", + "nodeType": "YulTypedName", + "src": "853:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "863:7:12", + "nodeType": "YulTypedName", + "src": "863:7:12", + "type": "" + } + ], + "src": "826:96:12" + }, + { + "body": { + "nativeSrc": "971:79:12", + "nodeType": "YulBlock", + "src": "971:79:12", + "statements": [ + { + "body": { + "nativeSrc": "1028:16:12", + "nodeType": "YulBlock", + "src": "1028:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1037:1:12", + "nodeType": "YulLiteral", + "src": "1037:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1040:1:12", + "nodeType": "YulLiteral", + "src": "1040:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1030:6:12", + "nodeType": "YulIdentifier", + "src": "1030:6:12" + }, + "nativeSrc": "1030:12:12", + "nodeType": "YulFunctionCall", + "src": "1030:12:12" + }, + "nativeSrc": "1030:12:12", + "nodeType": "YulExpressionStatement", + "src": "1030:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "994:5:12", + "nodeType": "YulIdentifier", + "src": "994:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1019:5:12", + "nodeType": "YulIdentifier", + "src": "1019:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1001:17:12", + "nodeType": "YulIdentifier", + "src": "1001:17:12" + }, + "nativeSrc": "1001:24:12", + "nodeType": "YulFunctionCall", + "src": "1001:24:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "991:2:12", + "nodeType": "YulIdentifier", + "src": "991:2:12" + }, + "nativeSrc": "991:35:12", + "nodeType": "YulFunctionCall", + "src": "991:35:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "984:6:12", + "nodeType": "YulIdentifier", + "src": "984:6:12" + }, + "nativeSrc": "984:43:12", + "nodeType": "YulFunctionCall", + "src": "984:43:12" + }, + "nativeSrc": "981:63:12", + "nodeType": "YulIf", + "src": "981:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "928:122:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "964:5:12", + "nodeType": "YulTypedName", + "src": "964:5:12", + "type": "" + } + ], + "src": "928:122:12" + }, + { + "body": { + "nativeSrc": "1119:80:12", + "nodeType": "YulBlock", + "src": "1119:80:12", + "statements": [ + { + "nativeSrc": "1129:22:12", + "nodeType": "YulAssignment", + "src": "1129:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1144:6:12", + "nodeType": "YulIdentifier", + "src": "1144:6:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1138:5:12", + "nodeType": "YulIdentifier", + "src": "1138:5:12" + }, + "nativeSrc": "1138:13:12", + "nodeType": "YulFunctionCall", + "src": "1138:13:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1129:5:12", + "nodeType": "YulIdentifier", + "src": "1129:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1187:5:12", + "nodeType": "YulIdentifier", + "src": "1187:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1160:26:12", + "nodeType": "YulIdentifier", + "src": "1160:26:12" + }, + "nativeSrc": "1160:33:12", + "nodeType": "YulFunctionCall", + "src": "1160:33:12" + }, + "nativeSrc": "1160:33:12", + "nodeType": "YulExpressionStatement", + "src": "1160:33:12" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1056:143:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1097:6:12", + "nodeType": "YulTypedName", + "src": "1097:6:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1105:3:12", + "nodeType": "YulTypedName", + "src": "1105:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1113:5:12", + "nodeType": "YulTypedName", + "src": "1113:5:12", + "type": "" + } + ], + "src": "1056:143:12" + }, + { + "body": { + "nativeSrc": "1350:832:12", + "nodeType": "YulBlock", + "src": "1350:832:12", + "statements": [ + { + "body": { + "nativeSrc": "1397:83:12", + "nodeType": "YulBlock", + "src": "1397:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1399:77:12", + "nodeType": "YulIdentifier", + "src": "1399:77:12" + }, + "nativeSrc": "1399:79:12", + "nodeType": "YulFunctionCall", + "src": "1399:79:12" + }, + "nativeSrc": "1399:79:12", + "nodeType": "YulExpressionStatement", + "src": "1399:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1371:7:12", + "nodeType": "YulIdentifier", + "src": "1371:7:12" + }, + { + "name": "headStart", + "nativeSrc": "1380:9:12", + "nodeType": "YulIdentifier", + "src": "1380:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1367:3:12", + "nodeType": "YulIdentifier", + "src": "1367:3:12" + }, + "nativeSrc": "1367:23:12", + "nodeType": "YulFunctionCall", + "src": "1367:23:12" + }, + { + "kind": "number", + "nativeSrc": "1392:3:12", + "nodeType": "YulLiteral", + "src": "1392:3:12", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1363:3:12", + "nodeType": "YulIdentifier", + "src": "1363:3:12" + }, + "nativeSrc": "1363:33:12", + "nodeType": "YulFunctionCall", + "src": "1363:33:12" + }, + "nativeSrc": "1360:120:12", + "nodeType": "YulIf", + "src": "1360:120:12" + }, + { + "nativeSrc": "1490:128:12", + "nodeType": "YulBlock", + "src": "1490:128:12", + "statements": [ + { + "nativeSrc": "1505:15:12", + "nodeType": "YulVariableDeclaration", + "src": "1505:15:12", + "value": { + "kind": "number", + "nativeSrc": "1519:1:12", + "nodeType": "YulLiteral", + "src": "1519:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1509:6:12", + "nodeType": "YulTypedName", + "src": "1509:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "1534:74:12", + "nodeType": "YulAssignment", + "src": "1534:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1580:9:12", + "nodeType": "YulIdentifier", + "src": "1580:9:12" + }, + { + "name": "offset", + "nativeSrc": "1591:6:12", + "nodeType": "YulIdentifier", + "src": "1591:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1576:3:12", + "nodeType": "YulIdentifier", + "src": "1576:3:12" + }, + "nativeSrc": "1576:22:12", + "nodeType": "YulFunctionCall", + "src": "1576:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "1600:7:12", + "nodeType": "YulIdentifier", + "src": "1600:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "1544:31:12", + "nodeType": "YulIdentifier", + "src": "1544:31:12" + }, + "nativeSrc": "1544:64:12", + "nodeType": "YulFunctionCall", + "src": "1544:64:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1534:6:12", + "nodeType": "YulIdentifier", + "src": "1534:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "1628:129:12", + "nodeType": "YulBlock", + "src": "1628:129:12", + "statements": [ + { + "nativeSrc": "1643:16:12", + "nodeType": "YulVariableDeclaration", + "src": "1643:16:12", + "value": { + "kind": "number", + "nativeSrc": "1657:2:12", + "nodeType": "YulLiteral", + "src": "1657:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1647:6:12", + "nodeType": "YulTypedName", + "src": "1647:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "1673:74:12", + "nodeType": "YulAssignment", + "src": "1673:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1719:9:12", + "nodeType": "YulIdentifier", + "src": "1719:9:12" + }, + { + "name": "offset", + "nativeSrc": "1730:6:12", + "nodeType": "YulIdentifier", + "src": "1730:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1715:3:12", + "nodeType": "YulIdentifier", + "src": "1715:3:12" + }, + "nativeSrc": "1715:22:12", + "nodeType": "YulFunctionCall", + "src": "1715:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "1739:7:12", + "nodeType": "YulIdentifier", + "src": "1739:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1683:31:12", + "nodeType": "YulIdentifier", + "src": "1683:31:12" + }, + "nativeSrc": "1683:64:12", + "nodeType": "YulFunctionCall", + "src": "1683:64:12" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1673:6:12", + "nodeType": "YulIdentifier", + "src": "1673:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "1767:129:12", + "nodeType": "YulBlock", + "src": "1767:129:12", + "statements": [ + { + "nativeSrc": "1782:16:12", + "nodeType": "YulVariableDeclaration", + "src": "1782:16:12", + "value": { + "kind": "number", + "nativeSrc": "1796:2:12", + "nodeType": "YulLiteral", + "src": "1796:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1786:6:12", + "nodeType": "YulTypedName", + "src": "1786:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "1812:74:12", + "nodeType": "YulAssignment", + "src": "1812:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1858:9:12", + "nodeType": "YulIdentifier", + "src": "1858:9:12" + }, + { + "name": "offset", + "nativeSrc": "1869:6:12", + "nodeType": "YulIdentifier", + "src": "1869:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1854:3:12", + "nodeType": "YulIdentifier", + "src": "1854:3:12" + }, + "nativeSrc": "1854:22:12", + "nodeType": "YulFunctionCall", + "src": "1854:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "1878:7:12", + "nodeType": "YulIdentifier", + "src": "1878:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1822:31:12", + "nodeType": "YulIdentifier", + "src": "1822:31:12" + }, + "nativeSrc": "1822:64:12", + "nodeType": "YulFunctionCall", + "src": "1822:64:12" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1812:6:12", + "nodeType": "YulIdentifier", + "src": "1812:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "1906:129:12", + "nodeType": "YulBlock", + "src": "1906:129:12", + "statements": [ + { + "nativeSrc": "1921:16:12", + "nodeType": "YulVariableDeclaration", + "src": "1921:16:12", + "value": { + "kind": "number", + "nativeSrc": "1935:2:12", + "nodeType": "YulLiteral", + "src": "1935:2:12", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1925:6:12", + "nodeType": "YulTypedName", + "src": "1925:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "1951:74:12", + "nodeType": "YulAssignment", + "src": "1951:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1997:9:12", + "nodeType": "YulIdentifier", + "src": "1997:9:12" + }, + { + "name": "offset", + "nativeSrc": "2008:6:12", + "nodeType": "YulIdentifier", + "src": "2008:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1993:3:12", + "nodeType": "YulIdentifier", + "src": "1993:3:12" + }, + "nativeSrc": "1993:22:12", + "nodeType": "YulFunctionCall", + "src": "1993:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "2017:7:12", + "nodeType": "YulIdentifier", + "src": "2017:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1961:31:12", + "nodeType": "YulIdentifier", + "src": "1961:31:12" + }, + "nativeSrc": "1961:64:12", + "nodeType": "YulFunctionCall", + "src": "1961:64:12" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "1951:6:12", + "nodeType": "YulIdentifier", + "src": "1951:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "2045:130:12", + "nodeType": "YulBlock", + "src": "2045:130:12", + "statements": [ + { + "nativeSrc": "2060:17:12", + "nodeType": "YulVariableDeclaration", + "src": "2060:17:12", + "value": { + "kind": "number", + "nativeSrc": "2074:3:12", + "nodeType": "YulLiteral", + "src": "2074:3:12", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2064:6:12", + "nodeType": "YulTypedName", + "src": "2064:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "2091:74:12", + "nodeType": "YulAssignment", + "src": "2091:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2137:9:12", + "nodeType": "YulIdentifier", + "src": "2137:9:12" + }, + { + "name": "offset", + "nativeSrc": "2148:6:12", + "nodeType": "YulIdentifier", + "src": "2148:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2133:3:12", + "nodeType": "YulIdentifier", + "src": "2133:3:12" + }, + "nativeSrc": "2133:22:12", + "nodeType": "YulFunctionCall", + "src": "2133:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "2157:7:12", + "nodeType": "YulIdentifier", + "src": "2157:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "2101:31:12", + "nodeType": "YulIdentifier", + "src": "2101:31:12" + }, + "nativeSrc": "2101:64:12", + "nodeType": "YulFunctionCall", + "src": "2101:64:12" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "2091:6:12", + "nodeType": "YulIdentifier", + "src": "2091:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_addresst_addresst_addresst_address_fromMemory", + "nativeSrc": "1205:977:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1288:9:12", + "nodeType": "YulTypedName", + "src": "1288:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1299:7:12", + "nodeType": "YulTypedName", + "src": "1299:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1311:6:12", + "nodeType": "YulTypedName", + "src": "1311:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1319:6:12", + "nodeType": "YulTypedName", + "src": "1319:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1327:6:12", + "nodeType": "YulTypedName", + "src": "1327:6:12", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1335:6:12", + "nodeType": "YulTypedName", + "src": "1335:6:12", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "1343:6:12", + "nodeType": "YulTypedName", + "src": "1343:6:12", + "type": "" + } + ], + "src": "1205:977:12" + }, + { + "body": { + "nativeSrc": "2216:152:12", + "nodeType": "YulBlock", + "src": "2216:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2233:1:12", + "nodeType": "YulLiteral", + "src": "2233:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2236:77:12", + "nodeType": "YulLiteral", + "src": "2236:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2226:6:12", + "nodeType": "YulIdentifier", + "src": "2226:6:12" + }, + "nativeSrc": "2226:88:12", + "nodeType": "YulFunctionCall", + "src": "2226:88:12" + }, + "nativeSrc": "2226:88:12", + "nodeType": "YulExpressionStatement", + "src": "2226:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2330:1:12", + "nodeType": "YulLiteral", + "src": "2330:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2333:4:12", + "nodeType": "YulLiteral", + "src": "2333:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2323:6:12", + "nodeType": "YulIdentifier", + "src": "2323:6:12" + }, + "nativeSrc": "2323:15:12", + "nodeType": "YulFunctionCall", + "src": "2323:15:12" + }, + "nativeSrc": "2323:15:12", + "nodeType": "YulExpressionStatement", + "src": "2323:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2354:1:12", + "nodeType": "YulLiteral", + "src": "2354:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2357:4:12", + "nodeType": "YulLiteral", + "src": "2357:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2347:6:12", + "nodeType": "YulIdentifier", + "src": "2347:6:12" + }, + "nativeSrc": "2347:15:12", + "nodeType": "YulFunctionCall", + "src": "2347:15:12" + }, + "nativeSrc": "2347:15:12", + "nodeType": "YulExpressionStatement", + "src": "2347:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "2188:180:12", + "nodeType": "YulFunctionDefinition", + "src": "2188:180:12" + }, + { + "body": { + "nativeSrc": "2425:51:12", + "nodeType": "YulBlock", + "src": "2425:51:12", + "statements": [ + { + "nativeSrc": "2435:34:12", + "nodeType": "YulAssignment", + "src": "2435:34:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2460:1:12", + "nodeType": "YulLiteral", + "src": "2460:1:12", + "type": "", + "value": "1" + }, + { + "name": "value", + "nativeSrc": "2463:5:12", + "nodeType": "YulIdentifier", + "src": "2463:5:12" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "2456:3:12", + "nodeType": "YulIdentifier", + "src": "2456:3:12" + }, + "nativeSrc": "2456:13:12", + "nodeType": "YulFunctionCall", + "src": "2456:13:12" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "2435:8:12", + "nodeType": "YulIdentifier", + "src": "2435:8:12" + } + ] + } + ] + }, + "name": "shift_right_1_unsigned", + "nativeSrc": "2374:102:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2406:5:12", + "nodeType": "YulTypedName", + "src": "2406:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "2416:8:12", + "nodeType": "YulTypedName", + "src": "2416:8:12", + "type": "" + } + ], + "src": "2374:102:12" + }, + { + "body": { + "nativeSrc": "2555:775:12", + "nodeType": "YulBlock", + "src": "2555:775:12", + "statements": [ + { + "nativeSrc": "2565:15:12", + "nodeType": "YulAssignment", + "src": "2565:15:12", + "value": { + "name": "_power", + "nativeSrc": "2574:6:12", + "nodeType": "YulIdentifier", + "src": "2574:6:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "2565:5:12", + "nodeType": "YulIdentifier", + "src": "2565:5:12" + } + ] + }, + { + "nativeSrc": "2589:14:12", + "nodeType": "YulAssignment", + "src": "2589:14:12", + "value": { + "name": "_base", + "nativeSrc": "2598:5:12", + "nodeType": "YulIdentifier", + "src": "2598:5:12" + }, + "variableNames": [ + { + "name": "base", + "nativeSrc": "2589:4:12", + "nodeType": "YulIdentifier", + "src": "2589:4:12" + } + ] + }, + { + "body": { + "nativeSrc": "2647:677:12", + "nodeType": "YulBlock", + "src": "2647:677:12", + "statements": [ + { + "body": { + "nativeSrc": "2735:22:12", + "nodeType": "YulBlock", + "src": "2735:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "2737:16:12", + "nodeType": "YulIdentifier", + "src": "2737:16:12" + }, + "nativeSrc": "2737:18:12", + "nodeType": "YulFunctionCall", + "src": "2737:18:12" + }, + "nativeSrc": "2737:18:12", + "nodeType": "YulExpressionStatement", + "src": "2737:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nativeSrc": "2713:4:12", + "nodeType": "YulIdentifier", + "src": "2713:4:12" + }, + { + "arguments": [ + { + "name": "max", + "nativeSrc": "2723:3:12", + "nodeType": "YulIdentifier", + "src": "2723:3:12" + }, + { + "name": "base", + "nativeSrc": "2728:4:12", + "nodeType": "YulIdentifier", + "src": "2728:4:12" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "2719:3:12", + "nodeType": "YulIdentifier", + "src": "2719:3:12" + }, + "nativeSrc": "2719:14:12", + "nodeType": "YulFunctionCall", + "src": "2719:14:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2710:2:12", + "nodeType": "YulIdentifier", + "src": "2710:2:12" + }, + "nativeSrc": "2710:24:12", + "nodeType": "YulFunctionCall", + "src": "2710:24:12" + }, + "nativeSrc": "2707:50:12", + "nodeType": "YulIf", + "src": "2707:50:12" + }, + { + "body": { + "nativeSrc": "2802:419:12", + "nodeType": "YulBlock", + "src": "2802:419:12", + "statements": [ + { + "nativeSrc": "3182:25:12", + "nodeType": "YulAssignment", + "src": "3182:25:12", + "value": { + "arguments": [ + { + "name": "power", + "nativeSrc": "3195:5:12", + "nodeType": "YulIdentifier", + "src": "3195:5:12" + }, + { + "name": "base", + "nativeSrc": "3202:4:12", + "nodeType": "YulIdentifier", + "src": "3202:4:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3191:3:12", + "nodeType": "YulIdentifier", + "src": "3191:3:12" + }, + "nativeSrc": "3191:16:12", + "nodeType": "YulFunctionCall", + "src": "3191:16:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "3182:5:12", + "nodeType": "YulIdentifier", + "src": "3182:5:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "2777:8:12", + "nodeType": "YulIdentifier", + "src": "2777:8:12" + }, + { + "kind": "number", + "nativeSrc": "2787:1:12", + "nodeType": "YulLiteral", + "src": "2787:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2773:3:12", + "nodeType": "YulIdentifier", + "src": "2773:3:12" + }, + "nativeSrc": "2773:16:12", + "nodeType": "YulFunctionCall", + "src": "2773:16:12" + }, + "nativeSrc": "2770:451:12", + "nodeType": "YulIf", + "src": "2770:451:12" + }, + { + "nativeSrc": "3234:23:12", + "nodeType": "YulAssignment", + "src": "3234:23:12", + "value": { + "arguments": [ + { + "name": "base", + "nativeSrc": "3246:4:12", + "nodeType": "YulIdentifier", + "src": "3246:4:12" + }, + { + "name": "base", + "nativeSrc": "3252:4:12", + "nodeType": "YulIdentifier", + "src": "3252:4:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3242:3:12", + "nodeType": "YulIdentifier", + "src": "3242:3:12" + }, + "nativeSrc": "3242:15:12", + "nodeType": "YulFunctionCall", + "src": "3242:15:12" + }, + "variableNames": [ + { + "name": "base", + "nativeSrc": "3234:4:12", + "nodeType": "YulIdentifier", + "src": "3234:4:12" + } + ] + }, + { + "nativeSrc": "3270:44:12", + "nodeType": "YulAssignment", + "src": "3270:44:12", + "value": { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "3305:8:12", + "nodeType": "YulIdentifier", + "src": "3305:8:12" + } + ], + "functionName": { + "name": "shift_right_1_unsigned", + "nativeSrc": "3282:22:12", + "nodeType": "YulIdentifier", + "src": "3282:22:12" + }, + "nativeSrc": "3282:32:12", + "nodeType": "YulFunctionCall", + "src": "3282:32:12" + }, + "variableNames": [ + { + "name": "exponent", + "nativeSrc": "3270:8:12", + "nodeType": "YulIdentifier", + "src": "3270:8:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "2623:8:12", + "nodeType": "YulIdentifier", + "src": "2623:8:12" + }, + { + "kind": "number", + "nativeSrc": "2633:1:12", + "nodeType": "YulLiteral", + "src": "2633:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2620:2:12", + "nodeType": "YulIdentifier", + "src": "2620:2:12" + }, + "nativeSrc": "2620:15:12", + "nodeType": "YulFunctionCall", + "src": "2620:15:12" + }, + "nativeSrc": "2612:712:12", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2636:2:12", + "nodeType": "YulBlock", + "src": "2636:2:12", + "statements": [] + }, + "pre": { + "nativeSrc": "2616:3:12", + "nodeType": "YulBlock", + "src": "2616:3:12", + "statements": [] + }, + "src": "2612:712:12" + } + ] + }, + "name": "checked_exp_helper", + "nativeSrc": "2482:848:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "_power", + "nativeSrc": "2510:6:12", + "nodeType": "YulTypedName", + "src": "2510:6:12", + "type": "" + }, + { + "name": "_base", + "nativeSrc": "2518:5:12", + "nodeType": "YulTypedName", + "src": "2518:5:12", + "type": "" + }, + { + "name": "exponent", + "nativeSrc": "2525:8:12", + "nodeType": "YulTypedName", + "src": "2525:8:12", + "type": "" + }, + { + "name": "max", + "nativeSrc": "2535:3:12", + "nodeType": "YulTypedName", + "src": "2535:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nativeSrc": "2543:5:12", + "nodeType": "YulTypedName", + "src": "2543:5:12", + "type": "" + }, + { + "name": "base", + "nativeSrc": "2550:4:12", + "nodeType": "YulTypedName", + "src": "2550:4:12", + "type": "" + } + ], + "src": "2482:848:12" + }, + { + "body": { + "nativeSrc": "3396:1013:12", + "nodeType": "YulBlock", + "src": "3396:1013:12", + "statements": [ + { + "body": { + "nativeSrc": "3591:20:12", + "nodeType": "YulBlock", + "src": "3591:20:12", + "statements": [ + { + "nativeSrc": "3593:10:12", + "nodeType": "YulAssignment", + "src": "3593:10:12", + "value": { + "kind": "number", + "nativeSrc": "3602:1:12", + "nodeType": "YulLiteral", + "src": "3602:1:12", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "3593:5:12", + "nodeType": "YulIdentifier", + "src": "3593:5:12" + } + ] + }, + { + "nativeSrc": "3604:5:12", + "nodeType": "YulLeave", + "src": "3604:5:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "3581:8:12", + "nodeType": "YulIdentifier", + "src": "3581:8:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3574:6:12", + "nodeType": "YulIdentifier", + "src": "3574:6:12" + }, + "nativeSrc": "3574:16:12", + "nodeType": "YulFunctionCall", + "src": "3574:16:12" + }, + "nativeSrc": "3571:40:12", + "nodeType": "YulIf", + "src": "3571:40:12" + }, + { + "body": { + "nativeSrc": "3636:20:12", + "nodeType": "YulBlock", + "src": "3636:20:12", + "statements": [ + { + "nativeSrc": "3638:10:12", + "nodeType": "YulAssignment", + "src": "3638:10:12", + "value": { + "kind": "number", + "nativeSrc": "3647:1:12", + "nodeType": "YulLiteral", + "src": "3647:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "3638:5:12", + "nodeType": "YulIdentifier", + "src": "3638:5:12" + } + ] + }, + { + "nativeSrc": "3649:5:12", + "nodeType": "YulLeave", + "src": "3649:5:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nativeSrc": "3630:4:12", + "nodeType": "YulIdentifier", + "src": "3630:4:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3623:6:12", + "nodeType": "YulIdentifier", + "src": "3623:6:12" + }, + "nativeSrc": "3623:12:12", + "nodeType": "YulFunctionCall", + "src": "3623:12:12" + }, + "nativeSrc": "3620:36:12", + "nodeType": "YulIf", + "src": "3620:36:12" + }, + { + "cases": [ + { + "body": { + "nativeSrc": "3766:20:12", + "nodeType": "YulBlock", + "src": "3766:20:12", + "statements": [ + { + "nativeSrc": "3768:10:12", + "nodeType": "YulAssignment", + "src": "3768:10:12", + "value": { + "kind": "number", + "nativeSrc": "3777:1:12", + "nodeType": "YulLiteral", + "src": "3777:1:12", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "3768:5:12", + "nodeType": "YulIdentifier", + "src": "3768:5:12" + } + ] + }, + { + "nativeSrc": "3779:5:12", + "nodeType": "YulLeave", + "src": "3779:5:12" + } + ] + }, + "nativeSrc": "3759:27:12", + "nodeType": "YulCase", + "src": "3759:27:12", + "value": { + "kind": "number", + "nativeSrc": "3764:1:12", + "nodeType": "YulLiteral", + "src": "3764:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "3810:176:12", + "nodeType": "YulBlock", + "src": "3810:176:12", + "statements": [ + { + "body": { + "nativeSrc": "3845:22:12", + "nodeType": "YulBlock", + "src": "3845:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "3847:16:12", + "nodeType": "YulIdentifier", + "src": "3847:16:12" + }, + "nativeSrc": "3847:18:12", + "nodeType": "YulFunctionCall", + "src": "3847:18:12" + }, + "nativeSrc": "3847:18:12", + "nodeType": "YulExpressionStatement", + "src": "3847:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "3830:8:12", + "nodeType": "YulIdentifier", + "src": "3830:8:12" + }, + { + "kind": "number", + "nativeSrc": "3840:3:12", + "nodeType": "YulLiteral", + "src": "3840:3:12", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3827:2:12", + "nodeType": "YulIdentifier", + "src": "3827:2:12" + }, + "nativeSrc": "3827:17:12", + "nodeType": "YulFunctionCall", + "src": "3827:17:12" + }, + "nativeSrc": "3824:43:12", + "nodeType": "YulIf", + "src": "3824:43:12" + }, + { + "nativeSrc": "3880:25:12", + "nodeType": "YulAssignment", + "src": "3880:25:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3893:1:12", + "nodeType": "YulLiteral", + "src": "3893:1:12", + "type": "", + "value": "2" + }, + { + "name": "exponent", + "nativeSrc": "3896:8:12", + "nodeType": "YulIdentifier", + "src": "3896:8:12" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "3889:3:12", + "nodeType": "YulIdentifier", + "src": "3889:3:12" + }, + "nativeSrc": "3889:16:12", + "nodeType": "YulFunctionCall", + "src": "3889:16:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "3880:5:12", + "nodeType": "YulIdentifier", + "src": "3880:5:12" + } + ] + }, + { + "body": { + "nativeSrc": "3936:22:12", + "nodeType": "YulBlock", + "src": "3936:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "3938:16:12", + "nodeType": "YulIdentifier", + "src": "3938:16:12" + }, + "nativeSrc": "3938:18:12", + "nodeType": "YulFunctionCall", + "src": "3938:18:12" + }, + "nativeSrc": "3938:18:12", + "nodeType": "YulExpressionStatement", + "src": "3938:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nativeSrc": "3924:5:12", + "nodeType": "YulIdentifier", + "src": "3924:5:12" + }, + { + "name": "max", + "nativeSrc": "3931:3:12", + "nodeType": "YulIdentifier", + "src": "3931:3:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3921:2:12", + "nodeType": "YulIdentifier", + "src": "3921:2:12" + }, + "nativeSrc": "3921:14:12", + "nodeType": "YulFunctionCall", + "src": "3921:14:12" + }, + "nativeSrc": "3918:40:12", + "nodeType": "YulIf", + "src": "3918:40:12" + }, + { + "nativeSrc": "3971:5:12", + "nodeType": "YulLeave", + "src": "3971:5:12" + } + ] + }, + "nativeSrc": "3795:191:12", + "nodeType": "YulCase", + "src": "3795:191:12", + "value": { + "kind": "number", + "nativeSrc": "3800:1:12", + "nodeType": "YulLiteral", + "src": "3800:1:12", + "type": "", + "value": "2" + } + } + ], + "expression": { + "name": "base", + "nativeSrc": "3716:4:12", + "nodeType": "YulIdentifier", + "src": "3716:4:12" + }, + "nativeSrc": "3709:277:12", + "nodeType": "YulSwitch", + "src": "3709:277:12" + }, + { + "body": { + "nativeSrc": "4118:123:12", + "nodeType": "YulBlock", + "src": "4118:123:12", + "statements": [ + { + "nativeSrc": "4132:28:12", + "nodeType": "YulAssignment", + "src": "4132:28:12", + "value": { + "arguments": [ + { + "name": "base", + "nativeSrc": "4145:4:12", + "nodeType": "YulIdentifier", + "src": "4145:4:12" + }, + { + "name": "exponent", + "nativeSrc": "4151:8:12", + "nodeType": "YulIdentifier", + "src": "4151:8:12" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "4141:3:12", + "nodeType": "YulIdentifier", + "src": "4141:3:12" + }, + "nativeSrc": "4141:19:12", + "nodeType": "YulFunctionCall", + "src": "4141:19:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "4132:5:12", + "nodeType": "YulIdentifier", + "src": "4132:5:12" + } + ] + }, + { + "body": { + "nativeSrc": "4191:22:12", + "nodeType": "YulBlock", + "src": "4191:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "4193:16:12", + "nodeType": "YulIdentifier", + "src": "4193:16:12" + }, + "nativeSrc": "4193:18:12", + "nodeType": "YulFunctionCall", + "src": "4193:18:12" + }, + "nativeSrc": "4193:18:12", + "nodeType": "YulExpressionStatement", + "src": "4193:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nativeSrc": "4179:5:12", + "nodeType": "YulIdentifier", + "src": "4179:5:12" + }, + { + "name": "max", + "nativeSrc": "4186:3:12", + "nodeType": "YulIdentifier", + "src": "4186:3:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4176:2:12", + "nodeType": "YulIdentifier", + "src": "4176:2:12" + }, + "nativeSrc": "4176:14:12", + "nodeType": "YulFunctionCall", + "src": "4176:14:12" + }, + "nativeSrc": "4173:40:12", + "nodeType": "YulIf", + "src": "4173:40:12" + }, + { + "nativeSrc": "4226:5:12", + "nodeType": "YulLeave", + "src": "4226:5:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nativeSrc": "4021:4:12", + "nodeType": "YulIdentifier", + "src": "4021:4:12" + }, + { + "kind": "number", + "nativeSrc": "4027:2:12", + "nodeType": "YulLiteral", + "src": "4027:2:12", + "type": "", + "value": "11" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4018:2:12", + "nodeType": "YulIdentifier", + "src": "4018:2:12" + }, + "nativeSrc": "4018:12:12", + "nodeType": "YulFunctionCall", + "src": "4018:12:12" + }, + { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "4035:8:12", + "nodeType": "YulIdentifier", + "src": "4035:8:12" + }, + { + "kind": "number", + "nativeSrc": "4045:2:12", + "nodeType": "YulLiteral", + "src": "4045:2:12", + "type": "", + "value": "78" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4032:2:12", + "nodeType": "YulIdentifier", + "src": "4032:2:12" + }, + "nativeSrc": "4032:16:12", + "nodeType": "YulFunctionCall", + "src": "4032:16:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4014:3:12", + "nodeType": "YulIdentifier", + "src": "4014:3:12" + }, + "nativeSrc": "4014:35:12", + "nodeType": "YulFunctionCall", + "src": "4014:35:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nativeSrc": "4070:4:12", + "nodeType": "YulIdentifier", + "src": "4070:4:12" + }, + { + "kind": "number", + "nativeSrc": "4076:3:12", + "nodeType": "YulLiteral", + "src": "4076:3:12", + "type": "", + "value": "307" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4067:2:12", + "nodeType": "YulIdentifier", + "src": "4067:2:12" + }, + "nativeSrc": "4067:13:12", + "nodeType": "YulFunctionCall", + "src": "4067:13:12" + }, + { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "4085:8:12", + "nodeType": "YulIdentifier", + "src": "4085:8:12" + }, + { + "kind": "number", + "nativeSrc": "4095:2:12", + "nodeType": "YulLiteral", + "src": "4095:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4082:2:12", + "nodeType": "YulIdentifier", + "src": "4082:2:12" + }, + "nativeSrc": "4082:16:12", + "nodeType": "YulFunctionCall", + "src": "4082:16:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4063:3:12", + "nodeType": "YulIdentifier", + "src": "4063:3:12" + }, + "nativeSrc": "4063:36:12", + "nodeType": "YulFunctionCall", + "src": "4063:36:12" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3998:2:12", + "nodeType": "YulIdentifier", + "src": "3998:2:12" + }, + "nativeSrc": "3998:111:12", + "nodeType": "YulFunctionCall", + "src": "3998:111:12" + }, + "nativeSrc": "3995:246:12", + "nodeType": "YulIf", + "src": "3995:246:12" + }, + { + "nativeSrc": "4251:57:12", + "nodeType": "YulAssignment", + "src": "4251:57:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4285:1:12", + "nodeType": "YulLiteral", + "src": "4285:1:12", + "type": "", + "value": "1" + }, + { + "name": "base", + "nativeSrc": "4288:4:12", + "nodeType": "YulIdentifier", + "src": "4288:4:12" + }, + { + "name": "exponent", + "nativeSrc": "4294:8:12", + "nodeType": "YulIdentifier", + "src": "4294:8:12" + }, + { + "name": "max", + "nativeSrc": "4304:3:12", + "nodeType": "YulIdentifier", + "src": "4304:3:12" + } + ], + "functionName": { + "name": "checked_exp_helper", + "nativeSrc": "4266:18:12", + "nodeType": "YulIdentifier", + "src": "4266:18:12" + }, + "nativeSrc": "4266:42:12", + "nodeType": "YulFunctionCall", + "src": "4266:42:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "4251:5:12", + "nodeType": "YulIdentifier", + "src": "4251:5:12" + }, + { + "name": "base", + "nativeSrc": "4258:4:12", + "nodeType": "YulIdentifier", + "src": "4258:4:12" + } + ] + }, + { + "body": { + "nativeSrc": "4347:22:12", + "nodeType": "YulBlock", + "src": "4347:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "4349:16:12", + "nodeType": "YulIdentifier", + "src": "4349:16:12" + }, + "nativeSrc": "4349:18:12", + "nodeType": "YulFunctionCall", + "src": "4349:18:12" + }, + "nativeSrc": "4349:18:12", + "nodeType": "YulExpressionStatement", + "src": "4349:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nativeSrc": "4324:5:12", + "nodeType": "YulIdentifier", + "src": "4324:5:12" + }, + { + "arguments": [ + { + "name": "max", + "nativeSrc": "4335:3:12", + "nodeType": "YulIdentifier", + "src": "4335:3:12" + }, + { + "name": "base", + "nativeSrc": "4340:4:12", + "nodeType": "YulIdentifier", + "src": "4340:4:12" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4331:3:12", + "nodeType": "YulIdentifier", + "src": "4331:3:12" + }, + "nativeSrc": "4331:14:12", + "nodeType": "YulFunctionCall", + "src": "4331:14:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4321:2:12", + "nodeType": "YulIdentifier", + "src": "4321:2:12" + }, + "nativeSrc": "4321:25:12", + "nodeType": "YulFunctionCall", + "src": "4321:25:12" + }, + "nativeSrc": "4318:51:12", + "nodeType": "YulIf", + "src": "4318:51:12" + }, + { + "nativeSrc": "4378:25:12", + "nodeType": "YulAssignment", + "src": "4378:25:12", + "value": { + "arguments": [ + { + "name": "power", + "nativeSrc": "4391:5:12", + "nodeType": "YulIdentifier", + "src": "4391:5:12" + }, + { + "name": "base", + "nativeSrc": "4398:4:12", + "nodeType": "YulIdentifier", + "src": "4398:4:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4387:3:12", + "nodeType": "YulIdentifier", + "src": "4387:3:12" + }, + "nativeSrc": "4387:16:12", + "nodeType": "YulFunctionCall", + "src": "4387:16:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "4378:5:12", + "nodeType": "YulIdentifier", + "src": "4378:5:12" + } + ] + } + ] + }, + "name": "checked_exp_unsigned", + "nativeSrc": "3336:1073:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nativeSrc": "3366:4:12", + "nodeType": "YulTypedName", + "src": "3366:4:12", + "type": "" + }, + { + "name": "exponent", + "nativeSrc": "3372:8:12", + "nodeType": "YulTypedName", + "src": "3372:8:12", + "type": "" + }, + { + "name": "max", + "nativeSrc": "3382:3:12", + "nodeType": "YulTypedName", + "src": "3382:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nativeSrc": "3390:5:12", + "nodeType": "YulTypedName", + "src": "3390:5:12", + "type": "" + } + ], + "src": "3336:1073:12" + }, + { + "body": { + "nativeSrc": "4481:219:12", + "nodeType": "YulBlock", + "src": "4481:219:12", + "statements": [ + { + "nativeSrc": "4491:31:12", + "nodeType": "YulAssignment", + "src": "4491:31:12", + "value": { + "arguments": [ + { + "name": "base", + "nativeSrc": "4517:4:12", + "nodeType": "YulIdentifier", + "src": "4517:4:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4499:17:12", + "nodeType": "YulIdentifier", + "src": "4499:17:12" + }, + "nativeSrc": "4499:23:12", + "nodeType": "YulFunctionCall", + "src": "4499:23:12" + }, + "variableNames": [ + { + "name": "base", + "nativeSrc": "4491:4:12", + "nodeType": "YulIdentifier", + "src": "4491:4:12" + } + ] + }, + { + "nativeSrc": "4531:39:12", + "nodeType": "YulAssignment", + "src": "4531:39:12", + "value": { + "arguments": [ + { + "name": "exponent", + "nativeSrc": "4561:8:12", + "nodeType": "YulIdentifier", + "src": "4561:8:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4543:17:12", + "nodeType": "YulIdentifier", + "src": "4543:17:12" + }, + "nativeSrc": "4543:27:12", + "nodeType": "YulFunctionCall", + "src": "4543:27:12" + }, + "variableNames": [ + { + "name": "exponent", + "nativeSrc": "4531:8:12", + "nodeType": "YulIdentifier", + "src": "4531:8:12" + } + ] + }, + { + "nativeSrc": "4580:113:12", + "nodeType": "YulAssignment", + "src": "4580:113:12", + "value": { + "arguments": [ + { + "name": "base", + "nativeSrc": "4610:4:12", + "nodeType": "YulIdentifier", + "src": "4610:4:12" + }, + { + "name": "exponent", + "nativeSrc": "4616:8:12", + "nodeType": "YulIdentifier", + "src": "4616:8:12" + }, + { + "kind": "number", + "nativeSrc": "4626:66:12", + "nodeType": "YulLiteral", + "src": "4626:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "checked_exp_unsigned", + "nativeSrc": "4589:20:12", + "nodeType": "YulIdentifier", + "src": "4589:20:12" + }, + "nativeSrc": "4589:104:12", + "nodeType": "YulFunctionCall", + "src": "4589:104:12" + }, + "variableNames": [ + { + "name": "power", + "nativeSrc": "4580:5:12", + "nodeType": "YulIdentifier", + "src": "4580:5:12" + } + ] + } + ] + }, + "name": "checked_exp_t_uint256_t_uint256", + "nativeSrc": "4415:285:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nativeSrc": "4456:4:12", + "nodeType": "YulTypedName", + "src": "4456:4:12", + "type": "" + }, + { + "name": "exponent", + "nativeSrc": "4462:8:12", + "nodeType": "YulTypedName", + "src": "4462:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nativeSrc": "4475:5:12", + "nodeType": "YulTypedName", + "src": "4475:5:12", + "type": "" + } + ], + "src": "4415:285:12" + }, + { + "body": { + "nativeSrc": "4754:362:12", + "nodeType": "YulBlock", + "src": "4754:362:12", + "statements": [ + { + "nativeSrc": "4764:25:12", + "nodeType": "YulAssignment", + "src": "4764:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4787:1:12", + "nodeType": "YulIdentifier", + "src": "4787:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4769:17:12", + "nodeType": "YulIdentifier", + "src": "4769:17:12" + }, + "nativeSrc": "4769:20:12", + "nodeType": "YulFunctionCall", + "src": "4769:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "4764:1:12", + "nodeType": "YulIdentifier", + "src": "4764:1:12" + } + ] + }, + { + "nativeSrc": "4798:25:12", + "nodeType": "YulAssignment", + "src": "4798:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "4821:1:12", + "nodeType": "YulIdentifier", + "src": "4821:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4803:17:12", + "nodeType": "YulIdentifier", + "src": "4803:17:12" + }, + "nativeSrc": "4803:20:12", + "nodeType": "YulFunctionCall", + "src": "4803:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "4798:1:12", + "nodeType": "YulIdentifier", + "src": "4798:1:12" + } + ] + }, + { + "nativeSrc": "4832:28:12", + "nodeType": "YulVariableDeclaration", + "src": "4832:28:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4855:1:12", + "nodeType": "YulIdentifier", + "src": "4855:1:12" + }, + { + "name": "y", + "nativeSrc": "4858:1:12", + "nodeType": "YulIdentifier", + "src": "4858:1:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4851:3:12", + "nodeType": "YulIdentifier", + "src": "4851:3:12" + }, + "nativeSrc": "4851:9:12", + "nodeType": "YulFunctionCall", + "src": "4851:9:12" + }, + "variables": [ + { + "name": "product_raw", + "nativeSrc": "4836:11:12", + "nodeType": "YulTypedName", + "src": "4836:11:12", + "type": "" + } + ] + }, + { + "nativeSrc": "4869:41:12", + "nodeType": "YulAssignment", + "src": "4869:41:12", + "value": { + "arguments": [ + { + "name": "product_raw", + "nativeSrc": "4898:11:12", + "nodeType": "YulIdentifier", + "src": "4898:11:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4880:17:12", + "nodeType": "YulIdentifier", + "src": "4880:17:12" + }, + "nativeSrc": "4880:30:12", + "nodeType": "YulFunctionCall", + "src": "4880:30:12" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "4869:7:12", + "nodeType": "YulIdentifier", + "src": "4869:7:12" + } + ] + }, + { + "body": { + "nativeSrc": "5087:22:12", + "nodeType": "YulBlock", + "src": "5087:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "5089:16:12", + "nodeType": "YulIdentifier", + "src": "5089:16:12" + }, + "nativeSrc": "5089:18:12", + "nodeType": "YulFunctionCall", + "src": "5089:18:12" + }, + "nativeSrc": "5089:18:12", + "nodeType": "YulExpressionStatement", + "src": "5089:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "5020:1:12", + "nodeType": "YulIdentifier", + "src": "5020:1:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5013:6:12", + "nodeType": "YulIdentifier", + "src": "5013:6:12" + }, + "nativeSrc": "5013:9:12", + "nodeType": "YulFunctionCall", + "src": "5013:9:12" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "5043:1:12", + "nodeType": "YulIdentifier", + "src": "5043:1:12" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "5050:7:12", + "nodeType": "YulIdentifier", + "src": "5050:7:12" + }, + { + "name": "x", + "nativeSrc": "5059:1:12", + "nodeType": "YulIdentifier", + "src": "5059:1:12" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "5046:3:12", + "nodeType": "YulIdentifier", + "src": "5046:3:12" + }, + "nativeSrc": "5046:15:12", + "nodeType": "YulFunctionCall", + "src": "5046:15:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5040:2:12", + "nodeType": "YulIdentifier", + "src": "5040:2:12" + }, + "nativeSrc": "5040:22:12", + "nodeType": "YulFunctionCall", + "src": "5040:22:12" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4993:2:12", + "nodeType": "YulIdentifier", + "src": "4993:2:12" + }, + "nativeSrc": "4993:83:12", + "nodeType": "YulFunctionCall", + "src": "4993:83:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4973:6:12", + "nodeType": "YulIdentifier", + "src": "4973:6:12" + }, + "nativeSrc": "4973:113:12", + "nodeType": "YulFunctionCall", + "src": "4973:113:12" + }, + "nativeSrc": "4970:139:12", + "nodeType": "YulIf", + "src": "4970:139:12" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "4706:410:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "4737:1:12", + "nodeType": "YulTypedName", + "src": "4737:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "4740:1:12", + "nodeType": "YulTypedName", + "src": "4740:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "4746:7:12", + "nodeType": "YulTypedName", + "src": "4746:7:12", + "type": "" + } + ], + "src": "4706:410:12" + }, + { + "body": { + "nativeSrc": "5181:40:12", + "nodeType": "YulBlock", + "src": "5181:40:12", + "statements": [ + { + "nativeSrc": "5192:22:12", + "nodeType": "YulAssignment", + "src": "5192:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5208:5:12", + "nodeType": "YulIdentifier", + "src": "5208:5:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5202:5:12", + "nodeType": "YulIdentifier", + "src": "5202:5:12" + }, + "nativeSrc": "5202:12:12", + "nodeType": "YulFunctionCall", + "src": "5202:12:12" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5192:6:12", + "nodeType": "YulIdentifier", + "src": "5192:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "5122:99:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5164:5:12", + "nodeType": "YulTypedName", + "src": "5164:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "5174:6:12", + "nodeType": "YulTypedName", + "src": "5174:6:12", + "type": "" + } + ], + "src": "5122:99:12" + }, + { + "body": { + "nativeSrc": "5255:152:12", + "nodeType": "YulBlock", + "src": "5255:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5272:1:12", + "nodeType": "YulLiteral", + "src": "5272:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5275:77:12", + "nodeType": "YulLiteral", + "src": "5275:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5265:6:12", + "nodeType": "YulIdentifier", + "src": "5265:6:12" + }, + "nativeSrc": "5265:88:12", + "nodeType": "YulFunctionCall", + "src": "5265:88:12" + }, + "nativeSrc": "5265:88:12", + "nodeType": "YulExpressionStatement", + "src": "5265:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5369:1:12", + "nodeType": "YulLiteral", + "src": "5369:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "5372:4:12", + "nodeType": "YulLiteral", + "src": "5372:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5362:6:12", + "nodeType": "YulIdentifier", + "src": "5362:6:12" + }, + "nativeSrc": "5362:15:12", + "nodeType": "YulFunctionCall", + "src": "5362:15:12" + }, + "nativeSrc": "5362:15:12", + "nodeType": "YulExpressionStatement", + "src": "5362:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5393:1:12", + "nodeType": "YulLiteral", + "src": "5393:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5396:4:12", + "nodeType": "YulLiteral", + "src": "5396:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5386:6:12", + "nodeType": "YulIdentifier", + "src": "5386:6:12" + }, + "nativeSrc": "5386:15:12", + "nodeType": "YulFunctionCall", + "src": "5386:15:12" + }, + "nativeSrc": "5386:15:12", + "nodeType": "YulExpressionStatement", + "src": "5386:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "5227:180:12", + "nodeType": "YulFunctionDefinition", + "src": "5227:180:12" + }, + { + "body": { + "nativeSrc": "5441:152:12", + "nodeType": "YulBlock", + "src": "5441:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5458:1:12", + "nodeType": "YulLiteral", + "src": "5458:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5461:77:12", + "nodeType": "YulLiteral", + "src": "5461:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5451:6:12", + "nodeType": "YulIdentifier", + "src": "5451:6:12" + }, + "nativeSrc": "5451:88:12", + "nodeType": "YulFunctionCall", + "src": "5451:88:12" + }, + "nativeSrc": "5451:88:12", + "nodeType": "YulExpressionStatement", + "src": "5451:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5555:1:12", + "nodeType": "YulLiteral", + "src": "5555:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "5558:4:12", + "nodeType": "YulLiteral", + "src": "5558:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5548:6:12", + "nodeType": "YulIdentifier", + "src": "5548:6:12" + }, + "nativeSrc": "5548:15:12", + "nodeType": "YulFunctionCall", + "src": "5548:15:12" + }, + "nativeSrc": "5548:15:12", + "nodeType": "YulExpressionStatement", + "src": "5548:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5579:1:12", + "nodeType": "YulLiteral", + "src": "5579:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5582:4:12", + "nodeType": "YulLiteral", + "src": "5582:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5572:6:12", + "nodeType": "YulIdentifier", + "src": "5572:6:12" + }, + "nativeSrc": "5572:15:12", + "nodeType": "YulFunctionCall", + "src": "5572:15:12" + }, + "nativeSrc": "5572:15:12", + "nodeType": "YulExpressionStatement", + "src": "5572:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "5413:180:12", + "nodeType": "YulFunctionDefinition", + "src": "5413:180:12" + }, + { + "body": { + "nativeSrc": "5650:269:12", + "nodeType": "YulBlock", + "src": "5650:269:12", + "statements": [ + { + "nativeSrc": "5660:22:12", + "nodeType": "YulAssignment", + "src": "5660:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "5674:4:12", + "nodeType": "YulIdentifier", + "src": "5674:4:12" + }, + { + "kind": "number", + "nativeSrc": "5680:1:12", + "nodeType": "YulLiteral", + "src": "5680:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "5670:3:12", + "nodeType": "YulIdentifier", + "src": "5670:3:12" + }, + "nativeSrc": "5670:12:12", + "nodeType": "YulFunctionCall", + "src": "5670:12:12" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5660:6:12", + "nodeType": "YulIdentifier", + "src": "5660:6:12" + } + ] + }, + { + "nativeSrc": "5691:38:12", + "nodeType": "YulVariableDeclaration", + "src": "5691:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "5721:4:12", + "nodeType": "YulIdentifier", + "src": "5721:4:12" + }, + { + "kind": "number", + "nativeSrc": "5727:1:12", + "nodeType": "YulLiteral", + "src": "5727:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5717:3:12", + "nodeType": "YulIdentifier", + "src": "5717:3:12" + }, + "nativeSrc": "5717:12:12", + "nodeType": "YulFunctionCall", + "src": "5717:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5695:18:12", + "nodeType": "YulTypedName", + "src": "5695:18:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5768:51:12", + "nodeType": "YulBlock", + "src": "5768:51:12", + "statements": [ + { + "nativeSrc": "5782:27:12", + "nodeType": "YulAssignment", + "src": "5782:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "5796:6:12", + "nodeType": "YulIdentifier", + "src": "5796:6:12" + }, + { + "kind": "number", + "nativeSrc": "5804:4:12", + "nodeType": "YulLiteral", + "src": "5804:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5792:3:12", + "nodeType": "YulIdentifier", + "src": "5792:3:12" + }, + "nativeSrc": "5792:17:12", + "nodeType": "YulFunctionCall", + "src": "5792:17:12" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5782:6:12", + "nodeType": "YulIdentifier", + "src": "5782:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5748:18:12", + "nodeType": "YulIdentifier", + "src": "5748:18:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5741:6:12", + "nodeType": "YulIdentifier", + "src": "5741:6:12" + }, + "nativeSrc": "5741:26:12", + "nodeType": "YulFunctionCall", + "src": "5741:26:12" + }, + "nativeSrc": "5738:81:12", + "nodeType": "YulIf", + "src": "5738:81:12" + }, + { + "body": { + "nativeSrc": "5871:42:12", + "nodeType": "YulBlock", + "src": "5871:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "5885:16:12", + "nodeType": "YulIdentifier", + "src": "5885:16:12" + }, + "nativeSrc": "5885:18:12", + "nodeType": "YulFunctionCall", + "src": "5885:18:12" + }, + "nativeSrc": "5885:18:12", + "nodeType": "YulExpressionStatement", + "src": "5885:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5835:18:12", + "nodeType": "YulIdentifier", + "src": "5835:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5858:6:12", + "nodeType": "YulIdentifier", + "src": "5858:6:12" + }, + { + "kind": "number", + "nativeSrc": "5866:2:12", + "nodeType": "YulLiteral", + "src": "5866:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5855:2:12", + "nodeType": "YulIdentifier", + "src": "5855:2:12" + }, + "nativeSrc": "5855:14:12", + "nodeType": "YulFunctionCall", + "src": "5855:14:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5832:2:12", + "nodeType": "YulIdentifier", + "src": "5832:2:12" + }, + "nativeSrc": "5832:38:12", + "nodeType": "YulFunctionCall", + "src": "5832:38:12" + }, + "nativeSrc": "5829:84:12", + "nodeType": "YulIf", + "src": "5829:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "5599:320:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "5634:4:12", + "nodeType": "YulTypedName", + "src": "5634:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "5643:6:12", + "nodeType": "YulTypedName", + "src": "5643:6:12", + "type": "" + } + ], + "src": "5599:320:12" + }, + { + "body": { + "nativeSrc": "5979:87:12", + "nodeType": "YulBlock", + "src": "5979:87:12", + "statements": [ + { + "nativeSrc": "5989:11:12", + "nodeType": "YulAssignment", + "src": "5989:11:12", + "value": { + "name": "ptr", + "nativeSrc": "5997:3:12", + "nodeType": "YulIdentifier", + "src": "5997:3:12" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "5989:4:12", + "nodeType": "YulIdentifier", + "src": "5989:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6017:1:12", + "nodeType": "YulLiteral", + "src": "6017:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "6020:3:12", + "nodeType": "YulIdentifier", + "src": "6020:3:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6010:6:12", + "nodeType": "YulIdentifier", + "src": "6010:6:12" + }, + "nativeSrc": "6010:14:12", + "nodeType": "YulFunctionCall", + "src": "6010:14:12" + }, + "nativeSrc": "6010:14:12", + "nodeType": "YulExpressionStatement", + "src": "6010:14:12" + }, + { + "nativeSrc": "6033:26:12", + "nodeType": "YulAssignment", + "src": "6033:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6051:1:12", + "nodeType": "YulLiteral", + "src": "6051:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6054:4:12", + "nodeType": "YulLiteral", + "src": "6054:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "6041:9:12", + "nodeType": "YulIdentifier", + "src": "6041:9:12" + }, + "nativeSrc": "6041:18:12", + "nodeType": "YulFunctionCall", + "src": "6041:18:12" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6033:4:12", + "nodeType": "YulIdentifier", + "src": "6033:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5925:141:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "5966:3:12", + "nodeType": "YulTypedName", + "src": "5966:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "5974:4:12", + "nodeType": "YulTypedName", + "src": "5974:4:12", + "type": "" + } + ], + "src": "5925:141:12" + }, + { + "body": { + "nativeSrc": "6116:49:12", + "nodeType": "YulBlock", + "src": "6116:49:12", + "statements": [ + { + "nativeSrc": "6126:33:12", + "nodeType": "YulAssignment", + "src": "6126:33:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6144:5:12", + "nodeType": "YulIdentifier", + "src": "6144:5:12" + }, + { + "kind": "number", + "nativeSrc": "6151:2:12", + "nodeType": "YulLiteral", + "src": "6151:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6140:3:12", + "nodeType": "YulIdentifier", + "src": "6140:3:12" + }, + "nativeSrc": "6140:14:12", + "nodeType": "YulFunctionCall", + "src": "6140:14:12" + }, + { + "kind": "number", + "nativeSrc": "6156:2:12", + "nodeType": "YulLiteral", + "src": "6156:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6136:3:12", + "nodeType": "YulIdentifier", + "src": "6136:3:12" + }, + "nativeSrc": "6136:23:12", + "nodeType": "YulFunctionCall", + "src": "6136:23:12" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6126:6:12", + "nodeType": "YulIdentifier", + "src": "6126:6:12" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "6072:93:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6099:5:12", + "nodeType": "YulTypedName", + "src": "6099:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6109:6:12", + "nodeType": "YulTypedName", + "src": "6109:6:12", + "type": "" + } + ], + "src": "6072:93:12" + }, + { + "body": { + "nativeSrc": "6224:54:12", + "nodeType": "YulBlock", + "src": "6224:54:12", + "statements": [ + { + "nativeSrc": "6234:37:12", + "nodeType": "YulAssignment", + "src": "6234:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6259:4:12", + "nodeType": "YulIdentifier", + "src": "6259:4:12" + }, + { + "name": "value", + "nativeSrc": "6265:5:12", + "nodeType": "YulIdentifier", + "src": "6265:5:12" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6255:3:12", + "nodeType": "YulIdentifier", + "src": "6255:3:12" + }, + "nativeSrc": "6255:16:12", + "nodeType": "YulFunctionCall", + "src": "6255:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6234:8:12", + "nodeType": "YulIdentifier", + "src": "6234:8:12" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "6171:107:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6199:4:12", + "nodeType": "YulTypedName", + "src": "6199:4:12", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6205:5:12", + "nodeType": "YulTypedName", + "src": "6205:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6215:8:12", + "nodeType": "YulTypedName", + "src": "6215:8:12", + "type": "" + } + ], + "src": "6171:107:12" + }, + { + "body": { + "nativeSrc": "6360:317:12", + "nodeType": "YulBlock", + "src": "6360:317:12", + "statements": [ + { + "nativeSrc": "6370:35:12", + "nodeType": "YulVariableDeclaration", + "src": "6370:35:12", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "6391:10:12", + "nodeType": "YulIdentifier", + "src": "6391:10:12" + }, + { + "kind": "number", + "nativeSrc": "6403:1:12", + "nodeType": "YulLiteral", + "src": "6403:1:12", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6387:3:12", + "nodeType": "YulIdentifier", + "src": "6387:3:12" + }, + "nativeSrc": "6387:18:12", + "nodeType": "YulFunctionCall", + "src": "6387:18:12" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "6374:9:12", + "nodeType": "YulTypedName", + "src": "6374:9:12", + "type": "" + } + ] + }, + { + "nativeSrc": "6414:109:12", + "nodeType": "YulVariableDeclaration", + "src": "6414:109:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "6445:9:12", + "nodeType": "YulIdentifier", + "src": "6445:9:12" + }, + { + "kind": "number", + "nativeSrc": "6456:66:12", + "nodeType": "YulLiteral", + "src": "6456:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "6426:18:12", + "nodeType": "YulIdentifier", + "src": "6426:18:12" + }, + "nativeSrc": "6426:97:12", + "nodeType": "YulFunctionCall", + "src": "6426:97:12" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6418:4:12", + "nodeType": "YulTypedName", + "src": "6418:4:12", + "type": "" + } + ] + }, + { + "nativeSrc": "6532:51:12", + "nodeType": "YulAssignment", + "src": "6532:51:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "6563:9:12", + "nodeType": "YulIdentifier", + "src": "6563:9:12" + }, + { + "name": "toInsert", + "nativeSrc": "6574:8:12", + "nodeType": "YulIdentifier", + "src": "6574:8:12" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "6544:18:12", + "nodeType": "YulIdentifier", + "src": "6544:18:12" + }, + "nativeSrc": "6544:39:12", + "nodeType": "YulFunctionCall", + "src": "6544:39:12" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "6532:8:12", + "nodeType": "YulIdentifier", + "src": "6532:8:12" + } + ] + }, + { + "nativeSrc": "6592:30:12", + "nodeType": "YulAssignment", + "src": "6592:30:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6605:5:12", + "nodeType": "YulIdentifier", + "src": "6605:5:12" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "6616:4:12", + "nodeType": "YulIdentifier", + "src": "6616:4:12" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6612:3:12", + "nodeType": "YulIdentifier", + "src": "6612:3:12" + }, + "nativeSrc": "6612:9:12", + "nodeType": "YulFunctionCall", + "src": "6612:9:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6601:3:12", + "nodeType": "YulIdentifier", + "src": "6601:3:12" + }, + "nativeSrc": "6601:21:12", + "nodeType": "YulFunctionCall", + "src": "6601:21:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6592:5:12", + "nodeType": "YulIdentifier", + "src": "6592:5:12" + } + ] + }, + { + "nativeSrc": "6631:40:12", + "nodeType": "YulAssignment", + "src": "6631:40:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6644:5:12", + "nodeType": "YulIdentifier", + "src": "6644:5:12" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "6655:8:12", + "nodeType": "YulIdentifier", + "src": "6655:8:12" + }, + { + "name": "mask", + "nativeSrc": "6665:4:12", + "nodeType": "YulIdentifier", + "src": "6665:4:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6651:3:12", + "nodeType": "YulIdentifier", + "src": "6651:3:12" + }, + "nativeSrc": "6651:19:12", + "nodeType": "YulFunctionCall", + "src": "6651:19:12" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6641:2:12", + "nodeType": "YulIdentifier", + "src": "6641:2:12" + }, + "nativeSrc": "6641:30:12", + "nodeType": "YulFunctionCall", + "src": "6641:30:12" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6631:6:12", + "nodeType": "YulIdentifier", + "src": "6631:6:12" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "6284:393:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6321:5:12", + "nodeType": "YulTypedName", + "src": "6321:5:12", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "6328:10:12", + "nodeType": "YulTypedName", + "src": "6328:10:12", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "6340:8:12", + "nodeType": "YulTypedName", + "src": "6340:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6353:6:12", + "nodeType": "YulTypedName", + "src": "6353:6:12", + "type": "" + } + ], + "src": "6284:393:12" + }, + { + "body": { + "nativeSrc": "6715:28:12", + "nodeType": "YulBlock", + "src": "6715:28:12", + "statements": [ + { + "nativeSrc": "6725:12:12", + "nodeType": "YulAssignment", + "src": "6725:12:12", + "value": { + "name": "value", + "nativeSrc": "6732:5:12", + "nodeType": "YulIdentifier", + "src": "6732:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "6725:3:12", + "nodeType": "YulIdentifier", + "src": "6725:3:12" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "6683:60:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6701:5:12", + "nodeType": "YulTypedName", + "src": "6701:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "6711:3:12", + "nodeType": "YulTypedName", + "src": "6711:3:12", + "type": "" + } + ], + "src": "6683:60:12" + }, + { + "body": { + "nativeSrc": "6809:82:12", + "nodeType": "YulBlock", + "src": "6809:82:12", + "statements": [ + { + "nativeSrc": "6819:66:12", + "nodeType": "YulAssignment", + "src": "6819:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6877:5:12", + "nodeType": "YulIdentifier", + "src": "6877:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "6859:17:12", + "nodeType": "YulIdentifier", + "src": "6859:17:12" + }, + "nativeSrc": "6859:24:12", + "nodeType": "YulFunctionCall", + "src": "6859:24:12" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "6850:8:12", + "nodeType": "YulIdentifier", + "src": "6850:8:12" + }, + "nativeSrc": "6850:34:12", + "nodeType": "YulFunctionCall", + "src": "6850:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "6832:17:12", + "nodeType": "YulIdentifier", + "src": "6832:17:12" + }, + "nativeSrc": "6832:53:12", + "nodeType": "YulFunctionCall", + "src": "6832:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "6819:9:12", + "nodeType": "YulIdentifier", + "src": "6819:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "6749:142:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6789:5:12", + "nodeType": "YulTypedName", + "src": "6789:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "6799:9:12", + "nodeType": "YulTypedName", + "src": "6799:9:12", + "type": "" + } + ], + "src": "6749:142:12" + }, + { + "body": { + "nativeSrc": "6944:28:12", + "nodeType": "YulBlock", + "src": "6944:28:12", + "statements": [ + { + "nativeSrc": "6954:12:12", + "nodeType": "YulAssignment", + "src": "6954:12:12", + "value": { + "name": "value", + "nativeSrc": "6961:5:12", + "nodeType": "YulIdentifier", + "src": "6961:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "6954:3:12", + "nodeType": "YulIdentifier", + "src": "6954:3:12" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "6897:75:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6930:5:12", + "nodeType": "YulTypedName", + "src": "6930:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "6940:3:12", + "nodeType": "YulTypedName", + "src": "6940:3:12", + "type": "" + } + ], + "src": "6897:75:12" + }, + { + "body": { + "nativeSrc": "7054:193:12", + "nodeType": "YulBlock", + "src": "7054:193:12", + "statements": [ + { + "nativeSrc": "7064:63:12", + "nodeType": "YulVariableDeclaration", + "src": "7064:63:12", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "7119:7:12", + "nodeType": "YulIdentifier", + "src": "7119:7:12" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "7088:30:12", + "nodeType": "YulIdentifier", + "src": "7088:30:12" + }, + "nativeSrc": "7088:39:12", + "nodeType": "YulFunctionCall", + "src": "7088:39:12" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "7068:16:12", + "nodeType": "YulTypedName", + "src": "7068:16:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7143:4:12", + "nodeType": "YulIdentifier", + "src": "7143:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7183:4:12", + "nodeType": "YulIdentifier", + "src": "7183:4:12" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7177:5:12", + "nodeType": "YulIdentifier", + "src": "7177:5:12" + }, + "nativeSrc": "7177:11:12", + "nodeType": "YulFunctionCall", + "src": "7177:11:12" + }, + { + "name": "offset", + "nativeSrc": "7190:6:12", + "nodeType": "YulIdentifier", + "src": "7190:6:12" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "7222:16:12", + "nodeType": "YulIdentifier", + "src": "7222:16:12" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "7198:23:12", + "nodeType": "YulIdentifier", + "src": "7198:23:12" + }, + "nativeSrc": "7198:41:12", + "nodeType": "YulFunctionCall", + "src": "7198:41:12" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "7149:27:12", + "nodeType": "YulIdentifier", + "src": "7149:27:12" + }, + "nativeSrc": "7149:91:12", + "nodeType": "YulFunctionCall", + "src": "7149:91:12" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7136:6:12", + "nodeType": "YulIdentifier", + "src": "7136:6:12" + }, + "nativeSrc": "7136:105:12", + "nodeType": "YulFunctionCall", + "src": "7136:105:12" + }, + "nativeSrc": "7136:105:12", + "nodeType": "YulExpressionStatement", + "src": "7136:105:12" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "6978:269:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "7031:4:12", + "nodeType": "YulTypedName", + "src": "7031:4:12", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "7037:6:12", + "nodeType": "YulTypedName", + "src": "7037:6:12", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "7045:7:12", + "nodeType": "YulTypedName", + "src": "7045:7:12", + "type": "" + } + ], + "src": "6978:269:12" + }, + { + "body": { + "nativeSrc": "7302:24:12", + "nodeType": "YulBlock", + "src": "7302:24:12", + "statements": [ + { + "nativeSrc": "7312:8:12", + "nodeType": "YulAssignment", + "src": "7312:8:12", + "value": { + "kind": "number", + "nativeSrc": "7319:1:12", + "nodeType": "YulLiteral", + "src": "7319:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "7312:3:12", + "nodeType": "YulIdentifier", + "src": "7312:3:12" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "7253:73:12", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "7298:3:12", + "nodeType": "YulTypedName", + "src": "7298:3:12", + "type": "" + } + ], + "src": "7253:73:12" + }, + { + "body": { + "nativeSrc": "7385:136:12", + "nodeType": "YulBlock", + "src": "7385:136:12", + "statements": [ + { + "nativeSrc": "7395:46:12", + "nodeType": "YulVariableDeclaration", + "src": "7395:46:12", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "7409:30:12", + "nodeType": "YulIdentifier", + "src": "7409:30:12" + }, + "nativeSrc": "7409:32:12", + "nodeType": "YulFunctionCall", + "src": "7409:32:12" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "7399:6:12", + "nodeType": "YulTypedName", + "src": "7399:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7494:4:12", + "nodeType": "YulIdentifier", + "src": "7494:4:12" + }, + { + "name": "offset", + "nativeSrc": "7500:6:12", + "nodeType": "YulIdentifier", + "src": "7500:6:12" + }, + { + "name": "zero_0", + "nativeSrc": "7508:6:12", + "nodeType": "YulIdentifier", + "src": "7508:6:12" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "7450:43:12", + "nodeType": "YulIdentifier", + "src": "7450:43:12" + }, + "nativeSrc": "7450:65:12", + "nodeType": "YulFunctionCall", + "src": "7450:65:12" + }, + "nativeSrc": "7450:65:12", + "nodeType": "YulExpressionStatement", + "src": "7450:65:12" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "7332:189:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "7371:4:12", + "nodeType": "YulTypedName", + "src": "7371:4:12", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "7377:6:12", + "nodeType": "YulTypedName", + "src": "7377:6:12", + "type": "" + } + ], + "src": "7332:189:12" + }, + { + "body": { + "nativeSrc": "7577:136:12", + "nodeType": "YulBlock", + "src": "7577:136:12", + "statements": [ + { + "body": { + "nativeSrc": "7644:63:12", + "nodeType": "YulBlock", + "src": "7644:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "7688:5:12", + "nodeType": "YulIdentifier", + "src": "7688:5:12" + }, + { + "kind": "number", + "nativeSrc": "7695:1:12", + "nodeType": "YulLiteral", + "src": "7695:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "7658:29:12", + "nodeType": "YulIdentifier", + "src": "7658:29:12" + }, + "nativeSrc": "7658:39:12", + "nodeType": "YulFunctionCall", + "src": "7658:39:12" + }, + "nativeSrc": "7658:39:12", + "nodeType": "YulExpressionStatement", + "src": "7658:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "7597:5:12", + "nodeType": "YulIdentifier", + "src": "7597:5:12" + }, + { + "name": "end", + "nativeSrc": "7604:3:12", + "nodeType": "YulIdentifier", + "src": "7604:3:12" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7594:2:12", + "nodeType": "YulIdentifier", + "src": "7594:2:12" + }, + "nativeSrc": "7594:14:12", + "nodeType": "YulFunctionCall", + "src": "7594:14:12" + }, + "nativeSrc": "7587:120:12", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7609:26:12", + "nodeType": "YulBlock", + "src": "7609:26:12", + "statements": [ + { + "nativeSrc": "7611:22:12", + "nodeType": "YulAssignment", + "src": "7611:22:12", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "7624:5:12", + "nodeType": "YulIdentifier", + "src": "7624:5:12" + }, + { + "kind": "number", + "nativeSrc": "7631:1:12", + "nodeType": "YulLiteral", + "src": "7631:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7620:3:12", + "nodeType": "YulIdentifier", + "src": "7620:3:12" + }, + "nativeSrc": "7620:13:12", + "nodeType": "YulFunctionCall", + "src": "7620:13:12" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "7611:5:12", + "nodeType": "YulIdentifier", + "src": "7611:5:12" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7591:2:12", + "nodeType": "YulBlock", + "src": "7591:2:12", + "statements": [] + }, + "src": "7587:120:12" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "7527:186:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "7565:5:12", + "nodeType": "YulTypedName", + "src": "7565:5:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7572:3:12", + "nodeType": "YulTypedName", + "src": "7572:3:12", + "type": "" + } + ], + "src": "7527:186:12" + }, + { + "body": { + "nativeSrc": "7798:464:12", + "nodeType": "YulBlock", + "src": "7798:464:12", + "statements": [ + { + "body": { + "nativeSrc": "7824:431:12", + "nodeType": "YulBlock", + "src": "7824:431:12", + "statements": [ + { + "nativeSrc": "7838:54:12", + "nodeType": "YulVariableDeclaration", + "src": "7838:54:12", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7886:5:12", + "nodeType": "YulIdentifier", + "src": "7886:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7854:31:12", + "nodeType": "YulIdentifier", + "src": "7854:31:12" + }, + "nativeSrc": "7854:38:12", + "nodeType": "YulFunctionCall", + "src": "7854:38:12" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "7842:8:12", + "nodeType": "YulTypedName", + "src": "7842:8:12", + "type": "" + } + ] + }, + { + "nativeSrc": "7905:63:12", + "nodeType": "YulVariableDeclaration", + "src": "7905:63:12", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "7928:8:12", + "nodeType": "YulIdentifier", + "src": "7928:8:12" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "7956:10:12", + "nodeType": "YulIdentifier", + "src": "7956:10:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "7938:17:12", + "nodeType": "YulIdentifier", + "src": "7938:17:12" + }, + "nativeSrc": "7938:29:12", + "nodeType": "YulFunctionCall", + "src": "7938:29:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7924:3:12", + "nodeType": "YulIdentifier", + "src": "7924:3:12" + }, + "nativeSrc": "7924:44:12", + "nodeType": "YulFunctionCall", + "src": "7924:44:12" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "7909:11:12", + "nodeType": "YulTypedName", + "src": "7909:11:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8125:27:12", + "nodeType": "YulBlock", + "src": "8125:27:12", + "statements": [ + { + "nativeSrc": "8127:23:12", + "nodeType": "YulAssignment", + "src": "8127:23:12", + "value": { + "name": "dataArea", + "nativeSrc": "8142:8:12", + "nodeType": "YulIdentifier", + "src": "8142:8:12" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "8127:11:12", + "nodeType": "YulIdentifier", + "src": "8127:11:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "8109:10:12", + "nodeType": "YulIdentifier", + "src": "8109:10:12" + }, + { + "kind": "number", + "nativeSrc": "8121:2:12", + "nodeType": "YulLiteral", + "src": "8121:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8106:2:12", + "nodeType": "YulIdentifier", + "src": "8106:2:12" + }, + "nativeSrc": "8106:18:12", + "nodeType": "YulFunctionCall", + "src": "8106:18:12" + }, + "nativeSrc": "8103:49:12", + "nodeType": "YulIf", + "src": "8103:49:12" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "8194:11:12", + "nodeType": "YulIdentifier", + "src": "8194:11:12" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "8211:8:12", + "nodeType": "YulIdentifier", + "src": "8211:8:12" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "8239:3:12", + "nodeType": "YulIdentifier", + "src": "8239:3:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "8221:17:12", + "nodeType": "YulIdentifier", + "src": "8221:17:12" + }, + "nativeSrc": "8221:22:12", + "nodeType": "YulFunctionCall", + "src": "8221:22:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8207:3:12", + "nodeType": "YulIdentifier", + "src": "8207:3:12" + }, + "nativeSrc": "8207:37:12", + "nodeType": "YulFunctionCall", + "src": "8207:37:12" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "8165:28:12", + "nodeType": "YulIdentifier", + "src": "8165:28:12" + }, + "nativeSrc": "8165:80:12", + "nodeType": "YulFunctionCall", + "src": "8165:80:12" + }, + "nativeSrc": "8165:80:12", + "nodeType": "YulExpressionStatement", + "src": "8165:80:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "7815:3:12", + "nodeType": "YulIdentifier", + "src": "7815:3:12" + }, + { + "kind": "number", + "nativeSrc": "7820:2:12", + "nodeType": "YulLiteral", + "src": "7820:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7812:2:12", + "nodeType": "YulIdentifier", + "src": "7812:2:12" + }, + "nativeSrc": "7812:11:12", + "nodeType": "YulFunctionCall", + "src": "7812:11:12" + }, + "nativeSrc": "7809:446:12", + "nodeType": "YulIf", + "src": "7809:446:12" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7719:543:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "7774:5:12", + "nodeType": "YulTypedName", + "src": "7774:5:12", + "type": "" + }, + { + "name": "len", + "nativeSrc": "7781:3:12", + "nodeType": "YulTypedName", + "src": "7781:3:12", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "7786:10:12", + "nodeType": "YulTypedName", + "src": "7786:10:12", + "type": "" + } + ], + "src": "7719:543:12" + }, + { + "body": { + "nativeSrc": "8331:54:12", + "nodeType": "YulBlock", + "src": "8331:54:12", + "statements": [ + { + "nativeSrc": "8341:37:12", + "nodeType": "YulAssignment", + "src": "8341:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "8366:4:12", + "nodeType": "YulIdentifier", + "src": "8366:4:12" + }, + { + "name": "value", + "nativeSrc": "8372:5:12", + "nodeType": "YulIdentifier", + "src": "8372:5:12" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "8362:3:12", + "nodeType": "YulIdentifier", + "src": "8362:3:12" + }, + "nativeSrc": "8362:16:12", + "nodeType": "YulFunctionCall", + "src": "8362:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "8341:8:12", + "nodeType": "YulIdentifier", + "src": "8341:8:12" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "8268:117:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "8306:4:12", + "nodeType": "YulTypedName", + "src": "8306:4:12", + "type": "" + }, + { + "name": "value", + "nativeSrc": "8312:5:12", + "nodeType": "YulTypedName", + "src": "8312:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "8322:8:12", + "nodeType": "YulTypedName", + "src": "8322:8:12", + "type": "" + } + ], + "src": "8268:117:12" + }, + { + "body": { + "nativeSrc": "8442:118:12", + "nodeType": "YulBlock", + "src": "8442:118:12", + "statements": [ + { + "nativeSrc": "8452:68:12", + "nodeType": "YulVariableDeclaration", + "src": "8452:68:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8501:1:12", + "nodeType": "YulLiteral", + "src": "8501:1:12", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "8504:5:12", + "nodeType": "YulIdentifier", + "src": "8504:5:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "8497:3:12", + "nodeType": "YulIdentifier", + "src": "8497:3:12" + }, + "nativeSrc": "8497:13:12", + "nodeType": "YulFunctionCall", + "src": "8497:13:12" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8516:1:12", + "nodeType": "YulLiteral", + "src": "8516:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8512:3:12", + "nodeType": "YulIdentifier", + "src": "8512:3:12" + }, + "nativeSrc": "8512:6:12", + "nodeType": "YulFunctionCall", + "src": "8512:6:12" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "8468:28:12", + "nodeType": "YulIdentifier", + "src": "8468:28:12" + }, + "nativeSrc": "8468:51:12", + "nodeType": "YulFunctionCall", + "src": "8468:51:12" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8464:3:12", + "nodeType": "YulIdentifier", + "src": "8464:3:12" + }, + "nativeSrc": "8464:56:12", + "nodeType": "YulFunctionCall", + "src": "8464:56:12" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "8456:4:12", + "nodeType": "YulTypedName", + "src": "8456:4:12", + "type": "" + } + ] + }, + { + "nativeSrc": "8529:25:12", + "nodeType": "YulAssignment", + "src": "8529:25:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8543:4:12", + "nodeType": "YulIdentifier", + "src": "8543:4:12" + }, + { + "name": "mask", + "nativeSrc": "8549:4:12", + "nodeType": "YulIdentifier", + "src": "8549:4:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8539:3:12", + "nodeType": "YulIdentifier", + "src": "8539:3:12" + }, + "nativeSrc": "8539:15:12", + "nodeType": "YulFunctionCall", + "src": "8539:15:12" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "8529:6:12", + "nodeType": "YulIdentifier", + "src": "8529:6:12" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "8391:169:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "8419:4:12", + "nodeType": "YulTypedName", + "src": "8419:4:12", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "8425:5:12", + "nodeType": "YulTypedName", + "src": "8425:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "8435:6:12", + "nodeType": "YulTypedName", + "src": "8435:6:12", + "type": "" + } + ], + "src": "8391:169:12" + }, + { + "body": { + "nativeSrc": "8646:214:12", + "nodeType": "YulBlock", + "src": "8646:214:12", + "statements": [ + { + "nativeSrc": "8779:37:12", + "nodeType": "YulAssignment", + "src": "8779:37:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8806:4:12", + "nodeType": "YulIdentifier", + "src": "8806:4:12" + }, + { + "name": "len", + "nativeSrc": "8812:3:12", + "nodeType": "YulIdentifier", + "src": "8812:3:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "8787:18:12", + "nodeType": "YulIdentifier", + "src": "8787:18:12" + }, + "nativeSrc": "8787:29:12", + "nodeType": "YulFunctionCall", + "src": "8787:29:12" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "8779:4:12", + "nodeType": "YulIdentifier", + "src": "8779:4:12" + } + ] + }, + { + "nativeSrc": "8825:29:12", + "nodeType": "YulAssignment", + "src": "8825:29:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8836:4:12", + "nodeType": "YulIdentifier", + "src": "8836:4:12" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8846:1:12", + "nodeType": "YulLiteral", + "src": "8846:1:12", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "8849:3:12", + "nodeType": "YulIdentifier", + "src": "8849:3:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "8842:3:12", + "nodeType": "YulIdentifier", + "src": "8842:3:12" + }, + "nativeSrc": "8842:11:12", + "nodeType": "YulFunctionCall", + "src": "8842:11:12" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "8833:2:12", + "nodeType": "YulIdentifier", + "src": "8833:2:12" + }, + "nativeSrc": "8833:21:12", + "nodeType": "YulFunctionCall", + "src": "8833:21:12" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "8825:4:12", + "nodeType": "YulIdentifier", + "src": "8825:4:12" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8565:295:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "8627:4:12", + "nodeType": "YulTypedName", + "src": "8627:4:12", + "type": "" + }, + { + "name": "len", + "nativeSrc": "8633:3:12", + "nodeType": "YulTypedName", + "src": "8633:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "8641:4:12", + "nodeType": "YulTypedName", + "src": "8641:4:12", + "type": "" + } + ], + "src": "8565:295:12" + }, + { + "body": { + "nativeSrc": "8957:1303:12", + "nodeType": "YulBlock", + "src": "8957:1303:12", + "statements": [ + { + "nativeSrc": "8968:51:12", + "nodeType": "YulVariableDeclaration", + "src": "8968:51:12", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "9015:3:12", + "nodeType": "YulIdentifier", + "src": "9015:3:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "8982:32:12", + "nodeType": "YulIdentifier", + "src": "8982:32:12" + }, + "nativeSrc": "8982:37:12", + "nodeType": "YulFunctionCall", + "src": "8982:37:12" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "8972:6:12", + "nodeType": "YulTypedName", + "src": "8972:6:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9104:22:12", + "nodeType": "YulBlock", + "src": "9104:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9106:16:12", + "nodeType": "YulIdentifier", + "src": "9106:16:12" + }, + "nativeSrc": "9106:18:12", + "nodeType": "YulFunctionCall", + "src": "9106:18:12" + }, + "nativeSrc": "9106:18:12", + "nodeType": "YulExpressionStatement", + "src": "9106:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9076:6:12", + "nodeType": "YulIdentifier", + "src": "9076:6:12" + }, + { + "kind": "number", + "nativeSrc": "9084:18:12", + "nodeType": "YulLiteral", + "src": "9084:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9073:2:12", + "nodeType": "YulIdentifier", + "src": "9073:2:12" + }, + "nativeSrc": "9073:30:12", + "nodeType": "YulFunctionCall", + "src": "9073:30:12" + }, + "nativeSrc": "9070:56:12", + "nodeType": "YulIf", + "src": "9070:56:12" + }, + { + "nativeSrc": "9136:52:12", + "nodeType": "YulVariableDeclaration", + "src": "9136:52:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9182:4:12", + "nodeType": "YulIdentifier", + "src": "9182:4:12" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "9176:5:12", + "nodeType": "YulIdentifier", + "src": "9176:5:12" + }, + "nativeSrc": "9176:11:12", + "nodeType": "YulFunctionCall", + "src": "9176:11:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "9150:25:12", + "nodeType": "YulIdentifier", + "src": "9150:25:12" + }, + "nativeSrc": "9150:38:12", + "nodeType": "YulFunctionCall", + "src": "9150:38:12" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "9140:6:12", + "nodeType": "YulTypedName", + "src": "9140:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9281:4:12", + "nodeType": "YulIdentifier", + "src": "9281:4:12" + }, + { + "name": "oldLen", + "nativeSrc": "9287:6:12", + "nodeType": "YulIdentifier", + "src": "9287:6:12" + }, + { + "name": "newLen", + "nativeSrc": "9295:6:12", + "nodeType": "YulIdentifier", + "src": "9295:6:12" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "9235:45:12", + "nodeType": "YulIdentifier", + "src": "9235:45:12" + }, + "nativeSrc": "9235:67:12", + "nodeType": "YulFunctionCall", + "src": "9235:67:12" + }, + "nativeSrc": "9235:67:12", + "nodeType": "YulExpressionStatement", + "src": "9235:67:12" + }, + { + "nativeSrc": "9312:18:12", + "nodeType": "YulVariableDeclaration", + "src": "9312:18:12", + "value": { + "kind": "number", + "nativeSrc": "9329:1:12", + "nodeType": "YulLiteral", + "src": "9329:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "9316:9:12", + "nodeType": "YulTypedName", + "src": "9316:9:12", + "type": "" + } + ] + }, + { + "nativeSrc": "9340:17:12", + "nodeType": "YulAssignment", + "src": "9340:17:12", + "value": { + "kind": "number", + "nativeSrc": "9353:4:12", + "nodeType": "YulLiteral", + "src": "9353:4:12", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "9340:9:12", + "nodeType": "YulIdentifier", + "src": "9340:9:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "9404:611:12", + "nodeType": "YulBlock", + "src": "9404:611:12", + "statements": [ + { + "nativeSrc": "9418:37:12", + "nodeType": "YulVariableDeclaration", + "src": "9418:37:12", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9437:6:12", + "nodeType": "YulIdentifier", + "src": "9437:6:12" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9449:4:12", + "nodeType": "YulLiteral", + "src": "9449:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "9445:3:12", + "nodeType": "YulIdentifier", + "src": "9445:3:12" + }, + "nativeSrc": "9445:9:12", + "nodeType": "YulFunctionCall", + "src": "9445:9:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9433:3:12", + "nodeType": "YulIdentifier", + "src": "9433:3:12" + }, + "nativeSrc": "9433:22:12", + "nodeType": "YulFunctionCall", + "src": "9433:22:12" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "9422:7:12", + "nodeType": "YulTypedName", + "src": "9422:7:12", + "type": "" + } + ] + }, + { + "nativeSrc": "9469:51:12", + "nodeType": "YulVariableDeclaration", + "src": "9469:51:12", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9515:4:12", + "nodeType": "YulIdentifier", + "src": "9515:4:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "9483:31:12", + "nodeType": "YulIdentifier", + "src": "9483:31:12" + }, + "nativeSrc": "9483:37:12", + "nodeType": "YulFunctionCall", + "src": "9483:37:12" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "9473:6:12", + "nodeType": "YulTypedName", + "src": "9473:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "9533:10:12", + "nodeType": "YulVariableDeclaration", + "src": "9533:10:12", + "value": { + "kind": "number", + "nativeSrc": "9542:1:12", + "nodeType": "YulLiteral", + "src": "9542:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "9537:1:12", + "nodeType": "YulTypedName", + "src": "9537:1:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9601:163:12", + "nodeType": "YulBlock", + "src": "9601:163:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "9626:6:12", + "nodeType": "YulIdentifier", + "src": "9626:6:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9644:3:12", + "nodeType": "YulIdentifier", + "src": "9644:3:12" + }, + { + "name": "srcOffset", + "nativeSrc": "9649:9:12", + "nodeType": "YulIdentifier", + "src": "9649:9:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9640:3:12", + "nodeType": "YulIdentifier", + "src": "9640:3:12" + }, + "nativeSrc": "9640:19:12", + "nodeType": "YulFunctionCall", + "src": "9640:19:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9634:5:12", + "nodeType": "YulIdentifier", + "src": "9634:5:12" + }, + "nativeSrc": "9634:26:12", + "nodeType": "YulFunctionCall", + "src": "9634:26:12" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9619:6:12", + "nodeType": "YulIdentifier", + "src": "9619:6:12" + }, + "nativeSrc": "9619:42:12", + "nodeType": "YulFunctionCall", + "src": "9619:42:12" + }, + "nativeSrc": "9619:42:12", + "nodeType": "YulExpressionStatement", + "src": "9619:42:12" + }, + { + "nativeSrc": "9678:24:12", + "nodeType": "YulAssignment", + "src": "9678:24:12", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "9692:6:12", + "nodeType": "YulIdentifier", + "src": "9692:6:12" + }, + { + "kind": "number", + "nativeSrc": "9700:1:12", + "nodeType": "YulLiteral", + "src": "9700:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9688:3:12", + "nodeType": "YulIdentifier", + "src": "9688:3:12" + }, + "nativeSrc": "9688:14:12", + "nodeType": "YulFunctionCall", + "src": "9688:14:12" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "9678:6:12", + "nodeType": "YulIdentifier", + "src": "9678:6:12" + } + ] + }, + { + "nativeSrc": "9719:31:12", + "nodeType": "YulAssignment", + "src": "9719:31:12", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "9736:9:12", + "nodeType": "YulIdentifier", + "src": "9736:9:12" + }, + { + "kind": "number", + "nativeSrc": "9747:2:12", + "nodeType": "YulLiteral", + "src": "9747:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9732:3:12", + "nodeType": "YulIdentifier", + "src": "9732:3:12" + }, + "nativeSrc": "9732:18:12", + "nodeType": "YulFunctionCall", + "src": "9732:18:12" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "9719:9:12", + "nodeType": "YulIdentifier", + "src": "9719:9:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9567:1:12", + "nodeType": "YulIdentifier", + "src": "9567:1:12" + }, + { + "name": "loopEnd", + "nativeSrc": "9570:7:12", + "nodeType": "YulIdentifier", + "src": "9570:7:12" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9564:2:12", + "nodeType": "YulIdentifier", + "src": "9564:2:12" + }, + "nativeSrc": "9564:14:12", + "nodeType": "YulFunctionCall", + "src": "9564:14:12" + }, + "nativeSrc": "9556:208:12", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "9579:21:12", + "nodeType": "YulBlock", + "src": "9579:21:12", + "statements": [ + { + "nativeSrc": "9581:17:12", + "nodeType": "YulAssignment", + "src": "9581:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9590:1:12", + "nodeType": "YulIdentifier", + "src": "9590:1:12" + }, + { + "kind": "number", + "nativeSrc": "9593:4:12", + "nodeType": "YulLiteral", + "src": "9593:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9586:3:12", + "nodeType": "YulIdentifier", + "src": "9586:3:12" + }, + "nativeSrc": "9586:12:12", + "nodeType": "YulFunctionCall", + "src": "9586:12:12" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "9581:1:12", + "nodeType": "YulIdentifier", + "src": "9581:1:12" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "9560:3:12", + "nodeType": "YulBlock", + "src": "9560:3:12", + "statements": [] + }, + "src": "9556:208:12" + }, + { + "body": { + "nativeSrc": "9800:156:12", + "nodeType": "YulBlock", + "src": "9800:156:12", + "statements": [ + { + "nativeSrc": "9818:43:12", + "nodeType": "YulVariableDeclaration", + "src": "9818:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9845:3:12", + "nodeType": "YulIdentifier", + "src": "9845:3:12" + }, + { + "name": "srcOffset", + "nativeSrc": "9850:9:12", + "nodeType": "YulIdentifier", + "src": "9850:9:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9841:3:12", + "nodeType": "YulIdentifier", + "src": "9841:3:12" + }, + "nativeSrc": "9841:19:12", + "nodeType": "YulFunctionCall", + "src": "9841:19:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9835:5:12", + "nodeType": "YulIdentifier", + "src": "9835:5:12" + }, + "nativeSrc": "9835:26:12", + "nodeType": "YulFunctionCall", + "src": "9835:26:12" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "9822:9:12", + "nodeType": "YulTypedName", + "src": "9822:9:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "9885:6:12", + "nodeType": "YulIdentifier", + "src": "9885:6:12" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "9912:9:12", + "nodeType": "YulIdentifier", + "src": "9912:9:12" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9927:6:12", + "nodeType": "YulIdentifier", + "src": "9927:6:12" + }, + { + "kind": "number", + "nativeSrc": "9935:4:12", + "nodeType": "YulLiteral", + "src": "9935:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9923:3:12", + "nodeType": "YulIdentifier", + "src": "9923:3:12" + }, + "nativeSrc": "9923:17:12", + "nodeType": "YulFunctionCall", + "src": "9923:17:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "9893:18:12", + "nodeType": "YulIdentifier", + "src": "9893:18:12" + }, + "nativeSrc": "9893:48:12", + "nodeType": "YulFunctionCall", + "src": "9893:48:12" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9878:6:12", + "nodeType": "YulIdentifier", + "src": "9878:6:12" + }, + "nativeSrc": "9878:64:12", + "nodeType": "YulFunctionCall", + "src": "9878:64:12" + }, + "nativeSrc": "9878:64:12", + "nodeType": "YulExpressionStatement", + "src": "9878:64:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "9783:7:12", + "nodeType": "YulIdentifier", + "src": "9783:7:12" + }, + { + "name": "newLen", + "nativeSrc": "9792:6:12", + "nodeType": "YulIdentifier", + "src": "9792:6:12" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9780:2:12", + "nodeType": "YulIdentifier", + "src": "9780:2:12" + }, + "nativeSrc": "9780:19:12", + "nodeType": "YulFunctionCall", + "src": "9780:19:12" + }, + "nativeSrc": "9777:179:12", + "nodeType": "YulIf", + "src": "9777:179:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9976:4:12", + "nodeType": "YulIdentifier", + "src": "9976:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9990:6:12", + "nodeType": "YulIdentifier", + "src": "9990:6:12" + }, + { + "kind": "number", + "nativeSrc": "9998:1:12", + "nodeType": "YulLiteral", + "src": "9998:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "9986:3:12", + "nodeType": "YulIdentifier", + "src": "9986:3:12" + }, + "nativeSrc": "9986:14:12", + "nodeType": "YulFunctionCall", + "src": "9986:14:12" + }, + { + "kind": "number", + "nativeSrc": "10002:1:12", + "nodeType": "YulLiteral", + "src": "10002:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9982:3:12", + "nodeType": "YulIdentifier", + "src": "9982:3:12" + }, + "nativeSrc": "9982:22:12", + "nodeType": "YulFunctionCall", + "src": "9982:22:12" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9969:6:12", + "nodeType": "YulIdentifier", + "src": "9969:6:12" + }, + "nativeSrc": "9969:36:12", + "nodeType": "YulFunctionCall", + "src": "9969:36:12" + }, + "nativeSrc": "9969:36:12", + "nodeType": "YulExpressionStatement", + "src": "9969:36:12" + } + ] + }, + "nativeSrc": "9397:618:12", + "nodeType": "YulCase", + "src": "9397:618:12", + "value": { + "kind": "number", + "nativeSrc": "9402:1:12", + "nodeType": "YulLiteral", + "src": "9402:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "10032:222:12", + "nodeType": "YulBlock", + "src": "10032:222:12", + "statements": [ + { + "nativeSrc": "10046:14:12", + "nodeType": "YulVariableDeclaration", + "src": "10046:14:12", + "value": { + "kind": "number", + "nativeSrc": "10059:1:12", + "nodeType": "YulLiteral", + "src": "10059:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "10050:5:12", + "nodeType": "YulTypedName", + "src": "10050:5:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10083:67:12", + "nodeType": "YulBlock", + "src": "10083:67:12", + "statements": [ + { + "nativeSrc": "10101:35:12", + "nodeType": "YulAssignment", + "src": "10101:35:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10120:3:12", + "nodeType": "YulIdentifier", + "src": "10120:3:12" + }, + { + "name": "srcOffset", + "nativeSrc": "10125:9:12", + "nodeType": "YulIdentifier", + "src": "10125:9:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10116:3:12", + "nodeType": "YulIdentifier", + "src": "10116:3:12" + }, + "nativeSrc": "10116:19:12", + "nodeType": "YulFunctionCall", + "src": "10116:19:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10110:5:12", + "nodeType": "YulIdentifier", + "src": "10110:5:12" + }, + "nativeSrc": "10110:26:12", + "nodeType": "YulFunctionCall", + "src": "10110:26:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "10101:5:12", + "nodeType": "YulIdentifier", + "src": "10101:5:12" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "10076:6:12", + "nodeType": "YulIdentifier", + "src": "10076:6:12" + }, + "nativeSrc": "10073:77:12", + "nodeType": "YulIf", + "src": "10073:77:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "10170:4:12", + "nodeType": "YulIdentifier", + "src": "10170:4:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10229:5:12", + "nodeType": "YulIdentifier", + "src": "10229:5:12" + }, + { + "name": "newLen", + "nativeSrc": "10236:6:12", + "nodeType": "YulIdentifier", + "src": "10236:6:12" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "10176:52:12", + "nodeType": "YulIdentifier", + "src": "10176:52:12" + }, + "nativeSrc": "10176:67:12", + "nodeType": "YulFunctionCall", + "src": "10176:67:12" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "10163:6:12", + "nodeType": "YulIdentifier", + "src": "10163:6:12" + }, + "nativeSrc": "10163:81:12", + "nodeType": "YulFunctionCall", + "src": "10163:81:12" + }, + "nativeSrc": "10163:81:12", + "nodeType": "YulExpressionStatement", + "src": "10163:81:12" + } + ] + }, + "nativeSrc": "10024:230:12", + "nodeType": "YulCase", + "src": "10024:230:12", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9377:6:12", + "nodeType": "YulIdentifier", + "src": "9377:6:12" + }, + { + "kind": "number", + "nativeSrc": "9385:2:12", + "nodeType": "YulLiteral", + "src": "9385:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9374:2:12", + "nodeType": "YulIdentifier", + "src": "9374:2:12" + }, + "nativeSrc": "9374:14:12", + "nodeType": "YulFunctionCall", + "src": "9374:14:12" + }, + "nativeSrc": "9367:887:12", + "nodeType": "YulSwitch", + "src": "9367:887:12" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "8865:1395:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "8946:4:12", + "nodeType": "YulTypedName", + "src": "8946:4:12", + "type": "" + }, + { + "name": "src", + "nativeSrc": "8952:3:12", + "nodeType": "YulTypedName", + "src": "8952:3:12", + "type": "" + } + ], + "src": "8865:1395:12" + }, + { + "body": { + "nativeSrc": "10319:32:12", + "nodeType": "YulBlock", + "src": "10319:32:12", + "statements": [ + { + "nativeSrc": "10329:16:12", + "nodeType": "YulAssignment", + "src": "10329:16:12", + "value": { + "name": "value", + "nativeSrc": "10340:5:12", + "nodeType": "YulIdentifier", + "src": "10340:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "10329:7:12", + "nodeType": "YulIdentifier", + "src": "10329:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_rational_0_by_1", + "nativeSrc": "10266:85:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10301:5:12", + "nodeType": "YulTypedName", + "src": "10301:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "10311:7:12", + "nodeType": "YulTypedName", + "src": "10311:7:12", + "type": "" + } + ], + "src": "10266:85:12" + }, + { + "body": { + "nativeSrc": "10425:90:12", + "nodeType": "YulBlock", + "src": "10425:90:12", + "statements": [ + { + "nativeSrc": "10435:74:12", + "nodeType": "YulAssignment", + "src": "10435:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10501:5:12", + "nodeType": "YulIdentifier", + "src": "10501:5:12" + } + ], + "functionName": { + "name": "cleanup_t_rational_0_by_1", + "nativeSrc": "10475:25:12", + "nodeType": "YulIdentifier", + "src": "10475:25:12" + }, + "nativeSrc": "10475:32:12", + "nodeType": "YulFunctionCall", + "src": "10475:32:12" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "10466:8:12", + "nodeType": "YulIdentifier", + "src": "10466:8:12" + }, + "nativeSrc": "10466:42:12", + "nodeType": "YulFunctionCall", + "src": "10466:42:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "10448:17:12", + "nodeType": "YulIdentifier", + "src": "10448:17:12" + }, + "nativeSrc": "10448:61:12", + "nodeType": "YulFunctionCall", + "src": "10448:61:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "10435:9:12", + "nodeType": "YulIdentifier", + "src": "10435:9:12" + } + ] + } + ] + }, + "name": "convert_t_rational_0_by_1_to_t_uint256", + "nativeSrc": "10357:158:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10405:5:12", + "nodeType": "YulTypedName", + "src": "10405:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "10415:9:12", + "nodeType": "YulTypedName", + "src": "10415:9:12", + "type": "" + } + ], + "src": "10357:158:12" + }, + { + "body": { + "nativeSrc": "10594:74:12", + "nodeType": "YulBlock", + "src": "10594:74:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10611:3:12", + "nodeType": "YulIdentifier", + "src": "10611:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10655:5:12", + "nodeType": "YulIdentifier", + "src": "10655:5:12" + } + ], + "functionName": { + "name": "convert_t_rational_0_by_1_to_t_uint256", + "nativeSrc": "10616:38:12", + "nodeType": "YulIdentifier", + "src": "10616:38:12" + }, + "nativeSrc": "10616:45:12", + "nodeType": "YulFunctionCall", + "src": "10616:45:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10604:6:12", + "nodeType": "YulIdentifier", + "src": "10604:6:12" + }, + "nativeSrc": "10604:58:12", + "nodeType": "YulFunctionCall", + "src": "10604:58:12" + }, + "nativeSrc": "10604:58:12", + "nodeType": "YulExpressionStatement", + "src": "10604:58:12" + } + ] + }, + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nativeSrc": "10521:147:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10582:5:12", + "nodeType": "YulTypedName", + "src": "10582:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "10589:3:12", + "nodeType": "YulTypedName", + "src": "10589:3:12", + "type": "" + } + ], + "src": "10521:147:12" + }, + { + "body": { + "nativeSrc": "10780:132:12", + "nodeType": "YulBlock", + "src": "10780:132:12", + "statements": [ + { + "nativeSrc": "10790:26:12", + "nodeType": "YulAssignment", + "src": "10790:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10802:9:12", + "nodeType": "YulIdentifier", + "src": "10802:9:12" + }, + { + "kind": "number", + "nativeSrc": "10813:2:12", + "nodeType": "YulLiteral", + "src": "10813:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10798:3:12", + "nodeType": "YulIdentifier", + "src": "10798:3:12" + }, + "nativeSrc": "10798:18:12", + "nodeType": "YulFunctionCall", + "src": "10798:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10790:4:12", + "nodeType": "YulIdentifier", + "src": "10790:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10878:6:12", + "nodeType": "YulIdentifier", + "src": "10878:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10891:9:12", + "nodeType": "YulIdentifier", + "src": "10891:9:12" + }, + { + "kind": "number", + "nativeSrc": "10902:1:12", + "nodeType": "YulLiteral", + "src": "10902:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10887:3:12", + "nodeType": "YulIdentifier", + "src": "10887:3:12" + }, + "nativeSrc": "10887:17:12", + "nodeType": "YulFunctionCall", + "src": "10887:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nativeSrc": "10826:51:12", + "nodeType": "YulIdentifier", + "src": "10826:51:12" + }, + "nativeSrc": "10826:79:12", + "nodeType": "YulFunctionCall", + "src": "10826:79:12" + }, + "nativeSrc": "10826:79:12", + "nodeType": "YulExpressionStatement", + "src": "10826:79:12" + } + ] + }, + "name": "abi_encode_tuple_t_rational_0_by_1__to_t_uint256__fromStack_reversed", + "nativeSrc": "10674:238:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10752:9:12", + "nodeType": "YulTypedName", + "src": "10752:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10764:6:12", + "nodeType": "YulTypedName", + "src": "10764:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10775:4:12", + "nodeType": "YulTypedName", + "src": "10775:4:12", + "type": "" + } + ], + "src": "10674:238:12" + }, + { + "body": { + "nativeSrc": "10983:53:12", + "nodeType": "YulBlock", + "src": "10983:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11000:3:12", + "nodeType": "YulIdentifier", + "src": "11000:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11023:5:12", + "nodeType": "YulIdentifier", + "src": "11023:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "11005:17:12", + "nodeType": "YulIdentifier", + "src": "11005:17:12" + }, + "nativeSrc": "11005:24:12", + "nodeType": "YulFunctionCall", + "src": "11005:24:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10993:6:12", + "nodeType": "YulIdentifier", + "src": "10993:6:12" + }, + "nativeSrc": "10993:37:12", + "nodeType": "YulFunctionCall", + "src": "10993:37:12" + }, + "nativeSrc": "10993:37:12", + "nodeType": "YulExpressionStatement", + "src": "10993:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "10918:118:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10971:5:12", + "nodeType": "YulTypedName", + "src": "10971:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "10978:3:12", + "nodeType": "YulTypedName", + "src": "10978:3:12", + "type": "" + } + ], + "src": "10918:118:12" + }, + { + "body": { + "nativeSrc": "11140:124:12", + "nodeType": "YulBlock", + "src": "11140:124:12", + "statements": [ + { + "nativeSrc": "11150:26:12", + "nodeType": "YulAssignment", + "src": "11150:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11162:9:12", + "nodeType": "YulIdentifier", + "src": "11162:9:12" + }, + { + "kind": "number", + "nativeSrc": "11173:2:12", + "nodeType": "YulLiteral", + "src": "11173:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11158:3:12", + "nodeType": "YulIdentifier", + "src": "11158:3:12" + }, + "nativeSrc": "11158:18:12", + "nodeType": "YulFunctionCall", + "src": "11158:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11150:4:12", + "nodeType": "YulIdentifier", + "src": "11150:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11230:6:12", + "nodeType": "YulIdentifier", + "src": "11230:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11243:9:12", + "nodeType": "YulIdentifier", + "src": "11243:9:12" + }, + { + "kind": "number", + "nativeSrc": "11254:1:12", + "nodeType": "YulLiteral", + "src": "11254:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11239:3:12", + "nodeType": "YulIdentifier", + "src": "11239:3:12" + }, + "nativeSrc": "11239:17:12", + "nodeType": "YulFunctionCall", + "src": "11239:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "11186:43:12", + "nodeType": "YulIdentifier", + "src": "11186:43:12" + }, + "nativeSrc": "11186:71:12", + "nodeType": "YulFunctionCall", + "src": "11186:71:12" + }, + "nativeSrc": "11186:71:12", + "nodeType": "YulExpressionStatement", + "src": "11186:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "11042:222:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11112:9:12", + "nodeType": "YulTypedName", + "src": "11112:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11124:6:12", + "nodeType": "YulTypedName", + "src": "11124:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11135:4:12", + "nodeType": "YulTypedName", + "src": "11135:4:12", + "type": "" + } + ], + "src": "11042:222:12" + }, + { + "body": { + "nativeSrc": "11298:152:12", + "nodeType": "YulBlock", + "src": "11298:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11315:1:12", + "nodeType": "YulLiteral", + "src": "11315:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11318:77:12", + "nodeType": "YulLiteral", + "src": "11318:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11308:6:12", + "nodeType": "YulIdentifier", + "src": "11308:6:12" + }, + "nativeSrc": "11308:88:12", + "nodeType": "YulFunctionCall", + "src": "11308:88:12" + }, + "nativeSrc": "11308:88:12", + "nodeType": "YulExpressionStatement", + "src": "11308:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11412:1:12", + "nodeType": "YulLiteral", + "src": "11412:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "11415:4:12", + "nodeType": "YulLiteral", + "src": "11415:4:12", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11405:6:12", + "nodeType": "YulIdentifier", + "src": "11405:6:12" + }, + "nativeSrc": "11405:15:12", + "nodeType": "YulFunctionCall", + "src": "11405:15:12" + }, + "nativeSrc": "11405:15:12", + "nodeType": "YulExpressionStatement", + "src": "11405:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11436:1:12", + "nodeType": "YulLiteral", + "src": "11436:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11439:4:12", + "nodeType": "YulLiteral", + "src": "11439:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11429:6:12", + "nodeType": "YulIdentifier", + "src": "11429:6:12" + }, + "nativeSrc": "11429:15:12", + "nodeType": "YulFunctionCall", + "src": "11429:15:12" + }, + "nativeSrc": "11429:15:12", + "nodeType": "YulExpressionStatement", + "src": "11429:15:12" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "11270:180:12", + "nodeType": "YulFunctionDefinition", + "src": "11270:180:12" + }, + { + "body": { + "nativeSrc": "11498:143:12", + "nodeType": "YulBlock", + "src": "11498:143:12", + "statements": [ + { + "nativeSrc": "11508:25:12", + "nodeType": "YulAssignment", + "src": "11508:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11531:1:12", + "nodeType": "YulIdentifier", + "src": "11531:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11513:17:12", + "nodeType": "YulIdentifier", + "src": "11513:17:12" + }, + "nativeSrc": "11513:20:12", + "nodeType": "YulFunctionCall", + "src": "11513:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "11508:1:12", + "nodeType": "YulIdentifier", + "src": "11508:1:12" + } + ] + }, + { + "nativeSrc": "11542:25:12", + "nodeType": "YulAssignment", + "src": "11542:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "11565:1:12", + "nodeType": "YulIdentifier", + "src": "11565:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11547:17:12", + "nodeType": "YulIdentifier", + "src": "11547:17:12" + }, + "nativeSrc": "11547:20:12", + "nodeType": "YulFunctionCall", + "src": "11547:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "11542:1:12", + "nodeType": "YulIdentifier", + "src": "11542:1:12" + } + ] + }, + { + "body": { + "nativeSrc": "11589:22:12", + "nodeType": "YulBlock", + "src": "11589:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nativeSrc": "11591:16:12", + "nodeType": "YulIdentifier", + "src": "11591:16:12" + }, + "nativeSrc": "11591:18:12", + "nodeType": "YulFunctionCall", + "src": "11591:18:12" + }, + "nativeSrc": "11591:18:12", + "nodeType": "YulExpressionStatement", + "src": "11591:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "11586:1:12", + "nodeType": "YulIdentifier", + "src": "11586:1:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11579:6:12", + "nodeType": "YulIdentifier", + "src": "11579:6:12" + }, + "nativeSrc": "11579:9:12", + "nodeType": "YulFunctionCall", + "src": "11579:9:12" + }, + "nativeSrc": "11576:35:12", + "nodeType": "YulIf", + "src": "11576:35:12" + }, + { + "nativeSrc": "11621:14:12", + "nodeType": "YulAssignment", + "src": "11621:14:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11630:1:12", + "nodeType": "YulIdentifier", + "src": "11630:1:12" + }, + { + "name": "y", + "nativeSrc": "11633:1:12", + "nodeType": "YulIdentifier", + "src": "11633:1:12" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "11626:3:12", + "nodeType": "YulIdentifier", + "src": "11626:3:12" + }, + "nativeSrc": "11626:9:12", + "nodeType": "YulFunctionCall", + "src": "11626:9:12" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "11621:1:12", + "nodeType": "YulIdentifier", + "src": "11621:1:12" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "11456:185:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "11487:1:12", + "nodeType": "YulTypedName", + "src": "11487:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "11490:1:12", + "nodeType": "YulTypedName", + "src": "11490:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "11496:1:12", + "nodeType": "YulTypedName", + "src": "11496:1:12", + "type": "" + } + ], + "src": "11456:185:12" + }, + { + "body": { + "nativeSrc": "11712:53:12", + "nodeType": "YulBlock", + "src": "11712:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11729:3:12", + "nodeType": "YulIdentifier", + "src": "11729:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11752:5:12", + "nodeType": "YulIdentifier", + "src": "11752:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11734:17:12", + "nodeType": "YulIdentifier", + "src": "11734:17:12" + }, + "nativeSrc": "11734:24:12", + "nodeType": "YulFunctionCall", + "src": "11734:24:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11722:6:12", + "nodeType": "YulIdentifier", + "src": "11722:6:12" + }, + "nativeSrc": "11722:37:12", + "nodeType": "YulFunctionCall", + "src": "11722:37:12" + }, + "nativeSrc": "11722:37:12", + "nodeType": "YulExpressionStatement", + "src": "11722:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "11647:118:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11700:5:12", + "nodeType": "YulTypedName", + "src": "11700:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "11707:3:12", + "nodeType": "YulTypedName", + "src": "11707:3:12", + "type": "" + } + ], + "src": "11647:118:12" + }, + { + "body": { + "nativeSrc": "11897:206:12", + "nodeType": "YulBlock", + "src": "11897:206:12", + "statements": [ + { + "nativeSrc": "11907:26:12", + "nodeType": "YulAssignment", + "src": "11907:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11919:9:12", + "nodeType": "YulIdentifier", + "src": "11919:9:12" + }, + { + "kind": "number", + "nativeSrc": "11930:2:12", + "nodeType": "YulLiteral", + "src": "11930:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11915:3:12", + "nodeType": "YulIdentifier", + "src": "11915:3:12" + }, + "nativeSrc": "11915:18:12", + "nodeType": "YulFunctionCall", + "src": "11915:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11907:4:12", + "nodeType": "YulIdentifier", + "src": "11907:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11987:6:12", + "nodeType": "YulIdentifier", + "src": "11987:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12000:9:12", + "nodeType": "YulIdentifier", + "src": "12000:9:12" + }, + { + "kind": "number", + "nativeSrc": "12011:1:12", + "nodeType": "YulLiteral", + "src": "12011:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11996:3:12", + "nodeType": "YulIdentifier", + "src": "11996:3:12" + }, + "nativeSrc": "11996:17:12", + "nodeType": "YulFunctionCall", + "src": "11996:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "11943:43:12", + "nodeType": "YulIdentifier", + "src": "11943:43:12" + }, + "nativeSrc": "11943:71:12", + "nodeType": "YulFunctionCall", + "src": "11943:71:12" + }, + "nativeSrc": "11943:71:12", + "nodeType": "YulExpressionStatement", + "src": "11943:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12068:6:12", + "nodeType": "YulIdentifier", + "src": "12068:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12081:9:12", + "nodeType": "YulIdentifier", + "src": "12081:9:12" + }, + { + "kind": "number", + "nativeSrc": "12092:2:12", + "nodeType": "YulLiteral", + "src": "12092:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12077:3:12", + "nodeType": "YulIdentifier", + "src": "12077:3:12" + }, + "nativeSrc": "12077:18:12", + "nodeType": "YulFunctionCall", + "src": "12077:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12024:43:12", + "nodeType": "YulIdentifier", + "src": "12024:43:12" + }, + "nativeSrc": "12024:72:12", + "nodeType": "YulFunctionCall", + "src": "12024:72:12" + }, + "nativeSrc": "12024:72:12", + "nodeType": "YulExpressionStatement", + "src": "12024:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "11771:332:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11861:9:12", + "nodeType": "YulTypedName", + "src": "11861:9:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11873:6:12", + "nodeType": "YulTypedName", + "src": "11873:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11881:6:12", + "nodeType": "YulTypedName", + "src": "11881:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11892:4:12", + "nodeType": "YulTypedName", + "src": "11892:4:12", + "type": "" + } + ], + "src": "11771:332:12" + }, + { + "body": { + "nativeSrc": "12137:152:12", + "nodeType": "YulBlock", + "src": "12137:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12154:1:12", + "nodeType": "YulLiteral", + "src": "12154:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12157:77:12", + "nodeType": "YulLiteral", + "src": "12157:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12147:6:12", + "nodeType": "YulIdentifier", + "src": "12147:6:12" + }, + "nativeSrc": "12147:88:12", + "nodeType": "YulFunctionCall", + "src": "12147:88:12" + }, + "nativeSrc": "12147:88:12", + "nodeType": "YulExpressionStatement", + "src": "12147:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12251:1:12", + "nodeType": "YulLiteral", + "src": "12251:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12254:4:12", + "nodeType": "YulLiteral", + "src": "12254:4:12", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12244:6:12", + "nodeType": "YulIdentifier", + "src": "12244:6:12" + }, + "nativeSrc": "12244:15:12", + "nodeType": "YulFunctionCall", + "src": "12244:15:12" + }, + "nativeSrc": "12244:15:12", + "nodeType": "YulExpressionStatement", + "src": "12244:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12275:1:12", + "nodeType": "YulLiteral", + "src": "12275:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12278:4:12", + "nodeType": "YulLiteral", + "src": "12278:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12268:6:12", + "nodeType": "YulIdentifier", + "src": "12268:6:12" + }, + "nativeSrc": "12268:15:12", + "nodeType": "YulFunctionCall", + "src": "12268:15:12" + }, + "nativeSrc": "12268:15:12", + "nodeType": "YulExpressionStatement", + "src": "12268:15:12" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "12109:180:12", + "nodeType": "YulFunctionDefinition", + "src": "12109:180:12" + }, + { + "body": { + "nativeSrc": "12477:371:12", + "nodeType": "YulBlock", + "src": "12477:371:12", + "statements": [ + { + "nativeSrc": "12487:27:12", + "nodeType": "YulAssignment", + "src": "12487:27:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12499:9:12", + "nodeType": "YulIdentifier", + "src": "12499:9:12" + }, + { + "kind": "number", + "nativeSrc": "12510:3:12", + "nodeType": "YulLiteral", + "src": "12510:3:12", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12495:3:12", + "nodeType": "YulIdentifier", + "src": "12495:3:12" + }, + "nativeSrc": "12495:19:12", + "nodeType": "YulFunctionCall", + "src": "12495:19:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12487:4:12", + "nodeType": "YulIdentifier", + "src": "12487:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12568:6:12", + "nodeType": "YulIdentifier", + "src": "12568:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12581:9:12", + "nodeType": "YulIdentifier", + "src": "12581:9:12" + }, + { + "kind": "number", + "nativeSrc": "12592:1:12", + "nodeType": "YulLiteral", + "src": "12592:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12577:3:12", + "nodeType": "YulIdentifier", + "src": "12577:3:12" + }, + "nativeSrc": "12577:17:12", + "nodeType": "YulFunctionCall", + "src": "12577:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12524:43:12", + "nodeType": "YulIdentifier", + "src": "12524:43:12" + }, + "nativeSrc": "12524:71:12", + "nodeType": "YulFunctionCall", + "src": "12524:71:12" + }, + "nativeSrc": "12524:71:12", + "nodeType": "YulExpressionStatement", + "src": "12524:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12649:6:12", + "nodeType": "YulIdentifier", + "src": "12649:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12662:9:12", + "nodeType": "YulIdentifier", + "src": "12662:9:12" + }, + { + "kind": "number", + "nativeSrc": "12673:2:12", + "nodeType": "YulLiteral", + "src": "12673:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12658:3:12", + "nodeType": "YulIdentifier", + "src": "12658:3:12" + }, + "nativeSrc": "12658:18:12", + "nodeType": "YulFunctionCall", + "src": "12658:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12605:43:12", + "nodeType": "YulIdentifier", + "src": "12605:43:12" + }, + "nativeSrc": "12605:72:12", + "nodeType": "YulFunctionCall", + "src": "12605:72:12" + }, + "nativeSrc": "12605:72:12", + "nodeType": "YulExpressionStatement", + "src": "12605:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "12731:6:12", + "nodeType": "YulIdentifier", + "src": "12731:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12744:9:12", + "nodeType": "YulIdentifier", + "src": "12744:9:12" + }, + { + "kind": "number", + "nativeSrc": "12755:2:12", + "nodeType": "YulLiteral", + "src": "12755:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12740:3:12", + "nodeType": "YulIdentifier", + "src": "12740:3:12" + }, + "nativeSrc": "12740:18:12", + "nodeType": "YulFunctionCall", + "src": "12740:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12687:43:12", + "nodeType": "YulIdentifier", + "src": "12687:43:12" + }, + "nativeSrc": "12687:72:12", + "nodeType": "YulFunctionCall", + "src": "12687:72:12" + }, + "nativeSrc": "12687:72:12", + "nodeType": "YulExpressionStatement", + "src": "12687:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "12813:6:12", + "nodeType": "YulIdentifier", + "src": "12813:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12826:9:12", + "nodeType": "YulIdentifier", + "src": "12826:9:12" + }, + { + "kind": "number", + "nativeSrc": "12837:2:12", + "nodeType": "YulLiteral", + "src": "12837:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12822:3:12", + "nodeType": "YulIdentifier", + "src": "12822:3:12" + }, + "nativeSrc": "12822:18:12", + "nodeType": "YulFunctionCall", + "src": "12822:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12769:43:12", + "nodeType": "YulIdentifier", + "src": "12769:43:12" + }, + "nativeSrc": "12769:72:12", + "nodeType": "YulFunctionCall", + "src": "12769:72:12" + }, + "nativeSrc": "12769:72:12", + "nodeType": "YulExpressionStatement", + "src": "12769:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "12295:553:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12425:9:12", + "nodeType": "YulTypedName", + "src": "12425:9:12", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "12437:6:12", + "nodeType": "YulTypedName", + "src": "12437:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12445:6:12", + "nodeType": "YulTypedName", + "src": "12445:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12453:6:12", + "nodeType": "YulTypedName", + "src": "12453:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12461:6:12", + "nodeType": "YulTypedName", + "src": "12461:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12472:4:12", + "nodeType": "YulTypedName", + "src": "12472:4:12", + "type": "" + } + ], + "src": "12295:553:12" + }, + { + "body": { + "nativeSrc": "12899:149:12", + "nodeType": "YulBlock", + "src": "12899:149:12", + "statements": [ + { + "nativeSrc": "12909:25:12", + "nodeType": "YulAssignment", + "src": "12909:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "12932:1:12", + "nodeType": "YulIdentifier", + "src": "12932:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "12914:17:12", + "nodeType": "YulIdentifier", + "src": "12914:17:12" + }, + "nativeSrc": "12914:20:12", + "nodeType": "YulFunctionCall", + "src": "12914:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "12909:1:12", + "nodeType": "YulIdentifier", + "src": "12909:1:12" + } + ] + }, + { + "nativeSrc": "12943:25:12", + "nodeType": "YulAssignment", + "src": "12943:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "12966:1:12", + "nodeType": "YulIdentifier", + "src": "12966:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "12948:17:12", + "nodeType": "YulIdentifier", + "src": "12948:17:12" + }, + "nativeSrc": "12948:20:12", + "nodeType": "YulFunctionCall", + "src": "12948:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "12943:1:12", + "nodeType": "YulIdentifier", + "src": "12943:1:12" + } + ] + }, + { + "nativeSrc": "12977:17:12", + "nodeType": "YulAssignment", + "src": "12977:17:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "12989:1:12", + "nodeType": "YulIdentifier", + "src": "12989:1:12" + }, + { + "name": "y", + "nativeSrc": "12992:1:12", + "nodeType": "YulIdentifier", + "src": "12992:1:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12985:3:12", + "nodeType": "YulIdentifier", + "src": "12985:3:12" + }, + "nativeSrc": "12985:9:12", + "nodeType": "YulFunctionCall", + "src": "12985:9:12" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "12977:4:12", + "nodeType": "YulIdentifier", + "src": "12977:4:12" + } + ] + }, + { + "body": { + "nativeSrc": "13019:22:12", + "nodeType": "YulBlock", + "src": "13019:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13021:16:12", + "nodeType": "YulIdentifier", + "src": "13021:16:12" + }, + "nativeSrc": "13021:18:12", + "nodeType": "YulFunctionCall", + "src": "13021:18:12" + }, + "nativeSrc": "13021:18:12", + "nodeType": "YulExpressionStatement", + "src": "13021:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "13010:4:12", + "nodeType": "YulIdentifier", + "src": "13010:4:12" + }, + { + "name": "x", + "nativeSrc": "13016:1:12", + "nodeType": "YulIdentifier", + "src": "13016:1:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13007:2:12", + "nodeType": "YulIdentifier", + "src": "13007:2:12" + }, + "nativeSrc": "13007:11:12", + "nodeType": "YulFunctionCall", + "src": "13007:11:12" + }, + "nativeSrc": "13004:37:12", + "nodeType": "YulIf", + "src": "13004:37:12" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "12854:194:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "12885:1:12", + "nodeType": "YulTypedName", + "src": "12885:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "12888:1:12", + "nodeType": "YulTypedName", + "src": "12888:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "12894:4:12", + "nodeType": "YulTypedName", + "src": "12894:4:12", + "type": "" + } + ], + "src": "12854:194:12" + }, + { + "body": { + "nativeSrc": "13180:206:12", + "nodeType": "YulBlock", + "src": "13180:206:12", + "statements": [ + { + "nativeSrc": "13190:26:12", + "nodeType": "YulAssignment", + "src": "13190:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13202:9:12", + "nodeType": "YulIdentifier", + "src": "13202:9:12" + }, + { + "kind": "number", + "nativeSrc": "13213:2:12", + "nodeType": "YulLiteral", + "src": "13213:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13198:3:12", + "nodeType": "YulIdentifier", + "src": "13198:3:12" + }, + "nativeSrc": "13198:18:12", + "nodeType": "YulFunctionCall", + "src": "13198:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13190:4:12", + "nodeType": "YulIdentifier", + "src": "13190:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13270:6:12", + "nodeType": "YulIdentifier", + "src": "13270:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13283:9:12", + "nodeType": "YulIdentifier", + "src": "13283:9:12" + }, + { + "kind": "number", + "nativeSrc": "13294:1:12", + "nodeType": "YulLiteral", + "src": "13294:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13279:3:12", + "nodeType": "YulIdentifier", + "src": "13279:3:12" + }, + "nativeSrc": "13279:17:12", + "nodeType": "YulFunctionCall", + "src": "13279:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13226:43:12", + "nodeType": "YulIdentifier", + "src": "13226:43:12" + }, + "nativeSrc": "13226:71:12", + "nodeType": "YulFunctionCall", + "src": "13226:71:12" + }, + "nativeSrc": "13226:71:12", + "nodeType": "YulExpressionStatement", + "src": "13226:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13351:6:12", + "nodeType": "YulIdentifier", + "src": "13351:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13364:9:12", + "nodeType": "YulIdentifier", + "src": "13364:9:12" + }, + { + "kind": "number", + "nativeSrc": "13375:2:12", + "nodeType": "YulLiteral", + "src": "13375:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13360:3:12", + "nodeType": "YulIdentifier", + "src": "13360:3:12" + }, + "nativeSrc": "13360:18:12", + "nodeType": "YulFunctionCall", + "src": "13360:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13307:43:12", + "nodeType": "YulIdentifier", + "src": "13307:43:12" + }, + "nativeSrc": "13307:72:12", + "nodeType": "YulFunctionCall", + "src": "13307:72:12" + }, + "nativeSrc": "13307:72:12", + "nodeType": "YulExpressionStatement", + "src": "13307:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "13054:332:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13144:9:12", + "nodeType": "YulTypedName", + "src": "13144:9:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13156:6:12", + "nodeType": "YulTypedName", + "src": "13156:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13164:6:12", + "nodeType": "YulTypedName", + "src": "13164:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13175:4:12", + "nodeType": "YulTypedName", + "src": "13175:4:12", + "type": "" + } + ], + "src": "13054:332:12" + }, + { + "body": { + "nativeSrc": "13436:147:12", + "nodeType": "YulBlock", + "src": "13436:147:12", + "statements": [ + { + "nativeSrc": "13446:25:12", + "nodeType": "YulAssignment", + "src": "13446:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "13469:1:12", + "nodeType": "YulIdentifier", + "src": "13469:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "13451:17:12", + "nodeType": "YulIdentifier", + "src": "13451:17:12" + }, + "nativeSrc": "13451:20:12", + "nodeType": "YulFunctionCall", + "src": "13451:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "13446:1:12", + "nodeType": "YulIdentifier", + "src": "13446:1:12" + } + ] + }, + { + "nativeSrc": "13480:25:12", + "nodeType": "YulAssignment", + "src": "13480:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "13503:1:12", + "nodeType": "YulIdentifier", + "src": "13503:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "13485:17:12", + "nodeType": "YulIdentifier", + "src": "13485:17:12" + }, + "nativeSrc": "13485:20:12", + "nodeType": "YulFunctionCall", + "src": "13485:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "13480:1:12", + "nodeType": "YulIdentifier", + "src": "13480:1:12" + } + ] + }, + { + "nativeSrc": "13514:16:12", + "nodeType": "YulAssignment", + "src": "13514:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "13525:1:12", + "nodeType": "YulIdentifier", + "src": "13525:1:12" + }, + { + "name": "y", + "nativeSrc": "13528:1:12", + "nodeType": "YulIdentifier", + "src": "13528:1:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13521:3:12", + "nodeType": "YulIdentifier", + "src": "13521:3:12" + }, + "nativeSrc": "13521:9:12", + "nodeType": "YulFunctionCall", + "src": "13521:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "13514:3:12", + "nodeType": "YulIdentifier", + "src": "13514:3:12" + } + ] + }, + { + "body": { + "nativeSrc": "13554:22:12", + "nodeType": "YulBlock", + "src": "13554:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13556:16:12", + "nodeType": "YulIdentifier", + "src": "13556:16:12" + }, + "nativeSrc": "13556:18:12", + "nodeType": "YulFunctionCall", + "src": "13556:18:12" + }, + "nativeSrc": "13556:18:12", + "nodeType": "YulExpressionStatement", + "src": "13556:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "13546:1:12", + "nodeType": "YulIdentifier", + "src": "13546:1:12" + }, + { + "name": "sum", + "nativeSrc": "13549:3:12", + "nodeType": "YulIdentifier", + "src": "13549:3:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13543:2:12", + "nodeType": "YulIdentifier", + "src": "13543:2:12" + }, + "nativeSrc": "13543:10:12", + "nodeType": "YulFunctionCall", + "src": "13543:10:12" + }, + "nativeSrc": "13540:36:12", + "nodeType": "YulIf", + "src": "13540:36:12" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "13392:191:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "13423:1:12", + "nodeType": "YulTypedName", + "src": "13423:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "13426:1:12", + "nodeType": "YulTypedName", + "src": "13426:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "13432:3:12", + "nodeType": "YulTypedName", + "src": "13432:3:12", + "type": "" + } + ], + "src": "13392:191:12" + }, + { + "body": { + "nativeSrc": "13743:288:12", + "nodeType": "YulBlock", + "src": "13743:288:12", + "statements": [ + { + "nativeSrc": "13753:26:12", + "nodeType": "YulAssignment", + "src": "13753:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13765:9:12", + "nodeType": "YulIdentifier", + "src": "13765:9:12" + }, + { + "kind": "number", + "nativeSrc": "13776:2:12", + "nodeType": "YulLiteral", + "src": "13776:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13761:3:12", + "nodeType": "YulIdentifier", + "src": "13761:3:12" + }, + "nativeSrc": "13761:18:12", + "nodeType": "YulFunctionCall", + "src": "13761:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13753:4:12", + "nodeType": "YulIdentifier", + "src": "13753:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13833:6:12", + "nodeType": "YulIdentifier", + "src": "13833:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13846:9:12", + "nodeType": "YulIdentifier", + "src": "13846:9:12" + }, + { + "kind": "number", + "nativeSrc": "13857:1:12", + "nodeType": "YulLiteral", + "src": "13857:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13842:3:12", + "nodeType": "YulIdentifier", + "src": "13842:3:12" + }, + "nativeSrc": "13842:17:12", + "nodeType": "YulFunctionCall", + "src": "13842:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "13789:43:12", + "nodeType": "YulIdentifier", + "src": "13789:43:12" + }, + "nativeSrc": "13789:71:12", + "nodeType": "YulFunctionCall", + "src": "13789:71:12" + }, + "nativeSrc": "13789:71:12", + "nodeType": "YulExpressionStatement", + "src": "13789:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13914:6:12", + "nodeType": "YulIdentifier", + "src": "13914:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13927:9:12", + "nodeType": "YulIdentifier", + "src": "13927:9:12" + }, + { + "kind": "number", + "nativeSrc": "13938:2:12", + "nodeType": "YulLiteral", + "src": "13938:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13923:3:12", + "nodeType": "YulIdentifier", + "src": "13923:3:12" + }, + "nativeSrc": "13923:18:12", + "nodeType": "YulFunctionCall", + "src": "13923:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13870:43:12", + "nodeType": "YulIdentifier", + "src": "13870:43:12" + }, + "nativeSrc": "13870:72:12", + "nodeType": "YulFunctionCall", + "src": "13870:72:12" + }, + "nativeSrc": "13870:72:12", + "nodeType": "YulExpressionStatement", + "src": "13870:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "13996:6:12", + "nodeType": "YulIdentifier", + "src": "13996:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14009:9:12", + "nodeType": "YulIdentifier", + "src": "14009:9:12" + }, + { + "kind": "number", + "nativeSrc": "14020:2:12", + "nodeType": "YulLiteral", + "src": "14020:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14005:3:12", + "nodeType": "YulIdentifier", + "src": "14005:3:12" + }, + "nativeSrc": "14005:18:12", + "nodeType": "YulFunctionCall", + "src": "14005:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "13952:43:12", + "nodeType": "YulIdentifier", + "src": "13952:43:12" + }, + "nativeSrc": "13952:72:12", + "nodeType": "YulFunctionCall", + "src": "13952:72:12" + }, + "nativeSrc": "13952:72:12", + "nodeType": "YulExpressionStatement", + "src": "13952:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "13589:442:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13699:9:12", + "nodeType": "YulTypedName", + "src": "13699:9:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13711:6:12", + "nodeType": "YulTypedName", + "src": "13711:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13719:6:12", + "nodeType": "YulTypedName", + "src": "13719:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13727:6:12", + "nodeType": "YulTypedName", + "src": "13727:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13738:4:12", + "nodeType": "YulTypedName", + "src": "13738:4:12", + "type": "" + } + ], + "src": "13589:442:12" + }, + { + "body": { + "nativeSrc": "14135:124:12", + "nodeType": "YulBlock", + "src": "14135:124:12", + "statements": [ + { + "nativeSrc": "14145:26:12", + "nodeType": "YulAssignment", + "src": "14145:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14157:9:12", + "nodeType": "YulIdentifier", + "src": "14157:9:12" + }, + { + "kind": "number", + "nativeSrc": "14168:2:12", + "nodeType": "YulLiteral", + "src": "14168:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14153:3:12", + "nodeType": "YulIdentifier", + "src": "14153:3:12" + }, + "nativeSrc": "14153:18:12", + "nodeType": "YulFunctionCall", + "src": "14153:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14145:4:12", + "nodeType": "YulIdentifier", + "src": "14145:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14225:6:12", + "nodeType": "YulIdentifier", + "src": "14225:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14238:9:12", + "nodeType": "YulIdentifier", + "src": "14238:9:12" + }, + { + "kind": "number", + "nativeSrc": "14249:1:12", + "nodeType": "YulLiteral", + "src": "14249:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14234:3:12", + "nodeType": "YulIdentifier", + "src": "14234:3:12" + }, + "nativeSrc": "14234:17:12", + "nodeType": "YulFunctionCall", + "src": "14234:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14181:43:12", + "nodeType": "YulIdentifier", + "src": "14181:43:12" + }, + "nativeSrc": "14181:71:12", + "nodeType": "YulFunctionCall", + "src": "14181:71:12" + }, + "nativeSrc": "14181:71:12", + "nodeType": "YulExpressionStatement", + "src": "14181:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "14037:222:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14107:9:12", + "nodeType": "YulTypedName", + "src": "14107:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14119:6:12", + "nodeType": "YulTypedName", + "src": "14119:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14130:4:12", + "nodeType": "YulTypedName", + "src": "14130:4:12", + "type": "" + } + ], + "src": "14037:222:12" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_addresst_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint256(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_0_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_0_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a0604052606460095561012c600a553480156200001c57600080fd5b50604051620039d9380380620039d9833981810160405281019062000042919062000bb9565b83620000536200043060201b60201c565b60ff16600a62000064919062000dc4565b8662000071919062000e15565b6040518060400160405280600b81526020017f4261736564205768616c650000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5748414c450000000000000000000000000000000000000000000000000000008152508160039081620000ee9190620010d0565b508060049081620001009190620010d0565b505050600081036200014c5760006040517f392e1e27000000000000000000000000000000000000000000000000000000008152600401620001439190620011fa565b60405180910390fd5b806080818152505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001ca5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001c1919062001228565b60405180910390fd5b620001db816200043960201b60201c565b5082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002fe600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646005620002da620004ff60201b60201c565b620002e6919062000e15565b620002f2919062001274565b6200050960201b60201c565b6200035d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600562000339620004ff60201b60201c565b62000345919062000e15565b62000351919062001274565b6200050960201b60201c565b620003bc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600562000398620004ff60201b60201c565b620003a4919062000e15565b620003b0919062001274565b6200050960201b60201c565b7f8ad1ba2dbd33c6313fa50cd4016351a36437d7dcd0e0800a3a0b191d22095d933342604051620003ef929190620012bd565b60405180910390a16001600560146101000a81548160ff0219169083600481111562000420576200041f620012ea565b5b0217905550505050505062001463565b60006012905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000608051905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200057e5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000575919062001228565b60405180910390fd5b62000592600083836200059660201b60201c565b5050565b60026004811115620005ad57620005ac620012ea565b5b600560149054906101000a900460ff166004811115620005d257620005d1620012ea565b5b14158062000619575060036004811115620005f257620005f1620012ea565b5b600560149054906101000a900460ff166004811115620006175762000616620012ea565b5b145b156200063857620006328383836200081860201b60201c565b62000813565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006f6576103e8600a5483620006a3919062000e15565b620006af919062001274565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc84838342604051620006e8949392919062001319565b60405180910390a1620007ae565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620007ad576103e8600954836200075f919062000e15565b6200076b919062001274565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab88127283838342604051620007a4949392919062001319565b60405180910390a15b5b6000811115620007fe57620007ed84600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200081860201b60201c565b8082620007fb919062001366565b91505b620008118484846200081860201b60201c565b505b505050565b6200082b838383620008da60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008d557600062000872620004ff60201b60201c565b905060006200088662000b0a60201b60201c565b905081811115620008d25780826040517f9e79f854000000000000000000000000000000000000000000000000000000008152600401620008c9929190620013a1565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000930578060026000828254620009239190620013ce565b9250508190555062000a06565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620009bf578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620009b69392919062001409565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a51578060026000828254039250508190555062000a9e565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000afd919062001446565b60405180910390a3505050565b6000600254905090565b600080fd5b6000819050919050565b62000b2e8162000b19565b811462000b3a57600080fd5b50565b60008151905062000b4e8162000b23565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b818262000b54565b9050919050565b62000b938162000b74565b811462000b9f57600080fd5b50565b60008151905062000bb38162000b88565b92915050565b600080600080600060a0868803121562000bd85762000bd762000b14565b5b600062000be88882890162000b3d565b955050602062000bfb8882890162000ba2565b945050604062000c0e8882890162000ba2565b935050606062000c218882890162000ba2565b925050608062000c348882890162000ba2565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ccf5780860481111562000ca75762000ca662000c41565b5b600185161562000cb75780820291505b808102905062000cc78562000c70565b945062000c87565b94509492505050565b60008262000cea576001905062000dbd565b8162000cfa576000905062000dbd565b816001811462000d13576002811462000d1e5762000d54565b600191505062000dbd565b60ff84111562000d335762000d3262000c41565b5b8360020a91508482111562000d4d5762000d4c62000c41565b5b5062000dbd565b5060208310610133831016604e8410600b841016171562000d8e5782820a90508381111562000d885762000d8762000c41565b5b62000dbd565b62000d9d848484600162000c7d565b9250905081840481111562000db75762000db662000c41565b5b81810290505b9392505050565b600062000dd18262000b19565b915062000dde8362000b19565b925062000e0d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cd8565b905092915050565b600062000e228262000b19565b915062000e2f8362000b19565b925082820262000e3f8162000b19565b9150828204841483151762000e595762000e5862000c41565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ee257607f821691505b60208210810362000ef85762000ef762000e9a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f23565b62000f6e868362000f23565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000fb162000fab62000fa58462000b19565b62000f86565b62000b19565b9050919050565b6000819050919050565b62000fcd8362000f90565b62000fe562000fdc8262000fb8565b84845462000f30565b825550505050565b600090565b62000ffc62000fed565b6200100981848462000fc2565b505050565b5b8181101562001031576200102560008262000ff2565b6001810190506200100f565b5050565b601f82111562001080576200104a8162000efe565b620010558462000f13565b8101602085101562001065578190505b6200107d620010748562000f13565b8301826200100e565b50505b505050565b600082821c905092915050565b6000620010a56000198460080262001085565b1980831691505092915050565b6000620010c0838362001092565b9150826002028217905092915050565b620010db8262000e60565b67ffffffffffffffff811115620010f757620010f662000e6b565b5b62001103825462000ec9565b6200111082828562001035565b600060209050601f83116001811462001148576000841562001133578287015190505b6200113f8582620010b2565b865550620011af565b601f198416620011588662000efe565b60005b8281101562001182578489015182556001820191506020850194506020810190506200115b565b86831015620011a257848901516200119e601f89168262001092565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b6000620011e2620011dc620011d684620011b7565b62000f86565b62000b19565b9050919050565b620011f481620011c1565b82525050565b6000602082019050620012116000830184620011e9565b92915050565b620012228162000b74565b82525050565b60006020820190506200123f600083018462001217565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012818262000b19565b91506200128e8362000b19565b925082620012a157620012a062001245565b5b828204905092915050565b620012b78162000b19565b82525050565b6000604082019050620012d4600083018562001217565b620012e36020830184620012ac565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060808201905062001330600083018762001217565b6200133f6020830186620012ac565b6200134e6040830185620012ac565b6200135d6060830184620012ac565b95945050505050565b6000620013738262000b19565b9150620013808362000b19565b92508282039050818111156200139b576200139a62000c41565b5b92915050565b6000604082019050620013b86000830185620012ac565b620013c76020830184620012ac565b9392505050565b6000620013db8262000b19565b9150620013e88362000b19565b925082820190508082111562001403576200140262000c41565b5b92915050565b600060608201905062001420600083018662001217565b6200142f6020830185620012ac565b6200143e6040830184620012ac565b949350505050565b60006020820190506200145d6000830184620012ac565b92915050565b60805161255a6200147f6000396000610796015261255a6000f3fe6080604052600436106101855760003560e01c806363cae94f116100d157806395d89b411161008a578063e90dd9e211610064578063e90dd9e21461057a578063eaff1cbc146105a5578063f2fde38b146105bc578063fccc2813146105e55761018c565b806395d89b41146104d5578063a9059cbb14610500578063dd62ed3e1461053d5761018c565b806363cae94f146103d5578063691f224f1461040057806370a082311461042b578063715018a61461046857806385df1d1c1461047f5780638da5cb5b146104aa5761018c565b806324024efd1161013e578063355274ea11610118578063355274ea146103385780635265ee551461036357806352cd23881461038e5780635ecf7a67146103b95761018c565b806324024efd146102b75780632b653d44146102e2578063313ce5671461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd14610224578063188214001461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610610565b6040516101b39190611c6f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611d2a565b6106a2565b6040516101f09190611d85565b60405180910390f35b34801561020557600080fd5b5061020e6106c5565b60405161021b9190611dff565b60405180910390f35b34801561023057600080fd5b506102396106eb565b6040516102469190611e29565b60405180910390f35b34801561025b57600080fd5b506102646106f5565b6040516102719190611c6f565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190611e44565b61072e565b6040516102ae9190611d85565b60405180910390f35b3480156102c357600080fd5b506102cc61075d565b6040516102d99190611e29565b60405180910390f35b3480156102ee57600080fd5b506102f7610763565b6040516103049190611ea6565b60405180910390f35b34801561031957600080fd5b50610322610789565b60405161032f9190611edd565b60405180910390f35b34801561034457600080fd5b5061034d610792565b60405161035a9190611e29565b60405180910390f35b34801561036f57600080fd5b506103786107ba565b6040516103859190611c6f565b60405180910390f35b34801561039a57600080fd5b506103a36107f3565b6040516103b09190611ea6565b60405180910390f35b6103d360048036038101906103ce9190611ef8565b610819565b005b3480156103e157600080fd5b506103ea610cde565b6040516103f79190611ea6565b60405180910390f35b34801561040c57600080fd5b50610415610d04565b6040516104229190611e29565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190611ef8565b610d0a565b60405161045f9190611e29565b60405180910390f35b34801561047457600080fd5b5061047d610d52565b005b34801561048b57600080fd5b50610494610e49565b6040516104a19190611ea6565b60405180910390f35b3480156104b657600080fd5b506104bf610e6f565b6040516104cc9190611ea6565b60405180910390f35b3480156104e157600080fd5b506104ea610e99565b6040516104f79190611c6f565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190611d2a565b610f2b565b6040516105349190611d85565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190611f25565b610f4e565b6040516105719190611e29565b60405180910390f35b34801561058657600080fd5b5061058f610fd5565b60405161059c9190611fdc565b60405180910390f35b3480156105b157600080fd5b506105ba610fe8565b005b3480156105c857600080fd5b506105e360048036038101906105de9190611ef8565b6110e4565b005b3480156105f157600080fd5b506105fa61116a565b6040516106079190611ea6565b60405180910390f35b60606003805461061f90612026565b80601f016020809104026020016040519081016040528092919081815260200182805461064b90612026565b80156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b6000806106ad61116f565b90506106ba818585611177565b600191505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518060400160405280600b81526020017f4261736564205768616c6500000000000000000000000000000000000000000081525081565b60008061073961116f565b9050610746858285611189565b61075185858561121d565b60019150509392505050565b600a5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6040518060400160405280600581526020017f5748414c4500000000000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610821611311565b600180600481111561083657610835611f65565b5b600560149054906101000a900460ff16600481111561085857610857611f65565b5b14610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906120c9565b60405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a91906120fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1791906120fe565b6040518363ffffffff1660e01b8152600401610a3492919061212b565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906120fe565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060646055610ac5610792565b610acf9190612183565b610ad991906121f4565b9050610ae53082611398565b610af0308483611177565b6000429050600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008060008a6040518863ffffffff1660e01b8152600401610b6096959493929190612260565b60606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba391906122d6565b50915091506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690507ff07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684848473ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401610c4f9190611ea6565b602060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190612329565b88604051610ca2959493929190612356565b60405180910390a16002600560146101000a81548160ff02191690836004811115610cd057610ccf611f65565b5b021790555050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611311565b6003806004811115610d6f57610d6e611f65565b5b600560149054906101000a900460ff166004811115610d9157610d90611f65565b5b14610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc8906120c9565b60405180910390fd5b7fbc3fa950185893c8ddfff1dafec540ffc8d7e576295fea983a515e9a8e03acd733610dfb610e6f565b42604051610e0b939291906123a9565b60405180910390a16004600560146101000a81548160ff02191690836004811115610e3957610e38611f65565b5b0217905550610e4661141a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ea890612026565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612026565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b600080610f3661116f565b9050610f4381858561121d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560149054906101000a900460ff1681565b610ff0611311565b600280600481111561100557611004611f65565b5b600560149054906101000a900460ff16600481111561102757611026611f65565b5b14611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906120c9565b60405180910390fd5b60006009819055506000600a819055507fc4c7c69f1eeef4dcf5449fcee968e149b2646d141f0d9bb3d1de12de99d77f7e600954600a54426040516110ae939291906123e0565b60405180910390a16003600560146101000a81548160ff021916908360048111156110dc576110db611f65565b5b021790555050565b6110ec611311565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111559190611ea6565b60405180910390fd5b6111678161142e565b50565b600081565b600033905090565b61118483838360016114f4565b505050565b60006111958484610f4e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112175781811015611207578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111fe93929190612417565b60405180910390fd5b611216848484840360006114f4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112869190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113015760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016112f89190611ea6565b60405180910390fd5b61130c8383836116cb565b505050565b61131961116f565b73ffffffffffffffffffffffffffffffffffffffff16611337610e6f565b73ffffffffffffffffffffffffffffffffffffffff16146113965761135a61116f565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161138d9190611ea6565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114019190611ea6565b60405180910390fd5b611416600083836116cb565b5050565b611422611311565b61142c600061142e565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115665760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161155d9190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115cf9190611ea6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116c5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116bc9190611e29565b60405180910390a35b50505050565b600260048111156116df576116de611f65565b5b600560149054906101000a900460ff16600481111561170157611700611f65565b5b14158061174157506003600481111561171d5761171c611f65565b5b600560149054906101000a900460ff16600481111561173f5761173e611f65565b5b145b1561175657611751838383611914565b61190f565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576103e8600a54836117be9190612183565b6117c891906121f4565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc848383426040516117ff949392919061244e565b60405180910390a16118bd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118bc576103e8600954836118729190612183565b61187c91906121f4565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab881272838383426040516118b3949392919061244e565b60405180910390a15b5b6000811115611902576118f384600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611914565b80826118ff9190612493565b91505b61190d848484611914565b505b505050565b61191f8383836119ba565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b557600061195d610792565b905060006119696106eb565b9050818111156119b25780826040517f9e79f8540000000000000000000000000000000000000000000000000000000081526004016119a99291906124c7565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0c578060026000828254611a0091906124f0565b92505081905550611adf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611a8f93929190612417565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b285780600260008282540392505081905550611b75565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd29190611e29565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c19578082015181840152602081019050611bfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4182611bdf565b611c4b8185611bea565b9350611c5b818560208601611bfb565b611c6481611c25565b840191505092915050565b60006020820190508181036000830152611c898184611c36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cc182611c96565b9050919050565b611cd181611cb6565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b6000819050919050565b611d0781611cf4565b8114611d1257600080fd5b50565b600081359050611d2481611cfe565b92915050565b60008060408385031215611d4157611d40611c91565b5b6000611d4f85828601611cdf565b9250506020611d6085828601611d15565b9150509250929050565b60008115159050919050565b611d7f81611d6a565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b6000819050919050565b6000611dc5611dc0611dbb84611c96565b611da0565b611c96565b9050919050565b6000611dd782611daa565b9050919050565b6000611de982611dcc565b9050919050565b611df981611dde565b82525050565b6000602082019050611e146000830184611df0565b92915050565b611e2381611cf4565b82525050565b6000602082019050611e3e6000830184611e1a565b92915050565b600080600060608486031215611e5d57611e5c611c91565b5b6000611e6b86828701611cdf565b9350506020611e7c86828701611cdf565b9250506040611e8d86828701611d15565b9150509250925092565b611ea081611cb6565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611c91565b5b6000611f1c84828501611cdf565b91505092915050565b60008060408385031215611f3c57611f3b611c91565b5b6000611f4a85828601611cdf565b9250506020611f5b85828601611cdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60058110611fa557611fa4611f65565b5b50565b6000819050611fb682611f94565b919050565b6000611fc682611fa8565b9050919050565b611fd681611fbb565b82525050565b6000602082019050611ff16000830184611fcd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203e57607f821691505b60208210810361205157612050611ff7565b5b50919050565b7f46756e6374696f6e2063616e6e6f742062652063616c6c656420696e2074686960008201527f7320737461746500000000000000000000000000000000000000000000000000602082015250565b60006120b3602783611bea565b91506120be82612057565b604082019050919050565b600060208201905081810360008301526120e2816120a6565b9050919050565b6000815190506120f881611cc8565b92915050565b60006020828403121561211457612113611c91565b5b6000612122848285016120e9565b91505092915050565b60006040820190506121406000830185611e97565b61214d6020830184611e97565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061218e82611cf4565b915061219983611cf4565b92508282026121a781611cf4565b915082820484148315176121be576121bd612154565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121ff82611cf4565b915061220a83611cf4565b92508261221a576122196121c5565b5b828204905092915050565b6000819050919050565b600061224a61224561224084612225565b611da0565b611cf4565b9050919050565b61225a8161222f565b82525050565b600060c0820190506122756000830189611e97565b6122826020830188611e1a565b61228f6040830187612251565b61229c6060830186612251565b6122a96080830185611e97565b6122b660a0830184611e1a565b979650505050505050565b6000815190506122d081611cfe565b92915050565b6000806000606084860312156122ef576122ee611c91565b5b60006122fd868287016122c1565b935050602061230e868287016122c1565b925050604061231f868287016122c1565b9150509250925092565b60006020828403121561233f5761233e611c91565b5b600061234d848285016122c1565b91505092915050565b600060a08201905061236b6000830188611e97565b6123786020830187611e1a565b6123856040830186611e1a565b6123926060830185611e1a565b61239f6080830184611e1a565b9695505050505050565b60006060820190506123be6000830186611e97565b6123cb6020830185611e97565b6123d86040830184611e1a565b949350505050565b60006060820190506123f56000830186611e1a565b6124026020830185611e1a565b61240f6040830184611e1a565b949350505050565b600060608201905061242c6000830186611e97565b6124396020830185611e1a565b6124466040830184611e1a565b949350505050565b60006080820190506124636000830187611e97565b6124706020830186611e1a565b61247d6040830185611e1a565b61248a6060830184611e1a565b95945050505050565b600061249e82611cf4565b91506124a983611cf4565b92508282039050818111156124c1576124c0612154565b5b92915050565b60006040820190506124dc6000830185611e1a565b6124e96020830184611e1a565b9392505050565b60006124fb82611cf4565b915061250683611cf4565b925082820190508082111561251e5761251d612154565b5b9291505056fea2646970667358221220170fb5eefce9d28d8d1c509b4820f1a273901eb61e211d789627affd137a2f5264736f6c63430008180033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x64 PUSH1 0x9 SSTORE PUSH2 0x12C PUSH1 0xA SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x39D9 CODESIZE SUB DUP1 PUSH3 0x39D9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x42 SWAP2 SWAP1 PUSH3 0xBB9 JUMP JUMPDEST DUP4 PUSH3 0x53 PUSH3 0x430 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0xA PUSH3 0x64 SWAP2 SWAP1 PUSH3 0xDC4 JUMP JUMPDEST DUP7 PUSH3 0x71 SWAP2 SWAP1 PUSH3 0xE15 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4261736564205768616C65000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5748414C45000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0xEE SWAP2 SWAP1 PUSH3 0x10D0 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x100 SWAP2 SWAP1 PUSH3 0x10D0 JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP2 SUB PUSH3 0x14C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x392E1E2700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x143 SWAP2 SWAP1 PUSH3 0x11FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x80 DUP2 DUP2 MSTORE POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x1CA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1C1 SWAP2 SWAP1 PUSH3 0x1228 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x1DB DUP2 PUSH3 0x439 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP3 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x8 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH3 0x2FE PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x64 PUSH1 0x5 PUSH3 0x2DA PUSH3 0x4FF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x2E6 SWAP2 SWAP1 PUSH3 0xE15 JUMP JUMPDEST PUSH3 0x2F2 SWAP2 SWAP1 PUSH3 0x1274 JUMP JUMPDEST PUSH3 0x509 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x35D PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x64 PUSH1 0x5 PUSH3 0x339 PUSH3 0x4FF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x345 SWAP2 SWAP1 PUSH3 0xE15 JUMP JUMPDEST PUSH3 0x351 SWAP2 SWAP1 PUSH3 0x1274 JUMP JUMPDEST PUSH3 0x509 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x3BC PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x64 PUSH1 0x5 PUSH3 0x398 PUSH3 0x4FF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x3A4 SWAP2 SWAP1 PUSH3 0xE15 JUMP JUMPDEST PUSH3 0x3B0 SWAP2 SWAP1 PUSH3 0x1274 JUMP JUMPDEST PUSH3 0x509 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH32 0x8AD1BA2DBD33C6313FA50CD4016351A36437D7DCD0E0800A3A0B191D22095D93 CALLER TIMESTAMP PUSH1 0x40 MLOAD PUSH3 0x3EF SWAP3 SWAP2 SWAP1 PUSH3 0x12BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH3 0x420 JUMPI PUSH3 0x41F PUSH3 0x12EA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP POP POP POP POP PUSH3 0x1463 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x57E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x575 SWAP2 SWAP1 PUSH3 0x1228 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x592 PUSH1 0x0 DUP4 DUP4 PUSH3 0x596 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 DUP2 GT ISZERO PUSH3 0x5AD JUMPI PUSH3 0x5AC PUSH3 0x12EA JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH3 0x5D2 JUMPI PUSH3 0x5D1 PUSH3 0x12EA JUMP JUMPDEST JUMPDEST EQ ISZERO DUP1 PUSH3 0x619 JUMPI POP PUSH1 0x3 PUSH1 0x4 DUP2 GT ISZERO PUSH3 0x5F2 JUMPI PUSH3 0x5F1 PUSH3 0x12EA JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH3 0x617 JUMPI PUSH3 0x616 PUSH3 0x12EA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH3 0x638 JUMPI PUSH3 0x632 DUP4 DUP4 DUP4 PUSH3 0x818 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x813 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x6F6 JUMPI PUSH2 0x3E8 PUSH1 0xA SLOAD DUP4 PUSH3 0x6A3 SWAP2 SWAP1 PUSH3 0xE15 JUMP JUMPDEST PUSH3 0x6AF SWAP2 SWAP1 PUSH3 0x1274 JUMP JUMPDEST SWAP1 POP PUSH32 0x4021301DA943CE70706F02C0638C48F65E27CD0642FFD0550536995AF05E70CC DUP5 DUP4 DUP4 TIMESTAMP PUSH1 0x40 MLOAD PUSH3 0x6E8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1319 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH3 0x7AE JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x7AD JUMPI PUSH2 0x3E8 PUSH1 0x9 SLOAD DUP4 PUSH3 0x75F SWAP2 SWAP1 PUSH3 0xE15 JUMP JUMPDEST PUSH3 0x76B SWAP2 SWAP1 PUSH3 0x1274 JUMP JUMPDEST SWAP1 POP PUSH32 0x4CB653EF0AFB6A8EC8B4B9286771CADC8E586225744651CD05B4B475AB881272 DUP4 DUP4 DUP4 TIMESTAMP PUSH1 0x40 MLOAD PUSH3 0x7A4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1319 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH3 0x7FE JUMPI PUSH3 0x7ED DUP5 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH3 0x818 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 DUP3 PUSH3 0x7FB SWAP2 SWAP1 PUSH3 0x1366 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH3 0x811 DUP5 DUP5 DUP5 PUSH3 0x818 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH3 0x82B DUP4 DUP4 DUP4 PUSH3 0x8DA PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x8D5 JUMPI PUSH1 0x0 PUSH3 0x872 PUSH3 0x4FF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x886 PUSH3 0xB0A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH3 0x8D2 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0x9E79F85400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x8C9 SWAP3 SWAP2 SWAP1 PUSH3 0x13A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x930 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x923 SWAP2 SWAP1 PUSH3 0x13CE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH3 0xA06 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH3 0x9BF JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x9B6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1409 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0xA51 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH3 0xA9E JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0xAFD SWAP2 SWAP1 PUSH3 0x1446 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xB2E DUP2 PUSH3 0xB19 JUMP JUMPDEST DUP2 EQ PUSH3 0xB3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0xB4E DUP2 PUSH3 0xB23 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xB81 DUP3 PUSH3 0xB54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xB93 DUP2 PUSH3 0xB74 JUMP JUMPDEST DUP2 EQ PUSH3 0xB9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0xBB3 DUP2 PUSH3 0xB88 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0xBD8 JUMPI PUSH3 0xBD7 PUSH3 0xB14 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0xBE8 DUP9 DUP3 DUP10 ADD PUSH3 0xB3D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0xBFB DUP9 DUP3 DUP10 ADD PUSH3 0xBA2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0xC0E DUP9 DUP3 DUP10 ADD PUSH3 0xBA2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0xC21 DUP9 DUP3 DUP10 ADD PUSH3 0xBA2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0xC34 DUP9 DUP3 DUP10 ADD PUSH3 0xBA2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH3 0xCCF JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH3 0xCA7 JUMPI PUSH3 0xCA6 PUSH3 0xC41 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH3 0xCB7 JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH3 0xCC7 DUP6 PUSH3 0xC70 JUMP JUMPDEST SWAP5 POP PUSH3 0xC87 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0xCEA JUMPI PUSH1 0x1 SWAP1 POP PUSH3 0xDBD JUMP JUMPDEST DUP2 PUSH3 0xCFA JUMPI PUSH1 0x0 SWAP1 POP PUSH3 0xDBD JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0xD13 JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0xD1E JUMPI PUSH3 0xD54 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0xDBD JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0xD33 JUMPI PUSH3 0xD32 PUSH3 0xC41 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH3 0xD4D JUMPI PUSH3 0xD4C PUSH3 0xC41 JUMP JUMPDEST JUMPDEST POP PUSH3 0xDBD JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0xD8E JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH3 0xD88 JUMPI PUSH3 0xD87 PUSH3 0xC41 JUMP JUMPDEST JUMPDEST PUSH3 0xDBD JUMP JUMPDEST PUSH3 0xD9D DUP5 DUP5 DUP5 PUSH1 0x1 PUSH3 0xC7D JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH3 0xDB7 JUMPI PUSH3 0xDB6 PUSH3 0xC41 JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xDD1 DUP3 PUSH3 0xB19 JUMP JUMPDEST SWAP2 POP PUSH3 0xDDE DUP4 PUSH3 0xB19 JUMP JUMPDEST SWAP3 POP PUSH3 0xE0D PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH3 0xCD8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xE22 DUP3 PUSH3 0xB19 JUMP JUMPDEST SWAP2 POP PUSH3 0xE2F DUP4 PUSH3 0xB19 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH3 0xE3F DUP2 PUSH3 0xB19 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH3 0xE59 JUMPI PUSH3 0xE58 PUSH3 0xC41 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0xEE2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xEF8 JUMPI PUSH3 0xEF7 PUSH3 0xE9A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0xF62 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0xF23 JUMP JUMPDEST PUSH3 0xF6E DUP7 DUP4 PUSH3 0xF23 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xFB1 PUSH3 0xFAB PUSH3 0xFA5 DUP5 PUSH3 0xB19 JUMP JUMPDEST PUSH3 0xF86 JUMP JUMPDEST PUSH3 0xB19 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xFCD DUP4 PUSH3 0xF90 JUMP JUMPDEST PUSH3 0xFE5 PUSH3 0xFDC DUP3 PUSH3 0xFB8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0xF30 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0xFFC PUSH3 0xFED JUMP JUMPDEST PUSH3 0x1009 DUP2 DUP5 DUP5 PUSH3 0xFC2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x1031 JUMPI PUSH3 0x1025 PUSH1 0x0 DUP3 PUSH3 0xFF2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x100F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x1080 JUMPI PUSH3 0x104A DUP2 PUSH3 0xEFE JUMP JUMPDEST PUSH3 0x1055 DUP5 PUSH3 0xF13 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x1065 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x107D PUSH3 0x1074 DUP6 PUSH3 0xF13 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x100E JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x10A5 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x1085 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x10C0 DUP4 DUP4 PUSH3 0x1092 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x10DB DUP3 PUSH3 0xE60 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x10F7 JUMPI PUSH3 0x10F6 PUSH3 0xE6B JUMP JUMPDEST JUMPDEST PUSH3 0x1103 DUP3 SLOAD PUSH3 0xEC9 JUMP JUMPDEST PUSH3 0x1110 DUP3 DUP3 DUP6 PUSH3 0x1035 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x1148 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x1133 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x113F DUP6 DUP3 PUSH3 0x10B2 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x11AF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x1158 DUP7 PUSH3 0xEFE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1182 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x115B JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x11A2 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x119E PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x1092 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x11E2 PUSH3 0x11DC PUSH3 0x11D6 DUP5 PUSH3 0x11B7 JUMP JUMPDEST PUSH3 0xF86 JUMP JUMPDEST PUSH3 0xB19 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x11F4 DUP2 PUSH3 0x11C1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x1211 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x11E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x1222 DUP2 PUSH3 0xB74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x123F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x1217 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x1281 DUP3 PUSH3 0xB19 JUMP JUMPDEST SWAP2 POP PUSH3 0x128E DUP4 PUSH3 0xB19 JUMP JUMPDEST SWAP3 POP DUP3 PUSH3 0x12A1 JUMPI PUSH3 0x12A0 PUSH3 0x1245 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x12B7 DUP2 PUSH3 0xB19 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0x12D4 PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x1217 JUMP JUMPDEST PUSH3 0x12E3 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x12AC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH3 0x1330 PUSH1 0x0 DUP4 ADD DUP8 PUSH3 0x1217 JUMP JUMPDEST PUSH3 0x133F PUSH1 0x20 DUP4 ADD DUP7 PUSH3 0x12AC JUMP JUMPDEST PUSH3 0x134E PUSH1 0x40 DUP4 ADD DUP6 PUSH3 0x12AC JUMP JUMPDEST PUSH3 0x135D PUSH1 0x60 DUP4 ADD DUP5 PUSH3 0x12AC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1373 DUP3 PUSH3 0xB19 JUMP JUMPDEST SWAP2 POP PUSH3 0x1380 DUP4 PUSH3 0xB19 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH3 0x139B JUMPI PUSH3 0x139A PUSH3 0xC41 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0x13B8 PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x12AC JUMP JUMPDEST PUSH3 0x13C7 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x12AC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x13DB DUP3 PUSH3 0xB19 JUMP JUMPDEST SWAP2 POP PUSH3 0x13E8 DUP4 PUSH3 0xB19 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0x1403 JUMPI PUSH3 0x1402 PUSH3 0xC41 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0x1420 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x1217 JUMP JUMPDEST PUSH3 0x142F PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x12AC JUMP JUMPDEST PUSH3 0x143E PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x12AC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x145D PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x12AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x255A PUSH3 0x147F PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x796 ADD MSTORE PUSH2 0x255A PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x185 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x63CAE94F GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xE90DD9E2 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE90DD9E2 EQ PUSH2 0x57A JUMPI DUP1 PUSH4 0xEAFF1CBC EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xFCCC2813 EQ PUSH2 0x5E5 JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x53D JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x63CAE94F EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x691F224F EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x42B JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x85DF1D1C EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4AA JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x24024EFD GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x355274EA GT PUSH2 0x118 JUMPI DUP1 PUSH4 0x355274EA EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x5265EE55 EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x52CD2388 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x5ECF7A67 EQ PUSH2 0x3B9 JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x24024EFD EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x2B653D44 EQ PUSH2 0x2E2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x30D JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x1694505E EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x18821400 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x27A JUMPI PUSH2 0x18C JUMP JUMPDEST CALLDATASIZE PUSH2 0x18C JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0x610 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x1D2A JUMP JUMPDEST PUSH2 0x6A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x1D85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x1DFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x239 PUSH2 0x6EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x246 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x264 PUSH2 0x6F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x286 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29C SWAP2 SWAP1 PUSH2 0x1E44 JUMP JUMPDEST PUSH2 0x72E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AE SWAP2 SWAP1 PUSH2 0x1D85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x75D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D9 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F7 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x304 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 PUSH2 0x789 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH2 0x792 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x378 PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x385 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A3 PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CE SWAP2 SWAP1 PUSH2 0x1EF8 JUMP JUMPDEST PUSH2 0x819 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3EA PUSH2 0xCDE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F7 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x415 PUSH2 0xD04 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x1EF8 JUMP JUMPDEST PUSH2 0xD0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH2 0xD52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x494 PUSH2 0xE49 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A1 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BF PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CC SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EA PUSH2 0xE99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F7 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x1D2A JUMP JUMPDEST PUSH2 0xF2B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x1D85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x55F SWAP2 SWAP1 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0xF4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x571 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58F PUSH2 0xFD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59C SWAP2 SWAP1 PUSH2 0x1FDC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5BA PUSH2 0xFE8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5DE SWAP2 SWAP1 PUSH2 0x1EF8 JUMP JUMPDEST PUSH2 0x10E4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FA PUSH2 0x116A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x607 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x61F SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x64B SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x698 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x66D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x698 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x67B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6AD PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0x6BA DUP2 DUP6 DUP6 PUSH2 0x1177 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4261736564205768616C65000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x739 PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0x746 DUP6 DUP3 DUP6 PUSH2 0x1189 JUMP JUMPDEST PUSH2 0x751 DUP6 DUP6 DUP6 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5748414C45000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x821 PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x836 JUMPI PUSH2 0x835 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x858 JUMPI PUSH2 0x857 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ PUSH2 0x898 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xC PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x946 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x96A SWAP2 SWAP1 PUSH2 0x20FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC9C65396 ADDRESS PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA17 SWAP2 SWAP1 PUSH2 0x20FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA34 SWAP3 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA77 SWAP2 SWAP1 PUSH2 0x20FE JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x55 PUSH2 0xAC5 PUSH2 0x792 JUMP JUMPDEST PUSH2 0xACF SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH2 0xAD9 SWAP2 SWAP1 PUSH2 0x21F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xAE5 ADDRESS DUP3 PUSH2 0x1398 JUMP JUMPDEST PUSH2 0xAF0 ADDRESS DUP5 DUP4 PUSH2 0x1177 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF305D719 CALLVALUE ADDRESS DUP8 PUSH1 0x0 DUP1 PUSH1 0x0 DUP11 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB60 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2260 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBA3 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH32 0xF07F8699EB5A7D3C6903ABA7FFC0B932E8E123129924F6AA4E3E95B04BA25179 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 DUP5 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 PUSH1 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4F SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x2329 JUMP JUMPDEST DUP9 PUSH1 0x40 MLOAD PUSH2 0xCA2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2356 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xCD0 JUMPI PUSH2 0xCCF PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD5A PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x3 DUP1 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6F JUMPI PUSH2 0xD6E PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD91 JUMPI PUSH2 0xD90 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ PUSH2 0xDD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC8 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBC3FA950185893C8DDFFF1DAFEC540FFC8D7E576295FEA983A515E9A8E03ACD7 CALLER PUSH2 0xDFB PUSH2 0xE6F JUMP JUMPDEST TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0xE0B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE38 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0xE46 PUSH2 0x141A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xEA8 SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xED4 SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF21 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEF6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF21 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF04 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF36 PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0xF43 DUP2 DUP6 DUP6 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xFF0 PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x2 DUP1 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1005 JUMPI PUSH2 0x1004 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1027 JUMPI PUSH2 0x1026 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ PUSH2 0x1067 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x105E SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xA DUP2 SWAP1 SSTORE POP PUSH32 0xC4C7C69F1EEEF4DCF5449FCEE968E149B2646D141F0D9BB3D1DE12DE99D77F7E PUSH1 0x9 SLOAD PUSH1 0xA SLOAD TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x10AE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x3 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x10DC JUMPI PUSH2 0x10DB PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x10EC PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x115E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1155 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x142E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1184 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14F4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1195 DUP5 DUP5 PUSH2 0xF4E JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1217 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1207 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1216 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14F4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x128F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1286 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1301 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12F8 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x130C DUP4 DUP4 DUP4 PUSH2 0x16CB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1319 PUSH2 0x116F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1337 PUSH2 0xE6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1396 JUMPI PUSH2 0x135A PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x138D SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x140A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1401 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1416 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16CB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1422 PUSH2 0x1311 JUMP JUMPDEST PUSH2 0x142C PUSH1 0x0 PUSH2 0x142E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1566 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155D SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CF SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16C5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x16BC SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x16DF JUMPI PUSH2 0x16DE PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1701 JUMPI PUSH2 0x1700 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ ISZERO DUP1 PUSH2 0x1741 JUMPI POP PUSH1 0x3 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x171D JUMPI PUSH2 0x171C PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x173F JUMPI PUSH2 0x173E PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x1756 JUMPI PUSH2 0x1751 DUP4 DUP4 DUP4 PUSH2 0x1914 JUMP JUMPDEST PUSH2 0x190F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x180C JUMPI PUSH2 0x3E8 PUSH1 0xA SLOAD DUP4 PUSH2 0x17BE SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH2 0x17C8 SWAP2 SWAP1 PUSH2 0x21F4 JUMP JUMPDEST SWAP1 POP PUSH32 0x4021301DA943CE70706F02C0638C48F65E27CD0642FFD0550536995AF05E70CC DUP5 DUP4 DUP4 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x17FF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x244E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x18BD JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x18BC JUMPI PUSH2 0x3E8 PUSH1 0x9 SLOAD DUP4 PUSH2 0x1872 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH2 0x187C SWAP2 SWAP1 PUSH2 0x21F4 JUMP JUMPDEST SWAP1 POP PUSH32 0x4CB653EF0AFB6A8EC8B4B9286771CADC8E586225744651CD05B4B475AB881272 DUP4 DUP4 DUP4 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x18B3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x244E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1902 JUMPI PUSH2 0x18F3 DUP5 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1914 JUMP JUMPDEST DUP1 DUP3 PUSH2 0x18FF SWAP2 SWAP1 PUSH2 0x2493 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x190D DUP5 DUP5 DUP5 PUSH2 0x1914 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x191F DUP4 DUP4 DUP4 PUSH2 0x19BA JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x19B5 JUMPI PUSH1 0x0 PUSH2 0x195D PUSH2 0x792 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1969 PUSH2 0x6EB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x19B2 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0x9E79F85400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A9 SWAP3 SWAP2 SWAP1 PUSH2 0x24C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A0C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A00 SWAP2 SWAP1 PUSH2 0x24F0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1A98 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B28 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1B75 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x1BD2 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C19 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BFE JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C41 DUP3 PUSH2 0x1BDF JUMP JUMPDEST PUSH2 0x1C4B DUP2 DUP6 PUSH2 0x1BEA JUMP JUMPDEST SWAP4 POP PUSH2 0x1C5B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1BFB JUMP JUMPDEST PUSH2 0x1C64 DUP2 PUSH2 0x1C25 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1C89 DUP2 DUP5 PUSH2 0x1C36 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CC1 DUP3 PUSH2 0x1C96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CD1 DUP2 PUSH2 0x1CB6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CEE DUP2 PUSH2 0x1CC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D07 DUP2 PUSH2 0x1CF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D24 DUP2 PUSH2 0x1CFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D41 JUMPI PUSH2 0x1D40 PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1D4F DUP6 DUP3 DUP7 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D60 DUP6 DUP3 DUP7 ADD PUSH2 0x1D15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D7F DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D76 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DC5 PUSH2 0x1DC0 PUSH2 0x1DBB DUP5 PUSH2 0x1C96 JUMP JUMPDEST PUSH2 0x1DA0 JUMP JUMPDEST PUSH2 0x1C96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DD7 DUP3 PUSH2 0x1DAA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE9 DUP3 PUSH2 0x1DCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DF9 DUP2 PUSH2 0x1DDE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E14 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E23 DUP2 PUSH2 0x1CF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E3E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E5D JUMPI PUSH2 0x1E5C PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E6B DUP7 DUP3 DUP8 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1E7C DUP7 DUP3 DUP8 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1E8D DUP7 DUP3 DUP8 ADD PUSH2 0x1D15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1EA0 DUP2 PUSH2 0x1CB6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EBB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ED7 DUP2 PUSH2 0x1EC1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EF2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1ECE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F0E JUMPI PUSH2 0x1F0D PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F1C DUP5 DUP3 DUP6 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F3C JUMPI PUSH2 0x1F3B PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F4A DUP6 DUP3 DUP7 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1F5B DUP6 DUP3 DUP7 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1FA5 JUMPI PUSH2 0x1FA4 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x1FB6 DUP3 PUSH2 0x1F94 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FC6 DUP3 PUSH2 0x1FA8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FD6 DUP2 PUSH2 0x1FBB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x203E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2051 JUMPI PUSH2 0x2050 PUSH2 0x1FF7 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x46756E6374696F6E2063616E6E6F742062652063616C6C656420696E20746869 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7320737461746500000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B3 PUSH1 0x27 DUP4 PUSH2 0x1BEA JUMP JUMPDEST SWAP2 POP PUSH2 0x20BE DUP3 PUSH2 0x2057 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x20E2 DUP2 PUSH2 0x20A6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20F8 DUP2 PUSH2 0x1CC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2114 JUMPI PUSH2 0x2113 PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2122 DUP5 DUP3 DUP6 ADD PUSH2 0x20E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2140 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x214D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x218E DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x2199 DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x21A7 DUP2 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x21BE JUMPI PUSH2 0x21BD PUSH2 0x2154 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21FF DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x220A DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x221A JUMPI PUSH2 0x2219 PUSH2 0x21C5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x224A PUSH2 0x2245 PUSH2 0x2240 DUP5 PUSH2 0x2225 JUMP JUMPDEST PUSH2 0x1DA0 JUMP JUMPDEST PUSH2 0x1CF4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x225A DUP2 PUSH2 0x222F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x2275 PUSH1 0x0 DUP4 ADD DUP10 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2282 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x228F PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x2251 JUMP JUMPDEST PUSH2 0x229C PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x2251 JUMP JUMPDEST PUSH2 0x22A9 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x22B6 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x22D0 DUP2 PUSH2 0x1CFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22EF JUMPI PUSH2 0x22EE PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FD DUP7 DUP3 DUP8 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x230E DUP7 DUP3 DUP8 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x231F DUP7 DUP3 DUP8 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x233F JUMPI PUSH2 0x233E PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x234D DUP5 DUP3 DUP6 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x236B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2378 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2385 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2392 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x239F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x23BE PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x23CB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x23D8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x23F5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2402 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x240F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x242C PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2439 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2446 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2463 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2470 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x247D PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x248A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x249E DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24A9 DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x24C1 JUMPI PUSH2 0x24C0 PUSH2 0x2154 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x24DC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x24E9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24FB DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x2506 DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x251E JUMPI PUSH2 0x251D PUSH2 0x2154 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR 0xF 0xB5 0xEE 0xFC 0xE9 0xD2 DUP14 DUP14 SHR POP SWAP12 BASEFEE KECCAK256 CALL LOG2 PUSH20 0x901EB61E211D789627AFFD137A2F5264736F6C63 NUMBER STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "529:5330:11:-:0;;;1064:3;1036:31;;1100:3;1071:32;;2205:748;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2457:6;2432:10;:8;;;:10;;:::i;:::-;2424:19;;2418:2;:25;;;;:::i;:::-;2411:4;:32;;;;:::i;:::-;2362:10;;;;;;;;;;;;;;;;;2374:19;;;;;;;;;;;;;;;;;1970:5:2;1962;:13;;;;;;:::i;:::-;;1995:7;1985;:17;;;;;;:::i;:::-;;1896:113;;764:1:4;756:4;:9;752:65;;804:1;788:18;;;;;;;;;;;:::i;:::-;;;;;;;;752:65;833:4;826:11;;;;;;716:128;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;2493:18:11::3;2473:17;;:38;;;;;;;;;;;;;;;;;;2537:18;2517:17;;:38;;;;;;;;;;;;;;;;;;2581:18;2561:17;;:38;;;;;;;;;;;;;;;;;;2638:43;2644:17;;;;;;;;;;;2677:3;2672:1;2664:5;:3;;;:5;;:::i;:::-;:9;;;;:::i;:::-;2663:17;;;;:::i;:::-;2638:5;;;:43;;:::i;:::-;2728;2734:17;;;;;;;;;;;2767:3;2762:1;2754:5;:3;;;:5;;:::i;:::-;:9;;;;:::i;:::-;2753:17;;;;:::i;:::-;2728:5;;;:43;;:::i;:::-;2818;2824:17;;;;;;;;;;;2857:3;2852:1;2844:5;:3;;;:5;;:::i;:::-;:9;;;;:::i;:::-;2843:17;;;;:::i;:::-;2818:5;;;:43;;:::i;:::-;2873:37;2882:10;2894:15;2873:37;;;;;;;:::i;:::-;;;;;;;;2929:19;2916:10;;:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2205:748:::0;;;;;529:5330;;3002:82:2;3051:5;3075:2;3068:9;;3002:82;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;923:81:4:-;967:7;993:4;;986:11;;923:81;:::o;7721:208:2:-;7810:1;7791:21;;:7;:21;;;7787:91;;7864:1;7835:32;;;;;;;;;;;:::i;:::-;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;;;:35;;:::i;:::-;7721:208;;:::o;5026:831:11:-;5177:26;5163:40;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;;:86;;;;5221:28;5207:42;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:42;;;;;;;;:::i;:::-;;;5163:86;5159:151;;;5259:30;5273:4;5279:2;5283:5;5259:13;;;:30;;:::i;:::-;5297:7;;5159:151;5316:17;5353:20;;;;;;;;;;;5347:26;;:2;:26;;;5343:351;;5443:4;5428:11;;5420:5;:19;;;;:::i;:::-;5419:28;;;;:::i;:::-;5407:40;;5460:50;5470:4;5476:5;5483:9;5494:15;5460:50;;;;;;;;;:::i;:::-;;;;;;;;5343:351;;;5535:20;;;;;;;;;;;5527:28;;:4;:28;;;5523:171;;5623:4;5609:10;;5601:5;:18;;;;:::i;:::-;5600:27;;;;:::i;:::-;5588:39;;5640:47;5649:2;5653:5;5660:9;5671:15;5640:47;;;;;;;;;:::i;:::-;;;;;;;;5523:171;5343:351;5716:1;5704:9;:13;5700:116;;;5727:49;5741:4;5747:17;;;;;;;;;;;5766:9;5727:13;;;:49;;:::i;:::-;5800:9;5792:5;:17;;;;:::i;:::-;5784:25;;5700:116;5822:30;5836:4;5842:2;5846:5;5822:13;;;:30;;:::i;:::-;5102:755;5026:831;;;;:::o;1059:371:4:-;1153:30;1167:4;1173:2;1177:5;1153:13;;;:30;;:::i;:::-;1214:1;1198:18;;:4;:18;;;1194:230;;1232:17;1252:5;:3;;;:5;;:::i;:::-;1232:25;;1271:14;1288:13;:11;;;:13;;:::i;:::-;1271:30;;1328:9;1319:6;:18;1315:99;;;1381:6;1389:9;1364:35;;;;;;;;;;;;:::i;:::-;;;;;;;;1315:99;1218:206;;1194:230;1059:371;;;:::o;6271:1107:2:-;6376:1;6360:18;;:4;:18;;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;;;;;6356:540;;;6548:19;6570:9;:15;6580:4;6570:15;;;;;;;;;;;;;;;;6548:37;;6617:5;6603:11;:19;6599:115;;;6674:4;6680:11;6693:5;6649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6599:115;6866:5;6852:11;:19;6834:9;:15;6844:4;6834:15;;;;;;;;;;;;;;;:37;;;;6534:362;6356:540;6924:1;6910:16;;:2;:16;;;6906:425;;7089:5;7073:12;;:21;;;;;;;;;;;6906:425;;;7301:5;7284:9;:13;7294:2;7284:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6906:425;7361:2;7346:25;;7355:4;7346:25;;;7365:5;7346:25;;;;;;:::i;:::-;;;;;;;;6271:1107;;;:::o;3144:97::-;3196:7;3222:12;;3215:19;;3144:97;:::o;88:117:12:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:126::-;731:7;771:42;764:5;760:54;749:65;;694:126;;;:::o;826:96::-;863:7;892:24;910:5;892:24;:::i;:::-;881:35;;826:96;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:977::-;1311:6;1319;1327;1335;1343;1392:3;1380:9;1371:7;1367:23;1363:33;1360:120;;;1399:79;;:::i;:::-;1360:120;1519:1;1544:64;1600:7;1591:6;1580:9;1576:22;1544:64;:::i;:::-;1534:74;;1490:128;1657:2;1683:64;1739:7;1730:6;1719:9;1715:22;1683:64;:::i;:::-;1673:74;;1628:129;1796:2;1822:64;1878:7;1869:6;1858:9;1854:22;1822:64;:::i;:::-;1812:74;;1767:129;1935:2;1961:64;2017:7;2008:6;1997:9;1993:22;1961:64;:::i;:::-;1951:74;;1906:129;2074:3;2101:64;2157:7;2148:6;2137:9;2133:22;2101:64;:::i;:::-;2091:74;;2045:130;1205:977;;;;;;;;:::o;2188:180::-;2236:77;2233:1;2226:88;2333:4;2330:1;2323:15;2357:4;2354:1;2347:15;2374:102;2416:8;2463:5;2460:1;2456:13;2435:34;;2374:102;;;:::o;2482:848::-;2543:5;2550:4;2574:6;2565:15;;2598:5;2589:14;;2612:712;2633:1;2623:8;2620:15;2612:712;;;2728:4;2723:3;2719:14;2713:4;2710:24;2707:50;;;2737:18;;:::i;:::-;2707:50;2787:1;2777:8;2773:16;2770:451;;;3202:4;3195:5;3191:16;3182:25;;2770:451;3252:4;3246;3242:15;3234:23;;3282:32;3305:8;3282:32;:::i;:::-;3270:44;;2612:712;;;2482:848;;;;;;;:::o;3336:1073::-;3390:5;3581:8;3571:40;;3602:1;3593:10;;3604:5;;3571:40;3630:4;3620:36;;3647:1;3638:10;;3649:5;;3620:36;3716:4;3764:1;3759:27;;;;3800:1;3795:191;;;;3709:277;;3759:27;3777:1;3768:10;;3779:5;;;3795:191;3840:3;3830:8;3827:17;3824:43;;;3847:18;;:::i;:::-;3824:43;3896:8;3893:1;3889:16;3880:25;;3931:3;3924:5;3921:14;3918:40;;;3938:18;;:::i;:::-;3918:40;3971:5;;;3709:277;;4095:2;4085:8;4082:16;4076:3;4070:4;4067:13;4063:36;4045:2;4035:8;4032:16;4027:2;4021:4;4018:12;4014:35;3998:111;3995:246;;;4151:8;4145:4;4141:19;4132:28;;4186:3;4179:5;4176:14;4173:40;;;4193:18;;:::i;:::-;4173:40;4226:5;;3995:246;4266:42;4304:3;4294:8;4288:4;4285:1;4266:42;:::i;:::-;4251:57;;;;4340:4;4335:3;4331:14;4324:5;4321:25;4318:51;;;4349:18;;:::i;:::-;4318:51;4398:4;4391:5;4387:16;4378:25;;3336:1073;;;;;;:::o;4415:285::-;4475:5;4499:23;4517:4;4499:23;:::i;:::-;4491:31;;4543:27;4561:8;4543:27;:::i;:::-;4531:39;;4589:104;4626:66;4616:8;4610:4;4589:104;:::i;:::-;4580:113;;4415:285;;;;:::o;4706:410::-;4746:7;4769:20;4787:1;4769:20;:::i;:::-;4764:25;;4803:20;4821:1;4803:20;:::i;:::-;4798:25;;4858:1;4855;4851:9;4880:30;4898:11;4880:30;:::i;:::-;4869:41;;5059:1;5050:7;5046:15;5043:1;5040:22;5020:1;5013:9;4993:83;4970:139;;5089:18;;:::i;:::-;4970:139;4754:362;4706:410;;;;:::o;5122:99::-;5174:6;5208:5;5202:12;5192:22;;5122:99;;;:::o;5227:180::-;5275:77;5272:1;5265:88;5372:4;5369:1;5362:15;5396:4;5393:1;5386:15;5413:180;5461:77;5458:1;5451:88;5558:4;5555:1;5548:15;5582:4;5579:1;5572:15;5599:320;5643:6;5680:1;5674:4;5670:12;5660:22;;5727:1;5721:4;5717:12;5748:18;5738:81;;5804:4;5796:6;5792:17;5782:27;;5738:81;5866:2;5858:6;5855:14;5835:18;5832:38;5829:84;;5885:18;;:::i;:::-;5829:84;5650:269;5599:320;;;:::o;5925:141::-;5974:4;5997:3;5989:11;;6020:3;6017:1;6010:14;6054:4;6051:1;6041:18;6033:26;;5925:141;;;:::o;6072:93::-;6109:6;6156:2;6151;6144:5;6140:14;6136:23;6126:33;;6072:93;;;:::o;6171:107::-;6215:8;6265:5;6259:4;6255:16;6234:37;;6171:107;;;;:::o;6284:393::-;6353:6;6403:1;6391:10;6387:18;6426:97;6456:66;6445:9;6426:97;:::i;:::-;6544:39;6574:8;6563:9;6544:39;:::i;:::-;6532:51;;6616:4;6612:9;6605:5;6601:21;6592:30;;6665:4;6655:8;6651:19;6644:5;6641:30;6631:40;;6360:317;;6284:393;;;;;:::o;6683:60::-;6711:3;6732:5;6725:12;;6683:60;;;:::o;6749:142::-;6799:9;6832:53;6850:34;6859:24;6877:5;6859:24;:::i;:::-;6850:34;:::i;:::-;6832:53;:::i;:::-;6819:66;;6749:142;;;:::o;6897:75::-;6940:3;6961:5;6954:12;;6897:75;;;:::o;6978:269::-;7088:39;7119:7;7088:39;:::i;:::-;7149:91;7198:41;7222:16;7198:41;:::i;:::-;7190:6;7183:4;7177:11;7149:91;:::i;:::-;7143:4;7136:105;7054:193;6978:269;;;:::o;7253:73::-;7298:3;7253:73;:::o;7332:189::-;7409:32;;:::i;:::-;7450:65;7508:6;7500;7494:4;7450:65;:::i;:::-;7385:136;7332:189;;:::o;7527:186::-;7587:120;7604:3;7597:5;7594:14;7587:120;;;7658:39;7695:1;7688:5;7658:39;:::i;:::-;7631:1;7624:5;7620:13;7611:22;;7587:120;;;7527:186;;:::o;7719:543::-;7820:2;7815:3;7812:11;7809:446;;;7854:38;7886:5;7854:38;:::i;:::-;7938:29;7956:10;7938:29;:::i;:::-;7928:8;7924:44;8121:2;8109:10;8106:18;8103:49;;;8142:8;8127:23;;8103:49;8165:80;8221:22;8239:3;8221:22;:::i;:::-;8211:8;8207:37;8194:11;8165:80;:::i;:::-;7824:431;;7809:446;7719:543;;;:::o;8268:117::-;8322:8;8372:5;8366:4;8362:16;8341:37;;8268:117;;;;:::o;8391:169::-;8435:6;8468:51;8516:1;8512:6;8504:5;8501:1;8497:13;8468:51;:::i;:::-;8464:56;8549:4;8543;8539:15;8529:25;;8442:118;8391:169;;;;:::o;8565:295::-;8641:4;8787:29;8812:3;8806:4;8787:29;:::i;:::-;8779:37;;8849:3;8846:1;8842:11;8836:4;8833:21;8825:29;;8565:295;;;;:::o;8865:1395::-;8982:37;9015:3;8982:37;:::i;:::-;9084:18;9076:6;9073:30;9070:56;;;9106:18;;:::i;:::-;9070:56;9150:38;9182:4;9176:11;9150:38;:::i;:::-;9235:67;9295:6;9287;9281:4;9235:67;:::i;:::-;9329:1;9353:4;9340:17;;9385:2;9377:6;9374:14;9402:1;9397:618;;;;10059:1;10076:6;10073:77;;;10125:9;10120:3;10116:19;10110:26;10101:35;;10073:77;10176:67;10236:6;10229:5;10176:67;:::i;:::-;10170:4;10163:81;10032:222;9367:887;;9397:618;9449:4;9445:9;9437:6;9433:22;9483:37;9515:4;9483:37;:::i;:::-;9542:1;9556:208;9570:7;9567:1;9564:14;9556:208;;;9649:9;9644:3;9640:19;9634:26;9626:6;9619:42;9700:1;9692:6;9688:14;9678:24;;9747:2;9736:9;9732:18;9719:31;;9593:4;9590:1;9586:12;9581:17;;9556:208;;;9792:6;9783:7;9780:19;9777:179;;;9850:9;9845:3;9841:19;9835:26;9893:48;9935:4;9927:6;9923:17;9912:9;9893:48;:::i;:::-;9885:6;9878:64;9800:156;9777:179;10002:1;9998;9990:6;9986:14;9982:22;9976:4;9969:36;9404:611;;;9367:887;;8957:1303;;;8865:1395;;:::o;10266:85::-;10311:7;10340:5;10329:16;;10266:85;;;:::o;10357:158::-;10415:9;10448:61;10466:42;10475:32;10501:5;10475:32;:::i;:::-;10466:42;:::i;:::-;10448:61;:::i;:::-;10435:74;;10357:158;;;:::o;10521:147::-;10616:45;10655:5;10616:45;:::i;:::-;10611:3;10604:58;10521:147;;:::o;10674:238::-;10775:4;10813:2;10802:9;10798:18;10790:26;;10826:79;10902:1;10891:9;10887:17;10878:6;10826:79;:::i;:::-;10674:238;;;;:::o;10918:118::-;11005:24;11023:5;11005:24;:::i;:::-;11000:3;10993:37;10918:118;;:::o;11042:222::-;11135:4;11173:2;11162:9;11158:18;11150:26;;11186:71;11254:1;11243:9;11239:17;11230:6;11186:71;:::i;:::-;11042:222;;;;:::o;11270:180::-;11318:77;11315:1;11308:88;11415:4;11412:1;11405:15;11439:4;11436:1;11429:15;11456:185;11496:1;11513:20;11531:1;11513:20;:::i;:::-;11508:25;;11547:20;11565:1;11547:20;:::i;:::-;11542:25;;11586:1;11576:35;;11591:18;;:::i;:::-;11576:35;11633:1;11630;11626:9;11621:14;;11456:185;;;;:::o;11647:118::-;11734:24;11752:5;11734:24;:::i;:::-;11729:3;11722:37;11647:118;;:::o;11771:332::-;11892:4;11930:2;11919:9;11915:18;11907:26;;11943:71;12011:1;12000:9;11996:17;11987:6;11943:71;:::i;:::-;12024:72;12092:2;12081:9;12077:18;12068:6;12024:72;:::i;:::-;11771:332;;;;;:::o;12109:180::-;12157:77;12154:1;12147:88;12254:4;12251:1;12244:15;12278:4;12275:1;12268:15;12295:553;12472:4;12510:3;12499:9;12495:19;12487:27;;12524:71;12592:1;12581:9;12577:17;12568:6;12524:71;:::i;:::-;12605:72;12673:2;12662:9;12658:18;12649:6;12605:72;:::i;:::-;12687;12755:2;12744:9;12740:18;12731:6;12687:72;:::i;:::-;12769;12837:2;12826:9;12822:18;12813:6;12769:72;:::i;:::-;12295:553;;;;;;;:::o;12854:194::-;12894:4;12914:20;12932:1;12914:20;:::i;:::-;12909:25;;12948:20;12966:1;12948:20;:::i;:::-;12943:25;;12992:1;12989;12985:9;12977:17;;13016:1;13010:4;13007:11;13004:37;;;13021:18;;:::i;:::-;13004:37;12854:194;;;;:::o;13054:332::-;13175:4;13213:2;13202:9;13198:18;13190:26;;13226:71;13294:1;13283:9;13279:17;13270:6;13226:71;:::i;:::-;13307:72;13375:2;13364:9;13360:18;13351:6;13307:72;:::i;:::-;13054:332;;;;;:::o;13392:191::-;13432:3;13451:20;13469:1;13451:20;:::i;:::-;13446:25;;13485:20;13503:1;13485:20;:::i;:::-;13480:25;;13528:1;13525;13521:9;13514:16;;13549:3;13546:1;13543:10;13540:36;;;13556:18;;:::i;:::-;13540:36;13392:191;;;;:::o;13589:442::-;13738:4;13776:2;13765:9;13761:18;13753:26;;13789:71;13857:1;13846:9;13842:17;13833:6;13789:71;:::i;:::-;13870:72;13938:2;13927:9;13923:18;13914:6;13870:72;:::i;:::-;13952;14020:2;14009:9;14005:18;13996:6;13952:72;:::i;:::-;13589:442;;;;;;:::o;14037:222::-;14130:4;14168:2;14157:9;14153:18;14145:26;;14181:71;14249:1;14238:9;14234:17;14225:6;14181:71;:::i;:::-;14037:222;;;;:::o;529:5330:11:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@BURN_ADDRESS_1779": { + "entryPoint": 4458, + "id": 1779, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@TOKEN_NAME_1773": { + "entryPoint": 1781, + "id": 1773, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@TOKEN_TICKER_SYMBOL_1776": { + "entryPoint": 1978, + "id": 1776, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_2110": { + "entryPoint": null, + "id": 2110, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_690": { + "entryPoint": 4471, + "id": 690, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_750": { + "entryPoint": 5364, + "id": 750, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 4881, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_mint_639": { + "entryPoint": 5016, + "id": 639, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1014": { + "entryPoint": 4463, + "id": 1014, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_798": { + "entryPoint": 4489, + "id": 798, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 5166, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transfer_529": { + "entryPoint": 4637, + "id": 529, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_2216": { + "entryPoint": 5835, + "id": 2216, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_606": { + "entryPoint": 6586, + "id": 606, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_975": { + "entryPoint": 6420, + "id": 975, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_426": { + "entryPoint": 3918, + "id": 426, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_450": { + "entryPoint": 1698, + "id": 450, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_385": { + "entryPoint": 3338, + "id": 385, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@buyTaxRate_1762": { + "entryPoint": 3332, + "id": 1762, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@cap_927": { + "entryPoint": 1938, + "id": 927, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decimals_363": { + "entryPoint": 1929, + "id": 363, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@exchangeMultiSig1_1757": { + "entryPoint": 3657, + "id": 1757, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@exchangeMultiSig2_1759": { + "entryPoint": 2035, + "id": 1759, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@initializeUniswapLiquidity_2046": { + "entryPoint": 2073, + "id": 2046, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@marketingMultiSig_1755": { + "entryPoint": 3294, + "id": 1755, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@name_345": { + "entryPoint": 1552, + "id": 345, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 3695, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_2106": { + "entryPoint": 3410, + "id": 2106, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@renounceOwnership_98": { + "entryPoint": 5146, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@sellTaxRate_1765": { + "entryPoint": 1885, + "id": 1765, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setTaxRatesToZero_2076": { + "entryPoint": 4072, + "id": 2076, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@symbol_354": { + "entryPoint": 3737, + "id": 354, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@tokenState_1753": { + "entryPoint": 4053, + "id": 1753, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@totalSupply_372": { + "entryPoint": 1771, + "id": 372, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_482": { + "entryPoint": 1838, + "id": 482, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transferOwnership_126": { + "entryPoint": 4324, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transfer_409": { + "entryPoint": 3883, + "id": 409, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@uniswapV2PairAddress_1767": { + "entryPoint": 1891, + "id": 1767, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@uniswapV2Router_1770": { + "entryPoint": 1733, + "id": 1770, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 7391, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 8425, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 7445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 8897, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 7928, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 8446, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 7973, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 7748, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 7466, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 9001, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory": { + "entryPoint": 8918, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7831, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 7542, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IUniswapV2Router02_$1733_to_t_address_fromStack": { + "entryPoint": 7664, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_enum$_TokenState_$1750_to_t_uint8_fromStack": { + "entryPoint": 8141, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack": { + "entryPoint": 8785, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7222, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8358, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 7706, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 7886, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 7846, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 8491, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 9129, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 8800, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 9239, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 9294, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 9046, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 7557, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IUniswapV2Router02_$1733__to_t_address__fromStack_reversed": { + "entryPoint": 7679, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_enum$_TokenState_$1750__to_t_uint8__fromStack_reversed": { + "entryPoint": 8156, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7279, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8393, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 7721, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 9415, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 9184, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 7901, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 7135, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 7146, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 9456, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 8692, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 8579, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 9363, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 7350, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 7530, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_enum$_TokenState_$1750": { + "entryPoint": 8104, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_0_by_1": { + "entryPoint": 8741, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 7318, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 7412, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 7873, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IUniswapV2Router02_$1733_to_t_address": { + "entryPoint": 7646, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_enum$_TokenState_$1750_to_t_uint8": { + "entryPoint": 8123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_rational_0_by_1_to_t_uint256": { + "entryPoint": 8751, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 7628, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 7594, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 7163, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 8230, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 7584, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 8532, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 8645, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 8037, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 8183, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 7313, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 7205, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c": { + "entryPoint": 8279, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_assert_t_enum$_TokenState_$1750": { + "entryPoint": 8084, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 7368, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 7422, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:17086:12", + "nodeType": "YulBlock", + "src": "0:17086:12", + "statements": [ + { + "body": { + "nativeSrc": "66:40:12", + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nativeSrc": "77:22:12", + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:12", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "87:5:12", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nativeSrc": "87:12:12", + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "77:6:12", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:12", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:12", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nativeSrc": "208:73:12", + "nodeType": "YulBlock", + "src": "208:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "225:3:12", + "nodeType": "YulIdentifier", + "src": "225:3:12" + }, + { + "name": "length", + "nativeSrc": "230:6:12", + "nodeType": "YulIdentifier", + "src": "230:6:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "218:6:12", + "nodeType": "YulIdentifier", + "src": "218:6:12" + }, + "nativeSrc": "218:19:12", + "nodeType": "YulFunctionCall", + "src": "218:19:12" + }, + "nativeSrc": "218:19:12", + "nodeType": "YulExpressionStatement", + "src": "218:19:12" + }, + { + "nativeSrc": "246:29:12", + "nodeType": "YulAssignment", + "src": "246:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "265:3:12", + "nodeType": "YulIdentifier", + "src": "265:3:12" + }, + { + "kind": "number", + "nativeSrc": "270:4:12", + "nodeType": "YulLiteral", + "src": "270:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "261:3:12", + "nodeType": "YulIdentifier", + "src": "261:3:12" + }, + "nativeSrc": "261:14:12", + "nodeType": "YulFunctionCall", + "src": "261:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "246:11:12", + "nodeType": "YulIdentifier", + "src": "246:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "112:169:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "180:3:12", + "nodeType": "YulTypedName", + "src": "180:3:12", + "type": "" + }, + { + "name": "length", + "nativeSrc": "185:6:12", + "nodeType": "YulTypedName", + "src": "185:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "196:11:12", + "nodeType": "YulTypedName", + "src": "196:11:12", + "type": "" + } + ], + "src": "112:169:12" + }, + { + "body": { + "nativeSrc": "349:184:12", + "nodeType": "YulBlock", + "src": "349:184:12", + "statements": [ + { + "nativeSrc": "359:10:12", + "nodeType": "YulVariableDeclaration", + "src": "359:10:12", + "value": { + "kind": "number", + "nativeSrc": "368:1:12", + "nodeType": "YulLiteral", + "src": "368:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "363:1:12", + "nodeType": "YulTypedName", + "src": "363:1:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "428:63:12", + "nodeType": "YulBlock", + "src": "428:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "453:3:12", + "nodeType": "YulIdentifier", + "src": "453:3:12" + }, + { + "name": "i", + "nativeSrc": "458:1:12", + "nodeType": "YulIdentifier", + "src": "458:1:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "449:3:12", + "nodeType": "YulIdentifier", + "src": "449:3:12" + }, + "nativeSrc": "449:11:12", + "nodeType": "YulFunctionCall", + "src": "449:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "472:3:12", + "nodeType": "YulIdentifier", + "src": "472:3:12" + }, + { + "name": "i", + "nativeSrc": "477:1:12", + "nodeType": "YulIdentifier", + "src": "477:1:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "468:3:12", + "nodeType": "YulIdentifier", + "src": "468:3:12" + }, + "nativeSrc": "468:11:12", + "nodeType": "YulFunctionCall", + "src": "468:11:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "462:5:12", + "nodeType": "YulIdentifier", + "src": "462:5:12" + }, + "nativeSrc": "462:18:12", + "nodeType": "YulFunctionCall", + "src": "462:18:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "442:6:12", + "nodeType": "YulIdentifier", + "src": "442:6:12" + }, + "nativeSrc": "442:39:12", + "nodeType": "YulFunctionCall", + "src": "442:39:12" + }, + "nativeSrc": "442:39:12", + "nodeType": "YulExpressionStatement", + "src": "442:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "389:1:12", + "nodeType": "YulIdentifier", + "src": "389:1:12" + }, + { + "name": "length", + "nativeSrc": "392:6:12", + "nodeType": "YulIdentifier", + "src": "392:6:12" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "386:2:12", + "nodeType": "YulIdentifier", + "src": "386:2:12" + }, + "nativeSrc": "386:13:12", + "nodeType": "YulFunctionCall", + "src": "386:13:12" + }, + "nativeSrc": "378:113:12", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "400:19:12", + "nodeType": "YulBlock", + "src": "400:19:12", + "statements": [ + { + "nativeSrc": "402:15:12", + "nodeType": "YulAssignment", + "src": "402:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "411:1:12", + "nodeType": "YulIdentifier", + "src": "411:1:12" + }, + { + "kind": "number", + "nativeSrc": "414:2:12", + "nodeType": "YulLiteral", + "src": "414:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "407:3:12", + "nodeType": "YulIdentifier", + "src": "407:3:12" + }, + "nativeSrc": "407:10:12", + "nodeType": "YulFunctionCall", + "src": "407:10:12" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "402:1:12", + "nodeType": "YulIdentifier", + "src": "402:1:12" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "382:3:12", + "nodeType": "YulBlock", + "src": "382:3:12", + "statements": [] + }, + "src": "378:113:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "511:3:12", + "nodeType": "YulIdentifier", + "src": "511:3:12" + }, + { + "name": "length", + "nativeSrc": "516:6:12", + "nodeType": "YulIdentifier", + "src": "516:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "507:3:12", + "nodeType": "YulIdentifier", + "src": "507:3:12" + }, + "nativeSrc": "507:16:12", + "nodeType": "YulFunctionCall", + "src": "507:16:12" + }, + { + "kind": "number", + "nativeSrc": "525:1:12", + "nodeType": "YulLiteral", + "src": "525:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "500:6:12", + "nodeType": "YulIdentifier", + "src": "500:6:12" + }, + "nativeSrc": "500:27:12", + "nodeType": "YulFunctionCall", + "src": "500:27:12" + }, + "nativeSrc": "500:27:12", + "nodeType": "YulExpressionStatement", + "src": "500:27:12" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "287:246:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "331:3:12", + "nodeType": "YulTypedName", + "src": "331:3:12", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "336:3:12", + "nodeType": "YulTypedName", + "src": "336:3:12", + "type": "" + }, + { + "name": "length", + "nativeSrc": "341:6:12", + "nodeType": "YulTypedName", + "src": "341:6:12", + "type": "" + } + ], + "src": "287:246:12" + }, + { + "body": { + "nativeSrc": "587:54:12", + "nodeType": "YulBlock", + "src": "587:54:12", + "statements": [ + { + "nativeSrc": "597:38:12", + "nodeType": "YulAssignment", + "src": "597:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "615:5:12", + "nodeType": "YulIdentifier", + "src": "615:5:12" + }, + { + "kind": "number", + "nativeSrc": "622:2:12", + "nodeType": "YulLiteral", + "src": "622:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "611:3:12", + "nodeType": "YulIdentifier", + "src": "611:3:12" + }, + "nativeSrc": "611:14:12", + "nodeType": "YulFunctionCall", + "src": "611:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "631:2:12", + "nodeType": "YulLiteral", + "src": "631:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "627:3:12", + "nodeType": "YulIdentifier", + "src": "627:3:12" + }, + "nativeSrc": "627:7:12", + "nodeType": "YulFunctionCall", + "src": "627:7:12" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "607:3:12", + "nodeType": "YulIdentifier", + "src": "607:3:12" + }, + "nativeSrc": "607:28:12", + "nodeType": "YulFunctionCall", + "src": "607:28:12" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "597:6:12", + "nodeType": "YulIdentifier", + "src": "597:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "539:102:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "570:5:12", + "nodeType": "YulTypedName", + "src": "570:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "580:6:12", + "nodeType": "YulTypedName", + "src": "580:6:12", + "type": "" + } + ], + "src": "539:102:12" + }, + { + "body": { + "nativeSrc": "739:285:12", + "nodeType": "YulBlock", + "src": "739:285:12", + "statements": [ + { + "nativeSrc": "749:53:12", + "nodeType": "YulVariableDeclaration", + "src": "749:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "796:5:12", + "nodeType": "YulIdentifier", + "src": "796:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "763:32:12", + "nodeType": "YulIdentifier", + "src": "763:32:12" + }, + "nativeSrc": "763:39:12", + "nodeType": "YulFunctionCall", + "src": "763:39:12" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "753:6:12", + "nodeType": "YulTypedName", + "src": "753:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "811:78:12", + "nodeType": "YulAssignment", + "src": "811:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "877:3:12", + "nodeType": "YulIdentifier", + "src": "877:3:12" + }, + { + "name": "length", + "nativeSrc": "882:6:12", + "nodeType": "YulIdentifier", + "src": "882:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "818:58:12", + "nodeType": "YulIdentifier", + "src": "818:58:12" + }, + "nativeSrc": "818:71:12", + "nodeType": "YulFunctionCall", + "src": "818:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "811:3:12", + "nodeType": "YulIdentifier", + "src": "811:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "937:5:12", + "nodeType": "YulIdentifier", + "src": "937:5:12" + }, + { + "kind": "number", + "nativeSrc": "944:4:12", + "nodeType": "YulLiteral", + "src": "944:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "933:3:12", + "nodeType": "YulIdentifier", + "src": "933:3:12" + }, + "nativeSrc": "933:16:12", + "nodeType": "YulFunctionCall", + "src": "933:16:12" + }, + { + "name": "pos", + "nativeSrc": "951:3:12", + "nodeType": "YulIdentifier", + "src": "951:3:12" + }, + { + "name": "length", + "nativeSrc": "956:6:12", + "nodeType": "YulIdentifier", + "src": "956:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "898:34:12", + "nodeType": "YulIdentifier", + "src": "898:34:12" + }, + "nativeSrc": "898:65:12", + "nodeType": "YulFunctionCall", + "src": "898:65:12" + }, + "nativeSrc": "898:65:12", + "nodeType": "YulExpressionStatement", + "src": "898:65:12" + }, + { + "nativeSrc": "972:46:12", + "nodeType": "YulAssignment", + "src": "972:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "983:3:12", + "nodeType": "YulIdentifier", + "src": "983:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "1010:6:12", + "nodeType": "YulIdentifier", + "src": "1010:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "988:21:12", + "nodeType": "YulIdentifier", + "src": "988:21:12" + }, + "nativeSrc": "988:29:12", + "nodeType": "YulFunctionCall", + "src": "988:29:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "979:3:12", + "nodeType": "YulIdentifier", + "src": "979:3:12" + }, + "nativeSrc": "979:39:12", + "nodeType": "YulFunctionCall", + "src": "979:39:12" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "972:3:12", + "nodeType": "YulIdentifier", + "src": "972:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "647:377:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "720:5:12", + "nodeType": "YulTypedName", + "src": "720:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "727:3:12", + "nodeType": "YulTypedName", + "src": "727:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "735:3:12", + "nodeType": "YulTypedName", + "src": "735:3:12", + "type": "" + } + ], + "src": "647:377:12" + }, + { + "body": { + "nativeSrc": "1148:195:12", + "nodeType": "YulBlock", + "src": "1148:195:12", + "statements": [ + { + "nativeSrc": "1158:26:12", + "nodeType": "YulAssignment", + "src": "1158:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1170:9:12", + "nodeType": "YulIdentifier", + "src": "1170:9:12" + }, + { + "kind": "number", + "nativeSrc": "1181:2:12", + "nodeType": "YulLiteral", + "src": "1181:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1166:3:12", + "nodeType": "YulIdentifier", + "src": "1166:3:12" + }, + "nativeSrc": "1166:18:12", + "nodeType": "YulFunctionCall", + "src": "1166:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1158:4:12", + "nodeType": "YulIdentifier", + "src": "1158:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1205:9:12", + "nodeType": "YulIdentifier", + "src": "1205:9:12" + }, + { + "kind": "number", + "nativeSrc": "1216:1:12", + "nodeType": "YulLiteral", + "src": "1216:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1201:3:12", + "nodeType": "YulIdentifier", + "src": "1201:3:12" + }, + "nativeSrc": "1201:17:12", + "nodeType": "YulFunctionCall", + "src": "1201:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "1224:4:12", + "nodeType": "YulIdentifier", + "src": "1224:4:12" + }, + { + "name": "headStart", + "nativeSrc": "1230:9:12", + "nodeType": "YulIdentifier", + "src": "1230:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1220:3:12", + "nodeType": "YulIdentifier", + "src": "1220:3:12" + }, + "nativeSrc": "1220:20:12", + "nodeType": "YulFunctionCall", + "src": "1220:20:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1194:6:12", + "nodeType": "YulIdentifier", + "src": "1194:6:12" + }, + "nativeSrc": "1194:47:12", + "nodeType": "YulFunctionCall", + "src": "1194:47:12" + }, + "nativeSrc": "1194:47:12", + "nodeType": "YulExpressionStatement", + "src": "1194:47:12" + }, + { + "nativeSrc": "1250:86:12", + "nodeType": "YulAssignment", + "src": "1250:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1322:6:12", + "nodeType": "YulIdentifier", + "src": "1322:6:12" + }, + { + "name": "tail", + "nativeSrc": "1331:4:12", + "nodeType": "YulIdentifier", + "src": "1331:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "1258:63:12", + "nodeType": "YulIdentifier", + "src": "1258:63:12" + }, + "nativeSrc": "1258:78:12", + "nodeType": "YulFunctionCall", + "src": "1258:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1250:4:12", + "nodeType": "YulIdentifier", + "src": "1250:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "1030:313:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1120:9:12", + "nodeType": "YulTypedName", + "src": "1120:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1132:6:12", + "nodeType": "YulTypedName", + "src": "1132:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1143:4:12", + "nodeType": "YulTypedName", + "src": "1143:4:12", + "type": "" + } + ], + "src": "1030:313:12" + }, + { + "body": { + "nativeSrc": "1389:35:12", + "nodeType": "YulBlock", + "src": "1389:35:12", + "statements": [ + { + "nativeSrc": "1399:19:12", + "nodeType": "YulAssignment", + "src": "1399:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1415:2:12", + "nodeType": "YulLiteral", + "src": "1415:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1409:5:12", + "nodeType": "YulIdentifier", + "src": "1409:5:12" + }, + "nativeSrc": "1409:9:12", + "nodeType": "YulFunctionCall", + "src": "1409:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1399:6:12", + "nodeType": "YulIdentifier", + "src": "1399:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "1349:75:12", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1382:6:12", + "nodeType": "YulTypedName", + "src": "1382:6:12", + "type": "" + } + ], + "src": "1349:75:12" + }, + { + "body": { + "nativeSrc": "1519:28:12", + "nodeType": "YulBlock", + "src": "1519:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1536:1:12", + "nodeType": "YulLiteral", + "src": "1536:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1539:1:12", + "nodeType": "YulLiteral", + "src": "1539:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1529:6:12", + "nodeType": "YulIdentifier", + "src": "1529:6:12" + }, + "nativeSrc": "1529:12:12", + "nodeType": "YulFunctionCall", + "src": "1529:12:12" + }, + "nativeSrc": "1529:12:12", + "nodeType": "YulExpressionStatement", + "src": "1529:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1430:117:12", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:12" + }, + { + "body": { + "nativeSrc": "1642:28:12", + "nodeType": "YulBlock", + "src": "1642:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1659:1:12", + "nodeType": "YulLiteral", + "src": "1659:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1662:1:12", + "nodeType": "YulLiteral", + "src": "1662:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1652:6:12", + "nodeType": "YulIdentifier", + "src": "1652:6:12" + }, + "nativeSrc": "1652:12:12", + "nodeType": "YulFunctionCall", + "src": "1652:12:12" + }, + "nativeSrc": "1652:12:12", + "nodeType": "YulExpressionStatement", + "src": "1652:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "1553:117:12", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:12" + }, + { + "body": { + "nativeSrc": "1721:81:12", + "nodeType": "YulBlock", + "src": "1721:81:12", + "statements": [ + { + "nativeSrc": "1731:65:12", + "nodeType": "YulAssignment", + "src": "1731:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1746:5:12", + "nodeType": "YulIdentifier", + "src": "1746:5:12" + }, + { + "kind": "number", + "nativeSrc": "1753:42:12", + "nodeType": "YulLiteral", + "src": "1753:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1742:3:12", + "nodeType": "YulIdentifier", + "src": "1742:3:12" + }, + "nativeSrc": "1742:54:12", + "nodeType": "YulFunctionCall", + "src": "1742:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1731:7:12", + "nodeType": "YulIdentifier", + "src": "1731:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1676:126:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1703:5:12", + "nodeType": "YulTypedName", + "src": "1703:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1713:7:12", + "nodeType": "YulTypedName", + "src": "1713:7:12", + "type": "" + } + ], + "src": "1676:126:12" + }, + { + "body": { + "nativeSrc": "1853:51:12", + "nodeType": "YulBlock", + "src": "1853:51:12", + "statements": [ + { + "nativeSrc": "1863:35:12", + "nodeType": "YulAssignment", + "src": "1863:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1892:5:12", + "nodeType": "YulIdentifier", + "src": "1892:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1874:17:12", + "nodeType": "YulIdentifier", + "src": "1874:17:12" + }, + "nativeSrc": "1874:24:12", + "nodeType": "YulFunctionCall", + "src": "1874:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1863:7:12", + "nodeType": "YulIdentifier", + "src": "1863:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1808:96:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1835:5:12", + "nodeType": "YulTypedName", + "src": "1835:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1845:7:12", + "nodeType": "YulTypedName", + "src": "1845:7:12", + "type": "" + } + ], + "src": "1808:96:12" + }, + { + "body": { + "nativeSrc": "1953:79:12", + "nodeType": "YulBlock", + "src": "1953:79:12", + "statements": [ + { + "body": { + "nativeSrc": "2010:16:12", + "nodeType": "YulBlock", + "src": "2010:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2019:1:12", + "nodeType": "YulLiteral", + "src": "2019:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2022:1:12", + "nodeType": "YulLiteral", + "src": "2022:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2012:6:12", + "nodeType": "YulIdentifier", + "src": "2012:6:12" + }, + "nativeSrc": "2012:12:12", + "nodeType": "YulFunctionCall", + "src": "2012:12:12" + }, + "nativeSrc": "2012:12:12", + "nodeType": "YulExpressionStatement", + "src": "2012:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1976:5:12", + "nodeType": "YulIdentifier", + "src": "1976:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2001:5:12", + "nodeType": "YulIdentifier", + "src": "2001:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1983:17:12", + "nodeType": "YulIdentifier", + "src": "1983:17:12" + }, + "nativeSrc": "1983:24:12", + "nodeType": "YulFunctionCall", + "src": "1983:24:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1973:2:12", + "nodeType": "YulIdentifier", + "src": "1973:2:12" + }, + "nativeSrc": "1973:35:12", + "nodeType": "YulFunctionCall", + "src": "1973:35:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1966:6:12", + "nodeType": "YulIdentifier", + "src": "1966:6:12" + }, + "nativeSrc": "1966:43:12", + "nodeType": "YulFunctionCall", + "src": "1966:43:12" + }, + "nativeSrc": "1963:63:12", + "nodeType": "YulIf", + "src": "1963:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "1910:122:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1946:5:12", + "nodeType": "YulTypedName", + "src": "1946:5:12", + "type": "" + } + ], + "src": "1910:122:12" + }, + { + "body": { + "nativeSrc": "2090:87:12", + "nodeType": "YulBlock", + "src": "2090:87:12", + "statements": [ + { + "nativeSrc": "2100:29:12", + "nodeType": "YulAssignment", + "src": "2100:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2122:6:12", + "nodeType": "YulIdentifier", + "src": "2122:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2109:12:12", + "nodeType": "YulIdentifier", + "src": "2109:12:12" + }, + "nativeSrc": "2109:20:12", + "nodeType": "YulFunctionCall", + "src": "2109:20:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2100:5:12", + "nodeType": "YulIdentifier", + "src": "2100:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2165:5:12", + "nodeType": "YulIdentifier", + "src": "2165:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "2138:26:12", + "nodeType": "YulIdentifier", + "src": "2138:26:12" + }, + "nativeSrc": "2138:33:12", + "nodeType": "YulFunctionCall", + "src": "2138:33:12" + }, + "nativeSrc": "2138:33:12", + "nodeType": "YulExpressionStatement", + "src": "2138:33:12" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "2038:139:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2068:6:12", + "nodeType": "YulTypedName", + "src": "2068:6:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2076:3:12", + "nodeType": "YulTypedName", + "src": "2076:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2084:5:12", + "nodeType": "YulTypedName", + "src": "2084:5:12", + "type": "" + } + ], + "src": "2038:139:12" + }, + { + "body": { + "nativeSrc": "2228:32:12", + "nodeType": "YulBlock", + "src": "2228:32:12", + "statements": [ + { + "nativeSrc": "2238:16:12", + "nodeType": "YulAssignment", + "src": "2238:16:12", + "value": { + "name": "value", + "nativeSrc": "2249:5:12", + "nodeType": "YulIdentifier", + "src": "2249:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2238:7:12", + "nodeType": "YulIdentifier", + "src": "2238:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2183:77:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2210:5:12", + "nodeType": "YulTypedName", + "src": "2210:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2220:7:12", + "nodeType": "YulTypedName", + "src": "2220:7:12", + "type": "" + } + ], + "src": "2183:77:12" + }, + { + "body": { + "nativeSrc": "2309:79:12", + "nodeType": "YulBlock", + "src": "2309:79:12", + "statements": [ + { + "body": { + "nativeSrc": "2366:16:12", + "nodeType": "YulBlock", + "src": "2366:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2375:1:12", + "nodeType": "YulLiteral", + "src": "2375:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2378:1:12", + "nodeType": "YulLiteral", + "src": "2378:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2368:6:12", + "nodeType": "YulIdentifier", + "src": "2368:6:12" + }, + "nativeSrc": "2368:12:12", + "nodeType": "YulFunctionCall", + "src": "2368:12:12" + }, + "nativeSrc": "2368:12:12", + "nodeType": "YulExpressionStatement", + "src": "2368:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2332:5:12", + "nodeType": "YulIdentifier", + "src": "2332:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2357:5:12", + "nodeType": "YulIdentifier", + "src": "2357:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2339:17:12", + "nodeType": "YulIdentifier", + "src": "2339:17:12" + }, + "nativeSrc": "2339:24:12", + "nodeType": "YulFunctionCall", + "src": "2339:24:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2329:2:12", + "nodeType": "YulIdentifier", + "src": "2329:2:12" + }, + "nativeSrc": "2329:35:12", + "nodeType": "YulFunctionCall", + "src": "2329:35:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2322:6:12", + "nodeType": "YulIdentifier", + "src": "2322:6:12" + }, + "nativeSrc": "2322:43:12", + "nodeType": "YulFunctionCall", + "src": "2322:43:12" + }, + "nativeSrc": "2319:63:12", + "nodeType": "YulIf", + "src": "2319:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2266:122:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2302:5:12", + "nodeType": "YulTypedName", + "src": "2302:5:12", + "type": "" + } + ], + "src": "2266:122:12" + }, + { + "body": { + "nativeSrc": "2446:87:12", + "nodeType": "YulBlock", + "src": "2446:87:12", + "statements": [ + { + "nativeSrc": "2456:29:12", + "nodeType": "YulAssignment", + "src": "2456:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2478:6:12", + "nodeType": "YulIdentifier", + "src": "2478:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2465:12:12", + "nodeType": "YulIdentifier", + "src": "2465:12:12" + }, + "nativeSrc": "2465:20:12", + "nodeType": "YulFunctionCall", + "src": "2465:20:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2456:5:12", + "nodeType": "YulIdentifier", + "src": "2456:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2521:5:12", + "nodeType": "YulIdentifier", + "src": "2521:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "2494:26:12", + "nodeType": "YulIdentifier", + "src": "2494:26:12" + }, + "nativeSrc": "2494:33:12", + "nodeType": "YulFunctionCall", + "src": "2494:33:12" + }, + "nativeSrc": "2494:33:12", + "nodeType": "YulExpressionStatement", + "src": "2494:33:12" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "2394:139:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2424:6:12", + "nodeType": "YulTypedName", + "src": "2424:6:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2432:3:12", + "nodeType": "YulTypedName", + "src": "2432:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2440:5:12", + "nodeType": "YulTypedName", + "src": "2440:5:12", + "type": "" + } + ], + "src": "2394:139:12" + }, + { + "body": { + "nativeSrc": "2622:391:12", + "nodeType": "YulBlock", + "src": "2622:391:12", + "statements": [ + { + "body": { + "nativeSrc": "2668:83:12", + "nodeType": "YulBlock", + "src": "2668:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2670:77:12", + "nodeType": "YulIdentifier", + "src": "2670:77:12" + }, + "nativeSrc": "2670:79:12", + "nodeType": "YulFunctionCall", + "src": "2670:79:12" + }, + "nativeSrc": "2670:79:12", + "nodeType": "YulExpressionStatement", + "src": "2670:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2643:7:12", + "nodeType": "YulIdentifier", + "src": "2643:7:12" + }, + { + "name": "headStart", + "nativeSrc": "2652:9:12", + "nodeType": "YulIdentifier", + "src": "2652:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2639:3:12", + "nodeType": "YulIdentifier", + "src": "2639:3:12" + }, + "nativeSrc": "2639:23:12", + "nodeType": "YulFunctionCall", + "src": "2639:23:12" + }, + { + "kind": "number", + "nativeSrc": "2664:2:12", + "nodeType": "YulLiteral", + "src": "2664:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2635:3:12", + "nodeType": "YulIdentifier", + "src": "2635:3:12" + }, + "nativeSrc": "2635:32:12", + "nodeType": "YulFunctionCall", + "src": "2635:32:12" + }, + "nativeSrc": "2632:119:12", + "nodeType": "YulIf", + "src": "2632:119:12" + }, + { + "nativeSrc": "2761:117:12", + "nodeType": "YulBlock", + "src": "2761:117:12", + "statements": [ + { + "nativeSrc": "2776:15:12", + "nodeType": "YulVariableDeclaration", + "src": "2776:15:12", + "value": { + "kind": "number", + "nativeSrc": "2790:1:12", + "nodeType": "YulLiteral", + "src": "2790:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2780:6:12", + "nodeType": "YulTypedName", + "src": "2780:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "2805:63:12", + "nodeType": "YulAssignment", + "src": "2805:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2840:9:12", + "nodeType": "YulIdentifier", + "src": "2840:9:12" + }, + { + "name": "offset", + "nativeSrc": "2851:6:12", + "nodeType": "YulIdentifier", + "src": "2851:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2836:3:12", + "nodeType": "YulIdentifier", + "src": "2836:3:12" + }, + "nativeSrc": "2836:22:12", + "nodeType": "YulFunctionCall", + "src": "2836:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "2860:7:12", + "nodeType": "YulIdentifier", + "src": "2860:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2815:20:12", + "nodeType": "YulIdentifier", + "src": "2815:20:12" + }, + "nativeSrc": "2815:53:12", + "nodeType": "YulFunctionCall", + "src": "2815:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2805:6:12", + "nodeType": "YulIdentifier", + "src": "2805:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "2888:118:12", + "nodeType": "YulBlock", + "src": "2888:118:12", + "statements": [ + { + "nativeSrc": "2903:16:12", + "nodeType": "YulVariableDeclaration", + "src": "2903:16:12", + "value": { + "kind": "number", + "nativeSrc": "2917:2:12", + "nodeType": "YulLiteral", + "src": "2917:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2907:6:12", + "nodeType": "YulTypedName", + "src": "2907:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "2933:63:12", + "nodeType": "YulAssignment", + "src": "2933:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2968:9:12", + "nodeType": "YulIdentifier", + "src": "2968:9:12" + }, + { + "name": "offset", + "nativeSrc": "2979:6:12", + "nodeType": "YulIdentifier", + "src": "2979:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2964:3:12", + "nodeType": "YulIdentifier", + "src": "2964:3:12" + }, + "nativeSrc": "2964:22:12", + "nodeType": "YulFunctionCall", + "src": "2964:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "2988:7:12", + "nodeType": "YulIdentifier", + "src": "2988:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "2943:20:12", + "nodeType": "YulIdentifier", + "src": "2943:20:12" + }, + "nativeSrc": "2943:53:12", + "nodeType": "YulFunctionCall", + "src": "2943:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2933:6:12", + "nodeType": "YulIdentifier", + "src": "2933:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "2539:474:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2584:9:12", + "nodeType": "YulTypedName", + "src": "2584:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2595:7:12", + "nodeType": "YulTypedName", + "src": "2595:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2607:6:12", + "nodeType": "YulTypedName", + "src": "2607:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2615:6:12", + "nodeType": "YulTypedName", + "src": "2615:6:12", + "type": "" + } + ], + "src": "2539:474:12" + }, + { + "body": { + "nativeSrc": "3061:48:12", + "nodeType": "YulBlock", + "src": "3061:48:12", + "statements": [ + { + "nativeSrc": "3071:32:12", + "nodeType": "YulAssignment", + "src": "3071:32:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3096:5:12", + "nodeType": "YulIdentifier", + "src": "3096:5:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3089:6:12", + "nodeType": "YulIdentifier", + "src": "3089:6:12" + }, + "nativeSrc": "3089:13:12", + "nodeType": "YulFunctionCall", + "src": "3089:13:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3082:6:12", + "nodeType": "YulIdentifier", + "src": "3082:6:12" + }, + "nativeSrc": "3082:21:12", + "nodeType": "YulFunctionCall", + "src": "3082:21:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3071:7:12", + "nodeType": "YulIdentifier", + "src": "3071:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "3019:90:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3043:5:12", + "nodeType": "YulTypedName", + "src": "3043:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3053:7:12", + "nodeType": "YulTypedName", + "src": "3053:7:12", + "type": "" + } + ], + "src": "3019:90:12" + }, + { + "body": { + "nativeSrc": "3174:50:12", + "nodeType": "YulBlock", + "src": "3174:50:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3191:3:12", + "nodeType": "YulIdentifier", + "src": "3191:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3211:5:12", + "nodeType": "YulIdentifier", + "src": "3211:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "3196:14:12", + "nodeType": "YulIdentifier", + "src": "3196:14:12" + }, + "nativeSrc": "3196:21:12", + "nodeType": "YulFunctionCall", + "src": "3196:21:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3184:6:12", + "nodeType": "YulIdentifier", + "src": "3184:6:12" + }, + "nativeSrc": "3184:34:12", + "nodeType": "YulFunctionCall", + "src": "3184:34:12" + }, + "nativeSrc": "3184:34:12", + "nodeType": "YulExpressionStatement", + "src": "3184:34:12" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3115:109:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3162:5:12", + "nodeType": "YulTypedName", + "src": "3162:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3169:3:12", + "nodeType": "YulTypedName", + "src": "3169:3:12", + "type": "" + } + ], + "src": "3115:109:12" + }, + { + "body": { + "nativeSrc": "3322:118:12", + "nodeType": "YulBlock", + "src": "3322:118:12", + "statements": [ + { + "nativeSrc": "3332:26:12", + "nodeType": "YulAssignment", + "src": "3332:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3344:9:12", + "nodeType": "YulIdentifier", + "src": "3344:9:12" + }, + { + "kind": "number", + "nativeSrc": "3355:2:12", + "nodeType": "YulLiteral", + "src": "3355:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3340:3:12", + "nodeType": "YulIdentifier", + "src": "3340:3:12" + }, + "nativeSrc": "3340:18:12", + "nodeType": "YulFunctionCall", + "src": "3340:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3332:4:12", + "nodeType": "YulIdentifier", + "src": "3332:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3406:6:12", + "nodeType": "YulIdentifier", + "src": "3406:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3419:9:12", + "nodeType": "YulIdentifier", + "src": "3419:9:12" + }, + { + "kind": "number", + "nativeSrc": "3430:1:12", + "nodeType": "YulLiteral", + "src": "3430:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3415:3:12", + "nodeType": "YulIdentifier", + "src": "3415:3:12" + }, + "nativeSrc": "3415:17:12", + "nodeType": "YulFunctionCall", + "src": "3415:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3368:37:12", + "nodeType": "YulIdentifier", + "src": "3368:37:12" + }, + "nativeSrc": "3368:65:12", + "nodeType": "YulFunctionCall", + "src": "3368:65:12" + }, + "nativeSrc": "3368:65:12", + "nodeType": "YulExpressionStatement", + "src": "3368:65:12" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "3230:210:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3294:9:12", + "nodeType": "YulTypedName", + "src": "3294:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3306:6:12", + "nodeType": "YulTypedName", + "src": "3306:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3317:4:12", + "nodeType": "YulTypedName", + "src": "3317:4:12", + "type": "" + } + ], + "src": "3230:210:12" + }, + { + "body": { + "nativeSrc": "3478:28:12", + "nodeType": "YulBlock", + "src": "3478:28:12", + "statements": [ + { + "nativeSrc": "3488:12:12", + "nodeType": "YulAssignment", + "src": "3488:12:12", + "value": { + "name": "value", + "nativeSrc": "3495:5:12", + "nodeType": "YulIdentifier", + "src": "3495:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "3488:3:12", + "nodeType": "YulIdentifier", + "src": "3488:3:12" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "3446:60:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3464:5:12", + "nodeType": "YulTypedName", + "src": "3464:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "3474:3:12", + "nodeType": "YulTypedName", + "src": "3474:3:12", + "type": "" + } + ], + "src": "3446:60:12" + }, + { + "body": { + "nativeSrc": "3572:82:12", + "nodeType": "YulBlock", + "src": "3572:82:12", + "statements": [ + { + "nativeSrc": "3582:66:12", + "nodeType": "YulAssignment", + "src": "3582:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3640:5:12", + "nodeType": "YulIdentifier", + "src": "3640:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3622:17:12", + "nodeType": "YulIdentifier", + "src": "3622:17:12" + }, + "nativeSrc": "3622:24:12", + "nodeType": "YulFunctionCall", + "src": "3622:24:12" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "3613:8:12", + "nodeType": "YulIdentifier", + "src": "3613:8:12" + }, + "nativeSrc": "3613:34:12", + "nodeType": "YulFunctionCall", + "src": "3613:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3595:17:12", + "nodeType": "YulIdentifier", + "src": "3595:17:12" + }, + "nativeSrc": "3595:53:12", + "nodeType": "YulFunctionCall", + "src": "3595:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "3582:9:12", + "nodeType": "YulIdentifier", + "src": "3582:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "3512:142:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3552:5:12", + "nodeType": "YulTypedName", + "src": "3552:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "3562:9:12", + "nodeType": "YulTypedName", + "src": "3562:9:12", + "type": "" + } + ], + "src": "3512:142:12" + }, + { + "body": { + "nativeSrc": "3720:66:12", + "nodeType": "YulBlock", + "src": "3720:66:12", + "statements": [ + { + "nativeSrc": "3730:50:12", + "nodeType": "YulAssignment", + "src": "3730:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3774:5:12", + "nodeType": "YulIdentifier", + "src": "3774:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "3743:30:12", + "nodeType": "YulIdentifier", + "src": "3743:30:12" + }, + "nativeSrc": "3743:37:12", + "nodeType": "YulFunctionCall", + "src": "3743:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "3730:9:12", + "nodeType": "YulIdentifier", + "src": "3730:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "3660:126:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3700:5:12", + "nodeType": "YulTypedName", + "src": "3700:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "3710:9:12", + "nodeType": "YulTypedName", + "src": "3710:9:12", + "type": "" + } + ], + "src": "3660:126:12" + }, + { + "body": { + "nativeSrc": "3879:66:12", + "nodeType": "YulBlock", + "src": "3879:66:12", + "statements": [ + { + "nativeSrc": "3889:50:12", + "nodeType": "YulAssignment", + "src": "3889:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3933:5:12", + "nodeType": "YulIdentifier", + "src": "3933:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "3902:30:12", + "nodeType": "YulIdentifier", + "src": "3902:30:12" + }, + "nativeSrc": "3902:37:12", + "nodeType": "YulFunctionCall", + "src": "3902:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "3889:9:12", + "nodeType": "YulIdentifier", + "src": "3889:9:12" + } + ] + } + ] + }, + "name": "convert_t_contract$_IUniswapV2Router02_$1733_to_t_address", + "nativeSrc": "3792:153:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3859:5:12", + "nodeType": "YulTypedName", + "src": "3859:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "3869:9:12", + "nodeType": "YulTypedName", + "src": "3869:9:12", + "type": "" + } + ], + "src": "3792:153:12" + }, + { + "body": { + "nativeSrc": "4043:93:12", + "nodeType": "YulBlock", + "src": "4043:93:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4060:3:12", + "nodeType": "YulIdentifier", + "src": "4060:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4123:5:12", + "nodeType": "YulIdentifier", + "src": "4123:5:12" + } + ], + "functionName": { + "name": "convert_t_contract$_IUniswapV2Router02_$1733_to_t_address", + "nativeSrc": "4065:57:12", + "nodeType": "YulIdentifier", + "src": "4065:57:12" + }, + "nativeSrc": "4065:64:12", + "nodeType": "YulFunctionCall", + "src": "4065:64:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4053:6:12", + "nodeType": "YulIdentifier", + "src": "4053:6:12" + }, + "nativeSrc": "4053:77:12", + "nodeType": "YulFunctionCall", + "src": "4053:77:12" + }, + "nativeSrc": "4053:77:12", + "nodeType": "YulExpressionStatement", + "src": "4053:77:12" + } + ] + }, + "name": "abi_encode_t_contract$_IUniswapV2Router02_$1733_to_t_address_fromStack", + "nativeSrc": "3951:185:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4031:5:12", + "nodeType": "YulTypedName", + "src": "4031:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4038:3:12", + "nodeType": "YulTypedName", + "src": "4038:3:12", + "type": "" + } + ], + "src": "3951:185:12" + }, + { + "body": { + "nativeSrc": "4267:151:12", + "nodeType": "YulBlock", + "src": "4267:151:12", + "statements": [ + { + "nativeSrc": "4277:26:12", + "nodeType": "YulAssignment", + "src": "4277:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4289:9:12", + "nodeType": "YulIdentifier", + "src": "4289:9:12" + }, + { + "kind": "number", + "nativeSrc": "4300:2:12", + "nodeType": "YulLiteral", + "src": "4300:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4285:3:12", + "nodeType": "YulIdentifier", + "src": "4285:3:12" + }, + "nativeSrc": "4285:18:12", + "nodeType": "YulFunctionCall", + "src": "4285:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4277:4:12", + "nodeType": "YulIdentifier", + "src": "4277:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4384:6:12", + "nodeType": "YulIdentifier", + "src": "4384:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4397:9:12", + "nodeType": "YulIdentifier", + "src": "4397:9:12" + }, + { + "kind": "number", + "nativeSrc": "4408:1:12", + "nodeType": "YulLiteral", + "src": "4408:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4393:3:12", + "nodeType": "YulIdentifier", + "src": "4393:3:12" + }, + "nativeSrc": "4393:17:12", + "nodeType": "YulFunctionCall", + "src": "4393:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IUniswapV2Router02_$1733_to_t_address_fromStack", + "nativeSrc": "4313:70:12", + "nodeType": "YulIdentifier", + "src": "4313:70:12" + }, + "nativeSrc": "4313:98:12", + "nodeType": "YulFunctionCall", + "src": "4313:98:12" + }, + "nativeSrc": "4313:98:12", + "nodeType": "YulExpressionStatement", + "src": "4313:98:12" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IUniswapV2Router02_$1733__to_t_address__fromStack_reversed", + "nativeSrc": "4142:276:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4239:9:12", + "nodeType": "YulTypedName", + "src": "4239:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4251:6:12", + "nodeType": "YulTypedName", + "src": "4251:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4262:4:12", + "nodeType": "YulTypedName", + "src": "4262:4:12", + "type": "" + } + ], + "src": "4142:276:12" + }, + { + "body": { + "nativeSrc": "4489:53:12", + "nodeType": "YulBlock", + "src": "4489:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4506:3:12", + "nodeType": "YulIdentifier", + "src": "4506:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4529:5:12", + "nodeType": "YulIdentifier", + "src": "4529:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4511:17:12", + "nodeType": "YulIdentifier", + "src": "4511:17:12" + }, + "nativeSrc": "4511:24:12", + "nodeType": "YulFunctionCall", + "src": "4511:24:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4499:6:12", + "nodeType": "YulIdentifier", + "src": "4499:6:12" + }, + "nativeSrc": "4499:37:12", + "nodeType": "YulFunctionCall", + "src": "4499:37:12" + }, + "nativeSrc": "4499:37:12", + "nodeType": "YulExpressionStatement", + "src": "4499:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4424:118:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4477:5:12", + "nodeType": "YulTypedName", + "src": "4477:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4484:3:12", + "nodeType": "YulTypedName", + "src": "4484:3:12", + "type": "" + } + ], + "src": "4424:118:12" + }, + { + "body": { + "nativeSrc": "4646:124:12", + "nodeType": "YulBlock", + "src": "4646:124:12", + "statements": [ + { + "nativeSrc": "4656:26:12", + "nodeType": "YulAssignment", + "src": "4656:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4668:9:12", + "nodeType": "YulIdentifier", + "src": "4668:9:12" + }, + { + "kind": "number", + "nativeSrc": "4679:2:12", + "nodeType": "YulLiteral", + "src": "4679:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4664:3:12", + "nodeType": "YulIdentifier", + "src": "4664:3:12" + }, + "nativeSrc": "4664:18:12", + "nodeType": "YulFunctionCall", + "src": "4664:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4656:4:12", + "nodeType": "YulIdentifier", + "src": "4656:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4736:6:12", + "nodeType": "YulIdentifier", + "src": "4736:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4749:9:12", + "nodeType": "YulIdentifier", + "src": "4749:9:12" + }, + { + "kind": "number", + "nativeSrc": "4760:1:12", + "nodeType": "YulLiteral", + "src": "4760:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4745:3:12", + "nodeType": "YulIdentifier", + "src": "4745:3:12" + }, + "nativeSrc": "4745:17:12", + "nodeType": "YulFunctionCall", + "src": "4745:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4692:43:12", + "nodeType": "YulIdentifier", + "src": "4692:43:12" + }, + "nativeSrc": "4692:71:12", + "nodeType": "YulFunctionCall", + "src": "4692:71:12" + }, + "nativeSrc": "4692:71:12", + "nodeType": "YulExpressionStatement", + "src": "4692:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "4548:222:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4618:9:12", + "nodeType": "YulTypedName", + "src": "4618:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4630:6:12", + "nodeType": "YulTypedName", + "src": "4630:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4641:4:12", + "nodeType": "YulTypedName", + "src": "4641:4:12", + "type": "" + } + ], + "src": "4548:222:12" + }, + { + "body": { + "nativeSrc": "4876:519:12", + "nodeType": "YulBlock", + "src": "4876:519:12", + "statements": [ + { + "body": { + "nativeSrc": "4922:83:12", + "nodeType": "YulBlock", + "src": "4922:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4924:77:12", + "nodeType": "YulIdentifier", + "src": "4924:77:12" + }, + "nativeSrc": "4924:79:12", + "nodeType": "YulFunctionCall", + "src": "4924:79:12" + }, + "nativeSrc": "4924:79:12", + "nodeType": "YulExpressionStatement", + "src": "4924:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4897:7:12", + "nodeType": "YulIdentifier", + "src": "4897:7:12" + }, + { + "name": "headStart", + "nativeSrc": "4906:9:12", + "nodeType": "YulIdentifier", + "src": "4906:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4893:3:12", + "nodeType": "YulIdentifier", + "src": "4893:3:12" + }, + "nativeSrc": "4893:23:12", + "nodeType": "YulFunctionCall", + "src": "4893:23:12" + }, + { + "kind": "number", + "nativeSrc": "4918:2:12", + "nodeType": "YulLiteral", + "src": "4918:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4889:3:12", + "nodeType": "YulIdentifier", + "src": "4889:3:12" + }, + "nativeSrc": "4889:32:12", + "nodeType": "YulFunctionCall", + "src": "4889:32:12" + }, + "nativeSrc": "4886:119:12", + "nodeType": "YulIf", + "src": "4886:119:12" + }, + { + "nativeSrc": "5015:117:12", + "nodeType": "YulBlock", + "src": "5015:117:12", + "statements": [ + { + "nativeSrc": "5030:15:12", + "nodeType": "YulVariableDeclaration", + "src": "5030:15:12", + "value": { + "kind": "number", + "nativeSrc": "5044:1:12", + "nodeType": "YulLiteral", + "src": "5044:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5034:6:12", + "nodeType": "YulTypedName", + "src": "5034:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "5059:63:12", + "nodeType": "YulAssignment", + "src": "5059:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5094:9:12", + "nodeType": "YulIdentifier", + "src": "5094:9:12" + }, + { + "name": "offset", + "nativeSrc": "5105:6:12", + "nodeType": "YulIdentifier", + "src": "5105:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5090:3:12", + "nodeType": "YulIdentifier", + "src": "5090:3:12" + }, + "nativeSrc": "5090:22:12", + "nodeType": "YulFunctionCall", + "src": "5090:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "5114:7:12", + "nodeType": "YulIdentifier", + "src": "5114:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5069:20:12", + "nodeType": "YulIdentifier", + "src": "5069:20:12" + }, + "nativeSrc": "5069:53:12", + "nodeType": "YulFunctionCall", + "src": "5069:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5059:6:12", + "nodeType": "YulIdentifier", + "src": "5059:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "5142:118:12", + "nodeType": "YulBlock", + "src": "5142:118:12", + "statements": [ + { + "nativeSrc": "5157:16:12", + "nodeType": "YulVariableDeclaration", + "src": "5157:16:12", + "value": { + "kind": "number", + "nativeSrc": "5171:2:12", + "nodeType": "YulLiteral", + "src": "5171:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5161:6:12", + "nodeType": "YulTypedName", + "src": "5161:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "5187:63:12", + "nodeType": "YulAssignment", + "src": "5187:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5222:9:12", + "nodeType": "YulIdentifier", + "src": "5222:9:12" + }, + { + "name": "offset", + "nativeSrc": "5233:6:12", + "nodeType": "YulIdentifier", + "src": "5233:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5218:3:12", + "nodeType": "YulIdentifier", + "src": "5218:3:12" + }, + "nativeSrc": "5218:22:12", + "nodeType": "YulFunctionCall", + "src": "5218:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "5242:7:12", + "nodeType": "YulIdentifier", + "src": "5242:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5197:20:12", + "nodeType": "YulIdentifier", + "src": "5197:20:12" + }, + "nativeSrc": "5197:53:12", + "nodeType": "YulFunctionCall", + "src": "5197:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5187:6:12", + "nodeType": "YulIdentifier", + "src": "5187:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "5270:118:12", + "nodeType": "YulBlock", + "src": "5270:118:12", + "statements": [ + { + "nativeSrc": "5285:16:12", + "nodeType": "YulVariableDeclaration", + "src": "5285:16:12", + "value": { + "kind": "number", + "nativeSrc": "5299:2:12", + "nodeType": "YulLiteral", + "src": "5299:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5289:6:12", + "nodeType": "YulTypedName", + "src": "5289:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "5315:63:12", + "nodeType": "YulAssignment", + "src": "5315:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5350:9:12", + "nodeType": "YulIdentifier", + "src": "5350:9:12" + }, + { + "name": "offset", + "nativeSrc": "5361:6:12", + "nodeType": "YulIdentifier", + "src": "5361:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5346:3:12", + "nodeType": "YulIdentifier", + "src": "5346:3:12" + }, + "nativeSrc": "5346:22:12", + "nodeType": "YulFunctionCall", + "src": "5346:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "5370:7:12", + "nodeType": "YulIdentifier", + "src": "5370:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5325:20:12", + "nodeType": "YulIdentifier", + "src": "5325:20:12" + }, + "nativeSrc": "5325:53:12", + "nodeType": "YulFunctionCall", + "src": "5325:53:12" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5315:6:12", + "nodeType": "YulIdentifier", + "src": "5315:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "4776:619:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4830:9:12", + "nodeType": "YulTypedName", + "src": "4830:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4841:7:12", + "nodeType": "YulTypedName", + "src": "4841:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4853:6:12", + "nodeType": "YulTypedName", + "src": "4853:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4861:6:12", + "nodeType": "YulTypedName", + "src": "4861:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4869:6:12", + "nodeType": "YulTypedName", + "src": "4869:6:12", + "type": "" + } + ], + "src": "4776:619:12" + }, + { + "body": { + "nativeSrc": "5466:53:12", + "nodeType": "YulBlock", + "src": "5466:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5483:3:12", + "nodeType": "YulIdentifier", + "src": "5483:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5506:5:12", + "nodeType": "YulIdentifier", + "src": "5506:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "5488:17:12", + "nodeType": "YulIdentifier", + "src": "5488:17:12" + }, + "nativeSrc": "5488:24:12", + "nodeType": "YulFunctionCall", + "src": "5488:24:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5476:6:12", + "nodeType": "YulIdentifier", + "src": "5476:6:12" + }, + "nativeSrc": "5476:37:12", + "nodeType": "YulFunctionCall", + "src": "5476:37:12" + }, + "nativeSrc": "5476:37:12", + "nodeType": "YulExpressionStatement", + "src": "5476:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5401:118:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5454:5:12", + "nodeType": "YulTypedName", + "src": "5454:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5461:3:12", + "nodeType": "YulTypedName", + "src": "5461:3:12", + "type": "" + } + ], + "src": "5401:118:12" + }, + { + "body": { + "nativeSrc": "5623:124:12", + "nodeType": "YulBlock", + "src": "5623:124:12", + "statements": [ + { + "nativeSrc": "5633:26:12", + "nodeType": "YulAssignment", + "src": "5633:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5645:9:12", + "nodeType": "YulIdentifier", + "src": "5645:9:12" + }, + { + "kind": "number", + "nativeSrc": "5656:2:12", + "nodeType": "YulLiteral", + "src": "5656:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5641:3:12", + "nodeType": "YulIdentifier", + "src": "5641:3:12" + }, + "nativeSrc": "5641:18:12", + "nodeType": "YulFunctionCall", + "src": "5641:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5633:4:12", + "nodeType": "YulIdentifier", + "src": "5633:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5713:6:12", + "nodeType": "YulIdentifier", + "src": "5713:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5726:9:12", + "nodeType": "YulIdentifier", + "src": "5726:9:12" + }, + { + "kind": "number", + "nativeSrc": "5737:1:12", + "nodeType": "YulLiteral", + "src": "5737:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5722:3:12", + "nodeType": "YulIdentifier", + "src": "5722:3:12" + }, + "nativeSrc": "5722:17:12", + "nodeType": "YulFunctionCall", + "src": "5722:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5669:43:12", + "nodeType": "YulIdentifier", + "src": "5669:43:12" + }, + "nativeSrc": "5669:71:12", + "nodeType": "YulFunctionCall", + "src": "5669:71:12" + }, + "nativeSrc": "5669:71:12", + "nodeType": "YulExpressionStatement", + "src": "5669:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "5525:222:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5595:9:12", + "nodeType": "YulTypedName", + "src": "5595:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5607:6:12", + "nodeType": "YulTypedName", + "src": "5607:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5618:4:12", + "nodeType": "YulTypedName", + "src": "5618:4:12", + "type": "" + } + ], + "src": "5525:222:12" + }, + { + "body": { + "nativeSrc": "5796:43:12", + "nodeType": "YulBlock", + "src": "5796:43:12", + "statements": [ + { + "nativeSrc": "5806:27:12", + "nodeType": "YulAssignment", + "src": "5806:27:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5821:5:12", + "nodeType": "YulIdentifier", + "src": "5821:5:12" + }, + { + "kind": "number", + "nativeSrc": "5828:4:12", + "nodeType": "YulLiteral", + "src": "5828:4:12", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5817:3:12", + "nodeType": "YulIdentifier", + "src": "5817:3:12" + }, + "nativeSrc": "5817:16:12", + "nodeType": "YulFunctionCall", + "src": "5817:16:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5806:7:12", + "nodeType": "YulIdentifier", + "src": "5806:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "5753:86:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5778:5:12", + "nodeType": "YulTypedName", + "src": "5778:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5788:7:12", + "nodeType": "YulTypedName", + "src": "5788:7:12", + "type": "" + } + ], + "src": "5753:86:12" + }, + { + "body": { + "nativeSrc": "5906:51:12", + "nodeType": "YulBlock", + "src": "5906:51:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5923:3:12", + "nodeType": "YulIdentifier", + "src": "5923:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5944:5:12", + "nodeType": "YulIdentifier", + "src": "5944:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nativeSrc": "5928:15:12", + "nodeType": "YulIdentifier", + "src": "5928:15:12" + }, + "nativeSrc": "5928:22:12", + "nodeType": "YulFunctionCall", + "src": "5928:22:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5916:6:12", + "nodeType": "YulIdentifier", + "src": "5916:6:12" + }, + "nativeSrc": "5916:35:12", + "nodeType": "YulFunctionCall", + "src": "5916:35:12" + }, + "nativeSrc": "5916:35:12", + "nodeType": "YulExpressionStatement", + "src": "5916:35:12" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "5845:112:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5894:5:12", + "nodeType": "YulTypedName", + "src": "5894:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5901:3:12", + "nodeType": "YulTypedName", + "src": "5901:3:12", + "type": "" + } + ], + "src": "5845:112:12" + }, + { + "body": { + "nativeSrc": "6057:120:12", + "nodeType": "YulBlock", + "src": "6057:120:12", + "statements": [ + { + "nativeSrc": "6067:26:12", + "nodeType": "YulAssignment", + "src": "6067:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6079:9:12", + "nodeType": "YulIdentifier", + "src": "6079:9:12" + }, + { + "kind": "number", + "nativeSrc": "6090:2:12", + "nodeType": "YulLiteral", + "src": "6090:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6075:3:12", + "nodeType": "YulIdentifier", + "src": "6075:3:12" + }, + "nativeSrc": "6075:18:12", + "nodeType": "YulFunctionCall", + "src": "6075:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6067:4:12", + "nodeType": "YulIdentifier", + "src": "6067:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6143:6:12", + "nodeType": "YulIdentifier", + "src": "6143:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6156:9:12", + "nodeType": "YulIdentifier", + "src": "6156:9:12" + }, + { + "kind": "number", + "nativeSrc": "6167:1:12", + "nodeType": "YulLiteral", + "src": "6167:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6152:3:12", + "nodeType": "YulIdentifier", + "src": "6152:3:12" + }, + "nativeSrc": "6152:17:12", + "nodeType": "YulFunctionCall", + "src": "6152:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "6103:39:12", + "nodeType": "YulIdentifier", + "src": "6103:39:12" + }, + "nativeSrc": "6103:67:12", + "nodeType": "YulFunctionCall", + "src": "6103:67:12" + }, + "nativeSrc": "6103:67:12", + "nodeType": "YulExpressionStatement", + "src": "6103:67:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nativeSrc": "5963:214:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6029:9:12", + "nodeType": "YulTypedName", + "src": "6029:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6041:6:12", + "nodeType": "YulTypedName", + "src": "6041:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6052:4:12", + "nodeType": "YulTypedName", + "src": "6052:4:12", + "type": "" + } + ], + "src": "5963:214:12" + }, + { + "body": { + "nativeSrc": "6249:263:12", + "nodeType": "YulBlock", + "src": "6249:263:12", + "statements": [ + { + "body": { + "nativeSrc": "6295:83:12", + "nodeType": "YulBlock", + "src": "6295:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6297:77:12", + "nodeType": "YulIdentifier", + "src": "6297:77:12" + }, + "nativeSrc": "6297:79:12", + "nodeType": "YulFunctionCall", + "src": "6297:79:12" + }, + "nativeSrc": "6297:79:12", + "nodeType": "YulExpressionStatement", + "src": "6297:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6270:7:12", + "nodeType": "YulIdentifier", + "src": "6270:7:12" + }, + { + "name": "headStart", + "nativeSrc": "6279:9:12", + "nodeType": "YulIdentifier", + "src": "6279:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6266:3:12", + "nodeType": "YulIdentifier", + "src": "6266:3:12" + }, + "nativeSrc": "6266:23:12", + "nodeType": "YulFunctionCall", + "src": "6266:23:12" + }, + { + "kind": "number", + "nativeSrc": "6291:2:12", + "nodeType": "YulLiteral", + "src": "6291:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6262:3:12", + "nodeType": "YulIdentifier", + "src": "6262:3:12" + }, + "nativeSrc": "6262:32:12", + "nodeType": "YulFunctionCall", + "src": "6262:32:12" + }, + "nativeSrc": "6259:119:12", + "nodeType": "YulIf", + "src": "6259:119:12" + }, + { + "nativeSrc": "6388:117:12", + "nodeType": "YulBlock", + "src": "6388:117:12", + "statements": [ + { + "nativeSrc": "6403:15:12", + "nodeType": "YulVariableDeclaration", + "src": "6403:15:12", + "value": { + "kind": "number", + "nativeSrc": "6417:1:12", + "nodeType": "YulLiteral", + "src": "6417:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6407:6:12", + "nodeType": "YulTypedName", + "src": "6407:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "6432:63:12", + "nodeType": "YulAssignment", + "src": "6432:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6467:9:12", + "nodeType": "YulIdentifier", + "src": "6467:9:12" + }, + { + "name": "offset", + "nativeSrc": "6478:6:12", + "nodeType": "YulIdentifier", + "src": "6478:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6463:3:12", + "nodeType": "YulIdentifier", + "src": "6463:3:12" + }, + "nativeSrc": "6463:22:12", + "nodeType": "YulFunctionCall", + "src": "6463:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "6487:7:12", + "nodeType": "YulIdentifier", + "src": "6487:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6442:20:12", + "nodeType": "YulIdentifier", + "src": "6442:20:12" + }, + "nativeSrc": "6442:53:12", + "nodeType": "YulFunctionCall", + "src": "6442:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6432:6:12", + "nodeType": "YulIdentifier", + "src": "6432:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "6183:329:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6219:9:12", + "nodeType": "YulTypedName", + "src": "6219:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6230:7:12", + "nodeType": "YulTypedName", + "src": "6230:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6242:6:12", + "nodeType": "YulTypedName", + "src": "6242:6:12", + "type": "" + } + ], + "src": "6183:329:12" + }, + { + "body": { + "nativeSrc": "6601:391:12", + "nodeType": "YulBlock", + "src": "6601:391:12", + "statements": [ + { + "body": { + "nativeSrc": "6647:83:12", + "nodeType": "YulBlock", + "src": "6647:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6649:77:12", + "nodeType": "YulIdentifier", + "src": "6649:77:12" + }, + "nativeSrc": "6649:79:12", + "nodeType": "YulFunctionCall", + "src": "6649:79:12" + }, + "nativeSrc": "6649:79:12", + "nodeType": "YulExpressionStatement", + "src": "6649:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6622:7:12", + "nodeType": "YulIdentifier", + "src": "6622:7:12" + }, + { + "name": "headStart", + "nativeSrc": "6631:9:12", + "nodeType": "YulIdentifier", + "src": "6631:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6618:3:12", + "nodeType": "YulIdentifier", + "src": "6618:3:12" + }, + "nativeSrc": "6618:23:12", + "nodeType": "YulFunctionCall", + "src": "6618:23:12" + }, + { + "kind": "number", + "nativeSrc": "6643:2:12", + "nodeType": "YulLiteral", + "src": "6643:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6614:3:12", + "nodeType": "YulIdentifier", + "src": "6614:3:12" + }, + "nativeSrc": "6614:32:12", + "nodeType": "YulFunctionCall", + "src": "6614:32:12" + }, + "nativeSrc": "6611:119:12", + "nodeType": "YulIf", + "src": "6611:119:12" + }, + { + "nativeSrc": "6740:117:12", + "nodeType": "YulBlock", + "src": "6740:117:12", + "statements": [ + { + "nativeSrc": "6755:15:12", + "nodeType": "YulVariableDeclaration", + "src": "6755:15:12", + "value": { + "kind": "number", + "nativeSrc": "6769:1:12", + "nodeType": "YulLiteral", + "src": "6769:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6759:6:12", + "nodeType": "YulTypedName", + "src": "6759:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "6784:63:12", + "nodeType": "YulAssignment", + "src": "6784:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6819:9:12", + "nodeType": "YulIdentifier", + "src": "6819:9:12" + }, + { + "name": "offset", + "nativeSrc": "6830:6:12", + "nodeType": "YulIdentifier", + "src": "6830:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6815:3:12", + "nodeType": "YulIdentifier", + "src": "6815:3:12" + }, + "nativeSrc": "6815:22:12", + "nodeType": "YulFunctionCall", + "src": "6815:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "6839:7:12", + "nodeType": "YulIdentifier", + "src": "6839:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6794:20:12", + "nodeType": "YulIdentifier", + "src": "6794:20:12" + }, + "nativeSrc": "6794:53:12", + "nodeType": "YulFunctionCall", + "src": "6794:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6784:6:12", + "nodeType": "YulIdentifier", + "src": "6784:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "6867:118:12", + "nodeType": "YulBlock", + "src": "6867:118:12", + "statements": [ + { + "nativeSrc": "6882:16:12", + "nodeType": "YulVariableDeclaration", + "src": "6882:16:12", + "value": { + "kind": "number", + "nativeSrc": "6896:2:12", + "nodeType": "YulLiteral", + "src": "6896:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6886:6:12", + "nodeType": "YulTypedName", + "src": "6886:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "6912:63:12", + "nodeType": "YulAssignment", + "src": "6912:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6947:9:12", + "nodeType": "YulIdentifier", + "src": "6947:9:12" + }, + { + "name": "offset", + "nativeSrc": "6958:6:12", + "nodeType": "YulIdentifier", + "src": "6958:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6943:3:12", + "nodeType": "YulIdentifier", + "src": "6943:3:12" + }, + "nativeSrc": "6943:22:12", + "nodeType": "YulFunctionCall", + "src": "6943:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "6967:7:12", + "nodeType": "YulIdentifier", + "src": "6967:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6922:20:12", + "nodeType": "YulIdentifier", + "src": "6922:20:12" + }, + "nativeSrc": "6922:53:12", + "nodeType": "YulFunctionCall", + "src": "6922:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6912:6:12", + "nodeType": "YulIdentifier", + "src": "6912:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "6518:474:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6563:9:12", + "nodeType": "YulTypedName", + "src": "6563:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6574:7:12", + "nodeType": "YulTypedName", + "src": "6574:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6586:6:12", + "nodeType": "YulTypedName", + "src": "6586:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6594:6:12", + "nodeType": "YulTypedName", + "src": "6594:6:12", + "type": "" + } + ], + "src": "6518:474:12" + }, + { + "body": { + "nativeSrc": "7026:152:12", + "nodeType": "YulBlock", + "src": "7026:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7043:1:12", + "nodeType": "YulLiteral", + "src": "7043:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7046:77:12", + "nodeType": "YulLiteral", + "src": "7046:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7036:6:12", + "nodeType": "YulIdentifier", + "src": "7036:6:12" + }, + "nativeSrc": "7036:88:12", + "nodeType": "YulFunctionCall", + "src": "7036:88:12" + }, + "nativeSrc": "7036:88:12", + "nodeType": "YulExpressionStatement", + "src": "7036:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7140:1:12", + "nodeType": "YulLiteral", + "src": "7140:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7143:4:12", + "nodeType": "YulLiteral", + "src": "7143:4:12", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7133:6:12", + "nodeType": "YulIdentifier", + "src": "7133:6:12" + }, + "nativeSrc": "7133:15:12", + "nodeType": "YulFunctionCall", + "src": "7133:15:12" + }, + "nativeSrc": "7133:15:12", + "nodeType": "YulExpressionStatement", + "src": "7133:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7164:1:12", + "nodeType": "YulLiteral", + "src": "7164:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7167:4:12", + "nodeType": "YulLiteral", + "src": "7167:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7157:6:12", + "nodeType": "YulIdentifier", + "src": "7157:6:12" + }, + "nativeSrc": "7157:15:12", + "nodeType": "YulFunctionCall", + "src": "7157:15:12" + }, + "nativeSrc": "7157:15:12", + "nodeType": "YulExpressionStatement", + "src": "7157:15:12" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "6998:180:12", + "nodeType": "YulFunctionDefinition", + "src": "6998:180:12" + }, + { + "body": { + "nativeSrc": "7242:62:12", + "nodeType": "YulBlock", + "src": "7242:62:12", + "statements": [ + { + "body": { + "nativeSrc": "7276:22:12", + "nodeType": "YulBlock", + "src": "7276:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x21", + "nativeSrc": "7278:16:12", + "nodeType": "YulIdentifier", + "src": "7278:16:12" + }, + "nativeSrc": "7278:18:12", + "nodeType": "YulFunctionCall", + "src": "7278:18:12" + }, + "nativeSrc": "7278:18:12", + "nodeType": "YulExpressionStatement", + "src": "7278:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7265:5:12", + "nodeType": "YulIdentifier", + "src": "7265:5:12" + }, + { + "kind": "number", + "nativeSrc": "7272:1:12", + "nodeType": "YulLiteral", + "src": "7272:1:12", + "type": "", + "value": "5" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7262:2:12", + "nodeType": "YulIdentifier", + "src": "7262:2:12" + }, + "nativeSrc": "7262:12:12", + "nodeType": "YulFunctionCall", + "src": "7262:12:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7255:6:12", + "nodeType": "YulIdentifier", + "src": "7255:6:12" + }, + "nativeSrc": "7255:20:12", + "nodeType": "YulFunctionCall", + "src": "7255:20:12" + }, + "nativeSrc": "7252:46:12", + "nodeType": "YulIf", + "src": "7252:46:12" + } + ] + }, + "name": "validator_assert_t_enum$_TokenState_$1750", + "nativeSrc": "7184:120:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7235:5:12", + "nodeType": "YulTypedName", + "src": "7235:5:12", + "type": "" + } + ], + "src": "7184:120:12" + }, + { + "body": { + "nativeSrc": "7370:81:12", + "nodeType": "YulBlock", + "src": "7370:81:12", + "statements": [ + { + "nativeSrc": "7380:16:12", + "nodeType": "YulAssignment", + "src": "7380:16:12", + "value": { + "name": "value", + "nativeSrc": "7391:5:12", + "nodeType": "YulIdentifier", + "src": "7391:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "7380:7:12", + "nodeType": "YulIdentifier", + "src": "7380:7:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7439:5:12", + "nodeType": "YulIdentifier", + "src": "7439:5:12" + } + ], + "functionName": { + "name": "validator_assert_t_enum$_TokenState_$1750", + "nativeSrc": "7397:41:12", + "nodeType": "YulIdentifier", + "src": "7397:41:12" + }, + "nativeSrc": "7397:48:12", + "nodeType": "YulFunctionCall", + "src": "7397:48:12" + }, + "nativeSrc": "7397:48:12", + "nodeType": "YulExpressionStatement", + "src": "7397:48:12" + } + ] + }, + "name": "cleanup_t_enum$_TokenState_$1750", + "nativeSrc": "7310:141:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7352:5:12", + "nodeType": "YulTypedName", + "src": "7352:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "7362:7:12", + "nodeType": "YulTypedName", + "src": "7362:7:12", + "type": "" + } + ], + "src": "7310:141:12" + }, + { + "body": { + "nativeSrc": "7530:68:12", + "nodeType": "YulBlock", + "src": "7530:68:12", + "statements": [ + { + "nativeSrc": "7540:52:12", + "nodeType": "YulAssignment", + "src": "7540:52:12", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7586:5:12", + "nodeType": "YulIdentifier", + "src": "7586:5:12" + } + ], + "functionName": { + "name": "cleanup_t_enum$_TokenState_$1750", + "nativeSrc": "7553:32:12", + "nodeType": "YulIdentifier", + "src": "7553:32:12" + }, + "nativeSrc": "7553:39:12", + "nodeType": "YulFunctionCall", + "src": "7553:39:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "7540:9:12", + "nodeType": "YulIdentifier", + "src": "7540:9:12" + } + ] + } + ] + }, + "name": "convert_t_enum$_TokenState_$1750_to_t_uint8", + "nativeSrc": "7457:141:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7510:5:12", + "nodeType": "YulTypedName", + "src": "7510:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "7520:9:12", + "nodeType": "YulTypedName", + "src": "7520:9:12", + "type": "" + } + ], + "src": "7457:141:12" + }, + { + "body": { + "nativeSrc": "7682:79:12", + "nodeType": "YulBlock", + "src": "7682:79:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7699:3:12", + "nodeType": "YulIdentifier", + "src": "7699:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7748:5:12", + "nodeType": "YulIdentifier", + "src": "7748:5:12" + } + ], + "functionName": { + "name": "convert_t_enum$_TokenState_$1750_to_t_uint8", + "nativeSrc": "7704:43:12", + "nodeType": "YulIdentifier", + "src": "7704:43:12" + }, + "nativeSrc": "7704:50:12", + "nodeType": "YulFunctionCall", + "src": "7704:50:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7692:6:12", + "nodeType": "YulIdentifier", + "src": "7692:6:12" + }, + "nativeSrc": "7692:63:12", + "nodeType": "YulFunctionCall", + "src": "7692:63:12" + }, + "nativeSrc": "7692:63:12", + "nodeType": "YulExpressionStatement", + "src": "7692:63:12" + } + ] + }, + "name": "abi_encode_t_enum$_TokenState_$1750_to_t_uint8_fromStack", + "nativeSrc": "7604:157:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7670:5:12", + "nodeType": "YulTypedName", + "src": "7670:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7677:3:12", + "nodeType": "YulTypedName", + "src": "7677:3:12", + "type": "" + } + ], + "src": "7604:157:12" + }, + { + "body": { + "nativeSrc": "7878:137:12", + "nodeType": "YulBlock", + "src": "7878:137:12", + "statements": [ + { + "nativeSrc": "7888:26:12", + "nodeType": "YulAssignment", + "src": "7888:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7900:9:12", + "nodeType": "YulIdentifier", + "src": "7900:9:12" + }, + { + "kind": "number", + "nativeSrc": "7911:2:12", + "nodeType": "YulLiteral", + "src": "7911:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7896:3:12", + "nodeType": "YulIdentifier", + "src": "7896:3:12" + }, + "nativeSrc": "7896:18:12", + "nodeType": "YulFunctionCall", + "src": "7896:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7888:4:12", + "nodeType": "YulIdentifier", + "src": "7888:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7981:6:12", + "nodeType": "YulIdentifier", + "src": "7981:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7994:9:12", + "nodeType": "YulIdentifier", + "src": "7994:9:12" + }, + { + "kind": "number", + "nativeSrc": "8005:1:12", + "nodeType": "YulLiteral", + "src": "8005:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7990:3:12", + "nodeType": "YulIdentifier", + "src": "7990:3:12" + }, + "nativeSrc": "7990:17:12", + "nodeType": "YulFunctionCall", + "src": "7990:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_enum$_TokenState_$1750_to_t_uint8_fromStack", + "nativeSrc": "7924:56:12", + "nodeType": "YulIdentifier", + "src": "7924:56:12" + }, + "nativeSrc": "7924:84:12", + "nodeType": "YulFunctionCall", + "src": "7924:84:12" + }, + "nativeSrc": "7924:84:12", + "nodeType": "YulExpressionStatement", + "src": "7924:84:12" + } + ] + }, + "name": "abi_encode_tuple_t_enum$_TokenState_$1750__to_t_uint8__fromStack_reversed", + "nativeSrc": "7767:248:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7850:9:12", + "nodeType": "YulTypedName", + "src": "7850:9:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7862:6:12", + "nodeType": "YulTypedName", + "src": "7862:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7873:4:12", + "nodeType": "YulTypedName", + "src": "7873:4:12", + "type": "" + } + ], + "src": "7767:248:12" + }, + { + "body": { + "nativeSrc": "8049:152:12", + "nodeType": "YulBlock", + "src": "8049:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8066:1:12", + "nodeType": "YulLiteral", + "src": "8066:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8069:77:12", + "nodeType": "YulLiteral", + "src": "8069:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8059:6:12", + "nodeType": "YulIdentifier", + "src": "8059:6:12" + }, + "nativeSrc": "8059:88:12", + "nodeType": "YulFunctionCall", + "src": "8059:88:12" + }, + "nativeSrc": "8059:88:12", + "nodeType": "YulExpressionStatement", + "src": "8059:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8163:1:12", + "nodeType": "YulLiteral", + "src": "8163:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "8166:4:12", + "nodeType": "YulLiteral", + "src": "8166:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8156:6:12", + "nodeType": "YulIdentifier", + "src": "8156:6:12" + }, + "nativeSrc": "8156:15:12", + "nodeType": "YulFunctionCall", + "src": "8156:15:12" + }, + "nativeSrc": "8156:15:12", + "nodeType": "YulExpressionStatement", + "src": "8156:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8187:1:12", + "nodeType": "YulLiteral", + "src": "8187:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8190:4:12", + "nodeType": "YulLiteral", + "src": "8190:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8180:6:12", + "nodeType": "YulIdentifier", + "src": "8180:6:12" + }, + "nativeSrc": "8180:15:12", + "nodeType": "YulFunctionCall", + "src": "8180:15:12" + }, + "nativeSrc": "8180:15:12", + "nodeType": "YulExpressionStatement", + "src": "8180:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "8021:180:12", + "nodeType": "YulFunctionDefinition", + "src": "8021:180:12" + }, + { + "body": { + "nativeSrc": "8258:269:12", + "nodeType": "YulBlock", + "src": "8258:269:12", + "statements": [ + { + "nativeSrc": "8268:22:12", + "nodeType": "YulAssignment", + "src": "8268:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8282:4:12", + "nodeType": "YulIdentifier", + "src": "8282:4:12" + }, + { + "kind": "number", + "nativeSrc": "8288:1:12", + "nodeType": "YulLiteral", + "src": "8288:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "8278:3:12", + "nodeType": "YulIdentifier", + "src": "8278:3:12" + }, + "nativeSrc": "8278:12:12", + "nodeType": "YulFunctionCall", + "src": "8278:12:12" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "8268:6:12", + "nodeType": "YulIdentifier", + "src": "8268:6:12" + } + ] + }, + { + "nativeSrc": "8299:38:12", + "nodeType": "YulVariableDeclaration", + "src": "8299:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8329:4:12", + "nodeType": "YulIdentifier", + "src": "8329:4:12" + }, + { + "kind": "number", + "nativeSrc": "8335:1:12", + "nodeType": "YulLiteral", + "src": "8335:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8325:3:12", + "nodeType": "YulIdentifier", + "src": "8325:3:12" + }, + "nativeSrc": "8325:12:12", + "nodeType": "YulFunctionCall", + "src": "8325:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "8303:18:12", + "nodeType": "YulTypedName", + "src": "8303:18:12", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8376:51:12", + "nodeType": "YulBlock", + "src": "8376:51:12", + "statements": [ + { + "nativeSrc": "8390:27:12", + "nodeType": "YulAssignment", + "src": "8390:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8404:6:12", + "nodeType": "YulIdentifier", + "src": "8404:6:12" + }, + { + "kind": "number", + "nativeSrc": "8412:4:12", + "nodeType": "YulLiteral", + "src": "8412:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8400:3:12", + "nodeType": "YulIdentifier", + "src": "8400:3:12" + }, + "nativeSrc": "8400:17:12", + "nodeType": "YulFunctionCall", + "src": "8400:17:12" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "8390:6:12", + "nodeType": "YulIdentifier", + "src": "8390:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "8356:18:12", + "nodeType": "YulIdentifier", + "src": "8356:18:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8349:6:12", + "nodeType": "YulIdentifier", + "src": "8349:6:12" + }, + "nativeSrc": "8349:26:12", + "nodeType": "YulFunctionCall", + "src": "8349:26:12" + }, + "nativeSrc": "8346:81:12", + "nodeType": "YulIf", + "src": "8346:81:12" + }, + { + "body": { + "nativeSrc": "8479:42:12", + "nodeType": "YulBlock", + "src": "8479:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "8493:16:12", + "nodeType": "YulIdentifier", + "src": "8493:16:12" + }, + "nativeSrc": "8493:18:12", + "nodeType": "YulFunctionCall", + "src": "8493:18:12" + }, + "nativeSrc": "8493:18:12", + "nodeType": "YulExpressionStatement", + "src": "8493:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "8443:18:12", + "nodeType": "YulIdentifier", + "src": "8443:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8466:6:12", + "nodeType": "YulIdentifier", + "src": "8466:6:12" + }, + { + "kind": "number", + "nativeSrc": "8474:2:12", + "nodeType": "YulLiteral", + "src": "8474:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8463:2:12", + "nodeType": "YulIdentifier", + "src": "8463:2:12" + }, + "nativeSrc": "8463:14:12", + "nodeType": "YulFunctionCall", + "src": "8463:14:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8440:2:12", + "nodeType": "YulIdentifier", + "src": "8440:2:12" + }, + "nativeSrc": "8440:38:12", + "nodeType": "YulFunctionCall", + "src": "8440:38:12" + }, + "nativeSrc": "8437:84:12", + "nodeType": "YulIf", + "src": "8437:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "8207:320:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "8242:4:12", + "nodeType": "YulTypedName", + "src": "8242:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "8251:6:12", + "nodeType": "YulTypedName", + "src": "8251:6:12", + "type": "" + } + ], + "src": "8207:320:12" + }, + { + "body": { + "nativeSrc": "8639:120:12", + "nodeType": "YulBlock", + "src": "8639:120:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8661:6:12", + "nodeType": "YulIdentifier", + "src": "8661:6:12" + }, + { + "kind": "number", + "nativeSrc": "8669:1:12", + "nodeType": "YulLiteral", + "src": "8669:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8657:3:12", + "nodeType": "YulIdentifier", + "src": "8657:3:12" + }, + "nativeSrc": "8657:14:12", + "nodeType": "YulFunctionCall", + "src": "8657:14:12" + }, + { + "hexValue": "46756e6374696f6e2063616e6e6f742062652063616c6c656420696e20746869", + "kind": "string", + "nativeSrc": "8673:34:12", + "nodeType": "YulLiteral", + "src": "8673:34:12", + "type": "", + "value": "Function cannot be called in thi" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8650:6:12", + "nodeType": "YulIdentifier", + "src": "8650:6:12" + }, + "nativeSrc": "8650:58:12", + "nodeType": "YulFunctionCall", + "src": "8650:58:12" + }, + "nativeSrc": "8650:58:12", + "nodeType": "YulExpressionStatement", + "src": "8650:58:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8729:6:12", + "nodeType": "YulIdentifier", + "src": "8729:6:12" + }, + { + "kind": "number", + "nativeSrc": "8737:2:12", + "nodeType": "YulLiteral", + "src": "8737:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8725:3:12", + "nodeType": "YulIdentifier", + "src": "8725:3:12" + }, + "nativeSrc": "8725:15:12", + "nodeType": "YulFunctionCall", + "src": "8725:15:12" + }, + { + "hexValue": "73207374617465", + "kind": "string", + "nativeSrc": "8742:9:12", + "nodeType": "YulLiteral", + "src": "8742:9:12", + "type": "", + "value": "s state" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8718:6:12", + "nodeType": "YulIdentifier", + "src": "8718:6:12" + }, + "nativeSrc": "8718:34:12", + "nodeType": "YulFunctionCall", + "src": "8718:34:12" + }, + "nativeSrc": "8718:34:12", + "nodeType": "YulExpressionStatement", + "src": "8718:34:12" + } + ] + }, + "name": "store_literal_in_memory_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c", + "nativeSrc": "8533:226:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "8631:6:12", + "nodeType": "YulTypedName", + "src": "8631:6:12", + "type": "" + } + ], + "src": "8533:226:12" + }, + { + "body": { + "nativeSrc": "8911:220:12", + "nodeType": "YulBlock", + "src": "8911:220:12", + "statements": [ + { + "nativeSrc": "8921:74:12", + "nodeType": "YulAssignment", + "src": "8921:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8987:3:12", + "nodeType": "YulIdentifier", + "src": "8987:3:12" + }, + { + "kind": "number", + "nativeSrc": "8992:2:12", + "nodeType": "YulLiteral", + "src": "8992:2:12", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8928:58:12", + "nodeType": "YulIdentifier", + "src": "8928:58:12" + }, + "nativeSrc": "8928:67:12", + "nodeType": "YulFunctionCall", + "src": "8928:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8921:3:12", + "nodeType": "YulIdentifier", + "src": "8921:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9093:3:12", + "nodeType": "YulIdentifier", + "src": "9093:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c", + "nativeSrc": "9004:88:12", + "nodeType": "YulIdentifier", + "src": "9004:88:12" + }, + "nativeSrc": "9004:93:12", + "nodeType": "YulFunctionCall", + "src": "9004:93:12" + }, + "nativeSrc": "9004:93:12", + "nodeType": "YulExpressionStatement", + "src": "9004:93:12" + }, + { + "nativeSrc": "9106:19:12", + "nodeType": "YulAssignment", + "src": "9106:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9117:3:12", + "nodeType": "YulIdentifier", + "src": "9117:3:12" + }, + { + "kind": "number", + "nativeSrc": "9122:2:12", + "nodeType": "YulLiteral", + "src": "9122:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9113:3:12", + "nodeType": "YulIdentifier", + "src": "9113:3:12" + }, + "nativeSrc": "9113:12:12", + "nodeType": "YulFunctionCall", + "src": "9113:12:12" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "9106:3:12", + "nodeType": "YulIdentifier", + "src": "9106:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8765:366:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8899:3:12", + "nodeType": "YulTypedName", + "src": "8899:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8907:3:12", + "nodeType": "YulTypedName", + "src": "8907:3:12", + "type": "" + } + ], + "src": "8765:366:12" + }, + { + "body": { + "nativeSrc": "9308:248:12", + "nodeType": "YulBlock", + "src": "9308:248:12", + "statements": [ + { + "nativeSrc": "9318:26:12", + "nodeType": "YulAssignment", + "src": "9318:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9330:9:12", + "nodeType": "YulIdentifier", + "src": "9330:9:12" + }, + { + "kind": "number", + "nativeSrc": "9341:2:12", + "nodeType": "YulLiteral", + "src": "9341:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9326:3:12", + "nodeType": "YulIdentifier", + "src": "9326:3:12" + }, + "nativeSrc": "9326:18:12", + "nodeType": "YulFunctionCall", + "src": "9326:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9318:4:12", + "nodeType": "YulIdentifier", + "src": "9318:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9365:9:12", + "nodeType": "YulIdentifier", + "src": "9365:9:12" + }, + { + "kind": "number", + "nativeSrc": "9376:1:12", + "nodeType": "YulLiteral", + "src": "9376:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9361:3:12", + "nodeType": "YulIdentifier", + "src": "9361:3:12" + }, + "nativeSrc": "9361:17:12", + "nodeType": "YulFunctionCall", + "src": "9361:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9384:4:12", + "nodeType": "YulIdentifier", + "src": "9384:4:12" + }, + { + "name": "headStart", + "nativeSrc": "9390:9:12", + "nodeType": "YulIdentifier", + "src": "9390:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9380:3:12", + "nodeType": "YulIdentifier", + "src": "9380:3:12" + }, + "nativeSrc": "9380:20:12", + "nodeType": "YulFunctionCall", + "src": "9380:20:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9354:6:12", + "nodeType": "YulIdentifier", + "src": "9354:6:12" + }, + "nativeSrc": "9354:47:12", + "nodeType": "YulFunctionCall", + "src": "9354:47:12" + }, + "nativeSrc": "9354:47:12", + "nodeType": "YulExpressionStatement", + "src": "9354:47:12" + }, + { + "nativeSrc": "9410:139:12", + "nodeType": "YulAssignment", + "src": "9410:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9544:4:12", + "nodeType": "YulIdentifier", + "src": "9544:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9418:124:12", + "nodeType": "YulIdentifier", + "src": "9418:124:12" + }, + "nativeSrc": "9418:131:12", + "nodeType": "YulFunctionCall", + "src": "9418:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9410:4:12", + "nodeType": "YulIdentifier", + "src": "9410:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9137:419:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9288:9:12", + "nodeType": "YulTypedName", + "src": "9288:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9303:4:12", + "nodeType": "YulTypedName", + "src": "9303:4:12", + "type": "" + } + ], + "src": "9137:419:12" + }, + { + "body": { + "nativeSrc": "9625:80:12", + "nodeType": "YulBlock", + "src": "9625:80:12", + "statements": [ + { + "nativeSrc": "9635:22:12", + "nodeType": "YulAssignment", + "src": "9635:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9650:6:12", + "nodeType": "YulIdentifier", + "src": "9650:6:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9644:5:12", + "nodeType": "YulIdentifier", + "src": "9644:5:12" + }, + "nativeSrc": "9644:13:12", + "nodeType": "YulFunctionCall", + "src": "9644:13:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9635:5:12", + "nodeType": "YulIdentifier", + "src": "9635:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9693:5:12", + "nodeType": "YulIdentifier", + "src": "9693:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "9666:26:12", + "nodeType": "YulIdentifier", + "src": "9666:26:12" + }, + "nativeSrc": "9666:33:12", + "nodeType": "YulFunctionCall", + "src": "9666:33:12" + }, + "nativeSrc": "9666:33:12", + "nodeType": "YulExpressionStatement", + "src": "9666:33:12" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "9562:143:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "9603:6:12", + "nodeType": "YulTypedName", + "src": "9603:6:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9611:3:12", + "nodeType": "YulTypedName", + "src": "9611:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "9619:5:12", + "nodeType": "YulTypedName", + "src": "9619:5:12", + "type": "" + } + ], + "src": "9562:143:12" + }, + { + "body": { + "nativeSrc": "9788:274:12", + "nodeType": "YulBlock", + "src": "9788:274:12", + "statements": [ + { + "body": { + "nativeSrc": "9834:83:12", + "nodeType": "YulBlock", + "src": "9834:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9836:77:12", + "nodeType": "YulIdentifier", + "src": "9836:77:12" + }, + "nativeSrc": "9836:79:12", + "nodeType": "YulFunctionCall", + "src": "9836:79:12" + }, + "nativeSrc": "9836:79:12", + "nodeType": "YulExpressionStatement", + "src": "9836:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9809:7:12", + "nodeType": "YulIdentifier", + "src": "9809:7:12" + }, + { + "name": "headStart", + "nativeSrc": "9818:9:12", + "nodeType": "YulIdentifier", + "src": "9818:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9805:3:12", + "nodeType": "YulIdentifier", + "src": "9805:3:12" + }, + "nativeSrc": "9805:23:12", + "nodeType": "YulFunctionCall", + "src": "9805:23:12" + }, + { + "kind": "number", + "nativeSrc": "9830:2:12", + "nodeType": "YulLiteral", + "src": "9830:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9801:3:12", + "nodeType": "YulIdentifier", + "src": "9801:3:12" + }, + "nativeSrc": "9801:32:12", + "nodeType": "YulFunctionCall", + "src": "9801:32:12" + }, + "nativeSrc": "9798:119:12", + "nodeType": "YulIf", + "src": "9798:119:12" + }, + { + "nativeSrc": "9927:128:12", + "nodeType": "YulBlock", + "src": "9927:128:12", + "statements": [ + { + "nativeSrc": "9942:15:12", + "nodeType": "YulVariableDeclaration", + "src": "9942:15:12", + "value": { + "kind": "number", + "nativeSrc": "9956:1:12", + "nodeType": "YulLiteral", + "src": "9956:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9946:6:12", + "nodeType": "YulTypedName", + "src": "9946:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "9971:74:12", + "nodeType": "YulAssignment", + "src": "9971:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10017:9:12", + "nodeType": "YulIdentifier", + "src": "10017:9:12" + }, + { + "name": "offset", + "nativeSrc": "10028:6:12", + "nodeType": "YulIdentifier", + "src": "10028:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10013:3:12", + "nodeType": "YulIdentifier", + "src": "10013:3:12" + }, + "nativeSrc": "10013:22:12", + "nodeType": "YulFunctionCall", + "src": "10013:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "10037:7:12", + "nodeType": "YulIdentifier", + "src": "10037:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "9981:31:12", + "nodeType": "YulIdentifier", + "src": "9981:31:12" + }, + "nativeSrc": "9981:64:12", + "nodeType": "YulFunctionCall", + "src": "9981:64:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9971:6:12", + "nodeType": "YulIdentifier", + "src": "9971:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "9711:351:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9758:9:12", + "nodeType": "YulTypedName", + "src": "9758:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9769:7:12", + "nodeType": "YulTypedName", + "src": "9769:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9781:6:12", + "nodeType": "YulTypedName", + "src": "9781:6:12", + "type": "" + } + ], + "src": "9711:351:12" + }, + { + "body": { + "nativeSrc": "10194:206:12", + "nodeType": "YulBlock", + "src": "10194:206:12", + "statements": [ + { + "nativeSrc": "10204:26:12", + "nodeType": "YulAssignment", + "src": "10204:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10216:9:12", + "nodeType": "YulIdentifier", + "src": "10216:9:12" + }, + { + "kind": "number", + "nativeSrc": "10227:2:12", + "nodeType": "YulLiteral", + "src": "10227:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10212:3:12", + "nodeType": "YulIdentifier", + "src": "10212:3:12" + }, + "nativeSrc": "10212:18:12", + "nodeType": "YulFunctionCall", + "src": "10212:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10204:4:12", + "nodeType": "YulIdentifier", + "src": "10204:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10284:6:12", + "nodeType": "YulIdentifier", + "src": "10284:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10297:9:12", + "nodeType": "YulIdentifier", + "src": "10297:9:12" + }, + { + "kind": "number", + "nativeSrc": "10308:1:12", + "nodeType": "YulLiteral", + "src": "10308:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10293:3:12", + "nodeType": "YulIdentifier", + "src": "10293:3:12" + }, + "nativeSrc": "10293:17:12", + "nodeType": "YulFunctionCall", + "src": "10293:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "10240:43:12", + "nodeType": "YulIdentifier", + "src": "10240:43:12" + }, + "nativeSrc": "10240:71:12", + "nodeType": "YulFunctionCall", + "src": "10240:71:12" + }, + "nativeSrc": "10240:71:12", + "nodeType": "YulExpressionStatement", + "src": "10240:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "10365:6:12", + "nodeType": "YulIdentifier", + "src": "10365:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10378:9:12", + "nodeType": "YulIdentifier", + "src": "10378:9:12" + }, + { + "kind": "number", + "nativeSrc": "10389:2:12", + "nodeType": "YulLiteral", + "src": "10389:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10374:3:12", + "nodeType": "YulIdentifier", + "src": "10374:3:12" + }, + "nativeSrc": "10374:18:12", + "nodeType": "YulFunctionCall", + "src": "10374:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "10321:43:12", + "nodeType": "YulIdentifier", + "src": "10321:43:12" + }, + "nativeSrc": "10321:72:12", + "nodeType": "YulFunctionCall", + "src": "10321:72:12" + }, + "nativeSrc": "10321:72:12", + "nodeType": "YulExpressionStatement", + "src": "10321:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "10068:332:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10158:9:12", + "nodeType": "YulTypedName", + "src": "10158:9:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10170:6:12", + "nodeType": "YulTypedName", + "src": "10170:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10178:6:12", + "nodeType": "YulTypedName", + "src": "10178:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10189:4:12", + "nodeType": "YulTypedName", + "src": "10189:4:12", + "type": "" + } + ], + "src": "10068:332:12" + }, + { + "body": { + "nativeSrc": "10434:152:12", + "nodeType": "YulBlock", + "src": "10434:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10451:1:12", + "nodeType": "YulLiteral", + "src": "10451:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10454:77:12", + "nodeType": "YulLiteral", + "src": "10454:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10444:6:12", + "nodeType": "YulIdentifier", + "src": "10444:6:12" + }, + "nativeSrc": "10444:88:12", + "nodeType": "YulFunctionCall", + "src": "10444:88:12" + }, + "nativeSrc": "10444:88:12", + "nodeType": "YulExpressionStatement", + "src": "10444:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10548:1:12", + "nodeType": "YulLiteral", + "src": "10548:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "10551:4:12", + "nodeType": "YulLiteral", + "src": "10551:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10541:6:12", + "nodeType": "YulIdentifier", + "src": "10541:6:12" + }, + "nativeSrc": "10541:15:12", + "nodeType": "YulFunctionCall", + "src": "10541:15:12" + }, + "nativeSrc": "10541:15:12", + "nodeType": "YulExpressionStatement", + "src": "10541:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10572:1:12", + "nodeType": "YulLiteral", + "src": "10572:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10575:4:12", + "nodeType": "YulLiteral", + "src": "10575:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10565:6:12", + "nodeType": "YulIdentifier", + "src": "10565:6:12" + }, + "nativeSrc": "10565:15:12", + "nodeType": "YulFunctionCall", + "src": "10565:15:12" + }, + "nativeSrc": "10565:15:12", + "nodeType": "YulExpressionStatement", + "src": "10565:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "10406:180:12", + "nodeType": "YulFunctionDefinition", + "src": "10406:180:12" + }, + { + "body": { + "nativeSrc": "10640:362:12", + "nodeType": "YulBlock", + "src": "10640:362:12", + "statements": [ + { + "nativeSrc": "10650:25:12", + "nodeType": "YulAssignment", + "src": "10650:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "10673:1:12", + "nodeType": "YulIdentifier", + "src": "10673:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "10655:17:12", + "nodeType": "YulIdentifier", + "src": "10655:17:12" + }, + "nativeSrc": "10655:20:12", + "nodeType": "YulFunctionCall", + "src": "10655:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "10650:1:12", + "nodeType": "YulIdentifier", + "src": "10650:1:12" + } + ] + }, + { + "nativeSrc": "10684:25:12", + "nodeType": "YulAssignment", + "src": "10684:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "10707:1:12", + "nodeType": "YulIdentifier", + "src": "10707:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "10689:17:12", + "nodeType": "YulIdentifier", + "src": "10689:17:12" + }, + "nativeSrc": "10689:20:12", + "nodeType": "YulFunctionCall", + "src": "10689:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "10684:1:12", + "nodeType": "YulIdentifier", + "src": "10684:1:12" + } + ] + }, + { + "nativeSrc": "10718:28:12", + "nodeType": "YulVariableDeclaration", + "src": "10718:28:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "10741:1:12", + "nodeType": "YulIdentifier", + "src": "10741:1:12" + }, + { + "name": "y", + "nativeSrc": "10744:1:12", + "nodeType": "YulIdentifier", + "src": "10744:1:12" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "10737:3:12", + "nodeType": "YulIdentifier", + "src": "10737:3:12" + }, + "nativeSrc": "10737:9:12", + "nodeType": "YulFunctionCall", + "src": "10737:9:12" + }, + "variables": [ + { + "name": "product_raw", + "nativeSrc": "10722:11:12", + "nodeType": "YulTypedName", + "src": "10722:11:12", + "type": "" + } + ] + }, + { + "nativeSrc": "10755:41:12", + "nodeType": "YulAssignment", + "src": "10755:41:12", + "value": { + "arguments": [ + { + "name": "product_raw", + "nativeSrc": "10784:11:12", + "nodeType": "YulIdentifier", + "src": "10784:11:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "10766:17:12", + "nodeType": "YulIdentifier", + "src": "10766:17:12" + }, + "nativeSrc": "10766:30:12", + "nodeType": "YulFunctionCall", + "src": "10766:30:12" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "10755:7:12", + "nodeType": "YulIdentifier", + "src": "10755:7:12" + } + ] + }, + { + "body": { + "nativeSrc": "10973:22:12", + "nodeType": "YulBlock", + "src": "10973:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "10975:16:12", + "nodeType": "YulIdentifier", + "src": "10975:16:12" + }, + "nativeSrc": "10975:18:12", + "nodeType": "YulFunctionCall", + "src": "10975:18:12" + }, + "nativeSrc": "10975:18:12", + "nodeType": "YulExpressionStatement", + "src": "10975:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "10906:1:12", + "nodeType": "YulIdentifier", + "src": "10906:1:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10899:6:12", + "nodeType": "YulIdentifier", + "src": "10899:6:12" + }, + "nativeSrc": "10899:9:12", + "nodeType": "YulFunctionCall", + "src": "10899:9:12" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "10929:1:12", + "nodeType": "YulIdentifier", + "src": "10929:1:12" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "10936:7:12", + "nodeType": "YulIdentifier", + "src": "10936:7:12" + }, + { + "name": "x", + "nativeSrc": "10945:1:12", + "nodeType": "YulIdentifier", + "src": "10945:1:12" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "10932:3:12", + "nodeType": "YulIdentifier", + "src": "10932:3:12" + }, + "nativeSrc": "10932:15:12", + "nodeType": "YulFunctionCall", + "src": "10932:15:12" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "10926:2:12", + "nodeType": "YulIdentifier", + "src": "10926:2:12" + }, + "nativeSrc": "10926:22:12", + "nodeType": "YulFunctionCall", + "src": "10926:22:12" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "10879:2:12", + "nodeType": "YulIdentifier", + "src": "10879:2:12" + }, + "nativeSrc": "10879:83:12", + "nodeType": "YulFunctionCall", + "src": "10879:83:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10859:6:12", + "nodeType": "YulIdentifier", + "src": "10859:6:12" + }, + "nativeSrc": "10859:113:12", + "nodeType": "YulFunctionCall", + "src": "10859:113:12" + }, + "nativeSrc": "10856:139:12", + "nodeType": "YulIf", + "src": "10856:139:12" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "10592:410:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "10623:1:12", + "nodeType": "YulTypedName", + "src": "10623:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "10626:1:12", + "nodeType": "YulTypedName", + "src": "10626:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "10632:7:12", + "nodeType": "YulTypedName", + "src": "10632:7:12", + "type": "" + } + ], + "src": "10592:410:12" + }, + { + "body": { + "nativeSrc": "11036:152:12", + "nodeType": "YulBlock", + "src": "11036:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11053:1:12", + "nodeType": "YulLiteral", + "src": "11053:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11056:77:12", + "nodeType": "YulLiteral", + "src": "11056:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11046:6:12", + "nodeType": "YulIdentifier", + "src": "11046:6:12" + }, + "nativeSrc": "11046:88:12", + "nodeType": "YulFunctionCall", + "src": "11046:88:12" + }, + "nativeSrc": "11046:88:12", + "nodeType": "YulExpressionStatement", + "src": "11046:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11150:1:12", + "nodeType": "YulLiteral", + "src": "11150:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "11153:4:12", + "nodeType": "YulLiteral", + "src": "11153:4:12", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11143:6:12", + "nodeType": "YulIdentifier", + "src": "11143:6:12" + }, + "nativeSrc": "11143:15:12", + "nodeType": "YulFunctionCall", + "src": "11143:15:12" + }, + "nativeSrc": "11143:15:12", + "nodeType": "YulExpressionStatement", + "src": "11143:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11174:1:12", + "nodeType": "YulLiteral", + "src": "11174:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11177:4:12", + "nodeType": "YulLiteral", + "src": "11177:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11167:6:12", + "nodeType": "YulIdentifier", + "src": "11167:6:12" + }, + "nativeSrc": "11167:15:12", + "nodeType": "YulFunctionCall", + "src": "11167:15:12" + }, + "nativeSrc": "11167:15:12", + "nodeType": "YulExpressionStatement", + "src": "11167:15:12" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "11008:180:12", + "nodeType": "YulFunctionDefinition", + "src": "11008:180:12" + }, + { + "body": { + "nativeSrc": "11236:143:12", + "nodeType": "YulBlock", + "src": "11236:143:12", + "statements": [ + { + "nativeSrc": "11246:25:12", + "nodeType": "YulAssignment", + "src": "11246:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11269:1:12", + "nodeType": "YulIdentifier", + "src": "11269:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11251:17:12", + "nodeType": "YulIdentifier", + "src": "11251:17:12" + }, + "nativeSrc": "11251:20:12", + "nodeType": "YulFunctionCall", + "src": "11251:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "11246:1:12", + "nodeType": "YulIdentifier", + "src": "11246:1:12" + } + ] + }, + { + "nativeSrc": "11280:25:12", + "nodeType": "YulAssignment", + "src": "11280:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "11303:1:12", + "nodeType": "YulIdentifier", + "src": "11303:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11285:17:12", + "nodeType": "YulIdentifier", + "src": "11285:17:12" + }, + "nativeSrc": "11285:20:12", + "nodeType": "YulFunctionCall", + "src": "11285:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "11280:1:12", + "nodeType": "YulIdentifier", + "src": "11280:1:12" + } + ] + }, + { + "body": { + "nativeSrc": "11327:22:12", + "nodeType": "YulBlock", + "src": "11327:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nativeSrc": "11329:16:12", + "nodeType": "YulIdentifier", + "src": "11329:16:12" + }, + "nativeSrc": "11329:18:12", + "nodeType": "YulFunctionCall", + "src": "11329:18:12" + }, + "nativeSrc": "11329:18:12", + "nodeType": "YulExpressionStatement", + "src": "11329:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "11324:1:12", + "nodeType": "YulIdentifier", + "src": "11324:1:12" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11317:6:12", + "nodeType": "YulIdentifier", + "src": "11317:6:12" + }, + "nativeSrc": "11317:9:12", + "nodeType": "YulFunctionCall", + "src": "11317:9:12" + }, + "nativeSrc": "11314:35:12", + "nodeType": "YulIf", + "src": "11314:35:12" + }, + { + "nativeSrc": "11359:14:12", + "nodeType": "YulAssignment", + "src": "11359:14:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11368:1:12", + "nodeType": "YulIdentifier", + "src": "11368:1:12" + }, + { + "name": "y", + "nativeSrc": "11371:1:12", + "nodeType": "YulIdentifier", + "src": "11371:1:12" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "11364:3:12", + "nodeType": "YulIdentifier", + "src": "11364:3:12" + }, + "nativeSrc": "11364:9:12", + "nodeType": "YulFunctionCall", + "src": "11364:9:12" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "11359:1:12", + "nodeType": "YulIdentifier", + "src": "11359:1:12" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "11194:185:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "11225:1:12", + "nodeType": "YulTypedName", + "src": "11225:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "11228:1:12", + "nodeType": "YulTypedName", + "src": "11228:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "11234:1:12", + "nodeType": "YulTypedName", + "src": "11234:1:12", + "type": "" + } + ], + "src": "11194:185:12" + }, + { + "body": { + "nativeSrc": "11438:32:12", + "nodeType": "YulBlock", + "src": "11438:32:12", + "statements": [ + { + "nativeSrc": "11448:16:12", + "nodeType": "YulAssignment", + "src": "11448:16:12", + "value": { + "name": "value", + "nativeSrc": "11459:5:12", + "nodeType": "YulIdentifier", + "src": "11459:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "11448:7:12", + "nodeType": "YulIdentifier", + "src": "11448:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_rational_0_by_1", + "nativeSrc": "11385:85:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11420:5:12", + "nodeType": "YulTypedName", + "src": "11420:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "11430:7:12", + "nodeType": "YulTypedName", + "src": "11430:7:12", + "type": "" + } + ], + "src": "11385:85:12" + }, + { + "body": { + "nativeSrc": "11544:90:12", + "nodeType": "YulBlock", + "src": "11544:90:12", + "statements": [ + { + "nativeSrc": "11554:74:12", + "nodeType": "YulAssignment", + "src": "11554:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11620:5:12", + "nodeType": "YulIdentifier", + "src": "11620:5:12" + } + ], + "functionName": { + "name": "cleanup_t_rational_0_by_1", + "nativeSrc": "11594:25:12", + "nodeType": "YulIdentifier", + "src": "11594:25:12" + }, + "nativeSrc": "11594:32:12", + "nodeType": "YulFunctionCall", + "src": "11594:32:12" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "11585:8:12", + "nodeType": "YulIdentifier", + "src": "11585:8:12" + }, + "nativeSrc": "11585:42:12", + "nodeType": "YulFunctionCall", + "src": "11585:42:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11567:17:12", + "nodeType": "YulIdentifier", + "src": "11567:17:12" + }, + "nativeSrc": "11567:61:12", + "nodeType": "YulFunctionCall", + "src": "11567:61:12" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "11554:9:12", + "nodeType": "YulIdentifier", + "src": "11554:9:12" + } + ] + } + ] + }, + "name": "convert_t_rational_0_by_1_to_t_uint256", + "nativeSrc": "11476:158:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11524:5:12", + "nodeType": "YulTypedName", + "src": "11524:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "11534:9:12", + "nodeType": "YulTypedName", + "src": "11534:9:12", + "type": "" + } + ], + "src": "11476:158:12" + }, + { + "body": { + "nativeSrc": "11713:74:12", + "nodeType": "YulBlock", + "src": "11713:74:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11730:3:12", + "nodeType": "YulIdentifier", + "src": "11730:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11774:5:12", + "nodeType": "YulIdentifier", + "src": "11774:5:12" + } + ], + "functionName": { + "name": "convert_t_rational_0_by_1_to_t_uint256", + "nativeSrc": "11735:38:12", + "nodeType": "YulIdentifier", + "src": "11735:38:12" + }, + "nativeSrc": "11735:45:12", + "nodeType": "YulFunctionCall", + "src": "11735:45:12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11723:6:12", + "nodeType": "YulIdentifier", + "src": "11723:6:12" + }, + "nativeSrc": "11723:58:12", + "nodeType": "YulFunctionCall", + "src": "11723:58:12" + }, + "nativeSrc": "11723:58:12", + "nodeType": "YulExpressionStatement", + "src": "11723:58:12" + } + ] + }, + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nativeSrc": "11640:147:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11701:5:12", + "nodeType": "YulTypedName", + "src": "11701:5:12", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "11708:3:12", + "nodeType": "YulTypedName", + "src": "11708:3:12", + "type": "" + } + ], + "src": "11640:147:12" + }, + { + "body": { + "nativeSrc": "12047:553:12", + "nodeType": "YulBlock", + "src": "12047:553:12", + "statements": [ + { + "nativeSrc": "12057:27:12", + "nodeType": "YulAssignment", + "src": "12057:27:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12069:9:12", + "nodeType": "YulIdentifier", + "src": "12069:9:12" + }, + { + "kind": "number", + "nativeSrc": "12080:3:12", + "nodeType": "YulLiteral", + "src": "12080:3:12", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12065:3:12", + "nodeType": "YulIdentifier", + "src": "12065:3:12" + }, + "nativeSrc": "12065:19:12", + "nodeType": "YulFunctionCall", + "src": "12065:19:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12057:4:12", + "nodeType": "YulIdentifier", + "src": "12057:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12138:6:12", + "nodeType": "YulIdentifier", + "src": "12138:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12151:9:12", + "nodeType": "YulIdentifier", + "src": "12151:9:12" + }, + { + "kind": "number", + "nativeSrc": "12162:1:12", + "nodeType": "YulLiteral", + "src": "12162:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12147:3:12", + "nodeType": "YulIdentifier", + "src": "12147:3:12" + }, + "nativeSrc": "12147:17:12", + "nodeType": "YulFunctionCall", + "src": "12147:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12094:43:12", + "nodeType": "YulIdentifier", + "src": "12094:43:12" + }, + "nativeSrc": "12094:71:12", + "nodeType": "YulFunctionCall", + "src": "12094:71:12" + }, + "nativeSrc": "12094:71:12", + "nodeType": "YulExpressionStatement", + "src": "12094:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12219:6:12", + "nodeType": "YulIdentifier", + "src": "12219:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12232:9:12", + "nodeType": "YulIdentifier", + "src": "12232:9:12" + }, + { + "kind": "number", + "nativeSrc": "12243:2:12", + "nodeType": "YulLiteral", + "src": "12243:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12228:3:12", + "nodeType": "YulIdentifier", + "src": "12228:3:12" + }, + "nativeSrc": "12228:18:12", + "nodeType": "YulFunctionCall", + "src": "12228:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12175:43:12", + "nodeType": "YulIdentifier", + "src": "12175:43:12" + }, + "nativeSrc": "12175:72:12", + "nodeType": "YulFunctionCall", + "src": "12175:72:12" + }, + "nativeSrc": "12175:72:12", + "nodeType": "YulExpressionStatement", + "src": "12175:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "12309:6:12", + "nodeType": "YulIdentifier", + "src": "12309:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12322:9:12", + "nodeType": "YulIdentifier", + "src": "12322:9:12" + }, + { + "kind": "number", + "nativeSrc": "12333:2:12", + "nodeType": "YulLiteral", + "src": "12333:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12318:3:12", + "nodeType": "YulIdentifier", + "src": "12318:3:12" + }, + "nativeSrc": "12318:18:12", + "nodeType": "YulFunctionCall", + "src": "12318:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nativeSrc": "12257:51:12", + "nodeType": "YulIdentifier", + "src": "12257:51:12" + }, + "nativeSrc": "12257:80:12", + "nodeType": "YulFunctionCall", + "src": "12257:80:12" + }, + "nativeSrc": "12257:80:12", + "nodeType": "YulExpressionStatement", + "src": "12257:80:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "12399:6:12", + "nodeType": "YulIdentifier", + "src": "12399:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12412:9:12", + "nodeType": "YulIdentifier", + "src": "12412:9:12" + }, + { + "kind": "number", + "nativeSrc": "12423:2:12", + "nodeType": "YulLiteral", + "src": "12423:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12408:3:12", + "nodeType": "YulIdentifier", + "src": "12408:3:12" + }, + "nativeSrc": "12408:18:12", + "nodeType": "YulFunctionCall", + "src": "12408:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nativeSrc": "12347:51:12", + "nodeType": "YulIdentifier", + "src": "12347:51:12" + }, + "nativeSrc": "12347:80:12", + "nodeType": "YulFunctionCall", + "src": "12347:80:12" + }, + "nativeSrc": "12347:80:12", + "nodeType": "YulExpressionStatement", + "src": "12347:80:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "12481:6:12", + "nodeType": "YulIdentifier", + "src": "12481:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12494:9:12", + "nodeType": "YulIdentifier", + "src": "12494:9:12" + }, + { + "kind": "number", + "nativeSrc": "12505:3:12", + "nodeType": "YulLiteral", + "src": "12505:3:12", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12490:3:12", + "nodeType": "YulIdentifier", + "src": "12490:3:12" + }, + "nativeSrc": "12490:19:12", + "nodeType": "YulFunctionCall", + "src": "12490:19:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12437:43:12", + "nodeType": "YulIdentifier", + "src": "12437:43:12" + }, + "nativeSrc": "12437:73:12", + "nodeType": "YulFunctionCall", + "src": "12437:73:12" + }, + "nativeSrc": "12437:73:12", + "nodeType": "YulExpressionStatement", + "src": "12437:73:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nativeSrc": "12564:6:12", + "nodeType": "YulIdentifier", + "src": "12564:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12577:9:12", + "nodeType": "YulIdentifier", + "src": "12577:9:12" + }, + { + "kind": "number", + "nativeSrc": "12588:3:12", + "nodeType": "YulLiteral", + "src": "12588:3:12", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12573:3:12", + "nodeType": "YulIdentifier", + "src": "12573:3:12" + }, + "nativeSrc": "12573:19:12", + "nodeType": "YulFunctionCall", + "src": "12573:19:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12520:43:12", + "nodeType": "YulIdentifier", + "src": "12520:43:12" + }, + "nativeSrc": "12520:73:12", + "nodeType": "YulFunctionCall", + "src": "12520:73:12" + }, + "nativeSrc": "12520:73:12", + "nodeType": "YulExpressionStatement", + "src": "12520:73:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "11793:807:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11979:9:12", + "nodeType": "YulTypedName", + "src": "11979:9:12", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "11991:6:12", + "nodeType": "YulTypedName", + "src": "11991:6:12", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "11999:6:12", + "nodeType": "YulTypedName", + "src": "11999:6:12", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "12007:6:12", + "nodeType": "YulTypedName", + "src": "12007:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12015:6:12", + "nodeType": "YulTypedName", + "src": "12015:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12023:6:12", + "nodeType": "YulTypedName", + "src": "12023:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12031:6:12", + "nodeType": "YulTypedName", + "src": "12031:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12042:4:12", + "nodeType": "YulTypedName", + "src": "12042:4:12", + "type": "" + } + ], + "src": "11793:807:12" + }, + { + "body": { + "nativeSrc": "12669:80:12", + "nodeType": "YulBlock", + "src": "12669:80:12", + "statements": [ + { + "nativeSrc": "12679:22:12", + "nodeType": "YulAssignment", + "src": "12679:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12694:6:12", + "nodeType": "YulIdentifier", + "src": "12694:6:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12688:5:12", + "nodeType": "YulIdentifier", + "src": "12688:5:12" + }, + "nativeSrc": "12688:13:12", + "nodeType": "YulFunctionCall", + "src": "12688:13:12" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "12679:5:12", + "nodeType": "YulIdentifier", + "src": "12679:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "12737:5:12", + "nodeType": "YulIdentifier", + "src": "12737:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "12710:26:12", + "nodeType": "YulIdentifier", + "src": "12710:26:12" + }, + "nativeSrc": "12710:33:12", + "nodeType": "YulFunctionCall", + "src": "12710:33:12" + }, + "nativeSrc": "12710:33:12", + "nodeType": "YulExpressionStatement", + "src": "12710:33:12" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "12606:143:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12647:6:12", + "nodeType": "YulTypedName", + "src": "12647:6:12", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12655:3:12", + "nodeType": "YulTypedName", + "src": "12655:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "12663:5:12", + "nodeType": "YulTypedName", + "src": "12663:5:12", + "type": "" + } + ], + "src": "12606:143:12" + }, + { + "body": { + "nativeSrc": "12866:552:12", + "nodeType": "YulBlock", + "src": "12866:552:12", + "statements": [ + { + "body": { + "nativeSrc": "12912:83:12", + "nodeType": "YulBlock", + "src": "12912:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "12914:77:12", + "nodeType": "YulIdentifier", + "src": "12914:77:12" + }, + "nativeSrc": "12914:79:12", + "nodeType": "YulFunctionCall", + "src": "12914:79:12" + }, + "nativeSrc": "12914:79:12", + "nodeType": "YulExpressionStatement", + "src": "12914:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12887:7:12", + "nodeType": "YulIdentifier", + "src": "12887:7:12" + }, + { + "name": "headStart", + "nativeSrc": "12896:9:12", + "nodeType": "YulIdentifier", + "src": "12896:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12883:3:12", + "nodeType": "YulIdentifier", + "src": "12883:3:12" + }, + "nativeSrc": "12883:23:12", + "nodeType": "YulFunctionCall", + "src": "12883:23:12" + }, + { + "kind": "number", + "nativeSrc": "12908:2:12", + "nodeType": "YulLiteral", + "src": "12908:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12879:3:12", + "nodeType": "YulIdentifier", + "src": "12879:3:12" + }, + "nativeSrc": "12879:32:12", + "nodeType": "YulFunctionCall", + "src": "12879:32:12" + }, + "nativeSrc": "12876:119:12", + "nodeType": "YulIf", + "src": "12876:119:12" + }, + { + "nativeSrc": "13005:128:12", + "nodeType": "YulBlock", + "src": "13005:128:12", + "statements": [ + { + "nativeSrc": "13020:15:12", + "nodeType": "YulVariableDeclaration", + "src": "13020:15:12", + "value": { + "kind": "number", + "nativeSrc": "13034:1:12", + "nodeType": "YulLiteral", + "src": "13034:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13024:6:12", + "nodeType": "YulTypedName", + "src": "13024:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "13049:74:12", + "nodeType": "YulAssignment", + "src": "13049:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13095:9:12", + "nodeType": "YulIdentifier", + "src": "13095:9:12" + }, + { + "name": "offset", + "nativeSrc": "13106:6:12", + "nodeType": "YulIdentifier", + "src": "13106:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13091:3:12", + "nodeType": "YulIdentifier", + "src": "13091:3:12" + }, + "nativeSrc": "13091:22:12", + "nodeType": "YulFunctionCall", + "src": "13091:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "13115:7:12", + "nodeType": "YulIdentifier", + "src": "13115:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "13059:31:12", + "nodeType": "YulIdentifier", + "src": "13059:31:12" + }, + "nativeSrc": "13059:64:12", + "nodeType": "YulFunctionCall", + "src": "13059:64:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13049:6:12", + "nodeType": "YulIdentifier", + "src": "13049:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "13143:129:12", + "nodeType": "YulBlock", + "src": "13143:129:12", + "statements": [ + { + "nativeSrc": "13158:16:12", + "nodeType": "YulVariableDeclaration", + "src": "13158:16:12", + "value": { + "kind": "number", + "nativeSrc": "13172:2:12", + "nodeType": "YulLiteral", + "src": "13172:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13162:6:12", + "nodeType": "YulTypedName", + "src": "13162:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "13188:74:12", + "nodeType": "YulAssignment", + "src": "13188:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13234:9:12", + "nodeType": "YulIdentifier", + "src": "13234:9:12" + }, + { + "name": "offset", + "nativeSrc": "13245:6:12", + "nodeType": "YulIdentifier", + "src": "13245:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13230:3:12", + "nodeType": "YulIdentifier", + "src": "13230:3:12" + }, + "nativeSrc": "13230:22:12", + "nodeType": "YulFunctionCall", + "src": "13230:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "13254:7:12", + "nodeType": "YulIdentifier", + "src": "13254:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "13198:31:12", + "nodeType": "YulIdentifier", + "src": "13198:31:12" + }, + "nativeSrc": "13198:64:12", + "nodeType": "YulFunctionCall", + "src": "13198:64:12" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "13188:6:12", + "nodeType": "YulIdentifier", + "src": "13188:6:12" + } + ] + } + ] + }, + { + "nativeSrc": "13282:129:12", + "nodeType": "YulBlock", + "src": "13282:129:12", + "statements": [ + { + "nativeSrc": "13297:16:12", + "nodeType": "YulVariableDeclaration", + "src": "13297:16:12", + "value": { + "kind": "number", + "nativeSrc": "13311:2:12", + "nodeType": "YulLiteral", + "src": "13311:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13301:6:12", + "nodeType": "YulTypedName", + "src": "13301:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "13327:74:12", + "nodeType": "YulAssignment", + "src": "13327:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13373:9:12", + "nodeType": "YulIdentifier", + "src": "13373:9:12" + }, + { + "name": "offset", + "nativeSrc": "13384:6:12", + "nodeType": "YulIdentifier", + "src": "13384:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13369:3:12", + "nodeType": "YulIdentifier", + "src": "13369:3:12" + }, + "nativeSrc": "13369:22:12", + "nodeType": "YulFunctionCall", + "src": "13369:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "13393:7:12", + "nodeType": "YulIdentifier", + "src": "13393:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "13337:31:12", + "nodeType": "YulIdentifier", + "src": "13337:31:12" + }, + "nativeSrc": "13337:64:12", + "nodeType": "YulFunctionCall", + "src": "13337:64:12" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "13327:6:12", + "nodeType": "YulIdentifier", + "src": "13327:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory", + "nativeSrc": "12755:663:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12820:9:12", + "nodeType": "YulTypedName", + "src": "12820:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12831:7:12", + "nodeType": "YulTypedName", + "src": "12831:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12843:6:12", + "nodeType": "YulTypedName", + "src": "12843:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12851:6:12", + "nodeType": "YulTypedName", + "src": "12851:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12859:6:12", + "nodeType": "YulTypedName", + "src": "12859:6:12", + "type": "" + } + ], + "src": "12755:663:12" + }, + { + "body": { + "nativeSrc": "13501:274:12", + "nodeType": "YulBlock", + "src": "13501:274:12", + "statements": [ + { + "body": { + "nativeSrc": "13547:83:12", + "nodeType": "YulBlock", + "src": "13547:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "13549:77:12", + "nodeType": "YulIdentifier", + "src": "13549:77:12" + }, + "nativeSrc": "13549:79:12", + "nodeType": "YulFunctionCall", + "src": "13549:79:12" + }, + "nativeSrc": "13549:79:12", + "nodeType": "YulExpressionStatement", + "src": "13549:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13522:7:12", + "nodeType": "YulIdentifier", + "src": "13522:7:12" + }, + { + "name": "headStart", + "nativeSrc": "13531:9:12", + "nodeType": "YulIdentifier", + "src": "13531:9:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13518:3:12", + "nodeType": "YulIdentifier", + "src": "13518:3:12" + }, + "nativeSrc": "13518:23:12", + "nodeType": "YulFunctionCall", + "src": "13518:23:12" + }, + { + "kind": "number", + "nativeSrc": "13543:2:12", + "nodeType": "YulLiteral", + "src": "13543:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13514:3:12", + "nodeType": "YulIdentifier", + "src": "13514:3:12" + }, + "nativeSrc": "13514:32:12", + "nodeType": "YulFunctionCall", + "src": "13514:32:12" + }, + "nativeSrc": "13511:119:12", + "nodeType": "YulIf", + "src": "13511:119:12" + }, + { + "nativeSrc": "13640:128:12", + "nodeType": "YulBlock", + "src": "13640:128:12", + "statements": [ + { + "nativeSrc": "13655:15:12", + "nodeType": "YulVariableDeclaration", + "src": "13655:15:12", + "value": { + "kind": "number", + "nativeSrc": "13669:1:12", + "nodeType": "YulLiteral", + "src": "13669:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13659:6:12", + "nodeType": "YulTypedName", + "src": "13659:6:12", + "type": "" + } + ] + }, + { + "nativeSrc": "13684:74:12", + "nodeType": "YulAssignment", + "src": "13684:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13730:9:12", + "nodeType": "YulIdentifier", + "src": "13730:9:12" + }, + { + "name": "offset", + "nativeSrc": "13741:6:12", + "nodeType": "YulIdentifier", + "src": "13741:6:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13726:3:12", + "nodeType": "YulIdentifier", + "src": "13726:3:12" + }, + "nativeSrc": "13726:22:12", + "nodeType": "YulFunctionCall", + "src": "13726:22:12" + }, + { + "name": "dataEnd", + "nativeSrc": "13750:7:12", + "nodeType": "YulIdentifier", + "src": "13750:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "13694:31:12", + "nodeType": "YulIdentifier", + "src": "13694:31:12" + }, + "nativeSrc": "13694:64:12", + "nodeType": "YulFunctionCall", + "src": "13694:64:12" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13684:6:12", + "nodeType": "YulIdentifier", + "src": "13684:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "13424:351:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13471:9:12", + "nodeType": "YulTypedName", + "src": "13471:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13482:7:12", + "nodeType": "YulTypedName", + "src": "13482:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13494:6:12", + "nodeType": "YulTypedName", + "src": "13494:6:12", + "type": "" + } + ], + "src": "13424:351:12" + }, + { + "body": { + "nativeSrc": "13991:454:12", + "nodeType": "YulBlock", + "src": "13991:454:12", + "statements": [ + { + "nativeSrc": "14001:27:12", + "nodeType": "YulAssignment", + "src": "14001:27:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14013:9:12", + "nodeType": "YulIdentifier", + "src": "14013:9:12" + }, + { + "kind": "number", + "nativeSrc": "14024:3:12", + "nodeType": "YulLiteral", + "src": "14024:3:12", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14009:3:12", + "nodeType": "YulIdentifier", + "src": "14009:3:12" + }, + "nativeSrc": "14009:19:12", + "nodeType": "YulFunctionCall", + "src": "14009:19:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14001:4:12", + "nodeType": "YulIdentifier", + "src": "14001:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14082:6:12", + "nodeType": "YulIdentifier", + "src": "14082:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14095:9:12", + "nodeType": "YulIdentifier", + "src": "14095:9:12" + }, + { + "kind": "number", + "nativeSrc": "14106:1:12", + "nodeType": "YulLiteral", + "src": "14106:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14091:3:12", + "nodeType": "YulIdentifier", + "src": "14091:3:12" + }, + "nativeSrc": "14091:17:12", + "nodeType": "YulFunctionCall", + "src": "14091:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14038:43:12", + "nodeType": "YulIdentifier", + "src": "14038:43:12" + }, + "nativeSrc": "14038:71:12", + "nodeType": "YulFunctionCall", + "src": "14038:71:12" + }, + "nativeSrc": "14038:71:12", + "nodeType": "YulExpressionStatement", + "src": "14038:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "14163:6:12", + "nodeType": "YulIdentifier", + "src": "14163:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14176:9:12", + "nodeType": "YulIdentifier", + "src": "14176:9:12" + }, + { + "kind": "number", + "nativeSrc": "14187:2:12", + "nodeType": "YulLiteral", + "src": "14187:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14172:3:12", + "nodeType": "YulIdentifier", + "src": "14172:3:12" + }, + "nativeSrc": "14172:18:12", + "nodeType": "YulFunctionCall", + "src": "14172:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14119:43:12", + "nodeType": "YulIdentifier", + "src": "14119:43:12" + }, + "nativeSrc": "14119:72:12", + "nodeType": "YulFunctionCall", + "src": "14119:72:12" + }, + "nativeSrc": "14119:72:12", + "nodeType": "YulExpressionStatement", + "src": "14119:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "14245:6:12", + "nodeType": "YulIdentifier", + "src": "14245:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14258:9:12", + "nodeType": "YulIdentifier", + "src": "14258:9:12" + }, + { + "kind": "number", + "nativeSrc": "14269:2:12", + "nodeType": "YulLiteral", + "src": "14269:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14254:3:12", + "nodeType": "YulIdentifier", + "src": "14254:3:12" + }, + "nativeSrc": "14254:18:12", + "nodeType": "YulFunctionCall", + "src": "14254:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14201:43:12", + "nodeType": "YulIdentifier", + "src": "14201:43:12" + }, + "nativeSrc": "14201:72:12", + "nodeType": "YulFunctionCall", + "src": "14201:72:12" + }, + "nativeSrc": "14201:72:12", + "nodeType": "YulExpressionStatement", + "src": "14201:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "14327:6:12", + "nodeType": "YulIdentifier", + "src": "14327:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14340:9:12", + "nodeType": "YulIdentifier", + "src": "14340:9:12" + }, + { + "kind": "number", + "nativeSrc": "14351:2:12", + "nodeType": "YulLiteral", + "src": "14351:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14336:3:12", + "nodeType": "YulIdentifier", + "src": "14336:3:12" + }, + "nativeSrc": "14336:18:12", + "nodeType": "YulFunctionCall", + "src": "14336:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14283:43:12", + "nodeType": "YulIdentifier", + "src": "14283:43:12" + }, + "nativeSrc": "14283:72:12", + "nodeType": "YulFunctionCall", + "src": "14283:72:12" + }, + "nativeSrc": "14283:72:12", + "nodeType": "YulExpressionStatement", + "src": "14283:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "14409:6:12", + "nodeType": "YulIdentifier", + "src": "14409:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14422:9:12", + "nodeType": "YulIdentifier", + "src": "14422:9:12" + }, + { + "kind": "number", + "nativeSrc": "14433:3:12", + "nodeType": "YulLiteral", + "src": "14433:3:12", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14418:3:12", + "nodeType": "YulIdentifier", + "src": "14418:3:12" + }, + "nativeSrc": "14418:19:12", + "nodeType": "YulFunctionCall", + "src": "14418:19:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14365:43:12", + "nodeType": "YulIdentifier", + "src": "14365:43:12" + }, + "nativeSrc": "14365:73:12", + "nodeType": "YulFunctionCall", + "src": "14365:73:12" + }, + "nativeSrc": "14365:73:12", + "nodeType": "YulExpressionStatement", + "src": "14365:73:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "13781:664:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13931:9:12", + "nodeType": "YulTypedName", + "src": "13931:9:12", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "13943:6:12", + "nodeType": "YulTypedName", + "src": "13943:6:12", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "13951:6:12", + "nodeType": "YulTypedName", + "src": "13951:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13959:6:12", + "nodeType": "YulTypedName", + "src": "13959:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13967:6:12", + "nodeType": "YulTypedName", + "src": "13967:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13975:6:12", + "nodeType": "YulTypedName", + "src": "13975:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13986:4:12", + "nodeType": "YulTypedName", + "src": "13986:4:12", + "type": "" + } + ], + "src": "13781:664:12" + }, + { + "body": { + "nativeSrc": "14605:288:12", + "nodeType": "YulBlock", + "src": "14605:288:12", + "statements": [ + { + "nativeSrc": "14615:26:12", + "nodeType": "YulAssignment", + "src": "14615:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14627:9:12", + "nodeType": "YulIdentifier", + "src": "14627:9:12" + }, + { + "kind": "number", + "nativeSrc": "14638:2:12", + "nodeType": "YulLiteral", + "src": "14638:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14623:3:12", + "nodeType": "YulIdentifier", + "src": "14623:3:12" + }, + "nativeSrc": "14623:18:12", + "nodeType": "YulFunctionCall", + "src": "14623:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14615:4:12", + "nodeType": "YulIdentifier", + "src": "14615:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14695:6:12", + "nodeType": "YulIdentifier", + "src": "14695:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14708:9:12", + "nodeType": "YulIdentifier", + "src": "14708:9:12" + }, + { + "kind": "number", + "nativeSrc": "14719:1:12", + "nodeType": "YulLiteral", + "src": "14719:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14704:3:12", + "nodeType": "YulIdentifier", + "src": "14704:3:12" + }, + "nativeSrc": "14704:17:12", + "nodeType": "YulFunctionCall", + "src": "14704:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14651:43:12", + "nodeType": "YulIdentifier", + "src": "14651:43:12" + }, + "nativeSrc": "14651:71:12", + "nodeType": "YulFunctionCall", + "src": "14651:71:12" + }, + "nativeSrc": "14651:71:12", + "nodeType": "YulExpressionStatement", + "src": "14651:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "14776:6:12", + "nodeType": "YulIdentifier", + "src": "14776:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14789:9:12", + "nodeType": "YulIdentifier", + "src": "14789:9:12" + }, + { + "kind": "number", + "nativeSrc": "14800:2:12", + "nodeType": "YulLiteral", + "src": "14800:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14785:3:12", + "nodeType": "YulIdentifier", + "src": "14785:3:12" + }, + "nativeSrc": "14785:18:12", + "nodeType": "YulFunctionCall", + "src": "14785:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14732:43:12", + "nodeType": "YulIdentifier", + "src": "14732:43:12" + }, + "nativeSrc": "14732:72:12", + "nodeType": "YulFunctionCall", + "src": "14732:72:12" + }, + "nativeSrc": "14732:72:12", + "nodeType": "YulExpressionStatement", + "src": "14732:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "14858:6:12", + "nodeType": "YulIdentifier", + "src": "14858:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14871:9:12", + "nodeType": "YulIdentifier", + "src": "14871:9:12" + }, + { + "kind": "number", + "nativeSrc": "14882:2:12", + "nodeType": "YulLiteral", + "src": "14882:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14867:3:12", + "nodeType": "YulIdentifier", + "src": "14867:3:12" + }, + "nativeSrc": "14867:18:12", + "nodeType": "YulFunctionCall", + "src": "14867:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14814:43:12", + "nodeType": "YulIdentifier", + "src": "14814:43:12" + }, + "nativeSrc": "14814:72:12", + "nodeType": "YulFunctionCall", + "src": "14814:72:12" + }, + "nativeSrc": "14814:72:12", + "nodeType": "YulExpressionStatement", + "src": "14814:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "14451:442:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14561:9:12", + "nodeType": "YulTypedName", + "src": "14561:9:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "14573:6:12", + "nodeType": "YulTypedName", + "src": "14573:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "14581:6:12", + "nodeType": "YulTypedName", + "src": "14581:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14589:6:12", + "nodeType": "YulTypedName", + "src": "14589:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14600:4:12", + "nodeType": "YulTypedName", + "src": "14600:4:12", + "type": "" + } + ], + "src": "14451:442:12" + }, + { + "body": { + "nativeSrc": "15053:288:12", + "nodeType": "YulBlock", + "src": "15053:288:12", + "statements": [ + { + "nativeSrc": "15063:26:12", + "nodeType": "YulAssignment", + "src": "15063:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15075:9:12", + "nodeType": "YulIdentifier", + "src": "15075:9:12" + }, + { + "kind": "number", + "nativeSrc": "15086:2:12", + "nodeType": "YulLiteral", + "src": "15086:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15071:3:12", + "nodeType": "YulIdentifier", + "src": "15071:3:12" + }, + "nativeSrc": "15071:18:12", + "nodeType": "YulFunctionCall", + "src": "15071:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15063:4:12", + "nodeType": "YulIdentifier", + "src": "15063:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15143:6:12", + "nodeType": "YulIdentifier", + "src": "15143:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15156:9:12", + "nodeType": "YulIdentifier", + "src": "15156:9:12" + }, + { + "kind": "number", + "nativeSrc": "15167:1:12", + "nodeType": "YulLiteral", + "src": "15167:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15152:3:12", + "nodeType": "YulIdentifier", + "src": "15152:3:12" + }, + "nativeSrc": "15152:17:12", + "nodeType": "YulFunctionCall", + "src": "15152:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "15099:43:12", + "nodeType": "YulIdentifier", + "src": "15099:43:12" + }, + "nativeSrc": "15099:71:12", + "nodeType": "YulFunctionCall", + "src": "15099:71:12" + }, + "nativeSrc": "15099:71:12", + "nodeType": "YulExpressionStatement", + "src": "15099:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "15224:6:12", + "nodeType": "YulIdentifier", + "src": "15224:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15237:9:12", + "nodeType": "YulIdentifier", + "src": "15237:9:12" + }, + { + "kind": "number", + "nativeSrc": "15248:2:12", + "nodeType": "YulLiteral", + "src": "15248:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15233:3:12", + "nodeType": "YulIdentifier", + "src": "15233:3:12" + }, + "nativeSrc": "15233:18:12", + "nodeType": "YulFunctionCall", + "src": "15233:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "15180:43:12", + "nodeType": "YulIdentifier", + "src": "15180:43:12" + }, + "nativeSrc": "15180:72:12", + "nodeType": "YulFunctionCall", + "src": "15180:72:12" + }, + "nativeSrc": "15180:72:12", + "nodeType": "YulExpressionStatement", + "src": "15180:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "15306:6:12", + "nodeType": "YulIdentifier", + "src": "15306:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15319:9:12", + "nodeType": "YulIdentifier", + "src": "15319:9:12" + }, + { + "kind": "number", + "nativeSrc": "15330:2:12", + "nodeType": "YulLiteral", + "src": "15330:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15315:3:12", + "nodeType": "YulIdentifier", + "src": "15315:3:12" + }, + "nativeSrc": "15315:18:12", + "nodeType": "YulFunctionCall", + "src": "15315:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "15262:43:12", + "nodeType": "YulIdentifier", + "src": "15262:43:12" + }, + "nativeSrc": "15262:72:12", + "nodeType": "YulFunctionCall", + "src": "15262:72:12" + }, + "nativeSrc": "15262:72:12", + "nodeType": "YulExpressionStatement", + "src": "15262:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "14899:442:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15009:9:12", + "nodeType": "YulTypedName", + "src": "15009:9:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "15021:6:12", + "nodeType": "YulTypedName", + "src": "15021:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15029:6:12", + "nodeType": "YulTypedName", + "src": "15029:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15037:6:12", + "nodeType": "YulTypedName", + "src": "15037:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15048:4:12", + "nodeType": "YulTypedName", + "src": "15048:4:12", + "type": "" + } + ], + "src": "14899:442:12" + }, + { + "body": { + "nativeSrc": "15501:288:12", + "nodeType": "YulBlock", + "src": "15501:288:12", + "statements": [ + { + "nativeSrc": "15511:26:12", + "nodeType": "YulAssignment", + "src": "15511:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15523:9:12", + "nodeType": "YulIdentifier", + "src": "15523:9:12" + }, + { + "kind": "number", + "nativeSrc": "15534:2:12", + "nodeType": "YulLiteral", + "src": "15534:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15519:3:12", + "nodeType": "YulIdentifier", + "src": "15519:3:12" + }, + "nativeSrc": "15519:18:12", + "nodeType": "YulFunctionCall", + "src": "15519:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15511:4:12", + "nodeType": "YulIdentifier", + "src": "15511:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15591:6:12", + "nodeType": "YulIdentifier", + "src": "15591:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15604:9:12", + "nodeType": "YulIdentifier", + "src": "15604:9:12" + }, + { + "kind": "number", + "nativeSrc": "15615:1:12", + "nodeType": "YulLiteral", + "src": "15615:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15600:3:12", + "nodeType": "YulIdentifier", + "src": "15600:3:12" + }, + "nativeSrc": "15600:17:12", + "nodeType": "YulFunctionCall", + "src": "15600:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "15547:43:12", + "nodeType": "YulIdentifier", + "src": "15547:43:12" + }, + "nativeSrc": "15547:71:12", + "nodeType": "YulFunctionCall", + "src": "15547:71:12" + }, + "nativeSrc": "15547:71:12", + "nodeType": "YulExpressionStatement", + "src": "15547:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "15672:6:12", + "nodeType": "YulIdentifier", + "src": "15672:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15685:9:12", + "nodeType": "YulIdentifier", + "src": "15685:9:12" + }, + { + "kind": "number", + "nativeSrc": "15696:2:12", + "nodeType": "YulLiteral", + "src": "15696:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15681:3:12", + "nodeType": "YulIdentifier", + "src": "15681:3:12" + }, + "nativeSrc": "15681:18:12", + "nodeType": "YulFunctionCall", + "src": "15681:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "15628:43:12", + "nodeType": "YulIdentifier", + "src": "15628:43:12" + }, + "nativeSrc": "15628:72:12", + "nodeType": "YulFunctionCall", + "src": "15628:72:12" + }, + "nativeSrc": "15628:72:12", + "nodeType": "YulExpressionStatement", + "src": "15628:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "15754:6:12", + "nodeType": "YulIdentifier", + "src": "15754:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15767:9:12", + "nodeType": "YulIdentifier", + "src": "15767:9:12" + }, + { + "kind": "number", + "nativeSrc": "15778:2:12", + "nodeType": "YulLiteral", + "src": "15778:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15763:3:12", + "nodeType": "YulIdentifier", + "src": "15763:3:12" + }, + "nativeSrc": "15763:18:12", + "nodeType": "YulFunctionCall", + "src": "15763:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "15710:43:12", + "nodeType": "YulIdentifier", + "src": "15710:43:12" + }, + "nativeSrc": "15710:72:12", + "nodeType": "YulFunctionCall", + "src": "15710:72:12" + }, + "nativeSrc": "15710:72:12", + "nodeType": "YulExpressionStatement", + "src": "15710:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "15347:442:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15457:9:12", + "nodeType": "YulTypedName", + "src": "15457:9:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "15469:6:12", + "nodeType": "YulTypedName", + "src": "15469:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15477:6:12", + "nodeType": "YulTypedName", + "src": "15477:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15485:6:12", + "nodeType": "YulTypedName", + "src": "15485:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15496:4:12", + "nodeType": "YulTypedName", + "src": "15496:4:12", + "type": "" + } + ], + "src": "15347:442:12" + }, + { + "body": { + "nativeSrc": "15977:371:12", + "nodeType": "YulBlock", + "src": "15977:371:12", + "statements": [ + { + "nativeSrc": "15987:27:12", + "nodeType": "YulAssignment", + "src": "15987:27:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15999:9:12", + "nodeType": "YulIdentifier", + "src": "15999:9:12" + }, + { + "kind": "number", + "nativeSrc": "16010:3:12", + "nodeType": "YulLiteral", + "src": "16010:3:12", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15995:3:12", + "nodeType": "YulIdentifier", + "src": "15995:3:12" + }, + "nativeSrc": "15995:19:12", + "nodeType": "YulFunctionCall", + "src": "15995:19:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15987:4:12", + "nodeType": "YulIdentifier", + "src": "15987:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "16068:6:12", + "nodeType": "YulIdentifier", + "src": "16068:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16081:9:12", + "nodeType": "YulIdentifier", + "src": "16081:9:12" + }, + { + "kind": "number", + "nativeSrc": "16092:1:12", + "nodeType": "YulLiteral", + "src": "16092:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16077:3:12", + "nodeType": "YulIdentifier", + "src": "16077:3:12" + }, + "nativeSrc": "16077:17:12", + "nodeType": "YulFunctionCall", + "src": "16077:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "16024:43:12", + "nodeType": "YulIdentifier", + "src": "16024:43:12" + }, + "nativeSrc": "16024:71:12", + "nodeType": "YulFunctionCall", + "src": "16024:71:12" + }, + "nativeSrc": "16024:71:12", + "nodeType": "YulExpressionStatement", + "src": "16024:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "16149:6:12", + "nodeType": "YulIdentifier", + "src": "16149:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16162:9:12", + "nodeType": "YulIdentifier", + "src": "16162:9:12" + }, + { + "kind": "number", + "nativeSrc": "16173:2:12", + "nodeType": "YulLiteral", + "src": "16173:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16158:3:12", + "nodeType": "YulIdentifier", + "src": "16158:3:12" + }, + "nativeSrc": "16158:18:12", + "nodeType": "YulFunctionCall", + "src": "16158:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "16105:43:12", + "nodeType": "YulIdentifier", + "src": "16105:43:12" + }, + "nativeSrc": "16105:72:12", + "nodeType": "YulFunctionCall", + "src": "16105:72:12" + }, + "nativeSrc": "16105:72:12", + "nodeType": "YulExpressionStatement", + "src": "16105:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "16231:6:12", + "nodeType": "YulIdentifier", + "src": "16231:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16244:9:12", + "nodeType": "YulIdentifier", + "src": "16244:9:12" + }, + { + "kind": "number", + "nativeSrc": "16255:2:12", + "nodeType": "YulLiteral", + "src": "16255:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16240:3:12", + "nodeType": "YulIdentifier", + "src": "16240:3:12" + }, + "nativeSrc": "16240:18:12", + "nodeType": "YulFunctionCall", + "src": "16240:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "16187:43:12", + "nodeType": "YulIdentifier", + "src": "16187:43:12" + }, + "nativeSrc": "16187:72:12", + "nodeType": "YulFunctionCall", + "src": "16187:72:12" + }, + "nativeSrc": "16187:72:12", + "nodeType": "YulExpressionStatement", + "src": "16187:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "16313:6:12", + "nodeType": "YulIdentifier", + "src": "16313:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16326:9:12", + "nodeType": "YulIdentifier", + "src": "16326:9:12" + }, + { + "kind": "number", + "nativeSrc": "16337:2:12", + "nodeType": "YulLiteral", + "src": "16337:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16322:3:12", + "nodeType": "YulIdentifier", + "src": "16322:3:12" + }, + "nativeSrc": "16322:18:12", + "nodeType": "YulFunctionCall", + "src": "16322:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "16269:43:12", + "nodeType": "YulIdentifier", + "src": "16269:43:12" + }, + "nativeSrc": "16269:72:12", + "nodeType": "YulFunctionCall", + "src": "16269:72:12" + }, + "nativeSrc": "16269:72:12", + "nodeType": "YulExpressionStatement", + "src": "16269:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "15795:553:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15925:9:12", + "nodeType": "YulTypedName", + "src": "15925:9:12", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "15937:6:12", + "nodeType": "YulTypedName", + "src": "15937:6:12", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "15945:6:12", + "nodeType": "YulTypedName", + "src": "15945:6:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15953:6:12", + "nodeType": "YulTypedName", + "src": "15953:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15961:6:12", + "nodeType": "YulTypedName", + "src": "15961:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15972:4:12", + "nodeType": "YulTypedName", + "src": "15972:4:12", + "type": "" + } + ], + "src": "15795:553:12" + }, + { + "body": { + "nativeSrc": "16399:149:12", + "nodeType": "YulBlock", + "src": "16399:149:12", + "statements": [ + { + "nativeSrc": "16409:25:12", + "nodeType": "YulAssignment", + "src": "16409:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "16432:1:12", + "nodeType": "YulIdentifier", + "src": "16432:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16414:17:12", + "nodeType": "YulIdentifier", + "src": "16414:17:12" + }, + "nativeSrc": "16414:20:12", + "nodeType": "YulFunctionCall", + "src": "16414:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "16409:1:12", + "nodeType": "YulIdentifier", + "src": "16409:1:12" + } + ] + }, + { + "nativeSrc": "16443:25:12", + "nodeType": "YulAssignment", + "src": "16443:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "16466:1:12", + "nodeType": "YulIdentifier", + "src": "16466:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16448:17:12", + "nodeType": "YulIdentifier", + "src": "16448:17:12" + }, + "nativeSrc": "16448:20:12", + "nodeType": "YulFunctionCall", + "src": "16448:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "16443:1:12", + "nodeType": "YulIdentifier", + "src": "16443:1:12" + } + ] + }, + { + "nativeSrc": "16477:17:12", + "nodeType": "YulAssignment", + "src": "16477:17:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "16489:1:12", + "nodeType": "YulIdentifier", + "src": "16489:1:12" + }, + { + "name": "y", + "nativeSrc": "16492:1:12", + "nodeType": "YulIdentifier", + "src": "16492:1:12" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16485:3:12", + "nodeType": "YulIdentifier", + "src": "16485:3:12" + }, + "nativeSrc": "16485:9:12", + "nodeType": "YulFunctionCall", + "src": "16485:9:12" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "16477:4:12", + "nodeType": "YulIdentifier", + "src": "16477:4:12" + } + ] + }, + { + "body": { + "nativeSrc": "16519:22:12", + "nodeType": "YulBlock", + "src": "16519:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "16521:16:12", + "nodeType": "YulIdentifier", + "src": "16521:16:12" + }, + "nativeSrc": "16521:18:12", + "nodeType": "YulFunctionCall", + "src": "16521:18:12" + }, + "nativeSrc": "16521:18:12", + "nodeType": "YulExpressionStatement", + "src": "16521:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "16510:4:12", + "nodeType": "YulIdentifier", + "src": "16510:4:12" + }, + { + "name": "x", + "nativeSrc": "16516:1:12", + "nodeType": "YulIdentifier", + "src": "16516:1:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16507:2:12", + "nodeType": "YulIdentifier", + "src": "16507:2:12" + }, + "nativeSrc": "16507:11:12", + "nodeType": "YulFunctionCall", + "src": "16507:11:12" + }, + "nativeSrc": "16504:37:12", + "nodeType": "YulIf", + "src": "16504:37:12" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "16354:194:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "16385:1:12", + "nodeType": "YulTypedName", + "src": "16385:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "16388:1:12", + "nodeType": "YulTypedName", + "src": "16388:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "16394:4:12", + "nodeType": "YulTypedName", + "src": "16394:4:12", + "type": "" + } + ], + "src": "16354:194:12" + }, + { + "body": { + "nativeSrc": "16680:206:12", + "nodeType": "YulBlock", + "src": "16680:206:12", + "statements": [ + { + "nativeSrc": "16690:26:12", + "nodeType": "YulAssignment", + "src": "16690:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16702:9:12", + "nodeType": "YulIdentifier", + "src": "16702:9:12" + }, + { + "kind": "number", + "nativeSrc": "16713:2:12", + "nodeType": "YulLiteral", + "src": "16713:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16698:3:12", + "nodeType": "YulIdentifier", + "src": "16698:3:12" + }, + "nativeSrc": "16698:18:12", + "nodeType": "YulFunctionCall", + "src": "16698:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16690:4:12", + "nodeType": "YulIdentifier", + "src": "16690:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "16770:6:12", + "nodeType": "YulIdentifier", + "src": "16770:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16783:9:12", + "nodeType": "YulIdentifier", + "src": "16783:9:12" + }, + { + "kind": "number", + "nativeSrc": "16794:1:12", + "nodeType": "YulLiteral", + "src": "16794:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16779:3:12", + "nodeType": "YulIdentifier", + "src": "16779:3:12" + }, + "nativeSrc": "16779:17:12", + "nodeType": "YulFunctionCall", + "src": "16779:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "16726:43:12", + "nodeType": "YulIdentifier", + "src": "16726:43:12" + }, + "nativeSrc": "16726:71:12", + "nodeType": "YulFunctionCall", + "src": "16726:71:12" + }, + "nativeSrc": "16726:71:12", + "nodeType": "YulExpressionStatement", + "src": "16726:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "16851:6:12", + "nodeType": "YulIdentifier", + "src": "16851:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16864:9:12", + "nodeType": "YulIdentifier", + "src": "16864:9:12" + }, + { + "kind": "number", + "nativeSrc": "16875:2:12", + "nodeType": "YulLiteral", + "src": "16875:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16860:3:12", + "nodeType": "YulIdentifier", + "src": "16860:3:12" + }, + "nativeSrc": "16860:18:12", + "nodeType": "YulFunctionCall", + "src": "16860:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "16807:43:12", + "nodeType": "YulIdentifier", + "src": "16807:43:12" + }, + "nativeSrc": "16807:72:12", + "nodeType": "YulFunctionCall", + "src": "16807:72:12" + }, + "nativeSrc": "16807:72:12", + "nodeType": "YulExpressionStatement", + "src": "16807:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "16554:332:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16644:9:12", + "nodeType": "YulTypedName", + "src": "16644:9:12", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16656:6:12", + "nodeType": "YulTypedName", + "src": "16656:6:12", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16664:6:12", + "nodeType": "YulTypedName", + "src": "16664:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16675:4:12", + "nodeType": "YulTypedName", + "src": "16675:4:12", + "type": "" + } + ], + "src": "16554:332:12" + }, + { + "body": { + "nativeSrc": "16936:147:12", + "nodeType": "YulBlock", + "src": "16936:147:12", + "statements": [ + { + "nativeSrc": "16946:25:12", + "nodeType": "YulAssignment", + "src": "16946:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "16969:1:12", + "nodeType": "YulIdentifier", + "src": "16969:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16951:17:12", + "nodeType": "YulIdentifier", + "src": "16951:17:12" + }, + "nativeSrc": "16951:20:12", + "nodeType": "YulFunctionCall", + "src": "16951:20:12" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "16946:1:12", + "nodeType": "YulIdentifier", + "src": "16946:1:12" + } + ] + }, + { + "nativeSrc": "16980:25:12", + "nodeType": "YulAssignment", + "src": "16980:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "17003:1:12", + "nodeType": "YulIdentifier", + "src": "17003:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16985:17:12", + "nodeType": "YulIdentifier", + "src": "16985:17:12" + }, + "nativeSrc": "16985:20:12", + "nodeType": "YulFunctionCall", + "src": "16985:20:12" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "16980:1:12", + "nodeType": "YulIdentifier", + "src": "16980:1:12" + } + ] + }, + { + "nativeSrc": "17014:16:12", + "nodeType": "YulAssignment", + "src": "17014:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "17025:1:12", + "nodeType": "YulIdentifier", + "src": "17025:1:12" + }, + { + "name": "y", + "nativeSrc": "17028:1:12", + "nodeType": "YulIdentifier", + "src": "17028:1:12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17021:3:12", + "nodeType": "YulIdentifier", + "src": "17021:3:12" + }, + "nativeSrc": "17021:9:12", + "nodeType": "YulFunctionCall", + "src": "17021:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "17014:3:12", + "nodeType": "YulIdentifier", + "src": "17014:3:12" + } + ] + }, + { + "body": { + "nativeSrc": "17054:22:12", + "nodeType": "YulBlock", + "src": "17054:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "17056:16:12", + "nodeType": "YulIdentifier", + "src": "17056:16:12" + }, + "nativeSrc": "17056:18:12", + "nodeType": "YulFunctionCall", + "src": "17056:18:12" + }, + "nativeSrc": "17056:18:12", + "nodeType": "YulExpressionStatement", + "src": "17056:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "17046:1:12", + "nodeType": "YulIdentifier", + "src": "17046:1:12" + }, + { + "name": "sum", + "nativeSrc": "17049:3:12", + "nodeType": "YulIdentifier", + "src": "17049:3:12" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17043:2:12", + "nodeType": "YulIdentifier", + "src": "17043:2:12" + }, + "nativeSrc": "17043:10:12", + "nodeType": "YulFunctionCall", + "src": "17043:10:12" + }, + "nativeSrc": "17040:36:12", + "nodeType": "YulIf", + "src": "17040:36:12" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "16892:191:12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "16923:1:12", + "nodeType": "YulTypedName", + "src": "16923:1:12", + "type": "" + }, + { + "name": "y", + "nativeSrc": "16926:1:12", + "nodeType": "YulTypedName", + "src": "16926:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "16932:3:12", + "nodeType": "YulTypedName", + "src": "16932:3:12", + "type": "" + } + ], + "src": "16892:191:12" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IUniswapV2Router02_$1733_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IUniswapV2Router02_$1733_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IUniswapV2Router02_$1733_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IUniswapV2Router02_$1733__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IUniswapV2Router02_$1733_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_TokenState_$1750(value) {\n if iszero(lt(value, 5)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_TokenState_$1750(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_TokenState_$1750(value)\n }\n\n function convert_t_enum$_TokenState_$1750_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_TokenState_$1750(value)\n }\n\n function abi_encode_t_enum$_TokenState_$1750_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_TokenState_$1750_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_TokenState_$1750__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_TokenState_$1750_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c(memPtr) {\n\n mstore(add(memPtr, 0), \"Function cannot be called in thi\")\n\n mstore(add(memPtr, 32), \"s state\")\n\n }\n\n function abi_encode_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_aee1c496d1deebda19f39a32afc1f826fb881485278fd10447cddf74c90d476c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_0_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "886": [ + { + "length": 32, + "start": 1942 + } + ] + }, + "linkReferences": {}, + "object": "6080604052600436106101855760003560e01c806363cae94f116100d157806395d89b411161008a578063e90dd9e211610064578063e90dd9e21461057a578063eaff1cbc146105a5578063f2fde38b146105bc578063fccc2813146105e55761018c565b806395d89b41146104d5578063a9059cbb14610500578063dd62ed3e1461053d5761018c565b806363cae94f146103d5578063691f224f1461040057806370a082311461042b578063715018a61461046857806385df1d1c1461047f5780638da5cb5b146104aa5761018c565b806324024efd1161013e578063355274ea11610118578063355274ea146103385780635265ee551461036357806352cd23881461038e5780635ecf7a67146103b95761018c565b806324024efd146102b75780632b653d44146102e2578063313ce5671461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd14610224578063188214001461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610610565b6040516101b39190611c6f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611d2a565b6106a2565b6040516101f09190611d85565b60405180910390f35b34801561020557600080fd5b5061020e6106c5565b60405161021b9190611dff565b60405180910390f35b34801561023057600080fd5b506102396106eb565b6040516102469190611e29565b60405180910390f35b34801561025b57600080fd5b506102646106f5565b6040516102719190611c6f565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190611e44565b61072e565b6040516102ae9190611d85565b60405180910390f35b3480156102c357600080fd5b506102cc61075d565b6040516102d99190611e29565b60405180910390f35b3480156102ee57600080fd5b506102f7610763565b6040516103049190611ea6565b60405180910390f35b34801561031957600080fd5b50610322610789565b60405161032f9190611edd565b60405180910390f35b34801561034457600080fd5b5061034d610792565b60405161035a9190611e29565b60405180910390f35b34801561036f57600080fd5b506103786107ba565b6040516103859190611c6f565b60405180910390f35b34801561039a57600080fd5b506103a36107f3565b6040516103b09190611ea6565b60405180910390f35b6103d360048036038101906103ce9190611ef8565b610819565b005b3480156103e157600080fd5b506103ea610cde565b6040516103f79190611ea6565b60405180910390f35b34801561040c57600080fd5b50610415610d04565b6040516104229190611e29565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190611ef8565b610d0a565b60405161045f9190611e29565b60405180910390f35b34801561047457600080fd5b5061047d610d52565b005b34801561048b57600080fd5b50610494610e49565b6040516104a19190611ea6565b60405180910390f35b3480156104b657600080fd5b506104bf610e6f565b6040516104cc9190611ea6565b60405180910390f35b3480156104e157600080fd5b506104ea610e99565b6040516104f79190611c6f565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190611d2a565b610f2b565b6040516105349190611d85565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190611f25565b610f4e565b6040516105719190611e29565b60405180910390f35b34801561058657600080fd5b5061058f610fd5565b60405161059c9190611fdc565b60405180910390f35b3480156105b157600080fd5b506105ba610fe8565b005b3480156105c857600080fd5b506105e360048036038101906105de9190611ef8565b6110e4565b005b3480156105f157600080fd5b506105fa61116a565b6040516106079190611ea6565b60405180910390f35b60606003805461061f90612026565b80601f016020809104026020016040519081016040528092919081815260200182805461064b90612026565b80156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b6000806106ad61116f565b90506106ba818585611177565b600191505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518060400160405280600b81526020017f4261736564205768616c6500000000000000000000000000000000000000000081525081565b60008061073961116f565b9050610746858285611189565b61075185858561121d565b60019150509392505050565b600a5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6040518060400160405280600581526020017f5748414c4500000000000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610821611311565b600180600481111561083657610835611f65565b5b600560149054906101000a900460ff16600481111561085857610857611f65565b5b14610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906120c9565b60405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a91906120fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1791906120fe565b6040518363ffffffff1660e01b8152600401610a3492919061212b565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906120fe565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060646055610ac5610792565b610acf9190612183565b610ad991906121f4565b9050610ae53082611398565b610af0308483611177565b6000429050600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008060008a6040518863ffffffff1660e01b8152600401610b6096959493929190612260565b60606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba391906122d6565b50915091506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690507ff07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684848473ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401610c4f9190611ea6565b602060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190612329565b88604051610ca2959493929190612356565b60405180910390a16002600560146101000a81548160ff02191690836004811115610cd057610ccf611f65565b5b021790555050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611311565b6003806004811115610d6f57610d6e611f65565b5b600560149054906101000a900460ff166004811115610d9157610d90611f65565b5b14610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc8906120c9565b60405180910390fd5b7fbc3fa950185893c8ddfff1dafec540ffc8d7e576295fea983a515e9a8e03acd733610dfb610e6f565b42604051610e0b939291906123a9565b60405180910390a16004600560146101000a81548160ff02191690836004811115610e3957610e38611f65565b5b0217905550610e4661141a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ea890612026565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612026565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b600080610f3661116f565b9050610f4381858561121d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560149054906101000a900460ff1681565b610ff0611311565b600280600481111561100557611004611f65565b5b600560149054906101000a900460ff16600481111561102757611026611f65565b5b14611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906120c9565b60405180910390fd5b60006009819055506000600a819055507fc4c7c69f1eeef4dcf5449fcee968e149b2646d141f0d9bb3d1de12de99d77f7e600954600a54426040516110ae939291906123e0565b60405180910390a16003600560146101000a81548160ff021916908360048111156110dc576110db611f65565b5b021790555050565b6110ec611311565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111559190611ea6565b60405180910390fd5b6111678161142e565b50565b600081565b600033905090565b61118483838360016114f4565b505050565b60006111958484610f4e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112175781811015611207578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111fe93929190612417565b60405180910390fd5b611216848484840360006114f4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112869190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113015760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016112f89190611ea6565b60405180910390fd5b61130c8383836116cb565b505050565b61131961116f565b73ffffffffffffffffffffffffffffffffffffffff16611337610e6f565b73ffffffffffffffffffffffffffffffffffffffff16146113965761135a61116f565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161138d9190611ea6565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114019190611ea6565b60405180910390fd5b611416600083836116cb565b5050565b611422611311565b61142c600061142e565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115665760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161155d9190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115cf9190611ea6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116c5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116bc9190611e29565b60405180910390a35b50505050565b600260048111156116df576116de611f65565b5b600560149054906101000a900460ff16600481111561170157611700611f65565b5b14158061174157506003600481111561171d5761171c611f65565b5b600560149054906101000a900460ff16600481111561173f5761173e611f65565b5b145b1561175657611751838383611914565b61190f565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576103e8600a54836117be9190612183565b6117c891906121f4565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc848383426040516117ff949392919061244e565b60405180910390a16118bd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118bc576103e8600954836118729190612183565b61187c91906121f4565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab881272838383426040516118b3949392919061244e565b60405180910390a15b5b6000811115611902576118f384600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611914565b80826118ff9190612493565b91505b61190d848484611914565b505b505050565b61191f8383836119ba565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b557600061195d610792565b905060006119696106eb565b9050818111156119b25780826040517f9e79f8540000000000000000000000000000000000000000000000000000000081526004016119a99291906124c7565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0c578060026000828254611a0091906124f0565b92505081905550611adf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611a8f93929190612417565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b285780600260008282540392505081905550611b75565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd29190611e29565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c19578082015181840152602081019050611bfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4182611bdf565b611c4b8185611bea565b9350611c5b818560208601611bfb565b611c6481611c25565b840191505092915050565b60006020820190508181036000830152611c898184611c36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cc182611c96565b9050919050565b611cd181611cb6565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b6000819050919050565b611d0781611cf4565b8114611d1257600080fd5b50565b600081359050611d2481611cfe565b92915050565b60008060408385031215611d4157611d40611c91565b5b6000611d4f85828601611cdf565b9250506020611d6085828601611d15565b9150509250929050565b60008115159050919050565b611d7f81611d6a565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b6000819050919050565b6000611dc5611dc0611dbb84611c96565b611da0565b611c96565b9050919050565b6000611dd782611daa565b9050919050565b6000611de982611dcc565b9050919050565b611df981611dde565b82525050565b6000602082019050611e146000830184611df0565b92915050565b611e2381611cf4565b82525050565b6000602082019050611e3e6000830184611e1a565b92915050565b600080600060608486031215611e5d57611e5c611c91565b5b6000611e6b86828701611cdf565b9350506020611e7c86828701611cdf565b9250506040611e8d86828701611d15565b9150509250925092565b611ea081611cb6565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611c91565b5b6000611f1c84828501611cdf565b91505092915050565b60008060408385031215611f3c57611f3b611c91565b5b6000611f4a85828601611cdf565b9250506020611f5b85828601611cdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60058110611fa557611fa4611f65565b5b50565b6000819050611fb682611f94565b919050565b6000611fc682611fa8565b9050919050565b611fd681611fbb565b82525050565b6000602082019050611ff16000830184611fcd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203e57607f821691505b60208210810361205157612050611ff7565b5b50919050565b7f46756e6374696f6e2063616e6e6f742062652063616c6c656420696e2074686960008201527f7320737461746500000000000000000000000000000000000000000000000000602082015250565b60006120b3602783611bea565b91506120be82612057565b604082019050919050565b600060208201905081810360008301526120e2816120a6565b9050919050565b6000815190506120f881611cc8565b92915050565b60006020828403121561211457612113611c91565b5b6000612122848285016120e9565b91505092915050565b60006040820190506121406000830185611e97565b61214d6020830184611e97565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061218e82611cf4565b915061219983611cf4565b92508282026121a781611cf4565b915082820484148315176121be576121bd612154565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121ff82611cf4565b915061220a83611cf4565b92508261221a576122196121c5565b5b828204905092915050565b6000819050919050565b600061224a61224561224084612225565b611da0565b611cf4565b9050919050565b61225a8161222f565b82525050565b600060c0820190506122756000830189611e97565b6122826020830188611e1a565b61228f6040830187612251565b61229c6060830186612251565b6122a96080830185611e97565b6122b660a0830184611e1a565b979650505050505050565b6000815190506122d081611cfe565b92915050565b6000806000606084860312156122ef576122ee611c91565b5b60006122fd868287016122c1565b935050602061230e868287016122c1565b925050604061231f868287016122c1565b9150509250925092565b60006020828403121561233f5761233e611c91565b5b600061234d848285016122c1565b91505092915050565b600060a08201905061236b6000830188611e97565b6123786020830187611e1a565b6123856040830186611e1a565b6123926060830185611e1a565b61239f6080830184611e1a565b9695505050505050565b60006060820190506123be6000830186611e97565b6123cb6020830185611e97565b6123d86040830184611e1a565b949350505050565b60006060820190506123f56000830186611e1a565b6124026020830185611e1a565b61240f6040830184611e1a565b949350505050565b600060608201905061242c6000830186611e97565b6124396020830185611e1a565b6124466040830184611e1a565b949350505050565b60006080820190506124636000830187611e97565b6124706020830186611e1a565b61247d6040830185611e1a565b61248a6060830184611e1a565b95945050505050565b600061249e82611cf4565b91506124a983611cf4565b92508282039050818111156124c1576124c0612154565b5b92915050565b60006040820190506124dc6000830185611e1a565b6124e96020830184611e1a565b9392505050565b60006124fb82611cf4565b915061250683611cf4565b925082820190508082111561251e5761251d612154565b5b9291505056fea2646970667358221220170fb5eefce9d28d8d1c509b4820f1a273901eb61e211d789627affd137a2f5264736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x185 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x63CAE94F GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xE90DD9E2 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE90DD9E2 EQ PUSH2 0x57A JUMPI DUP1 PUSH4 0xEAFF1CBC EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xFCCC2813 EQ PUSH2 0x5E5 JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x53D JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x63CAE94F EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x691F224F EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x42B JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x85DF1D1C EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4AA JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x24024EFD GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x355274EA GT PUSH2 0x118 JUMPI DUP1 PUSH4 0x355274EA EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x5265EE55 EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x52CD2388 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x5ECF7A67 EQ PUSH2 0x3B9 JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x24024EFD EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x2B653D44 EQ PUSH2 0x2E2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x30D JUMPI PUSH2 0x18C JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x1694505E EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x18821400 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x27A JUMPI PUSH2 0x18C JUMP JUMPDEST CALLDATASIZE PUSH2 0x18C JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0x610 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x1D2A JUMP JUMPDEST PUSH2 0x6A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x1D85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x1DFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x239 PUSH2 0x6EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x246 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x264 PUSH2 0x6F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x286 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29C SWAP2 SWAP1 PUSH2 0x1E44 JUMP JUMPDEST PUSH2 0x72E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AE SWAP2 SWAP1 PUSH2 0x1D85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x75D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D9 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F7 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x304 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 PUSH2 0x789 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x1EDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH2 0x792 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x378 PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x385 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A3 PUSH2 0x7F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CE SWAP2 SWAP1 PUSH2 0x1EF8 JUMP JUMPDEST PUSH2 0x819 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3EA PUSH2 0xCDE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F7 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x415 PUSH2 0xD04 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x1EF8 JUMP JUMPDEST PUSH2 0xD0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH2 0xD52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x494 PUSH2 0xE49 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A1 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BF PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CC SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EA PUSH2 0xE99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F7 SWAP2 SWAP1 PUSH2 0x1C6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x1D2A JUMP JUMPDEST PUSH2 0xF2B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x1D85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x55F SWAP2 SWAP1 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0xF4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x571 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58F PUSH2 0xFD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59C SWAP2 SWAP1 PUSH2 0x1FDC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5BA PUSH2 0xFE8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5DE SWAP2 SWAP1 PUSH2 0x1EF8 JUMP JUMPDEST PUSH2 0x10E4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FA PUSH2 0x116A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x607 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x61F SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x64B SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x698 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x66D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x698 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x67B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6AD PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0x6BA DUP2 DUP6 DUP6 PUSH2 0x1177 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4261736564205768616C65000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x739 PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0x746 DUP6 DUP3 DUP6 PUSH2 0x1189 JUMP JUMPDEST PUSH2 0x751 DUP6 DUP6 DUP6 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5748414C45000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x821 PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x836 JUMPI PUSH2 0x835 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x858 JUMPI PUSH2 0x857 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ PUSH2 0x898 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xC PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x946 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x96A SWAP2 SWAP1 PUSH2 0x20FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC9C65396 ADDRESS PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA17 SWAP2 SWAP1 PUSH2 0x20FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA34 SWAP3 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA77 SWAP2 SWAP1 PUSH2 0x20FE JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x55 PUSH2 0xAC5 PUSH2 0x792 JUMP JUMPDEST PUSH2 0xACF SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH2 0xAD9 SWAP2 SWAP1 PUSH2 0x21F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xAE5 ADDRESS DUP3 PUSH2 0x1398 JUMP JUMPDEST PUSH2 0xAF0 ADDRESS DUP5 DUP4 PUSH2 0x1177 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF305D719 CALLVALUE ADDRESS DUP8 PUSH1 0x0 DUP1 PUSH1 0x0 DUP11 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB60 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2260 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBA3 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH32 0xF07F8699EB5A7D3C6903ABA7FFC0B932E8E123129924F6AA4E3E95B04BA25179 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 DUP5 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 PUSH1 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4F SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x2329 JUMP JUMPDEST DUP9 PUSH1 0x40 MLOAD PUSH2 0xCA2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2356 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xCD0 JUMPI PUSH2 0xCCF PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD5A PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x3 DUP1 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6F JUMPI PUSH2 0xD6E PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD91 JUMPI PUSH2 0xD90 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ PUSH2 0xDD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC8 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBC3FA950185893C8DDFFF1DAFEC540FFC8D7E576295FEA983A515E9A8E03ACD7 CALLER PUSH2 0xDFB PUSH2 0xE6F JUMP JUMPDEST TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0xE0B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE38 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0xE46 PUSH2 0x141A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xEA8 SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xED4 SWAP1 PUSH2 0x2026 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF21 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEF6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF21 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF04 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF36 PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0xF43 DUP2 DUP6 DUP6 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xFF0 PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x2 DUP1 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1005 JUMPI PUSH2 0x1004 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1027 JUMPI PUSH2 0x1026 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ PUSH2 0x1067 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x105E SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xA DUP2 SWAP1 SSTORE POP PUSH32 0xC4C7C69F1EEEF4DCF5449FCEE968E149B2646D141F0D9BB3D1DE12DE99D77F7E PUSH1 0x9 SLOAD PUSH1 0xA SLOAD TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x10AE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x3 PUSH1 0x5 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x10DC JUMPI PUSH2 0x10DB PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x10EC PUSH2 0x1311 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x115E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1155 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x142E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1184 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14F4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1195 DUP5 DUP5 PUSH2 0xF4E JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1217 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1207 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1216 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14F4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x128F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1286 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1301 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12F8 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x130C DUP4 DUP4 DUP4 PUSH2 0x16CB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1319 PUSH2 0x116F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1337 PUSH2 0xE6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1396 JUMPI PUSH2 0x135A PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x138D SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x140A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1401 SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1416 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16CB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1422 PUSH2 0x1311 JUMP JUMPDEST PUSH2 0x142C PUSH1 0x0 PUSH2 0x142E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1566 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155D SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CF SWAP2 SWAP1 PUSH2 0x1EA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16C5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x16BC SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x16DF JUMPI PUSH2 0x16DE PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1701 JUMPI PUSH2 0x1700 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ ISZERO DUP1 PUSH2 0x1741 JUMPI POP PUSH1 0x3 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x171D JUMPI PUSH2 0x171C PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST PUSH1 0x5 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x173F JUMPI PUSH2 0x173E PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x1756 JUMPI PUSH2 0x1751 DUP4 DUP4 DUP4 PUSH2 0x1914 JUMP JUMPDEST PUSH2 0x190F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x180C JUMPI PUSH2 0x3E8 PUSH1 0xA SLOAD DUP4 PUSH2 0x17BE SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH2 0x17C8 SWAP2 SWAP1 PUSH2 0x21F4 JUMP JUMPDEST SWAP1 POP PUSH32 0x4021301DA943CE70706F02C0638C48F65E27CD0642FFD0550536995AF05E70CC DUP5 DUP4 DUP4 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x17FF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x244E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x18BD JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x18BC JUMPI PUSH2 0x3E8 PUSH1 0x9 SLOAD DUP4 PUSH2 0x1872 SWAP2 SWAP1 PUSH2 0x2183 JUMP JUMPDEST PUSH2 0x187C SWAP2 SWAP1 PUSH2 0x21F4 JUMP JUMPDEST SWAP1 POP PUSH32 0x4CB653EF0AFB6A8EC8B4B9286771CADC8E586225744651CD05B4B475AB881272 DUP4 DUP4 DUP4 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x18B3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x244E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1902 JUMPI PUSH2 0x18F3 DUP5 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1914 JUMP JUMPDEST DUP1 DUP3 PUSH2 0x18FF SWAP2 SWAP1 PUSH2 0x2493 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x190D DUP5 DUP5 DUP5 PUSH2 0x1914 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x191F DUP4 DUP4 DUP4 PUSH2 0x19BA JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x19B5 JUMPI PUSH1 0x0 PUSH2 0x195D PUSH2 0x792 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1969 PUSH2 0x6EB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x19B2 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0x9E79F85400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A9 SWAP3 SWAP2 SWAP1 PUSH2 0x24C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A0C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A00 SWAP2 SWAP1 PUSH2 0x24F0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1A98 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B28 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1B75 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x1BD2 SWAP2 SWAP1 PUSH2 0x1E29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C19 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BFE JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C41 DUP3 PUSH2 0x1BDF JUMP JUMPDEST PUSH2 0x1C4B DUP2 DUP6 PUSH2 0x1BEA JUMP JUMPDEST SWAP4 POP PUSH2 0x1C5B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1BFB JUMP JUMPDEST PUSH2 0x1C64 DUP2 PUSH2 0x1C25 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1C89 DUP2 DUP5 PUSH2 0x1C36 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CC1 DUP3 PUSH2 0x1C96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CD1 DUP2 PUSH2 0x1CB6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CEE DUP2 PUSH2 0x1CC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D07 DUP2 PUSH2 0x1CF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D24 DUP2 PUSH2 0x1CFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D41 JUMPI PUSH2 0x1D40 PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1D4F DUP6 DUP3 DUP7 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D60 DUP6 DUP3 DUP7 ADD PUSH2 0x1D15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D7F DUP2 PUSH2 0x1D6A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D76 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DC5 PUSH2 0x1DC0 PUSH2 0x1DBB DUP5 PUSH2 0x1C96 JUMP JUMPDEST PUSH2 0x1DA0 JUMP JUMPDEST PUSH2 0x1C96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DD7 DUP3 PUSH2 0x1DAA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE9 DUP3 PUSH2 0x1DCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DF9 DUP2 PUSH2 0x1DDE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E14 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E23 DUP2 PUSH2 0x1CF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E3E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E5D JUMPI PUSH2 0x1E5C PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E6B DUP7 DUP3 DUP8 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1E7C DUP7 DUP3 DUP8 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1E8D DUP7 DUP3 DUP8 ADD PUSH2 0x1D15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1EA0 DUP2 PUSH2 0x1CB6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EBB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ED7 DUP2 PUSH2 0x1EC1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EF2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1ECE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F0E JUMPI PUSH2 0x1F0D PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F1C DUP5 DUP3 DUP6 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F3C JUMPI PUSH2 0x1F3B PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F4A DUP6 DUP3 DUP7 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1F5B DUP6 DUP3 DUP7 ADD PUSH2 0x1CDF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1FA5 JUMPI PUSH2 0x1FA4 PUSH2 0x1F65 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x1FB6 DUP3 PUSH2 0x1F94 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FC6 DUP3 PUSH2 0x1FA8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FD6 DUP2 PUSH2 0x1FBB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FCD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x203E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2051 JUMPI PUSH2 0x2050 PUSH2 0x1FF7 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x46756E6374696F6E2063616E6E6F742062652063616C6C656420696E20746869 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7320737461746500000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B3 PUSH1 0x27 DUP4 PUSH2 0x1BEA JUMP JUMPDEST SWAP2 POP PUSH2 0x20BE DUP3 PUSH2 0x2057 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x20E2 DUP2 PUSH2 0x20A6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20F8 DUP2 PUSH2 0x1CC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2114 JUMPI PUSH2 0x2113 PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2122 DUP5 DUP3 DUP6 ADD PUSH2 0x20E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2140 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x214D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x218E DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x2199 DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x21A7 DUP2 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x21BE JUMPI PUSH2 0x21BD PUSH2 0x2154 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21FF DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x220A DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x221A JUMPI PUSH2 0x2219 PUSH2 0x21C5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x224A PUSH2 0x2245 PUSH2 0x2240 DUP5 PUSH2 0x2225 JUMP JUMPDEST PUSH2 0x1DA0 JUMP JUMPDEST PUSH2 0x1CF4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x225A DUP2 PUSH2 0x222F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x2275 PUSH1 0x0 DUP4 ADD DUP10 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2282 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x228F PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x2251 JUMP JUMPDEST PUSH2 0x229C PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x2251 JUMP JUMPDEST PUSH2 0x22A9 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x22B6 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x22D0 DUP2 PUSH2 0x1CFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22EF JUMPI PUSH2 0x22EE PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FD DUP7 DUP3 DUP8 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x230E DUP7 DUP3 DUP8 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x231F DUP7 DUP3 DUP8 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x233F JUMPI PUSH2 0x233E PUSH2 0x1C91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x234D DUP5 DUP3 DUP6 ADD PUSH2 0x22C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x236B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2378 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2385 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2392 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x239F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x23BE PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x23CB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x23D8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x23F5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2402 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x240F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x242C PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2439 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2446 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2463 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x2470 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x247D PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x248A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x249E DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24A9 DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x24C1 JUMPI PUSH2 0x24C0 PUSH2 0x2154 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x24DC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x24E9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E1A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24FB DUP3 PUSH2 0x1CF4 JUMP JUMPDEST SWAP2 POP PUSH2 0x2506 DUP4 PUSH2 0x1CF4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x251E JUMPI PUSH2 0x251D PUSH2 0x2154 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR 0xF 0xB5 0xEE 0xFC 0xE9 0xD2 DUP14 DUP14 SHR POP SWAP12 BASEFEE KECCAK256 CALL LOG2 PUSH20 0x901EB61E211D789627AFFD137A2F5264736F6C63 NUMBER STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "529:5330:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1147:41:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3144:97:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1193:49:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:244:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1071:32:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1107:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:82:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;923:81:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:52:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;829:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2957:1356;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;757:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1036:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:116:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4570:274:11;;;;;;;;;;;;;:::i;:::-;;793:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2276:93:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3846:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;725:28:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4317:249;;;;;;;;;;;;;:::i;:::-;;2543:215:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1302:81:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:89:2;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;4382:13;4398:12;:10;:12::i;:::-;4382:28;;4420:31;4429:5;4436:7;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;:::o;1147:41:11:-;;;;;;;;;;;;;:::o;3144:97:2:-;3196:7;3222:12;;3215:19;;3144:97;:::o;1193:49:11:-;;;;;;;;;;;;;;;;;;;:::o;5039:244:2:-;5126:4;5142:15;5160:12;:10;:12::i;:::-;5142:30;;5182:37;5198:4;5204:7;5213:5;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;5272:4;5265:11;;;5039:244;;;;;:::o;1071:32:11:-;;;;:::o;1107:35::-;;;;;;;;;;;;;:::o;3002:82:2:-;3051:5;3075:2;3068:9;;3002:82;:::o;923:81:4:-;967:7;993:4;986:11;;923:81;:::o;1246:52:11:-;;;;;;;;;;;;;;;;;;;:::o;829:32::-;;;;;;;;;;;;;:::o;2957:1356::-;1531:13:0;:11;:13::i;:::-;3062:19:11::1;2140:5;2126:19;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:19;;;;;;;;:::i;:::-;;;2118:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3126:16:::2;3089:15;;:54;;;;;;;;;;;;;;;;;;3190:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3172:55;;;3243:4;3256:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3172:112;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3149:20;;:135;;;;;;;;;;;;;;;;;;3343:31;3392:3;3386:2;3378:5;:3;:5::i;:::-;:10;;;;:::i;:::-;3377:18;;;;:::i;:::-;3343:52;;3401:45;3415:4;3422:23;3401:5;:45::i;:::-;3452:66;3469:4;3476:16;3494:23;3452:8;:66::i;:::-;3525:26;3554:15;3525:44;;3650:16;3668:14:::0;3688:15:::2;;;;;;;;;;;:31;;;3727:9;3753:4;3794:23;3847:1;3874::::0;1341:42:::2;3956:18;3688:333;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3649:372;;;;;4028:28;4074:20;;;;;;;;;;;4028:67;;4106:156;4129:20;;;;;;;;;;;4157:11;4176:9;4193:13;:23;;;1341:42;4193:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4238:18;4106:156;;;;;;;;;;:::i;:::-;;;;;;;;4282:26;4269:10;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;3083:1230;;;;;1554:1:0::1;2957:1356:11::0;:::o;757:32::-;;;;;;;;;;;;;:::o;1036:31::-;;;;:::o;3299:116:2:-;3364:7;3390:9;:18;3400:7;3390:18;;;;;;;;;;;;;;;;3383:25;;3299:116;;;:::o;4570:274:11:-;1531:13:0;:11;:13::i;:::-;4661:28:11::1;2140:5;2126:19;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:19;;;;;;;;:::i;:::-;;;2118:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4704:56:::2;4723:10;4735:7;:5;:7::i;:::-;4744:15;4704:56;;;;;;;;:::i;:::-;;;;;;;;4779:29;4766:10;;:42;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4814:25;:23;:25::i;:::-;1554:1:0::1;4570:274:11:o:0;793:32::-;;;;;;;;;;;;;:::o;1638:85:0:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:93;:::o;3610:178::-;3679:4;3695:13;3711:12;:10;:12::i;:::-;3695:28;;3733:27;3743:5;3750:2;3754:5;3733:9;:27::i;:::-;3777:4;3770:11;;;3610:178;;;;:::o;3846:140::-;3926:7;3952:11;:18;3964:5;3952:18;;;;;;;;;;;;;;;:27;3971:7;3952:27;;;;;;;;;;;;;;;;3945:34;;3846:140;;;;:::o;725:28:11:-;;;;;;;;;;;;;:::o;4317:249::-;1531:13:0;:11;:13::i;:::-;4373:26:11::1;2140:5;2126:19;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:19;;;;;;;;:::i;:::-;;;2118:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4420:1:::2;4407:10;:14;;;;4441:1;4427:11;:15;;;;4454:59;4472:10;;4484:11;;4497:15;4454:59;;;;;;;;:::i;:::-;;;;;;;;4533:28;4520:10;;:41;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1554:1:0::1;4317:249:11:o:0;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1302:81:11:-;1341:42;1302:81;:::o;656:96:6:-;709:7;735:10;728:17;;656:96;:::o;8989:128:2:-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;10762:24;10789:25;10799:5;10806:7;10789:9;:25::i;:::-;10762:52;;10848:17;10828:16;:37;10824:310;;10904:5;10885:16;:24;10881:130;;;10963:7;10972:16;10990:5;10936:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10881:130;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10824:310;10752:388;10663:477;;;:::o;5656:300::-;5755:1;5739:18;;:4;:18;;;5735:86;;5807:1;5780:30;;;;;;;;;;;:::i;:::-;;;;;;;;5735:86;5848:1;5834:16;;:2;:16;;;5830:86;;5902:1;5873:32;;;;;;;;;;;:::i;:::-;;;;;;;;5830:86;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;:::-;5656:300;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7721:208:2:-;7810:1;7791:21;;:7;:21;;;7787:91;;7864:1;7835:32;;;;;;;;;;;:::i;:::-;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9949:432:2:-;10078:1;10061:19;;:5;:19;;;10057:89;;10132:1;10103:32;;;;;;;;;;;:::i;:::-;;;;;;;;10057:89;10178:1;10159:21;;:7;:21;;;10155:90;;10231:1;10203:31;;;;;;;;;;;:::i;:::-;;;;;;;;10155:90;10284:5;10254:11;:18;10266:5;10254:18;;;;;;;;;;;;;;;:27;10273:7;10254:27;;;;;;;;;;;;;;;:35;;;;10303:9;10299:76;;;10349:7;10333:31;;10342:5;10333:31;;;10358:5;10333:31;;;;;;:::i;:::-;;;;;;;;10299:76;9949:432;;;;:::o;5026:831:11:-;5177:26;5163:40;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;;:86;;;;5221:28;5207:42;;;;;;;;:::i;:::-;;:10;;;;;;;;;;;:42;;;;;;;;:::i;:::-;;;5163:86;5159:151;;;5259:30;5273:4;5279:2;5283:5;5259:13;:30::i;:::-;5297:7;;5159:151;5316:17;5353:20;;;;;;;;;;;5347:26;;:2;:26;;;5343:351;;5443:4;5428:11;;5420:5;:19;;;;:::i;:::-;5419:28;;;;:::i;:::-;5407:40;;5460:50;5470:4;5476:5;5483:9;5494:15;5460:50;;;;;;;;;:::i;:::-;;;;;;;;5343:351;;;5535:20;;;;;;;;;;;5527:28;;:4;:28;;;5523:171;;5623:4;5609:10;;5601:5;:18;;;;:::i;:::-;5600:27;;;;:::i;:::-;5588:39;;5640:47;5649:2;5653:5;5660:9;5671:15;5640:47;;;;;;;;;:::i;:::-;;;;;;;;5523:171;5343:351;5716:1;5704:9;:13;5700:116;;;5727:49;5741:4;5747:17;;;;;;;;;;;5766:9;5727:13;:49::i;:::-;5800:9;5792:5;:17;;;;:::i;:::-;5784:25;;5700:116;5822:30;5836:4;5842:2;5846:5;5822:13;:30::i;:::-;5102:755;5026:831;;;;:::o;1059:371:4:-;1153:30;1167:4;1173:2;1177:5;1153:13;:30::i;:::-;1214:1;1198:18;;:4;:18;;;1194:230;;1232:17;1252:5;:3;:5::i;:::-;1232:25;;1271:14;1288:13;:11;:13::i;:::-;1271:30;;1328:9;1319:6;:18;1315:99;;;1381:6;1389:9;1364:35;;;;;;;;;;;;:::i;:::-;;;;;;;;1315:99;1218:206;;1194:230;1059:371;;;:::o;6271:1107:2:-;6376:1;6360:18;;:4;:18;;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;;;;;6356:540;;;6548:19;6570:9;:15;6580:4;6570:15;;;;;;;;;;;;;;;;6548:37;;6617:5;6603:11;:19;6599:115;;;6674:4;6680:11;6693:5;6649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6599:115;6866:5;6852:11;:19;6834:9;:15;6844:4;6834:15;;;;;;;;;;;;;;;:37;;;;6534:362;6356:540;6924:1;6910:16;;:2;:16;;;6906:425;;7089:5;7073:12;;:21;;;;;;;;;;;6906:425;;;7301:5;7284:9;:13;7294:2;7284:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6906:425;7361:2;7346:25;;7355:4;7346:25;;;7365:5;7346:25;;;;;;:::i;:::-;;;;;;;;6271:1107;;;:::o;7:99:12:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:118::-;5488:24;5506:5;5488:24;:::i;:::-;5483:3;5476:37;5401:118;;:::o;5525:222::-;5618:4;5656:2;5645:9;5641:18;5633:26;;5669:71;5737:1;5726:9;5722:17;5713:6;5669:71;:::i;:::-;5525:222;;;;:::o;5753:86::-;5788:7;5828:4;5821:5;5817:16;5806:27;;5753:86;;;:::o;5845:112::-;5928:22;5944:5;5928:22;:::i;:::-;5923:3;5916:35;5845:112;;:::o;5963:214::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:67;6167:1;6156:9;6152:17;6143:6;6103:67;:::i;:::-;5963:214;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:474::-;6586:6;6594;6643:2;6631:9;6622:7;6618:23;6614:32;6611:119;;;6649:79;;:::i;:::-;6611:119;6769:1;6794:53;6839:7;6830:6;6819:9;6815:22;6794:53;:::i;:::-;6784:63;;6740:117;6896:2;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6867:118;6518:474;;;;;:::o;6998:180::-;7046:77;7043:1;7036:88;7143:4;7140:1;7133:15;7167:4;7164:1;7157:15;7184:120;7272:1;7265:5;7262:12;7252:46;;7278:18;;:::i;:::-;7252:46;7184:120;:::o;7310:141::-;7362:7;7391:5;7380:16;;7397:48;7439:5;7397:48;:::i;:::-;7310:141;;;:::o;7457:::-;7520:9;7553:39;7586:5;7553:39;:::i;:::-;7540:52;;7457:141;;;:::o;7604:157::-;7704:50;7748:5;7704:50;:::i;:::-;7699:3;7692:63;7604:157;;:::o;7767:248::-;7873:4;7911:2;7900:9;7896:18;7888:26;;7924:84;8005:1;7994:9;7990:17;7981:6;7924:84;:::i;:::-;7767:248;;;;:::o;8021:180::-;8069:77;8066:1;8059:88;8166:4;8163:1;8156:15;8190:4;8187:1;8180:15;8207:320;8251:6;8288:1;8282:4;8278:12;8268:22;;8335:1;8329:4;8325:12;8356:18;8346:81;;8412:4;8404:6;8400:17;8390:27;;8346:81;8474:2;8466:6;8463:14;8443:18;8440:38;8437:84;;8493:18;;:::i;:::-;8437:84;8258:269;8207:320;;;:::o;8533:226::-;8673:34;8669:1;8661:6;8657:14;8650:58;8742:9;8737:2;8729:6;8725:15;8718:34;8533:226;:::o;8765:366::-;8907:3;8928:67;8992:2;8987:3;8928:67;:::i;:::-;8921:74;;9004:93;9093:3;9004:93;:::i;:::-;9122:2;9117:3;9113:12;9106:19;;8765:366;;;:::o;9137:419::-;9303:4;9341:2;9330:9;9326:18;9318:26;;9390:9;9384:4;9380:20;9376:1;9365:9;9361:17;9354:47;9418:131;9544:4;9418:131;:::i;:::-;9410:139;;9137:419;;;:::o;9562:143::-;9619:5;9650:6;9644:13;9635:22;;9666:33;9693:5;9666:33;:::i;:::-;9562:143;;;;:::o;9711:351::-;9781:6;9830:2;9818:9;9809:7;9805:23;9801:32;9798:119;;;9836:79;;:::i;:::-;9798:119;9956:1;9981:64;10037:7;10028:6;10017:9;10013:22;9981:64;:::i;:::-;9971:74;;9927:128;9711:351;;;;:::o;10068:332::-;10189:4;10227:2;10216:9;10212:18;10204:26;;10240:71;10308:1;10297:9;10293:17;10284:6;10240:71;:::i;:::-;10321:72;10389:2;10378:9;10374:18;10365:6;10321:72;:::i;:::-;10068:332;;;;;:::o;10406:180::-;10454:77;10451:1;10444:88;10551:4;10548:1;10541:15;10575:4;10572:1;10565:15;10592:410;10632:7;10655:20;10673:1;10655:20;:::i;:::-;10650:25;;10689:20;10707:1;10689:20;:::i;:::-;10684:25;;10744:1;10741;10737:9;10766:30;10784:11;10766:30;:::i;:::-;10755:41;;10945:1;10936:7;10932:15;10929:1;10926:22;10906:1;10899:9;10879:83;10856:139;;10975:18;;:::i;:::-;10856:139;10640:362;10592:410;;;;:::o;11008:180::-;11056:77;11053:1;11046:88;11153:4;11150:1;11143:15;11177:4;11174:1;11167:15;11194:185;11234:1;11251:20;11269:1;11251:20;:::i;:::-;11246:25;;11285:20;11303:1;11285:20;:::i;:::-;11280:25;;11324:1;11314:35;;11329:18;;:::i;:::-;11314:35;11371:1;11368;11364:9;11359:14;;11194:185;;;;:::o;11385:85::-;11430:7;11459:5;11448:16;;11385:85;;;:::o;11476:158::-;11534:9;11567:61;11585:42;11594:32;11620:5;11594:32;:::i;:::-;11585:42;:::i;:::-;11567:61;:::i;:::-;11554:74;;11476:158;;;:::o;11640:147::-;11735:45;11774:5;11735:45;:::i;:::-;11730:3;11723:58;11640:147;;:::o;11793:807::-;12042:4;12080:3;12069:9;12065:19;12057:27;;12094:71;12162:1;12151:9;12147:17;12138:6;12094:71;:::i;:::-;12175:72;12243:2;12232:9;12228:18;12219:6;12175:72;:::i;:::-;12257:80;12333:2;12322:9;12318:18;12309:6;12257:80;:::i;:::-;12347;12423:2;12412:9;12408:18;12399:6;12347:80;:::i;:::-;12437:73;12505:3;12494:9;12490:19;12481:6;12437:73;:::i;:::-;12520;12588:3;12577:9;12573:19;12564:6;12520:73;:::i;:::-;11793:807;;;;;;;;;:::o;12606:143::-;12663:5;12694:6;12688:13;12679:22;;12710:33;12737:5;12710:33;:::i;:::-;12606:143;;;;:::o;12755:663::-;12843:6;12851;12859;12908:2;12896:9;12887:7;12883:23;12879:32;12876:119;;;12914:79;;:::i;:::-;12876:119;13034:1;13059:64;13115:7;13106:6;13095:9;13091:22;13059:64;:::i;:::-;13049:74;;13005:128;13172:2;13198:64;13254:7;13245:6;13234:9;13230:22;13198:64;:::i;:::-;13188:74;;13143:129;13311:2;13337:64;13393:7;13384:6;13373:9;13369:22;13337:64;:::i;:::-;13327:74;;13282:129;12755:663;;;;;:::o;13424:351::-;13494:6;13543:2;13531:9;13522:7;13518:23;13514:32;13511:119;;;13549:79;;:::i;:::-;13511:119;13669:1;13694:64;13750:7;13741:6;13730:9;13726:22;13694:64;:::i;:::-;13684:74;;13640:128;13424:351;;;;:::o;13781:664::-;13986:4;14024:3;14013:9;14009:19;14001:27;;14038:71;14106:1;14095:9;14091:17;14082:6;14038:71;:::i;:::-;14119:72;14187:2;14176:9;14172:18;14163:6;14119:72;:::i;:::-;14201;14269:2;14258:9;14254:18;14245:6;14201:72;:::i;:::-;14283;14351:2;14340:9;14336:18;14327:6;14283:72;:::i;:::-;14365:73;14433:3;14422:9;14418:19;14409:6;14365:73;:::i;:::-;13781:664;;;;;;;;:::o;14451:442::-;14600:4;14638:2;14627:9;14623:18;14615:26;;14651:71;14719:1;14708:9;14704:17;14695:6;14651:71;:::i;:::-;14732:72;14800:2;14789:9;14785:18;14776:6;14732:72;:::i;:::-;14814;14882:2;14871:9;14867:18;14858:6;14814:72;:::i;:::-;14451:442;;;;;;:::o;14899:::-;15048:4;15086:2;15075:9;15071:18;15063:26;;15099:71;15167:1;15156:9;15152:17;15143:6;15099:71;:::i;:::-;15180:72;15248:2;15237:9;15233:18;15224:6;15180:72;:::i;:::-;15262;15330:2;15319:9;15315:18;15306:6;15262:72;:::i;:::-;14899:442;;;;;;:::o;15347:::-;15496:4;15534:2;15523:9;15519:18;15511:26;;15547:71;15615:1;15604:9;15600:17;15591:6;15547:71;:::i;:::-;15628:72;15696:2;15685:9;15681:18;15672:6;15628:72;:::i;:::-;15710;15778:2;15767:9;15763:18;15754:6;15710:72;:::i;:::-;15347:442;;;;;;:::o;15795:553::-;15972:4;16010:3;15999:9;15995:19;15987:27;;16024:71;16092:1;16081:9;16077:17;16068:6;16024:71;:::i;:::-;16105:72;16173:2;16162:9;16158:18;16149:6;16105:72;:::i;:::-;16187;16255:2;16244:9;16240:18;16231:6;16187:72;:::i;:::-;16269;16337:2;16326:9;16322:18;16313:6;16269:72;:::i;:::-;15795:553;;;;;;;:::o;16354:194::-;16394:4;16414:20;16432:1;16414:20;:::i;:::-;16409:25;;16448:20;16466:1;16448:20;:::i;:::-;16443:25;;16492:1;16489;16485:9;16477:17;;16516:1;16510:4;16507:11;16504:37;;;16521:18;;:::i;:::-;16504:37;16354:194;;;;:::o;16554:332::-;16675:4;16713:2;16702:9;16698:18;16690:26;;16726:71;16794:1;16783:9;16779:17;16770:6;16726:71;:::i;:::-;16807:72;16875:2;16864:9;16860:18;16851:6;16807:72;:::i;:::-;16554:332;;;;;:::o;16892:191::-;16932:3;16951:20;16969:1;16951:20;:::i;:::-;16946:25;;16985:20;17003:1;16985:20;:::i;:::-;16980:25;;17028:1;17025;17021:9;17014:16;;17049:3;17046:1;17043:10;17040:36;;;17056:18;;:::i;:::-;17040:36;16892:191;;;;:::o" + }, + "methodIdentifiers": { + "BURN_ADDRESS()": "fccc2813", + "TOKEN_NAME()": "18821400", + "TOKEN_TICKER_SYMBOL()": "5265ee55", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "buyTaxRate()": "691f224f", + "cap()": "355274ea", + "decimals()": "313ce567", + "exchangeMultiSig1()": "85df1d1c", + "exchangeMultiSig2()": "52cd2388", + "initializeUniswapLiquidity(address)": "5ecf7a67", + "marketingMultiSig()": "63cae94f", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "sellTaxRate()": "24024efd", + "setTaxRatesToZero()": "eaff1cbc", + "symbol()": "95d89b41", + "tokenState()": "e90dd9e2", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "uniswapV2PairAddress()": "2b653d44", + "uniswapV2Router()": "1694505e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cap_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_marketingMultiSig\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeMultiSig1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_exchangeMultiSig2\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"increasedSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"ERC20ExceededCap\",\"type\":\"error\"},{\"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\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"ERC20InvalidCap\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":\"address\",\"name\":\"buyerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOfTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"taxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"BuyTaxed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"launcherAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Launched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"liquidityPairAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOfTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOfETH\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOfLiquidityTokensBurned\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"LiquidityLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"renouncerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nullAddressOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"OwnershipRenounced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sellerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOfTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"taxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SellTaxed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zeroedBuyTaxRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zeroedSellTaxRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TaxRatesSetToZero\",\"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\":\"BURN_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_TICKER_SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"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\":\"buyTaxRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cap\",\"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\":\"exchangeMultiSig1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeMultiSig2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_uniswapV2Router\",\"type\":\"address\"}],\"name\":\"initializeUniswapLiquidity\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"marketingMultiSig\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sellTaxRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setTaxRatesToZero\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenState\",\"outputs\":[{\"internalType\":\"enum BasedWhale.TokenState\",\"name\":\"\",\"type\":\"uint8\"}],\"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\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV2PairAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV2Router\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Router02\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ERC20ExceededCap(uint256,uint256)\":[{\"details\":\"Total supply cap has been exceeded.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidCap(uint256)\":[{\"details\":\"The supplied cap is not a valid cap.\"}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"cap()\":{\"details\":\"Returns the cap on the token's total supply.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BasedWhale.sol\":\"BasedWhale\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol\":{\"keccak256\":\"0x9a961321311c070327b31fba89d821346225a411f946c9e84b330afdfdbb1d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://084698c9feace630ff29919baad9df0721944eb2ecaf942ef807935bbbe41b5a\",\"dweb:/ipfs/Qmet4EQYqPLSKo7UPBNGaVw5NPATNkiLsqSCnCgg5kAPg4\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\":{\"keccak256\":\"0x744e30c133bd0f7ca9e7163433cf6d72f45c6bb1508c2c9c02f1a6db796ae59d\",\"urls\":[\"bzz-raw://9bf2f4454ad63d4cff03a0630e787d9e8a9deed80aec89682cd8ad6379d9ef8c\",\"dweb:/ipfs/Qme51hQNR2wpax7ooUadhtqLtXm8ffeVVYyubLkTT4wMCG\"]},\"contracts/BasedWhale.sol\":{\"keccak256\":\"0x0bc923a497f0526ac9d12924684ac63b9eaad960986215d100fb917d136a205f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4f73c77c5ed029168c88c938d32d9336358e994314da2f8233c766d1ae419e49\",\"dweb:/ipfs/QmfBk3un4UPTVRhQTDURafprxAdYjKbdA5b5qHE4aw4rP4\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-84532/deployed_addresses.json b/ignition/deployments/chain-84532/deployed_addresses.json new file mode 100644 index 0000000..8439881 --- /dev/null +++ b/ignition/deployments/chain-84532/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "BasedWhale#BasedWhale": "0x8367fCD4bf412eF69d851C1fc863278AdfA097c6" +} diff --git a/ignition/deployments/chain-84532/journal.jsonl b/ignition/deployments/chain-84532/journal.jsonl new file mode 100644 index 0000000..1281541 --- /dev/null +++ b/ignition/deployments/chain-84532/journal.jsonl @@ -0,0 +1,12 @@ + +{"chainId":84532,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"BasedWhale#BasedWhale","constructorArgs":[{"_kind":"bigint","value":"1000000000"},"0x566bD9Df983BfEFf836A2C3b644553e6A80850Fa","0x65D23D5956b2F7E519df94dffA21ff3b078e7FE0","0xeBa74571b3B7703580f908a6A9035EB930C4F37D","0x6ca7304B0871F36Cd3cDF429b928a57a939d86A1"],"contractName":"BasedWhale","dependencies":[],"from":"0x566bd9df983bfeff836a2c3b644553e6a80850fa","futureId":"BasedWhale#BasedWhale","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"BasedWhale#BasedWhale","networkInteraction":{"data":"0x60a0604052606460095561012c600a553480156200001c57600080fd5b50604051620039d9380380620039d9833981810160405281019062000042919062000bb9565b83620000536200043060201b60201c565b60ff16600a62000064919062000dc4565b8662000071919062000e15565b6040518060400160405280600b81526020017f4261736564205768616c650000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5748414c450000000000000000000000000000000000000000000000000000008152508160039081620000ee9190620010d0565b508060049081620001009190620010d0565b505050600081036200014c5760006040517f392e1e27000000000000000000000000000000000000000000000000000000008152600401620001439190620011fa565b60405180910390fd5b806080818152505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001ca5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001c1919062001228565b60405180910390fd5b620001db816200043960201b60201c565b5082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002fe600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646005620002da620004ff60201b60201c565b620002e6919062000e15565b620002f2919062001274565b6200050960201b60201c565b6200035d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600562000339620004ff60201b60201c565b62000345919062000e15565b62000351919062001274565b6200050960201b60201c565b620003bc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600562000398620004ff60201b60201c565b620003a4919062000e15565b620003b0919062001274565b6200050960201b60201c565b7f8ad1ba2dbd33c6313fa50cd4016351a36437d7dcd0e0800a3a0b191d22095d933342604051620003ef929190620012bd565b60405180910390a16001600560146101000a81548160ff0219169083600481111562000420576200041f620012ea565b5b0217905550505050505062001463565b60006012905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000608051905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200057e5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000575919062001228565b60405180910390fd5b62000592600083836200059660201b60201c565b5050565b60026004811115620005ad57620005ac620012ea565b5b600560149054906101000a900460ff166004811115620005d257620005d1620012ea565b5b14158062000619575060036004811115620005f257620005f1620012ea565b5b600560149054906101000a900460ff166004811115620006175762000616620012ea565b5b145b156200063857620006328383836200081860201b60201c565b62000813565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006f6576103e8600a5483620006a3919062000e15565b620006af919062001274565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc84838342604051620006e8949392919062001319565b60405180910390a1620007ae565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620007ad576103e8600954836200075f919062000e15565b6200076b919062001274565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab88127283838342604051620007a4949392919062001319565b60405180910390a15b5b6000811115620007fe57620007ed84600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200081860201b60201c565b8082620007fb919062001366565b91505b620008118484846200081860201b60201c565b505b505050565b6200082b838383620008da60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008d557600062000872620004ff60201b60201c565b905060006200088662000b0a60201b60201c565b905081811115620008d25780826040517f9e79f854000000000000000000000000000000000000000000000000000000008152600401620008c9929190620013a1565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000930578060026000828254620009239190620013ce565b9250508190555062000a06565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620009bf578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620009b69392919062001409565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a51578060026000828254039250508190555062000a9e565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000afd919062001446565b60405180910390a3505050565b6000600254905090565b600080fd5b6000819050919050565b62000b2e8162000b19565b811462000b3a57600080fd5b50565b60008151905062000b4e8162000b23565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b818262000b54565b9050919050565b62000b938162000b74565b811462000b9f57600080fd5b50565b60008151905062000bb38162000b88565b92915050565b600080600080600060a0868803121562000bd85762000bd762000b14565b5b600062000be88882890162000b3d565b955050602062000bfb8882890162000ba2565b945050604062000c0e8882890162000ba2565b935050606062000c218882890162000ba2565b925050608062000c348882890162000ba2565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ccf5780860481111562000ca75762000ca662000c41565b5b600185161562000cb75780820291505b808102905062000cc78562000c70565b945062000c87565b94509492505050565b60008262000cea576001905062000dbd565b8162000cfa576000905062000dbd565b816001811462000d13576002811462000d1e5762000d54565b600191505062000dbd565b60ff84111562000d335762000d3262000c41565b5b8360020a91508482111562000d4d5762000d4c62000c41565b5b5062000dbd565b5060208310610133831016604e8410600b841016171562000d8e5782820a90508381111562000d885762000d8762000c41565b5b62000dbd565b62000d9d848484600162000c7d565b9250905081840481111562000db75762000db662000c41565b5b81810290505b9392505050565b600062000dd18262000b19565b915062000dde8362000b19565b925062000e0d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cd8565b905092915050565b600062000e228262000b19565b915062000e2f8362000b19565b925082820262000e3f8162000b19565b9150828204841483151762000e595762000e5862000c41565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ee257607f821691505b60208210810362000ef85762000ef762000e9a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f23565b62000f6e868362000f23565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000fb162000fab62000fa58462000b19565b62000f86565b62000b19565b9050919050565b6000819050919050565b62000fcd8362000f90565b62000fe562000fdc8262000fb8565b84845462000f30565b825550505050565b600090565b62000ffc62000fed565b6200100981848462000fc2565b505050565b5b8181101562001031576200102560008262000ff2565b6001810190506200100f565b5050565b601f82111562001080576200104a8162000efe565b620010558462000f13565b8101602085101562001065578190505b6200107d620010748562000f13565b8301826200100e565b50505b505050565b600082821c905092915050565b6000620010a56000198460080262001085565b1980831691505092915050565b6000620010c0838362001092565b9150826002028217905092915050565b620010db8262000e60565b67ffffffffffffffff811115620010f757620010f662000e6b565b5b62001103825462000ec9565b6200111082828562001035565b600060209050601f83116001811462001148576000841562001133578287015190505b6200113f8582620010b2565b865550620011af565b601f198416620011588662000efe565b60005b8281101562001182578489015182556001820191506020850194506020810190506200115b565b86831015620011a257848901516200119e601f89168262001092565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b6000620011e2620011dc620011d684620011b7565b62000f86565b62000b19565b9050919050565b620011f481620011c1565b82525050565b6000602082019050620012116000830184620011e9565b92915050565b620012228162000b74565b82525050565b60006020820190506200123f600083018462001217565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012818262000b19565b91506200128e8362000b19565b925082620012a157620012a062001245565b5b828204905092915050565b620012b78162000b19565b82525050565b6000604082019050620012d4600083018562001217565b620012e36020830184620012ac565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060808201905062001330600083018762001217565b6200133f6020830186620012ac565b6200134e6040830185620012ac565b6200135d6060830184620012ac565b95945050505050565b6000620013738262000b19565b9150620013808362000b19565b92508282039050818111156200139b576200139a62000c41565b5b92915050565b6000604082019050620013b86000830185620012ac565b620013c76020830184620012ac565b9392505050565b6000620013db8262000b19565b9150620013e88362000b19565b925082820190508082111562001403576200140262000c41565b5b92915050565b600060608201905062001420600083018662001217565b6200142f6020830185620012ac565b6200143e6040830184620012ac565b949350505050565b60006020820190506200145d6000830184620012ac565b92915050565b60805161255a6200147f6000396000610796015261255a6000f3fe6080604052600436106101855760003560e01c806363cae94f116100d157806395d89b411161008a578063e90dd9e211610064578063e90dd9e21461057a578063eaff1cbc146105a5578063f2fde38b146105bc578063fccc2813146105e55761018c565b806395d89b41146104d5578063a9059cbb14610500578063dd62ed3e1461053d5761018c565b806363cae94f146103d5578063691f224f1461040057806370a082311461042b578063715018a61461046857806385df1d1c1461047f5780638da5cb5b146104aa5761018c565b806324024efd1161013e578063355274ea11610118578063355274ea146103385780635265ee551461036357806352cd23881461038e5780635ecf7a67146103b95761018c565b806324024efd146102b75780632b653d44146102e2578063313ce5671461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd14610224578063188214001461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610610565b6040516101b39190611c6f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611d2a565b6106a2565b6040516101f09190611d85565b60405180910390f35b34801561020557600080fd5b5061020e6106c5565b60405161021b9190611dff565b60405180910390f35b34801561023057600080fd5b506102396106eb565b6040516102469190611e29565b60405180910390f35b34801561025b57600080fd5b506102646106f5565b6040516102719190611c6f565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190611e44565b61072e565b6040516102ae9190611d85565b60405180910390f35b3480156102c357600080fd5b506102cc61075d565b6040516102d99190611e29565b60405180910390f35b3480156102ee57600080fd5b506102f7610763565b6040516103049190611ea6565b60405180910390f35b34801561031957600080fd5b50610322610789565b60405161032f9190611edd565b60405180910390f35b34801561034457600080fd5b5061034d610792565b60405161035a9190611e29565b60405180910390f35b34801561036f57600080fd5b506103786107ba565b6040516103859190611c6f565b60405180910390f35b34801561039a57600080fd5b506103a36107f3565b6040516103b09190611ea6565b60405180910390f35b6103d360048036038101906103ce9190611ef8565b610819565b005b3480156103e157600080fd5b506103ea610cde565b6040516103f79190611ea6565b60405180910390f35b34801561040c57600080fd5b50610415610d04565b6040516104229190611e29565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190611ef8565b610d0a565b60405161045f9190611e29565b60405180910390f35b34801561047457600080fd5b5061047d610d52565b005b34801561048b57600080fd5b50610494610e49565b6040516104a19190611ea6565b60405180910390f35b3480156104b657600080fd5b506104bf610e6f565b6040516104cc9190611ea6565b60405180910390f35b3480156104e157600080fd5b506104ea610e99565b6040516104f79190611c6f565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190611d2a565b610f2b565b6040516105349190611d85565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190611f25565b610f4e565b6040516105719190611e29565b60405180910390f35b34801561058657600080fd5b5061058f610fd5565b60405161059c9190611fdc565b60405180910390f35b3480156105b157600080fd5b506105ba610fe8565b005b3480156105c857600080fd5b506105e360048036038101906105de9190611ef8565b6110e4565b005b3480156105f157600080fd5b506105fa61116a565b6040516106079190611ea6565b60405180910390f35b60606003805461061f90612026565b80601f016020809104026020016040519081016040528092919081815260200182805461064b90612026565b80156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b6000806106ad61116f565b90506106ba818585611177565b600191505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518060400160405280600b81526020017f4261736564205768616c6500000000000000000000000000000000000000000081525081565b60008061073961116f565b9050610746858285611189565b61075185858561121d565b60019150509392505050565b600a5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6040518060400160405280600581526020017f5748414c4500000000000000000000000000000000000000000000000000000081525081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610821611311565b600180600481111561083657610835611f65565b5b600560149054906101000a900460ff16600481111561085857610857611f65565b5b14610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906120c9565b60405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a91906120fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1791906120fe565b6040518363ffffffff1660e01b8152600401610a3492919061212b565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906120fe565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060646055610ac5610792565b610acf9190612183565b610ad991906121f4565b9050610ae53082611398565b610af0308483611177565b6000429050600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934308760008060008a6040518863ffffffff1660e01b8152600401610b6096959493929190612260565b60606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba391906122d6565b50915091506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690507ff07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684848473ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401610c4f9190611ea6565b602060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190612329565b88604051610ca2959493929190612356565b60405180910390a16002600560146101000a81548160ff02191690836004811115610cd057610ccf611f65565b5b021790555050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611311565b6003806004811115610d6f57610d6e611f65565b5b600560149054906101000a900460ff166004811115610d9157610d90611f65565b5b14610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc8906120c9565b60405180910390fd5b7fbc3fa950185893c8ddfff1dafec540ffc8d7e576295fea983a515e9a8e03acd733610dfb610e6f565b42604051610e0b939291906123a9565b60405180910390a16004600560146101000a81548160ff02191690836004811115610e3957610e38611f65565b5b0217905550610e4661141a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ea890612026565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612026565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b600080610f3661116f565b9050610f4381858561121d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560149054906101000a900460ff1681565b610ff0611311565b600280600481111561100557611004611f65565b5b600560149054906101000a900460ff16600481111561102757611026611f65565b5b14611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906120c9565b60405180910390fd5b60006009819055506000600a819055507fc4c7c69f1eeef4dcf5449fcee968e149b2646d141f0d9bb3d1de12de99d77f7e600954600a54426040516110ae939291906123e0565b60405180910390a16003600560146101000a81548160ff021916908360048111156110dc576110db611f65565b5b021790555050565b6110ec611311565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361115e5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111559190611ea6565b60405180910390fd5b6111678161142e565b50565b600081565b600033905090565b61118483838360016114f4565b505050565b60006111958484610f4e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112175781811015611207578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016111fe93929190612417565b60405180910390fd5b611216848484840360006114f4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112869190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113015760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016112f89190611ea6565b60405180910390fd5b61130c8383836116cb565b505050565b61131961116f565b73ffffffffffffffffffffffffffffffffffffffff16611337610e6f565b73ffffffffffffffffffffffffffffffffffffffff16146113965761135a61116f565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161138d9190611ea6565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114019190611ea6565b60405180910390fd5b611416600083836116cb565b5050565b611422611311565b61142c600061142e565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115665760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161155d9190611ea6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115cf9190611ea6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116c5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116bc9190611e29565b60405180910390a35b50505050565b600260048111156116df576116de611f65565b5b600560149054906101000a900460ff16600481111561170157611700611f65565b5b14158061174157506003600481111561171d5761171c611f65565b5b600560149054906101000a900460ff16600481111561173f5761173e611f65565b5b145b1561175657611751838383611914565b61190f565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180c576103e8600a54836117be9190612183565b6117c891906121f4565b90507f4021301da943ce70706f02c0638c48f65e27cd0642ffd0550536995af05e70cc848383426040516117ff949392919061244e565b60405180910390a16118bd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118bc576103e8600954836118729190612183565b61187c91906121f4565b90507f4cb653ef0afb6a8ec8b4b9286771cadc8e586225744651cd05b4b475ab881272838383426040516118b3949392919061244e565b60405180910390a15b5b6000811115611902576118f384600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611914565b80826118ff9190612493565b91505b61190d848484611914565b505b505050565b61191f8383836119ba565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b557600061195d610792565b905060006119696106eb565b9050818111156119b25780826040517f9e79f8540000000000000000000000000000000000000000000000000000000081526004016119a99291906124c7565b60405180910390fd5b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0c578060026000828254611a0091906124f0565b92505081905550611adf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611a8f93929190612417565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b285780600260008282540392505081905550611b75565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd29190611e29565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c19578082015181840152602081019050611bfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4182611bdf565b611c4b8185611bea565b9350611c5b818560208601611bfb565b611c6481611c25565b840191505092915050565b60006020820190508181036000830152611c898184611c36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cc182611c96565b9050919050565b611cd181611cb6565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b6000819050919050565b611d0781611cf4565b8114611d1257600080fd5b50565b600081359050611d2481611cfe565b92915050565b60008060408385031215611d4157611d40611c91565b5b6000611d4f85828601611cdf565b9250506020611d6085828601611d15565b9150509250929050565b60008115159050919050565b611d7f81611d6a565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b6000819050919050565b6000611dc5611dc0611dbb84611c96565b611da0565b611c96565b9050919050565b6000611dd782611daa565b9050919050565b6000611de982611dcc565b9050919050565b611df981611dde565b82525050565b6000602082019050611e146000830184611df0565b92915050565b611e2381611cf4565b82525050565b6000602082019050611e3e6000830184611e1a565b92915050565b600080600060608486031215611e5d57611e5c611c91565b5b6000611e6b86828701611cdf565b9350506020611e7c86828701611cdf565b9250506040611e8d86828701611d15565b9150509250925092565b611ea081611cb6565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600060ff82169050919050565b611ed781611ec1565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b600060208284031215611f0e57611f0d611c91565b5b6000611f1c84828501611cdf565b91505092915050565b60008060408385031215611f3c57611f3b611c91565b5b6000611f4a85828601611cdf565b9250506020611f5b85828601611cdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60058110611fa557611fa4611f65565b5b50565b6000819050611fb682611f94565b919050565b6000611fc682611fa8565b9050919050565b611fd681611fbb565b82525050565b6000602082019050611ff16000830184611fcd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061203e57607f821691505b60208210810361205157612050611ff7565b5b50919050565b7f46756e6374696f6e2063616e6e6f742062652063616c6c656420696e2074686960008201527f7320737461746500000000000000000000000000000000000000000000000000602082015250565b60006120b3602783611bea565b91506120be82612057565b604082019050919050565b600060208201905081810360008301526120e2816120a6565b9050919050565b6000815190506120f881611cc8565b92915050565b60006020828403121561211457612113611c91565b5b6000612122848285016120e9565b91505092915050565b60006040820190506121406000830185611e97565b61214d6020830184611e97565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061218e82611cf4565b915061219983611cf4565b92508282026121a781611cf4565b915082820484148315176121be576121bd612154565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121ff82611cf4565b915061220a83611cf4565b92508261221a576122196121c5565b5b828204905092915050565b6000819050919050565b600061224a61224561224084612225565b611da0565b611cf4565b9050919050565b61225a8161222f565b82525050565b600060c0820190506122756000830189611e97565b6122826020830188611e1a565b61228f6040830187612251565b61229c6060830186612251565b6122a96080830185611e97565b6122b660a0830184611e1a565b979650505050505050565b6000815190506122d081611cfe565b92915050565b6000806000606084860312156122ef576122ee611c91565b5b60006122fd868287016122c1565b935050602061230e868287016122c1565b925050604061231f868287016122c1565b9150509250925092565b60006020828403121561233f5761233e611c91565b5b600061234d848285016122c1565b91505092915050565b600060a08201905061236b6000830188611e97565b6123786020830187611e1a565b6123856040830186611e1a565b6123926060830185611e1a565b61239f6080830184611e1a565b9695505050505050565b60006060820190506123be6000830186611e97565b6123cb6020830185611e97565b6123d86040830184611e1a565b949350505050565b60006060820190506123f56000830186611e1a565b6124026020830185611e1a565b61240f6040830184611e1a565b949350505050565b600060608201905061242c6000830186611e97565b6124396020830185611e1a565b6124466040830184611e1a565b949350505050565b60006080820190506124636000830187611e97565b6124706020830186611e1a565b61247d6040830185611e1a565b61248a6060830184611e1a565b95945050505050565b600061249e82611cf4565b91506124a983611cf4565b92508282039050818111156124c1576124c0612154565b5b92915050565b60006040820190506124dc6000830185611e1a565b6124e96020830184611e1a565b9392505050565b60006124fb82611cf4565b915061250683611cf4565b925082820190508082111561251e5761251d612154565b5b9291505056fea2646970667358221220170fb5eefce9d28d8d1c509b4820f1a273901eb61e211d789627affd137a2f5264736f6c63430008180033000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000566bd9df983bfeff836a2c3b644553e6a80850fa00000000000000000000000065d23d5956b2f7e519df94dffa21ff3b078e7fe0000000000000000000000000eba74571b3b7703580f908a6a9035eb930c4f37d0000000000000000000000006ca7304b0871f36cd3cdf429b928a57a939d86a1","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"BasedWhale#BasedWhale","networkInteractionId":1,"nonce":0,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000576"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xd06fe3abdc20efe17b234f0fc53e098e23647d7f71246a08e3f7f7ea82ce67b6"},"type":"TRANSACTION_SEND"} +{"futureId":"BasedWhale#BasedWhale","hash":"0xd06fe3abdc20efe17b234f0fc53e098e23647d7f71246a08e3f7f7ea82ce67b6","networkInteractionId":1,"receipt":{"blockHash":"0xf1993165bc02c91fdc0689a392ef9a3f34c424fb1c69fd987ea82ae0a020b2b1","blockNumber":11490657,"contractAddress":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","logs":[{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x","logIndex":4,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000566bd9df983bfeff836a2c3b644553e6a80850fa"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000000000000000000000295be96e64066972000000","logIndex":5,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000065d23d5956b2f7e519df94dffa21ff3b078e7fe0"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000000000000000000000295be96e64066972000000","logIndex":6,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000eba74571b3b7703580f908a6a9035eb930c4f37d"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000000000000000000000295be96e64066972000000","logIndex":7,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000006ca7304b0871f36cd3cdf429b928a57a939d86a1"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000566bd9df983bfeff836a2c3b644553e6a80850fa00000000000000000000000000000000000000000000000000000000667209a2","logIndex":8,"topics":["0x8ad1ba2dbd33c6313fa50cd4016351a36437d7dcd0e0800a3a0b191d22095d93"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"BasedWhale#BasedWhale","result":{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":["0x1689E7B1F10000AE47eBfE339a4f69dECd19F602"],"artifactId":"BasedWhale#BasedWhale","contractAddress":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","dependencies":["BasedWhale#BasedWhale"],"from":"0x566bd9df983bfeff836a2c3b644553e6a80850fa","functionName":"initializeUniswapLiquidity","futureId":"BasedWhale#BasedWhale.initializeUniswapLiquidity","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"25000000000000000"}} +{"futureId":"BasedWhale#BasedWhale.initializeUniswapLiquidity","networkInteraction":{"data":"0x5ecf7a670000000000000000000000001689e7b1f10000ae47ebfe339a4f69decd19f602","id":1,"to":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"25000000000000000"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"BasedWhale#BasedWhale.initializeUniswapLiquidity","networkInteractionId":1,"nonce":1,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000574"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xe268801bec1421e432607a7620c09a2c5fc8633dfac97af2b064091496a15c7b"},"type":"TRANSACTION_SEND"} +{"futureId":"BasedWhale#BasedWhale.initializeUniswapLiquidity","hash":"0xe268801bec1421e432607a7620c09a2c5fc8633dfac97af2b064091496a15c7b","networkInteractionId":1,"receipt":{"blockHash":"0xdb728e8250d6572312cebd1a1542da62d52fc4c3f98e1d21a6c194c855a387ea","blockNumber":11490663,"logs":[{"address":"0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e","data":"0x000000000000000000000000dfc76aa6967cff35cdf5b5738758f2a4c7bbc2a60000000000000000000000000000000000000000000000000000000000000832","logIndex":8,"topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000004200000000000000000000000000000000000006","0x0000000000000000000000008367fcd4bf412ef69d851c1fc863278adfa097c6"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000000000000000000002bf1a8054a46d0092000000","logIndex":9,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000008367fcd4bf412ef69d851c1fc863278adfa097c6"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000000000000000000002bf1a8054a46d0092000000","logIndex":10,"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000008367fcd4bf412ef69d851c1fc863278adfa097c6","0x0000000000000000000000001689e7b1f10000ae47ebfe339a4f69decd19f602"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000000000000000000002bf1a8054a46d0092000000","logIndex":11,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000008367fcd4bf412ef69d851c1fc863278adfa097c6","0x000000000000000000000000dfc76aa6967cff35cdf5b5738758f2a4c7bbc2a6"]},{"address":"0x4200000000000000000000000000000000000006","data":"0x0000000000000000000000000000000000000000000000000058d15e17628000","logIndex":12,"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x0000000000000000000000001689e7b1f10000ae47ebfe339a4f69decd19f602"]},{"address":"0x4200000000000000000000000000000000000006","data":"0x0000000000000000000000000000000000000000000000000058d15e17628000","logIndex":13,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000001689e7b1f10000ae47ebfe339a4f69decd19f602","0x000000000000000000000000dfc76aa6967cff35cdf5b5738758f2a4c7bbc2a6"]},{"address":"0xDfc76Aa6967CFF35cDf5B5738758F2A4c7BbC2A6","data":"0x00000000000000000000000000000000000000000000000000000000000003e8","logIndex":14,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xDfc76Aa6967CFF35cDf5B5738758F2A4c7BbC2A6","data":"0x0000000000000000000000000000000000000000000000f9e570da557c0b9b71","logIndex":15,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xDfc76Aa6967CFF35cDf5B5738758F2A4c7BbC2A6","data":"0x0000000000000000000000000000000000000000000000000058d15e17628000000000000000000000000000000000000000000002bf1a8054a46d0092000000","logIndex":16,"topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"]},{"address":"0xDfc76Aa6967CFF35cDf5B5738758F2A4c7BbC2A6","data":"0x0000000000000000000000000000000000000000000000000058d15e17628000000000000000000000000000000000000000000002bf1a8054a46d0092000000","logIndex":17,"topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x0000000000000000000000001689e7b1f10000ae47ebfe339a4f69decd19f602"]},{"address":"0x8367fCD4bf412eF69d851C1fc863278AdfA097c6","data":"0x000000000000000000000000dfc76aa6967cff35cdf5b5738758f2a4c7bbc2a6000000000000000000000000000000000000000002bf1a8054a46d00920000000000000000000000000000000000000000000000000000000058d15e176280000000000000000000000000000000000000000000000000f9e570da557c0b9f5900000000000000000000000000000000000000000000000000000000667209ae","logIndex":18,"topics":["0xf07f8699eb5a7d3c6903aba7ffc0b932e8e123129924f6aa4e3e95b04ba25179"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"BasedWhale#BasedWhale.initializeUniswapLiquidity","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/ignition/modules/BasedWhale.ts b/ignition/modules/BasedWhale.ts index 5131c2a..bc97d78 100644 --- a/ignition/modules/BasedWhale.ts +++ b/ignition/modules/BasedWhale.ts @@ -3,11 +3,18 @@ import { ethers } from "hardhat"; const BasedWhaleModule = buildModule("BasedWhale", (m) => { const oneBillionCappedSupply = BigInt(1_000_000_000); - const initialOwnerAddress = "0x55B554EFaDdB6a229A3785cc535779E54be5308c" // BrokenByte; + const initialOwnerAddress = "0x566bD9Df983BfEFf836A2C3b644553e6A80850Fa" // BrokenByte Engineering Deployer; const marketingMultiSigAddress = "0x65D23D5956b2F7E519df94dffA21ff3b078e7FE0"; const exchangeMultiSigAddress1 = "0xeBa74571b3B7703580f908a6A9035EB930C4F37D"; const exchangeMultiSigAddress2 = "0x6ca7304B0871F36Cd3cDF429b928a57a939d86A1"; const uniswapV2RouterBaseAddress = "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24"; + const uniswapV2RouterBaseSepoliaAddress = "0x1689E7B1F10000AE47eBfE339a4f69dECd19F602"; + const liquidityETHProvisionMainnet = "1.004"; + const liquidityETHProvisionTestnet = "0.025"; + + const isTestnet: Boolean = true; + const uniswapRouterAddressFinal = isTestnet ? uniswapV2RouterBaseSepoliaAddress : uniswapV2RouterBaseAddress; + const liquidityETHProvisionFinal = isTestnet ? liquidityETHProvisionTestnet : liquidityETHProvisionMainnet; // 1. Deploy contract const basedWhale = m.contract( @@ -25,8 +32,8 @@ const BasedWhaleModule = buildModule("BasedWhale", (m) => { m.call( basedWhale, "initializeUniswapLiquidity", - [uniswapV2RouterBaseAddress], - { value: ethers.parseEther("1.004") } + [uniswapRouterAddressFinal], + { value: ethers.parseEther(liquidityETHProvisionFinal) } ); return { basedWhale };