diff --git a/frontend/README.md b/frontend/README.md index 1430857..edabe3c 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -15,5 +15,10 @@ npx truffle exec .\scripts\prepare.js # Start server cd ./frontend + +# Move new contract ABI, including deployed contract address, and generate typings. +npm run prepare + +# Start the app npm start ``` diff --git a/frontend/package.json b/frontend/package.json index 9379328..81b7660 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -18,10 +18,12 @@ "web-vitals": "^2.1.4" }, "scripts": { + "prepare": "cp ../build/contracts/YieldLever.json ./src/abi/ && npx abi-types-generator ./src/abi/YieldLever.json --provider=ethers_v5", "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "format": "npx prettier . --write" }, "eslintConfig": { "extends": [ diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4c52161..7f8a2cb 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -4,7 +4,6 @@ import { BigNumber, ethers } from "ethers"; import { ConnectWallet } from "./components/ConnectWallet"; import erc20Abi from "./abi/ERC20.json"; import Invest from "./components/Invest"; -import yieldLever from "./abi/YieldLever.json"; import poolAbi from "./abi/Pool.json"; import cauldronAbi from "./abi/Cauldron.json"; import ladleAbi from "./abi/Ladle.json"; @@ -16,16 +15,16 @@ import { ContractContext as YieldLever } from "./abi/YieldLever"; import { ContractContext as Pool } from "./abi/Pool"; import { ContractContext as Cauldron } from "./abi/Cauldron"; import { ContractContext as Ladle } from "./abi/Ladle"; +import yieldLeverAbi from "./abi/YieldLever.json"; -const YIELD_LEVER_CONTRACT_ADDRESS: string = - "0xe4e6A1CE0B36CcF0b920b6b57Df0f922915450Ee"; +const YIELD_LEVER_CONTRACT_ADDRESS: string = yieldLeverAbi.networks[1].address; const USDC_ADDRESS: string = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"; const POOL_CONTRACT: string = "0xEf82611C6120185D3BF6e020D1993B49471E7da0"; const CAULDRON_CONTRACT: string = "0xc88191F8cb8e6D4a668B047c1C8503432c3Ca867"; const LADLE_CONTRACT: string = "0x6cB18fF2A33e981D1e38A663Ca056c0a5265066A"; export const SERIES_ID: string = "0x303230360000"; -export const ILK_ID: string = '0x303900000000'; +export const ILK_ID: string = "0x303900000000"; interface State { selectedAddress?: string; @@ -187,7 +186,7 @@ export class App extends React.Component<{}, State> { ) as any, yieldLeverContract: new ethers.Contract( YIELD_LEVER_CONTRACT_ADDRESS, - yieldLever.abi, + yieldLeverAbi.abi, this._provider.getSigner(0) ) as any, poolContract: new ethers.Contract( @@ -200,7 +199,11 @@ export class App extends React.Component<{}, State> { cauldronAbi, this._provider ) as any, - ladleContract: new ethers.Contract(LADLE_CONTRACT, ladleAbi, this._provider) as any, + ladleContract: new ethers.Contract( + LADLE_CONTRACT, + ladleAbi, + this._provider + ) as any, }; // if (this.state.selectedAddress !== undefined) @@ -255,7 +258,11 @@ export class App extends React.Component<{}, State> { } private async pollData() { - if (this.contracts !== undefined && this._provider !== undefined && this.state.selectedAddress !== undefined) { + if ( + this.contracts !== undefined && + this._provider !== undefined && + this.state.selectedAddress !== undefined + ) { const { cauldronContract } = this.contracts; const [usdcBalance, ...vaultAndBalances] = await Promise.all([ this.contracts.usdcContract.balanceOf(this.state.selectedAddress), diff --git a/frontend/src/abi/Cauldron.ts b/frontend/src/abi/Cauldron.ts index 37a452c..7b15967 100644 --- a/frontend/src/abi/Cauldron.ts +++ b/frontend/src/abi/Cauldron.ts @@ -4,8 +4,8 @@ import { BytesLike as Arrayish, BigNumber, BigNumberish, -} from 'ethers'; -import { EthersContractContextV5 } from 'ethereum-abi-types-generator'; +} from "ethers"; +import { EthersContractContextV5 } from "ethereum-abi-types-generator"; export type ContractContext = EthersContractContextV5< Cauldron, @@ -55,23 +55,23 @@ export interface ContractCallOverrides { gasLimit?: number; } export type CauldronEvents = - | 'AssetAdded' - | 'DebtLimitsSet' - | 'IlkAdded' - | 'RateOracleAdded' - | 'RoleAdminChanged' - | 'RoleGranted' - | 'RoleRevoked' - | 'SeriesAdded' - | 'SeriesMatured' - | 'SpotOracleAdded' - | 'VaultBuilt' - | 'VaultDestroyed' - | 'VaultGiven' - | 'VaultPoured' - | 'VaultRolled' - | 'VaultStirred' - | 'VaultTweaked'; + | "AssetAdded" + | "DebtLimitsSet" + | "IlkAdded" + | "RateOracleAdded" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "SeriesAdded" + | "SeriesMatured" + | "SpotOracleAdded" + | "VaultBuilt" + | "VaultDestroyed" + | "VaultGiven" + | "VaultPoured" + | "VaultRolled" + | "VaultStirred" + | "VaultTweaked"; export interface CauldronEventsContext { AssetAdded(...parameters: any): EventFilter; DebtLimitsSet(...parameters: any): EventFilter; @@ -92,47 +92,47 @@ export interface CauldronEventsContext { VaultTweaked(...parameters: any): EventFilter; } export type CauldronMethodNames = - | 'LOCK' - | 'LOCK8605463013' - | 'ROOT' - | 'ROOT4146650865' - | 'accrual' - | 'addAsset' - | 'addIlks' - | 'addSeries' - | 'assets' - | 'balances' - | 'build' - | 'debt' - | 'debtFromBase' - | 'debtToBase' - | 'destroy' - | 'getRoleAdmin' - | 'give' - | 'grantRole' - | 'grantRoles' - | 'hasRole' - | 'ilks' - | 'lendingOracles' - | 'level' - | 'lockRole' - | 'mature' - | 'pour' - | 'ratesAtMaturity' - | 'renounceRole' - | 'revokeRole' - | 'revokeRoles' - | 'roll' - | 'series' - | 'setDebtLimits' - | 'setLendingOracle' - | 'setRoleAdmin' - | 'setSpotOracle' - | 'slurp' - | 'spotOracles' - | 'stir' - | 'tweak' - | 'vaults'; + | "LOCK" + | "LOCK8605463013" + | "ROOT" + | "ROOT4146650865" + | "accrual" + | "addAsset" + | "addIlks" + | "addSeries" + | "assets" + | "balances" + | "build" + | "debt" + | "debtFromBase" + | "debtToBase" + | "destroy" + | "getRoleAdmin" + | "give" + | "grantRole" + | "grantRoles" + | "hasRole" + | "ilks" + | "lendingOracles" + | "level" + | "lockRole" + | "mature" + | "pour" + | "ratesAtMaturity" + | "renounceRole" + | "revokeRole" + | "revokeRoles" + | "roll" + | "series" + | "setDebtLimits" + | "setLendingOracle" + | "setRoleAdmin" + | "setSpotOracle" + | "slurp" + | "spotOracles" + | "stir" + | "tweak" + | "vaults"; export interface AssetAddedEventEmittedResponse { assetId: Arrayish; asset: string; diff --git a/frontend/src/abi/ERC20.ts b/frontend/src/abi/ERC20.ts index 0590ee9..05e6f1f 100644 --- a/frontend/src/abi/ERC20.ts +++ b/frontend/src/abi/ERC20.ts @@ -4,8 +4,8 @@ import { BytesLike as Arrayish, BigNumber, BigNumberish, -} from 'ethers'; -import { EthersContractContextV5 } from 'ethereum-abi-types-generator'; +} from "ethers"; +import { EthersContractContextV5 } from "ethereum-abi-types-generator"; export type ContractContext = EthersContractContextV5< ERC20, @@ -54,21 +54,21 @@ export interface ContractCallOverrides { */ gasLimit?: number; } -export type ERC20Events = 'Approval' | 'Transfer'; +export type ERC20Events = "Approval" | "Transfer"; export interface ERC20EventsContext { Approval(...parameters: any): EventFilter; Transfer(...parameters: any): EventFilter; } export type ERC20MethodNames = - | 'name' - | 'approve' - | 'totalSupply' - | 'transferFrom' - | 'decimals' - | 'balanceOf' - | 'symbol' - | 'transfer' - | 'allowance'; + | "name" + | "approve" + | "totalSupply" + | "transferFrom" + | "decimals" + | "balanceOf" + | "symbol" + | "transfer" + | "allowance"; export interface ApprovalEventEmittedResponse { owner: string; spender: string; diff --git a/frontend/src/abi/Ladle.ts b/frontend/src/abi/Ladle.ts index a8dae86..51ae3ba 100644 --- a/frontend/src/abi/Ladle.ts +++ b/frontend/src/abi/Ladle.ts @@ -4,8 +4,8 @@ import { BytesLike as Arrayish, BigNumber, BigNumberish, -} from 'ethers'; -import { EthersContractContextV5 } from 'ethereum-abi-types-generator'; +} from "ethers"; +import { EthersContractContextV5 } from "ethereum-abi-types-generator"; export type ContractContext = EthersContractContextV5< Ladle, @@ -55,15 +55,15 @@ export interface ContractCallOverrides { gasLimit?: number; } export type LadleEvents = - | 'FeeSet' - | 'IntegrationAdded' - | 'JoinAdded' - | 'ModuleAdded' - | 'PoolAdded' - | 'RoleAdminChanged' - | 'RoleGranted' - | 'RoleRevoked' - | 'TokenAdded'; + | "FeeSet" + | "IntegrationAdded" + | "JoinAdded" + | "ModuleAdded" + | "PoolAdded" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "TokenAdded"; export interface LadleEventsContext { FeeSet(...parameters: any): EventFilter; IntegrationAdded(...parameters: any): EventFilter; @@ -76,58 +76,58 @@ export interface LadleEventsContext { TokenAdded(...parameters: any): EventFilter; } export type LadleMethodNames = - | 'new' - | 'LOCK' - | 'LOCK8605463013' - | 'ROOT' - | 'ROOT4146650865' - | 'addIntegration' - | 'addJoin' - | 'addModule' - | 'addPool' - | 'addToken' - | 'batch' - | 'borrowingFee' - | 'build' - | 'cauldron' - | 'close' - | 'closeFromLadle' - | 'destroy' - | 'exitEther' - | 'forwardDaiPermit' - | 'forwardPermit' - | 'getRoleAdmin' - | 'give' - | 'grantRole' - | 'grantRoles' - | 'hasRole' - | 'integrations' - | 'joinEther' - | 'joins' - | 'lockRole' - | 'moduleCall' - | 'modules' - | 'pools' - | 'pour' - | 'redeem' - | 'renounceRole' - | 'repay' - | 'repayFromLadle' - | 'repayVault' - | 'retrieve' - | 'revokeRole' - | 'revokeRoles' - | 'roll' - | 'route' - | 'router' - | 'serve' - | 'setFee' - | 'setRoleAdmin' - | 'stir' - | 'tokens' - | 'transfer' - | 'tweak' - | 'weth'; + | "new" + | "LOCK" + | "LOCK8605463013" + | "ROOT" + | "ROOT4146650865" + | "addIntegration" + | "addJoin" + | "addModule" + | "addPool" + | "addToken" + | "batch" + | "borrowingFee" + | "build" + | "cauldron" + | "close" + | "closeFromLadle" + | "destroy" + | "exitEther" + | "forwardDaiPermit" + | "forwardPermit" + | "getRoleAdmin" + | "give" + | "grantRole" + | "grantRoles" + | "hasRole" + | "integrations" + | "joinEther" + | "joins" + | "lockRole" + | "moduleCall" + | "modules" + | "pools" + | "pour" + | "redeem" + | "renounceRole" + | "repay" + | "repayFromLadle" + | "repayVault" + | "retrieve" + | "revokeRole" + | "revokeRoles" + | "roll" + | "route" + | "router" + | "serve" + | "setFee" + | "setRoleAdmin" + | "stir" + | "tokens" + | "transfer" + | "tweak" + | "weth"; export interface FeeSetEventEmittedResponse { fee: BigNumberish; } @@ -182,7 +182,7 @@ export interface Ladle { * @param cauldron Type: address, Indexed: false * @param weth Type: address, Indexed: false */ - 'new'( + "new"( cauldron: string, weth: string, overrides?: ContractTransactionOverrides diff --git a/frontend/src/abi/Pool.ts b/frontend/src/abi/Pool.ts index 48858cb..2822260 100644 --- a/frontend/src/abi/Pool.ts +++ b/frontend/src/abi/Pool.ts @@ -4,8 +4,8 @@ import { BytesLike as Arrayish, BigNumber, BigNumberish, -} from 'ethers'; -import { EthersContractContextV5 } from 'ethereum-abi-types-generator'; +} from "ethers"; +import { EthersContractContextV5 } from "ethereum-abi-types-generator"; export type ContractContext = EthersContractContextV5< Pool, @@ -55,11 +55,11 @@ export interface ContractCallOverrides { gasLimit?: number; } export type PoolEvents = - | 'Approval' - | 'Liquidity' - | 'Sync' - | 'Trade' - | 'Transfer'; + | "Approval" + | "Liquidity" + | "Sync" + | "Trade" + | "Transfer"; export interface PoolEventsContext { Approval(...parameters: any): EventFilter; Liquidity(...parameters: any): EventFilter; @@ -68,48 +68,48 @@ export interface PoolEventsContext { Transfer(...parameters: any): EventFilter; } export type PoolMethodNames = - | 'new' - | 'DOMAIN_SEPARATOR' - | 'PERMIT_TYPEHASH' - | 'allowance' - | 'approve' - | 'balanceOf' - | 'base' - | 'burn' - | 'burnForBase' - | 'buyBase' - | 'buyBasePreview' - | 'buyFYToken' - | 'buyFYTokenPreview' - | 'cumulativeBalancesRatio' - | 'decimals' - | 'deploymentChainId' - | 'fyToken' - | 'g1' - | 'g2' - | 'getBaseBalance' - | 'getCache' - | 'getFYTokenBalance' - | 'maturity' - | 'mint' - | 'mintWithBase' - | 'name' - | 'nonces' - | 'permit' - | 'retrieveBase' - | 'retrieveFYToken' - | 'scaleFactor' - | 'sellBase' - | 'sellBasePreview' - | 'sellFYToken' - | 'sellFYTokenPreview' - | 'symbol' - | 'sync' - | 'totalSupply' - | 'transfer' - | 'transferFrom' - | 'ts' - | 'version'; + | "new" + | "DOMAIN_SEPARATOR" + | "PERMIT_TYPEHASH" + | "allowance" + | "approve" + | "balanceOf" + | "base" + | "burn" + | "burnForBase" + | "buyBase" + | "buyBasePreview" + | "buyFYToken" + | "buyFYTokenPreview" + | "cumulativeBalancesRatio" + | "decimals" + | "deploymentChainId" + | "fyToken" + | "g1" + | "g2" + | "getBaseBalance" + | "getCache" + | "getFYTokenBalance" + | "maturity" + | "mint" + | "mintWithBase" + | "name" + | "nonces" + | "permit" + | "retrieveBase" + | "retrieveFYToken" + | "scaleFactor" + | "sellBase" + | "sellBasePreview" + | "sellFYToken" + | "sellFYTokenPreview" + | "symbol" + | "sync" + | "totalSupply" + | "transfer" + | "transferFrom" + | "ts" + | "version"; export interface ApprovalEventEmittedResponse { owner: string; spender: string; @@ -157,7 +157,7 @@ export interface Pool { * StateMutability: nonpayable * Type: constructor */ - 'new'(overrides?: ContractTransactionOverrides): Promise; + "new"(overrides?: ContractTransactionOverrides): Promise; /** * Payable: false * Constant: true diff --git a/frontend/src/abi/YieldLever.json b/frontend/src/abi/YieldLever.json index f3b7a28..0c75bbd 100644 --- a/frontend/src/abi/YieldLever.json +++ b/frontend/src/abi/YieldLever.json @@ -1,6 +1,11 @@ { "contractName": "YieldLever", "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "inputs": [ { @@ -157,163 +162,210 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"},{\"internalType\":\"uint128\",\"name\":\"base\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"ink\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"art\",\"type\":\"uint128\"}],\"name\":\"doClose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"investAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"borrowAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"maxFyAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"}],\"name\":\"doInvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"},{\"internalType\":\"uint256\",\"name\":\"borrowAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"ink\",\"type\":\"uint128\"}],\"name\":\"doRepay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"borrowAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"maxFyAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes6\",\"name\":\"seriesId\",\"type\":\"bytes6\"}],\"name\":\"invest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"},{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"ink\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"art\",\"type\":\"uint128\"},{\"internalType\":\"bytes6\",\"name\":\"seriesId\",\"type\":\"bytes6\"}],\"name\":\"unwind\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"doClose(address,bytes12,uint128,uint128,uint128)\":{\"params\":{\"base\":\"- The size of the debt in USDC.\",\"owner\":\"- The address of the owner. This is the address that will be used to obtain certain parameters, and it is also the destination for the profit that was obtained.\",\"vaultId\":\"- The vault id to repay.\"}},\"doInvest(uint256,uint128,uint128,bytes12)\":{\"params\":{\"borrowAmount\":\"- The amount borrowed using a flash loan.\",\"maxFyAmount\":\"- The maximum amount of fyTokens to sell.\",\"vaultId\":\"- The vault id to invest in.\"}},\"doRepay(address,bytes12,uint256,uint128)\":{\"params\":{\"owner\":\"- The address of the owner. This is the address that will be used to obtain certain parameters, and it is also the destination for the profit that was obtained.\",\"vaultId\":\"- The vault id to repay.\"}},\"invest(uint256,uint128,uint128,bytes6)\":{\"params\":{\"baseAmount\":\"- The amount to invest from your own funds.\",\"borrowAmount\":\"- The extra amount to borrow. This is immediately repaid, so setting this to 3 times baseAmount will incur a debt of 75% of the collateral.\",\"maxFyAmount\":\"- The maximum amount of fyTokens to sell. Should be enough to cover the flash loan.\",\"seriesId\":\"- The series Id to invest in. For example, 0x303230360000 for FYUSDC06LP.\"}},\"unwind(bytes12,uint256,address,uint128,uint128,bytes6)\":{\"params\":{\"art\":\"- The amount of debt taken from the vault.\",\"ink\":\"- The amount of collateral in the vault. Together with art, this value can be obtained using `cauldron.balances(vaultId);`, which will return an object containing both `art` and `ink`.\",\"maxAmount\":\"- The maximum amount of USDC to borrow. If past maturity, this parameter is unused as the amount can be determined precisely.\",\"pool\":\"- The pool to deposit USDC into. This can be obtained via the seriesId, and calling `address pool = ladle.pools(seriesId);`\",\"vaultId\":\"- The id of the vault that should be emptied.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"doClose(address,bytes12,uint128,uint128,uint128)\":{\"notice\":\"Close a vault that has already reached its expiration date.\"},\"doInvest(uint256,uint128,uint128,bytes12)\":{\"notice\":\"This function is called inside the flash loan and handles the actual investment.\"},\"doRepay(address,bytes12,uint256,uint128)\":{\"notice\":\"Repay a vault after having borrowed a suitable amount using a flash loan. Will only succeed if the pool hasn't reached its expiration date yet.\"},\"invest(uint256,uint128,uint128,bytes6)\":{\"notice\":\"Invest `baseAmount` and borrow an additional `borrowAmount`. Use this to obtain a maximum of `maxFyAmount` to repay the flash loan. The end goal is to have a debt of `borrowAmount`, but earn interest on the entire collateral, including the borrowed part.\"},\"unwind(bytes12,uint256,address,uint128,uint128,bytes6)\":{\"notice\":\"Empty a vault.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/YieldLever.sol\":\"YieldLever\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/YieldLever.sol\":{\"keccak256\":\"0x93ad802c27316dc1dbed46f7b31e9a085d245befd8ff9b68da1cd3453caaab42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ae8cdac18a2a9c29392868523205a3ce9beb0a6a9e0112d3028a764b5eee1d6\",\"dweb:/ipfs/QmTQ3AQgPENombUSwMwFM55XQnKMcZaQuLGrczDithWZM6\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506120d1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806347b348451461005c57806350bf94d7146100785780636e6bf1f414610094578063d238b433146100b0578063fcd064cf146100cc575b600080fd5b610076600480360381019061007191906112a4565b6100e8565b005b610092600480360381019061008d9190611369565b610246565b005b6100ae60048036038101906100a991906113d0565b610539565b005b6100ca60048036038101906100c591906114a3565b610836565b005b6100e660048036038101906100e19190611530565b610def565b005b600073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16636e553f658673403ae7384e89b086ea2935d5fafed07465242b386040518363ffffffff1660e01b815260040161014d9291906115b5565b6020604051808303816000875af115801561016c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019091906115f3565b9050736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663adf8d478837332e4c68b3a4a813b710595aeba7f6b7604ab9c158488886040518663ffffffff1660e01b81526004016101fb95949392919061163e565b6020604051808303816000875af115801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906116a6565b505050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff166324bd54b48430846102829061170f565b866040518563ffffffff1660e01b81526004016102a29493929190611767565b6020604051808303816000875af11580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e591906116a6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b91906115f3565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15846040518363ffffffff1660e01b81526004016103cf9291906117ac565b6020604051808303816000875af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610412919061180d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8573a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610491919061183a565b602060405180830381865afa1580156104ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d291906115f3565b6040518363ffffffff1660e01b81526004016104ef9291906117ac565b6020604051808303816000875af115801561050e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610532919061180d565b5050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663441c70f78530856105759061170f565b8561057f9061170f565b6040518563ffffffff1660e01b815260040161059e9493929190611855565b6020604051808303816000875af11580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e191906116a6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906115f3565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15856040518363ffffffff1660e01b81526004016106cb9291906118d5565b6020604051808303816000875af11580156106ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070e919061180d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161078d919061183a565b602060405180830381865afa1580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce91906115f3565b6040518363ffffffff1660e01b81526004016107eb9291906117ac565b6020604051808303816000875af115801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e919061180d565b505050505050565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff16631e81f829886040518263ffffffff1660e01b815260040161088591906118fe565b606060405180830381865afa1580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611a38565b9050600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff166355d03e34846040518263ffffffff1660e01b81526004016109179190611a74565b606060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190611b6d565b90503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161461099657600080fd5b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89306040518363ffffffff1660e01b81526004016109e5929190611b9a565b6060604051808303816000875af1158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a289190611a38565b50806040015163ffffffff164263ffffffff161015610b75577332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d888830338d8d8c604051602401610a8b9493929190611bc3565b6040516020818303038152906040527f50bf94d7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610b279493929190611cc7565b6000604051808303816000875af1158015610b46573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b6f9190611dd1565b50610d52565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663550b025385876040518363ffffffff1660e01b8152600401610bc6929190611e1a565b6020604051808303816000875af1158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0991906116a6565b90507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d82730d9a1a773be5a83eebda23bf98efb8585c3ae4f430338e878d8d604051602401610c6b959493929190611e43565b6040516020818303038152906040527f6e6bf1f4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610d079493929190611e96565b6000604051808303816000875af1158015610d26573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d4f9190611dd1565b50505b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89336040518363ffffffff1660e01b8152600401610da1929190611b9a565b6060604051808303816000875af1158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de49190611a38565b505050505050505050565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401610e4093929190611ef5565b6020604051808303816000875af1158015610e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e83919061180d565b506000736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff16636d4756d7836530390000000060d01b60006040518463ffffffff1660e01b8152600401610ee193929190611f74565b6080604051808303816000875af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190611fc0565b5090506000846fffffffffffffffffffffffffffffffff1686610f479190612000565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663095ea7b373a354f35829ae975e850e23e9615b11da1b3dc4de836040518363ffffffff1660e01b8152600401610fac9291906117ac565b6020604051808303816000875af1158015610fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fef919061180d565b507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d863030858a8a8960405160240161103a9493929190612056565b6040516020818303038152906040527f47b34845000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b81526004016110d69493929190611e96565b6000604051808303816000875af11580156110f5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061111e9190611dd1565b5073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b83336040518363ffffffff1660e01b815260040161116e929190611b9a565b6060604051808303816000875af115801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b19190611a38565b50505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6111e1816111ce565b81146111ec57600080fd5b50565b6000813590506111fe816111d8565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b61122981611204565b811461123457600080fd5b50565b60008135905061124681611220565b92915050565b60007fffffffffffffffffffffffff000000000000000000000000000000000000000082169050919050565b6112818161124c565b811461128c57600080fd5b50565b60008135905061129e81611278565b92915050565b600080600080608085870312156112be576112bd6111c4565b5b60006112cc878288016111ef565b94505060206112dd87828801611237565b93505060406112ee87828801611237565b92505060606112ff8782880161128f565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113368261130b565b9050919050565b6113468161132b565b811461135157600080fd5b50565b6000813590506113638161133d565b92915050565b60008060008060808587031215611383576113826111c4565b5b600061139187828801611354565b94505060206113a28782880161128f565b93505060406113b3878288016111ef565b92505060606113c487828801611237565b91505092959194509250565b600080600080600060a086880312156113ec576113eb6111c4565b5b60006113fa88828901611354565b955050602061140b8882890161128f565b945050604061141c88828901611237565b935050606061142d88828901611237565b925050608061143e88828901611237565b9150509295509295909350565b60007fffffffffffff000000000000000000000000000000000000000000000000000082169050919050565b6114808161144b565b811461148b57600080fd5b50565b60008135905061149d81611477565b92915050565b60008060008060008060c087890312156114c0576114bf6111c4565b5b60006114ce89828a0161128f565b96505060206114df89828a016111ef565b95505060406114f089828a01611354565b945050606061150189828a01611237565b935050608061151289828a01611237565b92505060a061152389828a0161148e565b9150509295509295509295565b6000806000806080858703121561154a576115496111c4565b5b6000611558878288016111ef565b945050602061156987828801611237565b935050604061157a87828801611237565b925050606061158b8782880161148e565b91505092959194509250565b6115a0816111ce565b82525050565b6115af8161132b565b82525050565b60006040820190506115ca6000830185611597565b6115d760208301846115a6565b9392505050565b6000815190506115ed816111d8565b92915050565b600060208284031215611609576116086111c4565b5b6000611617848285016115de565b91505092915050565b6116298161124c565b82525050565b61163881611204565b82525050565b600060a0820190506116536000830188611620565b61166060208301876115a6565b61166d604083018661162f565b61167a606083018561162f565b611687608083018461162f565b9695505050505050565b6000815190506116a081611220565b92915050565b6000602082840312156116bc576116bb6111c4565b5b60006116ca84828501611691565b91505092915050565b600081600f0b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061171a826116d3565b91507fffffffffffffffffffffffffffffffff8000000000000000000000000000000082141561174d5761174c6116e0565b5b816000039050919050565b611761816116d3565b82525050565b600060808201905061177c6000830187611620565b61178960208301866115a6565b6117966040830185611758565b6117a3606083018461162f565b95945050505050565b60006040820190506117c160008301856115a6565b6117ce6020830184611597565b9392505050565b60008115159050919050565b6117ea816117d5565b81146117f557600080fd5b50565b600081519050611807816117e1565b92915050565b600060208284031215611823576118226111c4565b5b6000611831848285016117f8565b91505092915050565b600060208201905061184f60008301846115a6565b92915050565b600060808201905061186a6000830187611620565b61187760208301866115a6565b6118846040830185611758565b6118916060830184611758565b95945050505050565b6000819050919050565b60006118bf6118ba6118b584611204565b61189a565b6111ce565b9050919050565b6118cf816118a4565b82525050565b60006040820190506118ea60008301856115a6565b6118f760208301846118c6565b9392505050565b60006020820190506119136000830184611620565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119678261191e565b810181811067ffffffffffffffff821117156119865761198561192f565b5b80604052505050565b60006119996111ba565b90506119a5828261195e565b919050565b6000815190506119b98161133d565b92915050565b6000815190506119ce81611477565b92915050565b6000606082840312156119ea576119e9611919565b5b6119f4606061198f565b90506000611a04848285016119aa565b6000830152506020611a18848285016119bf565b6020830152506040611a2c848285016119bf565b60408301525092915050565b600060608284031215611a4e57611a4d6111c4565b5b6000611a5c848285016119d4565b91505092915050565b611a6e8161144b565b82525050565b6000602082019050611a896000830184611a65565b92915050565b6000611a9a8261132b565b9050919050565b611aaa81611a8f565b8114611ab557600080fd5b50565b600081519050611ac781611aa1565b92915050565b600063ffffffff82169050919050565b611ae681611acd565b8114611af157600080fd5b50565b600081519050611b0381611add565b92915050565b600060608284031215611b1f57611b1e611919565b5b611b29606061198f565b90506000611b3984828501611ab8565b6000830152506020611b4d848285016119bf565b6020830152506040611b6184828501611af4565b60408301525092915050565b600060608284031215611b8357611b826111c4565b5b6000611b9184828501611b09565b91505092915050565b6000604082019050611baf6000830185611620565b611bbc60208301846115a6565b9392505050565b6000608082019050611bd860008301876115a6565b611be56020830186611620565b611bf26040830185611597565b611bff606083018461162f565b95945050505050565b600082825260208201905092915050565b50565b6000611c29600083611c08565b9150611c3482611c19565b600082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c79578082015181840152602081019050611c5e565b83811115611c88576000848401525b50505050565b6000611c9982611c3f565b611ca38185611c4a565b9350611cb3818560208601611c5b565b611cbc8161191e565b840191505092915050565b600060a082019050611cdc6000830187611597565b611ce960208301866115a6565b611cf660408301856115a6565b8181036060830152611d0781611c1c565b90508181036080830152611d1b8184611c8e565b905095945050505050565b600080fd5b600080fd5b600067ffffffffffffffff821115611d4b57611d4a61192f565b5b611d548261191e565b9050602081019050919050565b6000611d74611d6f84611d30565b61198f565b905082815260208101848484011115611d9057611d8f611d2b565b5b611d9b848285611c5b565b509392505050565b600082601f830112611db857611db7611d26565b5b8151611dc8848260208601611d61565b91505092915050565b600060208284031215611de757611de66111c4565b5b600082015167ffffffffffffffff811115611e0557611e046111c9565b5b611e1184828501611da3565b91505092915050565b6000604082019050611e2f6000830185611a65565b611e3c602083018461162f565b9392505050565b600060a082019050611e5860008301886115a6565b611e656020830187611620565b611e72604083018661162f565b611e7f606083018561162f565b611e8c608083018461162f565b9695505050505050565b600060a082019050611eab60008301876118c6565b611eb860208301866115a6565b611ec560408301856115a6565b8181036060830152611ed681611c1c565b90508181036080830152611eea8184611c8e565b905095945050505050565b6000606082019050611f0a60008301866115a6565b611f1760208301856115a6565b611f246040830184611597565b949350505050565b6000819050919050565b600060ff82169050919050565b6000611f5e611f59611f5484611f2c565b61189a565b611f36565b9050919050565b611f6e81611f43565b82525050565b6000606082019050611f896000830186611a65565b611f966020830185611a65565b611fa36040830184611f65565b949350505050565b600081519050611fba81611278565b92915050565b60008060808385031215611fd757611fd66111c4565b5b6000611fe585828601611fab565b9250506020611ff6858286016119d4565b9150509250929050565b600061200b826111ce565b9150612016836111ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561204b5761204a6116e0565b5b828201905092915050565b600060808201905061206b6000830187611597565b612078602083018661162f565b612085604083018561162f565b6120926060830184611620565b9594505050505056fea2646970667358221220175965c15c0a8bb8a211ff85bded323029e7eed1cb7794ad2c549f9777c4120e64736f6c634300080b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806347b348451461005c57806350bf94d7146100785780636e6bf1f414610094578063d238b433146100b0578063fcd064cf146100cc575b600080fd5b610076600480360381019061007191906112a4565b6100e8565b005b610092600480360381019061008d9190611369565b610246565b005b6100ae60048036038101906100a991906113d0565b610539565b005b6100ca60048036038101906100c591906114a3565b610836565b005b6100e660048036038101906100e19190611530565b610def565b005b600073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16636e553f658673403ae7384e89b086ea2935d5fafed07465242b386040518363ffffffff1660e01b815260040161014d9291906115b5565b6020604051808303816000875af115801561016c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019091906115f3565b9050736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663adf8d478837332e4c68b3a4a813b710595aeba7f6b7604ab9c158488886040518663ffffffff1660e01b81526004016101fb95949392919061163e565b6020604051808303816000875af115801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906116a6565b505050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff166324bd54b48430846102829061170f565b866040518563ffffffff1660e01b81526004016102a29493929190611767565b6020604051808303816000875af11580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e591906116a6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b91906115f3565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15846040518363ffffffff1660e01b81526004016103cf9291906117ac565b6020604051808303816000875af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610412919061180d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8573a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610491919061183a565b602060405180830381865afa1580156104ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d291906115f3565b6040518363ffffffff1660e01b81526004016104ef9291906117ac565b6020604051808303816000875af115801561050e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610532919061180d565b5050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663441c70f78530856105759061170f565b8561057f9061170f565b6040518563ffffffff1660e01b815260040161059e9493929190611855565b6020604051808303816000875af11580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e191906116a6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906115f3565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15856040518363ffffffff1660e01b81526004016106cb9291906118d5565b6020604051808303816000875af11580156106ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070e919061180d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161078d919061183a565b602060405180830381865afa1580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce91906115f3565b6040518363ffffffff1660e01b81526004016107eb9291906117ac565b6020604051808303816000875af115801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e919061180d565b505050505050565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff16631e81f829886040518263ffffffff1660e01b815260040161088591906118fe565b606060405180830381865afa1580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611a38565b9050600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff166355d03e34846040518263ffffffff1660e01b81526004016109179190611a74565b606060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190611b6d565b90503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161461099657600080fd5b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89306040518363ffffffff1660e01b81526004016109e5929190611b9a565b6060604051808303816000875af1158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a289190611a38565b50806040015163ffffffff164263ffffffff161015610b75577332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d888830338d8d8c604051602401610a8b9493929190611bc3565b6040516020818303038152906040527f50bf94d7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610b279493929190611cc7565b6000604051808303816000875af1158015610b46573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b6f9190611dd1565b50610d52565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663550b025385876040518363ffffffff1660e01b8152600401610bc6929190611e1a565b6020604051808303816000875af1158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0991906116a6565b90507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d82730d9a1a773be5a83eebda23bf98efb8585c3ae4f430338e878d8d604051602401610c6b959493929190611e43565b6040516020818303038152906040527f6e6bf1f4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610d079493929190611e96565b6000604051808303816000875af1158015610d26573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d4f9190611dd1565b50505b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89336040518363ffffffff1660e01b8152600401610da1929190611b9a565b6060604051808303816000875af1158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de49190611a38565b505050505050505050565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401610e4093929190611ef5565b6020604051808303816000875af1158015610e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e83919061180d565b506000736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff16636d4756d7836530390000000060d01b60006040518463ffffffff1660e01b8152600401610ee193929190611f74565b6080604051808303816000875af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190611fc0565b5090506000846fffffffffffffffffffffffffffffffff1686610f479190612000565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663095ea7b373a354f35829ae975e850e23e9615b11da1b3dc4de836040518363ffffffff1660e01b8152600401610fac9291906117ac565b6020604051808303816000875af1158015610fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fef919061180d565b507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d863030858a8a8960405160240161103a9493929190612056565b6040516020818303038152906040527f47b34845000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b81526004016110d69493929190611e96565b6000604051808303816000875af11580156110f5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061111e9190611dd1565b5073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b83336040518363ffffffff1660e01b815260040161116e929190611b9a565b6060604051808303816000875af115801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b19190611a38565b50505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6111e1816111ce565b81146111ec57600080fd5b50565b6000813590506111fe816111d8565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b61122981611204565b811461123457600080fd5b50565b60008135905061124681611220565b92915050565b60007fffffffffffffffffffffffff000000000000000000000000000000000000000082169050919050565b6112818161124c565b811461128c57600080fd5b50565b60008135905061129e81611278565b92915050565b600080600080608085870312156112be576112bd6111c4565b5b60006112cc878288016111ef565b94505060206112dd87828801611237565b93505060406112ee87828801611237565b92505060606112ff8782880161128f565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113368261130b565b9050919050565b6113468161132b565b811461135157600080fd5b50565b6000813590506113638161133d565b92915050565b60008060008060808587031215611383576113826111c4565b5b600061139187828801611354565b94505060206113a28782880161128f565b93505060406113b3878288016111ef565b92505060606113c487828801611237565b91505092959194509250565b600080600080600060a086880312156113ec576113eb6111c4565b5b60006113fa88828901611354565b955050602061140b8882890161128f565b945050604061141c88828901611237565b935050606061142d88828901611237565b925050608061143e88828901611237565b9150509295509295909350565b60007fffffffffffff000000000000000000000000000000000000000000000000000082169050919050565b6114808161144b565b811461148b57600080fd5b50565b60008135905061149d81611477565b92915050565b60008060008060008060c087890312156114c0576114bf6111c4565b5b60006114ce89828a0161128f565b96505060206114df89828a016111ef565b95505060406114f089828a01611354565b945050606061150189828a01611237565b935050608061151289828a01611237565b92505060a061152389828a0161148e565b9150509295509295509295565b6000806000806080858703121561154a576115496111c4565b5b6000611558878288016111ef565b945050602061156987828801611237565b935050604061157a87828801611237565b925050606061158b8782880161148e565b91505092959194509250565b6115a0816111ce565b82525050565b6115af8161132b565b82525050565b60006040820190506115ca6000830185611597565b6115d760208301846115a6565b9392505050565b6000815190506115ed816111d8565b92915050565b600060208284031215611609576116086111c4565b5b6000611617848285016115de565b91505092915050565b6116298161124c565b82525050565b61163881611204565b82525050565b600060a0820190506116536000830188611620565b61166060208301876115a6565b61166d604083018661162f565b61167a606083018561162f565b611687608083018461162f565b9695505050505050565b6000815190506116a081611220565b92915050565b6000602082840312156116bc576116bb6111c4565b5b60006116ca84828501611691565b91505092915050565b600081600f0b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061171a826116d3565b91507fffffffffffffffffffffffffffffffff8000000000000000000000000000000082141561174d5761174c6116e0565b5b816000039050919050565b611761816116d3565b82525050565b600060808201905061177c6000830187611620565b61178960208301866115a6565b6117966040830185611758565b6117a3606083018461162f565b95945050505050565b60006040820190506117c160008301856115a6565b6117ce6020830184611597565b9392505050565b60008115159050919050565b6117ea816117d5565b81146117f557600080fd5b50565b600081519050611807816117e1565b92915050565b600060208284031215611823576118226111c4565b5b6000611831848285016117f8565b91505092915050565b600060208201905061184f60008301846115a6565b92915050565b600060808201905061186a6000830187611620565b61187760208301866115a6565b6118846040830185611758565b6118916060830184611758565b95945050505050565b6000819050919050565b60006118bf6118ba6118b584611204565b61189a565b6111ce565b9050919050565b6118cf816118a4565b82525050565b60006040820190506118ea60008301856115a6565b6118f760208301846118c6565b9392505050565b60006020820190506119136000830184611620565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119678261191e565b810181811067ffffffffffffffff821117156119865761198561192f565b5b80604052505050565b60006119996111ba565b90506119a5828261195e565b919050565b6000815190506119b98161133d565b92915050565b6000815190506119ce81611477565b92915050565b6000606082840312156119ea576119e9611919565b5b6119f4606061198f565b90506000611a04848285016119aa565b6000830152506020611a18848285016119bf565b6020830152506040611a2c848285016119bf565b60408301525092915050565b600060608284031215611a4e57611a4d6111c4565b5b6000611a5c848285016119d4565b91505092915050565b611a6e8161144b565b82525050565b6000602082019050611a896000830184611a65565b92915050565b6000611a9a8261132b565b9050919050565b611aaa81611a8f565b8114611ab557600080fd5b50565b600081519050611ac781611aa1565b92915050565b600063ffffffff82169050919050565b611ae681611acd565b8114611af157600080fd5b50565b600081519050611b0381611add565b92915050565b600060608284031215611b1f57611b1e611919565b5b611b29606061198f565b90506000611b3984828501611ab8565b6000830152506020611b4d848285016119bf565b6020830152506040611b6184828501611af4565b60408301525092915050565b600060608284031215611b8357611b826111c4565b5b6000611b9184828501611b09565b91505092915050565b6000604082019050611baf6000830185611620565b611bbc60208301846115a6565b9392505050565b6000608082019050611bd860008301876115a6565b611be56020830186611620565b611bf26040830185611597565b611bff606083018461162f565b95945050505050565b600082825260208201905092915050565b50565b6000611c29600083611c08565b9150611c3482611c19565b600082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c79578082015181840152602081019050611c5e565b83811115611c88576000848401525b50505050565b6000611c9982611c3f565b611ca38185611c4a565b9350611cb3818560208601611c5b565b611cbc8161191e565b840191505092915050565b600060a082019050611cdc6000830187611597565b611ce960208301866115a6565b611cf660408301856115a6565b8181036060830152611d0781611c1c565b90508181036080830152611d1b8184611c8e565b905095945050505050565b600080fd5b600080fd5b600067ffffffffffffffff821115611d4b57611d4a61192f565b5b611d548261191e565b9050602081019050919050565b6000611d74611d6f84611d30565b61198f565b905082815260208101848484011115611d9057611d8f611d2b565b5b611d9b848285611c5b565b509392505050565b600082601f830112611db857611db7611d26565b5b8151611dc8848260208601611d61565b91505092915050565b600060208284031215611de757611de66111c4565b5b600082015167ffffffffffffffff811115611e0557611e046111c9565b5b611e1184828501611da3565b91505092915050565b6000604082019050611e2f6000830185611a65565b611e3c602083018461162f565b9392505050565b600060a082019050611e5860008301886115a6565b611e656020830187611620565b611e72604083018661162f565b611e7f606083018561162f565b611e8c608083018461162f565b9695505050505050565b600060a082019050611eab60008301876118c6565b611eb860208301866115a6565b611ec560408301856115a6565b8181036060830152611ed681611c1c565b90508181036080830152611eea8184611c8e565b905095945050505050565b6000606082019050611f0a60008301866115a6565b611f1760208301856115a6565b611f246040830184611597565b949350505050565b6000819050919050565b600060ff82169050919050565b6000611f5e611f59611f5484611f2c565b61189a565b611f36565b9050919050565b611f6e81611f43565b82525050565b6000606082019050611f896000830186611a65565b611f966020830185611a65565b611fa36040830184611f65565b949350505050565b600081519050611fba81611278565b92915050565b60008060808385031215611fd757611fd66111c4565b5b6000611fe585828601611fab565b9250506020611ff6858286016119d4565b9150509250929050565b600061200b826111ce565b9150612016836111ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561204b5761204a6116e0565b5b828201905092915050565b600060808201905061206b6000830187611597565b612078602083018661162f565b612085604083018561162f565b6120926060830184611620565b9594505050505056fea2646970667358221220175965c15c0a8bb8a211ff85bded323029e7eed1cb7794ad2c549f9777c4120e64736f6c634300080b0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"},{\"internalType\":\"uint128\",\"name\":\"base\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"ink\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"art\",\"type\":\"uint128\"}],\"name\":\"doClose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"investAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"borrowAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"maxFyAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"}],\"name\":\"doInvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"},{\"internalType\":\"uint256\",\"name\":\"borrowAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"ink\",\"type\":\"uint128\"}],\"name\":\"doRepay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"borrowAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"maxFyAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes6\",\"name\":\"seriesId\",\"type\":\"bytes6\"}],\"name\":\"invest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes12\",\"name\":\"vaultId\",\"type\":\"bytes12\"},{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"ink\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"art\",\"type\":\"uint128\"},{\"internalType\":\"bytes6\",\"name\":\"seriesId\",\"type\":\"bytes6\"}],\"name\":\"unwind\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"YieldLever is not expected to hold any USDC\"},\"doClose(address,bytes12,uint128,uint128,uint128)\":{\"details\":\"Calling this function outside a flash loan achieves nothing, since the contract needs to own the vault it's getting collateral from.\",\"params\":{\"base\":\"- The size of the debt in USDC.\",\"owner\":\"- The address of the owner. This is the address that will be used to obtain certain parameters, and it is also the destination for the profit that was obtained.\",\"vaultId\":\"- The vault id to repay.\"}},\"doInvest(uint256,uint128,uint128,bytes12)\":{\"details\":\"Calling this function outside a flash loan achieves nothing, since the contract needs to have assets and own the vault it's borrowing from.\",\"params\":{\"borrowAmount\":\"- The amount borrowed using a flash loan.\",\"maxFyAmount\":\"- The maximum amount of fyTokens to sell.\",\"vaultId\":\"- The vault id to invest in.\"}},\"doRepay(address,bytes12,uint256,uint128)\":{\"details\":\"Calling this function outside a flash loan achieves nothing, since the contract needs to own the vault it's getting collateral from.\",\"params\":{\"owner\":\"- The address of the owner. This is the address that will be used to obtain certain parameters, and it is also the destination for the profit that was obtained.\",\"vaultId\":\"- The vault id to repay.\"}},\"invest(uint256,uint128,uint128,bytes6)\":{\"params\":{\"baseAmount\":\"- The amount to invest from your own funds.\",\"borrowAmount\":\"- The extra amount to borrow. This is immediately repaid, so setting this to 3 times baseAmount will incur a debt of 75% of the collateral.\",\"maxFyAmount\":\"- The maximum amount of fyTokens to sell. Should be enough to cover the flash loan.\",\"seriesId\":\"- The series Id to invest in. For example, 0x303230360000 for FYUSDC06LP.\"}},\"unwind(bytes12,uint256,address,uint128,uint128,bytes6)\":{\"params\":{\"art\":\"- The amount of debt taken from the vault.\",\"ink\":\"- The amount of collateral in the vault. Together with art, this value can be obtained using `cauldron.balances(vaultId);`, which will return an object containing both `art` and `ink`.\",\"maxAmount\":\"- The maximum amount of USDC to borrow. If past maturity, this parameter is unused as the amount can be determined precisely.\",\"pool\":\"- The pool to deposit USDC into. This can be obtained via the seriesId, and calling `address pool = ladle.pools(seriesId);`\",\"vaultId\":\"- The id of the vault that should be emptied.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"doClose(address,bytes12,uint128,uint128,uint128)\":{\"notice\":\"Close a vault that has already reached its expiration date.\"},\"doInvest(uint256,uint128,uint128,bytes12)\":{\"notice\":\"This function is called inside the flash loan and handles the actual investment.\"},\"doRepay(address,bytes12,uint256,uint128)\":{\"notice\":\"Repay a vault after having borrowed a suitable amount using a flash loan. Will only succeed if the pool hasn't reached its expiration date yet.\"},\"invest(uint256,uint128,uint128,bytes6)\":{\"notice\":\"Invest `baseAmount` and borrow an additional `borrowAmount`. Use this to obtain a maximum of `maxFyAmount` to repay the flash loan. The end goal is to have a debt of `borrowAmount`, but earn interest on the entire collateral, including the borrowed part.\"},\"unwind(bytes12,uint256,address,uint128,uint128,bytes6)\":{\"notice\":\"Empty a vault.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/YieldLever.sol\":\"YieldLever\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/YieldLever.sol\":{\"keccak256\":\"0x37602cd09a5f4438cdb4a9f7735cf106b4895bdb96ee50d13f771643436c155f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d70e72b8c79065eb17a8b6649388c8a9550fcd307ab9a2f77b40cd49b6f2939\",\"dweb:/ipfs/QmTXFTTC9DsbJHVcyaTxpuGjxqnVKvxVmvrURQpX8ENB4W\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663095ea7b373a354f35829ae975e850e23e9615b11da1b3dc4de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200009792919062000144565b6020604051808303816000875af1158015620000b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000dd9190620001b3565b50620001e5565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200011182620000e4565b9050919050565b620001238162000104565b82525050565b6000819050919050565b6200013e8162000129565b82525050565b60006040820190506200015b600083018562000118565b6200016a602083018462000133565b9392505050565b600080fd5b60008115159050919050565b6200018d8162000176565b81146200019957600080fd5b50565b600081519050620001ad8162000182565b92915050565b600060208284031215620001cc57620001cb62000171565b5b6000620001dc848285016200019c565b91505092915050565b61212180620001f56000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806347b348451461005c57806350bf94d7146100785780636e6bf1f414610094578063d238b433146100b0578063fcd064cf146100cc575b600080fd5b610076600480360381019061007191906112f4565b6100e8565b005b610092600480360381019061008d91906113b9565b610246565b005b6100ae60048036038101906100a99190611420565b610539565b005b6100ca60048036038101906100c591906114f3565b610836565b005b6100e660048036038101906100e19190611580565b610def565b005b600073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16636e553f658673403ae7384e89b086ea2935d5fafed07465242b386040518363ffffffff1660e01b815260040161014d929190611605565b6020604051808303816000875af115801561016c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101909190611643565b9050736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663adf8d478837332e4c68b3a4a813b710595aeba7f6b7604ab9c158488886040518663ffffffff1660e01b81526004016101fb95949392919061168e565b6020604051808303816000875af115801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906116f6565b505050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff166324bd54b48430846102829061175f565b866040518563ffffffff1660e01b81526004016102a294939291906117b7565b6020604051808303816000875af11580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e591906116f6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190611643565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15846040518363ffffffff1660e01b81526004016103cf9291906117fc565b6020604051808303816000875af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610412919061185d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8573a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610491919061188a565b602060405180830381865afa1580156104ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d29190611643565b6040518363ffffffff1660e01b81526004016104ef9291906117fc565b6020604051808303816000875af115801561050e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610532919061185d565b5050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663441c70f78530856105759061175f565b8561057f9061175f565b6040518563ffffffff1660e01b815260040161059e94939291906118a5565b6020604051808303816000875af11580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e191906116f6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106679190611643565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15856040518363ffffffff1660e01b81526004016106cb929190611925565b6020604051808303816000875af11580156106ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070e919061185d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161078d919061188a565b602060405180830381865afa1580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce9190611643565b6040518363ffffffff1660e01b81526004016107eb9291906117fc565b6020604051808303816000875af115801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e919061185d565b505050505050565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff16631e81f829886040518263ffffffff1660e01b8152600401610885919061194e565b606060405180830381865afa1580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611a88565b9050600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff166355d03e34846040518263ffffffff1660e01b81526004016109179190611ac4565b606060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190611bbd565b90503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161461099657600080fd5b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89306040518363ffffffff1660e01b81526004016109e5929190611bea565b6060604051808303816000875af1158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a289190611a88565b50806040015163ffffffff164263ffffffff161015610b75577332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d888830338d8d8c604051602401610a8b9493929190611c13565b6040516020818303038152906040527f50bf94d7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610b279493929190611d17565b6000604051808303816000875af1158015610b46573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b6f9190611e21565b50610d52565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663550b025385876040518363ffffffff1660e01b8152600401610bc6929190611e6a565b6020604051808303816000875af1158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0991906116f6565b90507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d82730d9a1a773be5a83eebda23bf98efb8585c3ae4f430338e878d8d604051602401610c6b959493929190611e93565b6040516020818303038152906040527f6e6bf1f4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610d079493929190611ee6565b6000604051808303816000875af1158015610d26573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d4f9190611e21565b50505b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89336040518363ffffffff1660e01b8152600401610da1929190611bea565b6060604051808303816000875af1158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de49190611a88565b505050505050505050565b7f303200000000000000000000000000000000000000000000000000000000000079ffffffffffffffffffffffffffffffffffffffffffffffffffff191673c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff166355d03e34836040518263ffffffff1660e01b8152600401610e7a9190611ac4565b606060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611bbd565b6020015179ffffffffffffffffffffffffffffffffffffffffffffffffffff191614610ee657600080fd5b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401610f3793929190611f45565b6020604051808303816000875af1158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a919061185d565b506000736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff16636d4756d7836530390000000060d01b60006040518463ffffffff1660e01b8152600401610fd893929190611fc4565b6080604051808303816000875af1158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190612010565b5090506000846fffffffffffffffffffffffffffffffff168661103e9190612050565b90507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d863030858a8a8960405160240161108a94939291906120a6565b6040516020818303038152906040527f47b34845000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b81526004016111269493929190611ee6565b6000604051808303816000875af1158015611145573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061116e9190611e21565b5073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b83336040518363ffffffff1660e01b81526004016111be929190611bea565b6060604051808303816000875af11580156111dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112019190611a88565b50505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6112318161121e565b811461123c57600080fd5b50565b60008135905061124e81611228565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b61127981611254565b811461128457600080fd5b50565b60008135905061129681611270565b92915050565b60007fffffffffffffffffffffffff000000000000000000000000000000000000000082169050919050565b6112d18161129c565b81146112dc57600080fd5b50565b6000813590506112ee816112c8565b92915050565b6000806000806080858703121561130e5761130d611214565b5b600061131c8782880161123f565b945050602061132d87828801611287565b935050604061133e87828801611287565b925050606061134f878288016112df565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113868261135b565b9050919050565b6113968161137b565b81146113a157600080fd5b50565b6000813590506113b38161138d565b92915050565b600080600080608085870312156113d3576113d2611214565b5b60006113e1878288016113a4565b94505060206113f2878288016112df565b93505060406114038782880161123f565b925050606061141487828801611287565b91505092959194509250565b600080600080600060a0868803121561143c5761143b611214565b5b600061144a888289016113a4565b955050602061145b888289016112df565b945050604061146c88828901611287565b935050606061147d88828901611287565b925050608061148e88828901611287565b9150509295509295909350565b60007fffffffffffff000000000000000000000000000000000000000000000000000082169050919050565b6114d08161149b565b81146114db57600080fd5b50565b6000813590506114ed816114c7565b92915050565b60008060008060008060c087890312156115105761150f611214565b5b600061151e89828a016112df565b965050602061152f89828a0161123f565b955050604061154089828a016113a4565b945050606061155189828a01611287565b935050608061156289828a01611287565b92505060a061157389828a016114de565b9150509295509295509295565b6000806000806080858703121561159a57611599611214565b5b60006115a88782880161123f565b94505060206115b987828801611287565b93505060406115ca87828801611287565b92505060606115db878288016114de565b91505092959194509250565b6115f08161121e565b82525050565b6115ff8161137b565b82525050565b600060408201905061161a60008301856115e7565b61162760208301846115f6565b9392505050565b60008151905061163d81611228565b92915050565b60006020828403121561165957611658611214565b5b60006116678482850161162e565b91505092915050565b6116798161129c565b82525050565b61168881611254565b82525050565b600060a0820190506116a36000830188611670565b6116b060208301876115f6565b6116bd604083018661167f565b6116ca606083018561167f565b6116d7608083018461167f565b9695505050505050565b6000815190506116f081611270565b92915050565b60006020828403121561170c5761170b611214565b5b600061171a848285016116e1565b91505092915050565b600081600f0b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061176a82611723565b91507fffffffffffffffffffffffffffffffff8000000000000000000000000000000082141561179d5761179c611730565b5b816000039050919050565b6117b181611723565b82525050565b60006080820190506117cc6000830187611670565b6117d960208301866115f6565b6117e660408301856117a8565b6117f3606083018461167f565b95945050505050565b600060408201905061181160008301856115f6565b61181e60208301846115e7565b9392505050565b60008115159050919050565b61183a81611825565b811461184557600080fd5b50565b60008151905061185781611831565b92915050565b60006020828403121561187357611872611214565b5b600061188184828501611848565b91505092915050565b600060208201905061189f60008301846115f6565b92915050565b60006080820190506118ba6000830187611670565b6118c760208301866115f6565b6118d460408301856117a8565b6118e160608301846117a8565b95945050505050565b6000819050919050565b600061190f61190a61190584611254565b6118ea565b61121e565b9050919050565b61191f816118f4565b82525050565b600060408201905061193a60008301856115f6565b6119476020830184611916565b9392505050565b60006020820190506119636000830184611670565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119b78261196e565b810181811067ffffffffffffffff821117156119d6576119d561197f565b5b80604052505050565b60006119e961120a565b90506119f582826119ae565b919050565b600081519050611a098161138d565b92915050565b600081519050611a1e816114c7565b92915050565b600060608284031215611a3a57611a39611969565b5b611a4460606119df565b90506000611a54848285016119fa565b6000830152506020611a6884828501611a0f565b6020830152506040611a7c84828501611a0f565b60408301525092915050565b600060608284031215611a9e57611a9d611214565b5b6000611aac84828501611a24565b91505092915050565b611abe8161149b565b82525050565b6000602082019050611ad96000830184611ab5565b92915050565b6000611aea8261137b565b9050919050565b611afa81611adf565b8114611b0557600080fd5b50565b600081519050611b1781611af1565b92915050565b600063ffffffff82169050919050565b611b3681611b1d565b8114611b4157600080fd5b50565b600081519050611b5381611b2d565b92915050565b600060608284031215611b6f57611b6e611969565b5b611b7960606119df565b90506000611b8984828501611b08565b6000830152506020611b9d84828501611a0f565b6020830152506040611bb184828501611b44565b60408301525092915050565b600060608284031215611bd357611bd2611214565b5b6000611be184828501611b59565b91505092915050565b6000604082019050611bff6000830185611670565b611c0c60208301846115f6565b9392505050565b6000608082019050611c2860008301876115f6565b611c356020830186611670565b611c4260408301856115e7565b611c4f606083018461167f565b95945050505050565b600082825260208201905092915050565b50565b6000611c79600083611c58565b9150611c8482611c69565b600082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc9578082015181840152602081019050611cae565b83811115611cd8576000848401525b50505050565b6000611ce982611c8f565b611cf38185611c9a565b9350611d03818560208601611cab565b611d0c8161196e565b840191505092915050565b600060a082019050611d2c60008301876115e7565b611d3960208301866115f6565b611d4660408301856115f6565b8181036060830152611d5781611c6c565b90508181036080830152611d6b8184611cde565b905095945050505050565b600080fd5b600080fd5b600067ffffffffffffffff821115611d9b57611d9a61197f565b5b611da48261196e565b9050602081019050919050565b6000611dc4611dbf84611d80565b6119df565b905082815260208101848484011115611de057611ddf611d7b565b5b611deb848285611cab565b509392505050565b600082601f830112611e0857611e07611d76565b5b8151611e18848260208601611db1565b91505092915050565b600060208284031215611e3757611e36611214565b5b600082015167ffffffffffffffff811115611e5557611e54611219565b5b611e6184828501611df3565b91505092915050565b6000604082019050611e7f6000830185611ab5565b611e8c602083018461167f565b9392505050565b600060a082019050611ea860008301886115f6565b611eb56020830187611670565b611ec2604083018661167f565b611ecf606083018561167f565b611edc608083018461167f565b9695505050505050565b600060a082019050611efb6000830187611916565b611f0860208301866115f6565b611f1560408301856115f6565b8181036060830152611f2681611c6c565b90508181036080830152611f3a8184611cde565b905095945050505050565b6000606082019050611f5a60008301866115f6565b611f6760208301856115f6565b611f7460408301846115e7565b949350505050565b6000819050919050565b600060ff82169050919050565b6000611fae611fa9611fa484611f7c565b6118ea565b611f86565b9050919050565b611fbe81611f93565b82525050565b6000606082019050611fd96000830186611ab5565b611fe66020830185611ab5565b611ff36040830184611fb5565b949350505050565b60008151905061200a816112c8565b92915050565b6000806080838503121561202757612026611214565b5b600061203585828601611ffb565b925050602061204685828601611a24565b9150509250929050565b600061205b8261121e565b91506120668361121e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561209b5761209a611730565b5b828201905092915050565b60006080820190506120bb60008301876115e7565b6120c8602083018661167f565b6120d5604083018561167f565b6120e26060830184611670565b9594505050505056fea26469706673582212208812e99ba678252e2cc3d24a4e69e894b2fbe437d084a25fa7d75996e86035e864736f6c634300080b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806347b348451461005c57806350bf94d7146100785780636e6bf1f414610094578063d238b433146100b0578063fcd064cf146100cc575b600080fd5b610076600480360381019061007191906112f4565b6100e8565b005b610092600480360381019061008d91906113b9565b610246565b005b6100ae60048036038101906100a99190611420565b610539565b005b6100ca60048036038101906100c591906114f3565b610836565b005b6100e660048036038101906100e19190611580565b610def565b005b600073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16636e553f658673403ae7384e89b086ea2935d5fafed07465242b386040518363ffffffff1660e01b815260040161014d929190611605565b6020604051808303816000875af115801561016c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101909190611643565b9050736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663adf8d478837332e4c68b3a4a813b710595aeba7f6b7604ab9c158488886040518663ffffffff1660e01b81526004016101fb95949392919061168e565b6020604051808303816000875af115801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906116f6565b505050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff166324bd54b48430846102829061175f565b866040518563ffffffff1660e01b81526004016102a294939291906117b7565b6020604051808303816000875af11580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e591906116f6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190611643565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15846040518363ffffffff1660e01b81526004016103cf9291906117fc565b6020604051808303816000875af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610412919061185d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8573a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610491919061188a565b602060405180830381865afa1580156104ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d29190611643565b6040518363ffffffff1660e01b81526004016104ef9291906117fc565b6020604051808303816000875af115801561050e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610532919061185d565b5050505050565b736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff1663441c70f78530856105759061175f565b8561057f9061175f565b6040518563ffffffff1660e01b815260040161059e94939291906118a5565b6020604051808303816000875af11580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e191906116f6565b5073a354f35829ae975e850e23e9615b11da1b3dc4de73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106679190611643565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7332e4c68b3a4a813b710595aeba7f6b7604ab9c15856040518363ffffffff1660e01b81526004016106cb929190611925565b6020604051808303816000875af11580156106ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070e919061185d565b5073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161078d919061188a565b602060405180830381865afa1580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce9190611643565b6040518363ffffffff1660e01b81526004016107eb9291906117fc565b6020604051808303816000875af115801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e919061185d565b505050505050565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff16631e81f829886040518263ffffffff1660e01b8152600401610885919061194e565b606060405180830381865afa1580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611a88565b9050600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff166355d03e34846040518263ffffffff1660e01b81526004016109179190611ac4565b606060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190611bbd565b90503373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161461099657600080fd5b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89306040518363ffffffff1660e01b81526004016109e5929190611bea565b6060604051808303816000875af1158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a289190611a88565b50806040015163ffffffff164263ffffffff161015610b75577332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d888830338d8d8c604051602401610a8b9493929190611c13565b6040516020818303038152906040527f50bf94d7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610b279493929190611d17565b6000604051808303816000875af1158015610b46573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b6f9190611e21565b50610d52565b600073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663550b025385876040518363ffffffff1660e01b8152600401610bc6929190611e6a565b6020604051808303816000875af1158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0991906116f6565b90507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d82730d9a1a773be5a83eebda23bf98efb8585c3ae4f430338e878d8d604051602401610c6b959493929190611e93565b6040516020818303038152906040527f6e6bf1f4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b8152600401610d079493929190611ee6565b6000604051808303816000875af1158015610d26573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d4f9190611e21565b50505b73c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b89336040518363ffffffff1660e01b8152600401610da1929190611bea565b6060604051808303816000875af1158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de49190611a88565b505050505050505050565b7f303200000000000000000000000000000000000000000000000000000000000079ffffffffffffffffffffffffffffffffffffffffffffffffffff191673c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff166355d03e34836040518263ffffffff1660e01b8152600401610e7a9190611ac4565b606060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611bbd565b6020015179ffffffffffffffffffffffffffffffffffffffffffffffffffff191614610ee657600080fd5b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401610f3793929190611f45565b6020604051808303816000875af1158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a919061185d565b506000736cb18ff2a33e981d1e38a663ca056c0a5265066a73ffffffffffffffffffffffffffffffffffffffff16636d4756d7836530390000000060d01b60006040518463ffffffff1660e01b8152600401610fd893929190611fc4565b6080604051808303816000875af1158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190612010565b5090506000846fffffffffffffffffffffffffffffffff168661103e9190612050565b90507332e4c68b3a4a813b710595aeba7f6b7604ab9c1573ffffffffffffffffffffffffffffffffffffffff1663c5bf0e9d863030858a8a8960405160240161108a94939291906120a6565b6040516020818303038152906040527f47b34845000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518563ffffffff1660e01b81526004016111269493929190611ee6565b6000604051808303816000875af1158015611145573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061116e9190611e21565b5073c88191f8cb8e6d4a668b047c1c8503432c3ca86773ffffffffffffffffffffffffffffffffffffffff1663798a828b83336040518363ffffffff1660e01b81526004016111be929190611bea565b6060604051808303816000875af11580156111dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112019190611a88565b50505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6112318161121e565b811461123c57600080fd5b50565b60008135905061124e81611228565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b61127981611254565b811461128457600080fd5b50565b60008135905061129681611270565b92915050565b60007fffffffffffffffffffffffff000000000000000000000000000000000000000082169050919050565b6112d18161129c565b81146112dc57600080fd5b50565b6000813590506112ee816112c8565b92915050565b6000806000806080858703121561130e5761130d611214565b5b600061131c8782880161123f565b945050602061132d87828801611287565b935050604061133e87828801611287565b925050606061134f878288016112df565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113868261135b565b9050919050565b6113968161137b565b81146113a157600080fd5b50565b6000813590506113b38161138d565b92915050565b600080600080608085870312156113d3576113d2611214565b5b60006113e1878288016113a4565b94505060206113f2878288016112df565b93505060406114038782880161123f565b925050606061141487828801611287565b91505092959194509250565b600080600080600060a0868803121561143c5761143b611214565b5b600061144a888289016113a4565b955050602061145b888289016112df565b945050604061146c88828901611287565b935050606061147d88828901611287565b925050608061148e88828901611287565b9150509295509295909350565b60007fffffffffffff000000000000000000000000000000000000000000000000000082169050919050565b6114d08161149b565b81146114db57600080fd5b50565b6000813590506114ed816114c7565b92915050565b60008060008060008060c087890312156115105761150f611214565b5b600061151e89828a016112df565b965050602061152f89828a0161123f565b955050604061154089828a016113a4565b945050606061155189828a01611287565b935050608061156289828a01611287565b92505060a061157389828a016114de565b9150509295509295509295565b6000806000806080858703121561159a57611599611214565b5b60006115a88782880161123f565b94505060206115b987828801611287565b93505060406115ca87828801611287565b92505060606115db878288016114de565b91505092959194509250565b6115f08161121e565b82525050565b6115ff8161137b565b82525050565b600060408201905061161a60008301856115e7565b61162760208301846115f6565b9392505050565b60008151905061163d81611228565b92915050565b60006020828403121561165957611658611214565b5b60006116678482850161162e565b91505092915050565b6116798161129c565b82525050565b61168881611254565b82525050565b600060a0820190506116a36000830188611670565b6116b060208301876115f6565b6116bd604083018661167f565b6116ca606083018561167f565b6116d7608083018461167f565b9695505050505050565b6000815190506116f081611270565b92915050565b60006020828403121561170c5761170b611214565b5b600061171a848285016116e1565b91505092915050565b600081600f0b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061176a82611723565b91507fffffffffffffffffffffffffffffffff8000000000000000000000000000000082141561179d5761179c611730565b5b816000039050919050565b6117b181611723565b82525050565b60006080820190506117cc6000830187611670565b6117d960208301866115f6565b6117e660408301856117a8565b6117f3606083018461167f565b95945050505050565b600060408201905061181160008301856115f6565b61181e60208301846115e7565b9392505050565b60008115159050919050565b61183a81611825565b811461184557600080fd5b50565b60008151905061185781611831565b92915050565b60006020828403121561187357611872611214565b5b600061188184828501611848565b91505092915050565b600060208201905061189f60008301846115f6565b92915050565b60006080820190506118ba6000830187611670565b6118c760208301866115f6565b6118d460408301856117a8565b6118e160608301846117a8565b95945050505050565b6000819050919050565b600061190f61190a61190584611254565b6118ea565b61121e565b9050919050565b61191f816118f4565b82525050565b600060408201905061193a60008301856115f6565b6119476020830184611916565b9392505050565b60006020820190506119636000830184611670565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119b78261196e565b810181811067ffffffffffffffff821117156119d6576119d561197f565b5b80604052505050565b60006119e961120a565b90506119f582826119ae565b919050565b600081519050611a098161138d565b92915050565b600081519050611a1e816114c7565b92915050565b600060608284031215611a3a57611a39611969565b5b611a4460606119df565b90506000611a54848285016119fa565b6000830152506020611a6884828501611a0f565b6020830152506040611a7c84828501611a0f565b60408301525092915050565b600060608284031215611a9e57611a9d611214565b5b6000611aac84828501611a24565b91505092915050565b611abe8161149b565b82525050565b6000602082019050611ad96000830184611ab5565b92915050565b6000611aea8261137b565b9050919050565b611afa81611adf565b8114611b0557600080fd5b50565b600081519050611b1781611af1565b92915050565b600063ffffffff82169050919050565b611b3681611b1d565b8114611b4157600080fd5b50565b600081519050611b5381611b2d565b92915050565b600060608284031215611b6f57611b6e611969565b5b611b7960606119df565b90506000611b8984828501611b08565b6000830152506020611b9d84828501611a0f565b6020830152506040611bb184828501611b44565b60408301525092915050565b600060608284031215611bd357611bd2611214565b5b6000611be184828501611b59565b91505092915050565b6000604082019050611bff6000830185611670565b611c0c60208301846115f6565b9392505050565b6000608082019050611c2860008301876115f6565b611c356020830186611670565b611c4260408301856115e7565b611c4f606083018461167f565b95945050505050565b600082825260208201905092915050565b50565b6000611c79600083611c58565b9150611c8482611c69565b600082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc9578082015181840152602081019050611cae565b83811115611cd8576000848401525b50505050565b6000611ce982611c8f565b611cf38185611c9a565b9350611d03818560208601611cab565b611d0c8161196e565b840191505092915050565b600060a082019050611d2c60008301876115e7565b611d3960208301866115f6565b611d4660408301856115f6565b8181036060830152611d5781611c6c565b90508181036080830152611d6b8184611cde565b905095945050505050565b600080fd5b600080fd5b600067ffffffffffffffff821115611d9b57611d9a61197f565b5b611da48261196e565b9050602081019050919050565b6000611dc4611dbf84611d80565b6119df565b905082815260208101848484011115611de057611ddf611d7b565b5b611deb848285611cab565b509392505050565b600082601f830112611e0857611e07611d76565b5b8151611e18848260208601611db1565b91505092915050565b600060208284031215611e3757611e36611214565b5b600082015167ffffffffffffffff811115611e5557611e54611219565b5b611e6184828501611df3565b91505092915050565b6000604082019050611e7f6000830185611ab5565b611e8c602083018461167f565b9392505050565b600060a082019050611ea860008301886115f6565b611eb56020830187611670565b611ec2604083018661167f565b611ecf606083018561167f565b611edc608083018461167f565b9695505050505050565b600060a082019050611efb6000830187611916565b611f0860208301866115f6565b611f1560408301856115f6565b8181036060830152611f2681611c6c565b90508181036080830152611f3a8184611cde565b905095945050505050565b6000606082019050611f5a60008301866115f6565b611f6760208301856115f6565b611f7460408301846115e7565b949350505050565b6000819050919050565b600060ff82169050919050565b6000611fae611fa9611fa484611f7c565b6118ea565b611f86565b9050919050565b611fbe81611f93565b82525050565b6000606082019050611fd96000830186611ab5565b611fe66020830185611ab5565b611ff36040830184611fb5565b949350505050565b60008151905061200a816112c8565b92915050565b6000806080838503121561202757612026611214565b5b600061203585828601611ffb565b925050602061204685828601611a24565b9150509250929050565b600061205b8261121e565b91506120668361121e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561209b5761209a611730565b5b828201905092915050565b60006080820190506120bb60008301876115e7565b6120c8602083018661167f565b6120d5604083018561167f565b6120e26060830184611670565b9594505050505056fea26469706673582212208812e99ba678252e2cc3d24a4e69e894b2fbe437d084a25fa7d75996e86035e864736f6c634300080b0033", "immutableReferences": {}, - "generatedSources": [], - "deployedGeneratedSources": [ + "generatedSources": [ { "ast": { "nodeType": "YulBlock", - "src": "0:28319:1", + "src": "0:1946:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "47:35:1", + "src": "52:81:1", "statements": [ { "nodeType": "YulAssignment", - "src": "57:19:1", + "src": "62:65:1", "value": { "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "77:5:1" + }, { "kind": "number", "nodeType": "YulLiteral", - "src": "73:2:1", + "src": "84:42:1", "type": "", - "value": "64" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "mload", + "name": "and", "nodeType": "YulIdentifier", - "src": "67:5:1" + "src": "73:3:1" }, "nodeType": "YulFunctionCall", - "src": "67:9:1" + "src": "73:54:1" }, "variableNames": [ { - "name": "memPtr", + "name": "cleaned", "nodeType": "YulIdentifier", - "src": "57:6:1" + "src": "62:7:1" } ] } ] }, - "name": "allocate_unbounded", + "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "34:5:1", + "type": "" + } + ], "returnVariables": [ { - "name": "memPtr", + "name": "cleaned", "nodeType": "YulTypedName", - "src": "40:6:1", + "src": "44:7:1", "type": "" } ], - "src": "7:75:1" + "src": "7:126:1" }, { "body": { "nodeType": "YulBlock", - "src": "177:28:1", + "src": "184:51:1", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "194:35:1", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "194:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "197:1:1", - "type": "", - "value": "0" + "name": "value", + "nodeType": "YulIdentifier", + "src": "223:5:1" } ], "functionName": { - "name": "revert", + "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "187:6:1" + "src": "205:17:1" }, "nodeType": "YulFunctionCall", - "src": "187:12:1" + "src": "205:24:1" }, - "nodeType": "YulExpressionStatement", - "src": "187:12:1" + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "194:7:1" + } + ] } ] }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", - "src": "88:117:1" + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "166:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "176:7:1", + "type": "" + } + ], + "src": "139:96:1" }, { "body": { "nodeType": "YulBlock", - "src": "300:28:1", + "src": "306:53:1", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "317:1:1", - "type": "", - "value": "0" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "323:3:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "320:1:1", - "type": "", - "value": "0" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "346:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "328:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "328:24:1" } ], "functionName": { - "name": "revert", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "310:6:1" + "src": "316:6:1" }, "nodeType": "YulFunctionCall", - "src": "310:12:1" + "src": "316:37:1" }, "nodeType": "YulExpressionStatement", - "src": "310:12:1" + "src": "316:37:1" } ] }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", - "src": "211:117:1" + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "294:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "301:3:1", + "type": "" + } + ], + "src": "241:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "379:32:1", + "src": "410:32:1", "statements": [ { "nodeType": "YulAssignment", - "src": "389:16:1", + "src": "420:16:1", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "400:5:1" + "src": "431:5:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "389:7:1" + "src": "420:7:1" } ] } @@ -325,7 +377,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "361:5:1", + "src": "392:5:1", "type": "" } ], @@ -333,142 +385,109 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "371:7:1", + "src": "402:7:1", "type": "" } ], - "src": "334:77:1" + "src": "365:77:1" }, { "body": { "nodeType": "YulBlock", - "src": "460:79:1", + "src": "513:53:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "517:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "526:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "529:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "519:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "519:12:1" - }, - "nodeType": "YulExpressionStatement", - "src": "519:12:1" - } - ] - }, - "condition": { + "expression": { "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "530:3:1" + }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "483:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "508:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "490:17:1" - }, - "nodeType": "YulFunctionCall", - "src": "490:24:1" + "src": "553:5:1" } ], "functionName": { - "name": "eq", + "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "480:2:1" + "src": "535:17:1" }, "nodeType": "YulFunctionCall", - "src": "480:35:1" + "src": "535:24:1" } ], "functionName": { - "name": "iszero", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "473:6:1" + "src": "523:6:1" }, "nodeType": "YulFunctionCall", - "src": "473:43:1" + "src": "523:37:1" }, - "nodeType": "YulIf", - "src": "470:63:1" + "nodeType": "YulExpressionStatement", + "src": "523:37:1" } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "453:5:1", + "src": "501:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "508:3:1", "type": "" } ], - "src": "417:122:1" + "src": "448:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "597:87:1", + "src": "698:206:1", "statements": [ { "nodeType": "YulAssignment", - "src": "607:29:1", + "src": "708:26:1", "value": { "arguments": [ { - "name": "offset", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "629:6:1" + "src": "720:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "731:2:1", + "type": "", + "value": "64" } ], "functionName": { - "name": "calldataload", + "name": "add", "nodeType": "YulIdentifier", - "src": "616:12:1" + "src": "716:3:1" }, "nodeType": "YulFunctionCall", - "src": "616:20:1" + "src": "716:18:1" }, "variableNames": [ { - "name": "value", + "name": "tail", "nodeType": "YulIdentifier", - "src": "607:5:1" + "src": "708:4:1" } ] }, @@ -476,98 +495,302 @@ "expression": { "arguments": [ { - "name": "value", + "name": "value0", "nodeType": "YulIdentifier", - "src": "672:5:1" + "src": "788:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "801:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "812:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "797:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "797:17:1" } ], "functionName": { - "name": "validator_revert_t_uint256", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "645:26:1" + "src": "744:43:1" }, "nodeType": "YulFunctionCall", - "src": "645:33:1" + "src": "744:71:1" }, "nodeType": "YulExpressionStatement", - "src": "645:33:1" + "src": "744:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "869:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "882:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "893:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "878:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "878:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "825:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "825:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "825:72:1" } ] }, - "name": "abi_decode_t_uint256", + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "headStart", "nodeType": "YulTypedName", - "src": "575:6:1", + "src": "662:9:1", "type": "" }, { - "name": "end", + "name": "value1", "nodeType": "YulTypedName", - "src": "583:3:1", + "src": "674:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "682:6:1", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "tail", "nodeType": "YulTypedName", - "src": "591:5:1", + "src": "693:4:1", "type": "" } ], - "src": "545:139:1" + "src": "572:332:1" }, { "body": { "nodeType": "YulBlock", - "src": "735:73:1", + "src": "950:35:1", "statements": [ { "nodeType": "YulAssignment", - "src": "745:57:1", + "src": "960:19:1", "value": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "760:5:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "976:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "970:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "970:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "960:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "943:6:1", + "type": "" + } + ], + "src": "910:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1080:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1097:1:1", + "type": "", + "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "767:34:1", + "src": "1100:1:1", "type": "", - "value": "0xffffffffffffffffffffffffffffffff" + "value": "0" } ], "functionName": { - "name": "and", + "name": "revert", "nodeType": "YulIdentifier", - "src": "756:3:1" + "src": "1090:6:1" }, "nodeType": "YulFunctionCall", - "src": "756:46:1" + "src": "1090:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1090:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "991:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1203:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1220:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1213:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1213:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1114:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1279:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1289:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1314:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1307:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1307:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1300:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1300:21:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "745:7:1" + "src": "1289:7:1" } ] } ] }, - "name": "cleanup_t_uint128", + "name": "cleanup_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "717:5:1", + "src": "1261:5:1", "type": "" } ], @@ -575,21 +798,21 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "727:7:1", + "src": "1271:7:1", "type": "" } ], - "src": "690:118:1" + "src": "1237:90:1" }, { "body": { "nodeType": "YulBlock", - "src": "857:79:1", + "src": "1373:76:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "914:16:1", + "src": "1427:16:1", "statements": [ { "expression": { @@ -597,14 +820,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "923:1:1", + "src": "1436:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "926:1:1", + "src": "1439:1:1", "type": "", "value": "0" } @@ -612,13 +835,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "916:6:1" + "src": "1429:6:1" }, "nodeType": "YulFunctionCall", - "src": "916:12:1" + "src": "1429:12:1" }, "nodeType": "YulExpressionStatement", - "src": "916:12:1" + "src": "1429:12:1" } ] }, @@ -629,88 +852,88 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "880:5:1" + "src": "1396:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "905:5:1" + "src": "1418:5:1" } ], "functionName": { - "name": "cleanup_t_uint128", + "name": "cleanup_t_bool", "nodeType": "YulIdentifier", - "src": "887:17:1" + "src": "1403:14:1" }, "nodeType": "YulFunctionCall", - "src": "887:24:1" + "src": "1403:21:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "877:2:1" + "src": "1393:2:1" }, "nodeType": "YulFunctionCall", - "src": "877:35:1" + "src": "1393:32:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "870:6:1" + "src": "1386:6:1" }, "nodeType": "YulFunctionCall", - "src": "870:43:1" + "src": "1386:40:1" }, "nodeType": "YulIf", - "src": "867:63:1" + "src": "1383:60:1" } ] }, - "name": "validator_revert_t_uint128", + "name": "validator_revert_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "850:5:1", + "src": "1366:5:1", "type": "" } ], - "src": "814:122:1" + "src": "1333:116:1" }, { "body": { "nodeType": "YulBlock", - "src": "994:87:1", + "src": "1515:77:1", "statements": [ { "nodeType": "YulAssignment", - "src": "1004:29:1", + "src": "1525:22:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "1026:6:1" + "src": "1540:6:1" } ], "functionName": { - "name": "calldataload", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1013:12:1" + "src": "1534:5:1" }, "nodeType": "YulFunctionCall", - "src": "1013:20:1" + "src": "1534:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "1004:5:1" + "src": "1525:5:1" } ] }, @@ -720,35 +943,35 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "1069:5:1" + "src": "1580:5:1" } ], "functionName": { - "name": "validator_revert_t_uint128", + "name": "validator_revert_t_bool", "nodeType": "YulIdentifier", - "src": "1042:26:1" + "src": "1556:23:1" }, "nodeType": "YulFunctionCall", - "src": "1042:33:1" + "src": "1556:30:1" }, "nodeType": "YulExpressionStatement", - "src": "1042:33:1" + "src": "1556:30:1" } ] }, - "name": "abi_decode_t_uint128", + "name": "abi_decode_t_bool_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "972:6:1", + "src": "1493:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "980:3:1", + "src": "1501:3:1", "type": "" } ], @@ -756,277 +979,35 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "988:5:1", + "src": "1509:5:1", "type": "" } ], - "src": "942:139:1" + "src": "1455:137:1" }, { "body": { "nodeType": "YulBlock", - "src": "1132:105:1", + "src": "1672:271:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "1142:89:1", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1157:5:1" - }, + "body": { + "nodeType": "YulBlock", + "src": "1718:83:1", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1164:66:1", - "type": "", - "value": "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1153:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "1153:78:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1142:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_bytes12", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1114:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1124:7:1", - "type": "" - } - ], - "src": "1087:150:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1286:79:1", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1343:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1352:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1355:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1345:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "1345:12:1" - }, - "nodeType": "YulExpressionStatement", - "src": "1345:12:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1309:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1334:5:1" - } - ], - "functionName": { - "name": "cleanup_t_bytes12", - "nodeType": "YulIdentifier", - "src": "1316:17:1" - }, - "nodeType": "YulFunctionCall", - "src": "1316:24:1" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "1306:2:1" - }, - "nodeType": "YulFunctionCall", - "src": "1306:35:1" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1299:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "1299:43:1" - }, - "nodeType": "YulIf", - "src": "1296:63:1" - } - ] - }, - "name": "validator_revert_t_bytes12", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1279:5:1", - "type": "" - } - ], - "src": "1243:122:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1423:87:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1433:29:1", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1455:6:1" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1442:12:1" - }, - "nodeType": "YulFunctionCall", - "src": "1442:20:1" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1433:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1498:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_bytes12", - "nodeType": "YulIdentifier", - "src": "1471:26:1" - }, - "nodeType": "YulFunctionCall", - "src": "1471:33:1" - }, - "nodeType": "YulExpressionStatement", - "src": "1471:33:1" - } - ] - }, - "name": "abi_decode_t_bytes12", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1401:6:1", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1409:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1417:5:1", - "type": "" - } - ], - "src": "1371:139:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1633:648:1", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1680:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "1682:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "1682:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "1682:79:1" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1720:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "1720:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1720:79:1" } ] }, @@ -1037,52 +1018,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1654:7:1" + "src": "1693:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1663:9:1" + "src": "1702:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "1650:3:1" + "src": "1689:3:1" }, "nodeType": "YulFunctionCall", - "src": "1650:23:1" + "src": "1689:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1675:3:1", + "src": "1714:2:1", "type": "", - "value": "128" + "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "1646:3:1" + "src": "1685:3:1" }, "nodeType": "YulFunctionCall", - "src": "1646:33:1" + "src": "1685:32:1" }, "nodeType": "YulIf", - "src": "1643:120:1" + "src": "1682:119:1" }, { "nodeType": "YulBlock", - "src": "1773:117:1", + "src": "1811:125:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1788:15:1", + "src": "1826:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1802:1:1", + "src": "1840:1:1", "type": "", "value": "0" }, @@ -1090,14 +1071,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "1792:6:1", + "src": "1830:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "1817:63:1", + "src": "1855:71:1", "value": { "arguments": [ { @@ -1105,260 +1086,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1852:9:1" + "src": "1898:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1863:6:1" + "src": "1909:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1848:3:1" + "src": "1894:3:1" }, "nodeType": "YulFunctionCall", - "src": "1848:22:1" + "src": "1894:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1872:7:1" + "src": "1918:7:1" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_bool_fromMemory", "nodeType": "YulIdentifier", - "src": "1827:20:1" + "src": "1865:28:1" }, "nodeType": "YulFunctionCall", - "src": "1827:53:1" + "src": "1865:61:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1817:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1900:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1915:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1929:2:1", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1919:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1945:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1980:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1991:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1976:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "1976:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2000:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint128", - "nodeType": "YulIdentifier", - "src": "1955:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "1955:53:1" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1945:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "2028:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2043:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2057:2:1", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2047:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2073:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2108:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2119:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2104:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "2104:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2128:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint128", - "nodeType": "YulIdentifier", - "src": "2083:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "2083:53:1" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "2073:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "2156:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2171:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2185:2:1", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2175:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2201:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2236:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2247:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2232:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "2232:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2256:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_bytes12", - "nodeType": "YulIdentifier", - "src": "2211:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "2211:53:1" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "2201:6:1" + "src": "1855:6:1" } ] } @@ -1366,19 +1128,19 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes12", + "name": "abi_decode_tuple_t_bool_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "1579:9:1", + "src": "1642:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "1590:7:1", + "src": "1653:7:1", "type": "" } ], @@ -1386,132 +1148,184 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "1602:6:1", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1610:6:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "1618:6:1", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "1626:6:1", + "src": "1665:6:1", "type": "" } ], - "src": "1516:765:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2332:81:1", - "statements": [ + "src": "1598:345:1" + } + ] + }, + "contents": "{\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 abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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 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_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:28319:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:1", + "statements": [ { "nodeType": "YulAssignment", - "src": "2342:65:1", + "src": "57:19:1", "value": { "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2357:5:1" - }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2364:42:1", + "src": "73:2:1", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "value": "64" } ], "functionName": { - "name": "and", + "name": "mload", "nodeType": "YulIdentifier", - "src": "2353:3:1" + "src": "67:5:1" }, "nodeType": "YulFunctionCall", - "src": "2353:54:1" + "src": "67:9:1" }, "variableNames": [ { - "name": "cleaned", + "name": "memPtr", "nodeType": "YulIdentifier", - "src": "2342:7:1" + "src": "57:6:1" } ] } ] }, - "name": "cleanup_t_uint160", + "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2314:5:1", - "type": "" - } - ], "returnVariables": [ { - "name": "cleaned", + "name": "memPtr", "nodeType": "YulTypedName", - "src": "2324:7:1", + "src": "40:6:1", "type": "" } ], - "src": "2287:126:1" + "src": "7:75:1" }, { "body": { "nodeType": "YulBlock", - "src": "2464:51:1", + "src": "177:28:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "2474:35:1", - "value": { + "expression": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2503:5:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:1", + "type": "", + "value": "0" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "revert", "nodeType": "YulIdentifier", - "src": "2485:17:1" + "src": "187:6:1" }, "nodeType": "YulFunctionCall", - "src": "2485:24:1" + "src": "187:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "2474:7:1" + "src": "389:7:1" } ] } ] }, - "name": "cleanup_t_address", + "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "2446:5:1", + "src": "361:5:1", "type": "" } ], @@ -1519,21 +1333,21 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "2456:7:1", + "src": "371:7:1", "type": "" } ], - "src": "2419:96:1" + "src": "334:77:1" }, { "body": { "nodeType": "YulBlock", - "src": "2564:79:1", + "src": "460:79:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "2621:16:1", + "src": "517:16:1", "statements": [ { "expression": { @@ -1541,14 +1355,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2630:1:1", + "src": "526:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2633:1:1", + "src": "529:1:1", "type": "", "value": "0" } @@ -1556,13 +1370,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2623:6:1" + "src": "519:6:1" }, "nodeType": "YulFunctionCall", - "src": "2623:12:1" + "src": "519:12:1" }, "nodeType": "YulExpressionStatement", - "src": "2623:12:1" + "src": "519:12:1" } ] }, @@ -1573,88 +1387,88 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2587:5:1" + "src": "483:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2612:5:1" + "src": "508:5:1" } ], "functionName": { - "name": "cleanup_t_address", + "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "2594:17:1" + "src": "490:17:1" }, "nodeType": "YulFunctionCall", - "src": "2594:24:1" + "src": "490:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "2584:2:1" + "src": "480:2:1" }, "nodeType": "YulFunctionCall", - "src": "2584:35:1" + "src": "480:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "2577:6:1" + "src": "473:6:1" }, "nodeType": "YulFunctionCall", - "src": "2577:43:1" + "src": "473:43:1" }, "nodeType": "YulIf", - "src": "2574:63:1" + "src": "470:63:1" } ] }, - "name": "validator_revert_t_address", + "name": "validator_revert_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "2557:5:1", + "src": "453:5:1", "type": "" } ], - "src": "2521:122:1" + "src": "417:122:1" }, { "body": { "nodeType": "YulBlock", - "src": "2701:87:1", + "src": "597:87:1", "statements": [ { "nodeType": "YulAssignment", - "src": "2711:29:1", + "src": "607:29:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "2733:6:1" + "src": "629:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "2720:12:1" + "src": "616:12:1" }, "nodeType": "YulFunctionCall", - "src": "2720:20:1" + "src": "616:20:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2711:5:1" + "src": "607:5:1" } ] }, @@ -1664,35 +1478,35 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2776:5:1" + "src": "672:5:1" } ], "functionName": { - "name": "validator_revert_t_address", + "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", - "src": "2749:26:1" + "src": "645:26:1" }, "nodeType": "YulFunctionCall", - "src": "2749:33:1" + "src": "645:33:1" }, "nodeType": "YulExpressionStatement", - "src": "2749:33:1" + "src": "645:33:1" } ] }, - "name": "abi_decode_t_address", + "name": "abi_decode_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "2679:6:1", + "src": "575:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "2687:3:1", + "src": "583:3:1", "type": "" } ], @@ -1700,585 +1514,590 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2695:5:1", + "src": "591:5:1", "type": "" } ], - "src": "2649:139:1" + "src": "545:139:1" }, { "body": { "nodeType": "YulBlock", - "src": "2911:648:1", + "src": "735:73:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "2958:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "2960:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "2960:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "2960:79:1" - } - ] - }, - "condition": { + "nodeType": "YulAssignment", + "src": "745:57:1", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2932:7:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2941:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2928:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "2928:23:1" + "name": "value", + "nodeType": "YulIdentifier", + "src": "760:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2953:3:1", + "src": "767:34:1", "type": "", - "value": "128" + "value": "0xffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "slt", + "name": "and", "nodeType": "YulIdentifier", - "src": "2924:3:1" + "src": "756:3:1" }, "nodeType": "YulFunctionCall", - "src": "2924:33:1" + "src": "756:46:1" }, - "nodeType": "YulIf", - "src": "2921:120:1" - }, - { - "nodeType": "YulBlock", - "src": "3051:117:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3066:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3080:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3070:6:1", - "type": "" - } - ] - }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "3095:63:1", - "value": { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "745:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "717:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "727:7:1", + "type": "" + } + ], + "src": "690:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "857:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "914:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "923:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "926:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "916:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "916:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "916:12:1" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "880:5:1" + }, { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3130:9:1" - }, - { - "name": "offset", + "name": "value", "nodeType": "YulIdentifier", - "src": "3141:6:1" + "src": "905:5:1" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint128", "nodeType": "YulIdentifier", - "src": "3126:3:1" + "src": "887:17:1" }, "nodeType": "YulFunctionCall", - "src": "3126:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3150:7:1" + "src": "887:24:1" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "eq", "nodeType": "YulIdentifier", - "src": "3105:20:1" + "src": "877:2:1" }, "nodeType": "YulFunctionCall", - "src": "3105:53:1" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3095:6:1" - } - ] + "src": "877:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "870:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "870:43:1" + }, + "nodeType": "YulIf", + "src": "867:63:1" + } + ] + }, + "name": "validator_revert_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "850:5:1", + "type": "" + } + ], + "src": "814:122:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "994:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1004:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1026:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1013:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "1013:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1004:5:1" } ] }, { - "nodeType": "YulBlock", - "src": "3178:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3193:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3207:2:1", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3197:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3223:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3258:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3269:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3254:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "3254:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3278:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_bytes12", - "nodeType": "YulIdentifier", - "src": "3233:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "3233:53:1" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "3223:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3306:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3321:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3335:2:1", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3325:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3351:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3386:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3397:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3382:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "3382:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3406:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "3361:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "3361:53:1" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "3351:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "3434:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3449:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3463:2:1", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3453:6:1", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1069:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint128", + "nodeType": "YulIdentifier", + "src": "1042:26:1" }, - { - "nodeType": "YulAssignment", - "src": "3479:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3514:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3525:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3510:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "3510:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3534:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint128", - "nodeType": "YulIdentifier", - "src": "3489:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "3489:53:1" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "3479:6:1" - } - ] - } - ] + "nodeType": "YulFunctionCall", + "src": "1042:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1042:33:1" } ] }, - "name": "abi_decode_tuple_t_addresst_bytes12t_uint256t_uint128", + "name": "abi_decode_t_uint128", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "offset", "nodeType": "YulTypedName", - "src": "2857:9:1", + "src": "972:6:1", "type": "" }, { - "name": "dataEnd", + "name": "end", "nodeType": "YulTypedName", - "src": "2868:7:1", + "src": "980:3:1", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2880:6:1", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2888:6:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "2896:6:1", - "type": "" - }, - { - "name": "value3", + "name": "value", "nodeType": "YulTypedName", - "src": "2904:6:1", + "src": "988:5:1", "type": "" } ], - "src": "2794:765:1" + "src": "942:139:1" }, { "body": { "nodeType": "YulBlock", - "src": "3699:777:1", + "src": "1132:105:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "3746:83:1", - "statements": [ + "nodeType": "YulAssignment", + "src": "1142:89:1", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "3748:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "3748:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "3748:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3720:7:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3729:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3716:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "3716:23:1" + "name": "value", + "nodeType": "YulIdentifier", + "src": "1157:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3741:3:1", + "src": "1164:66:1", "type": "", - "value": "160" + "value": "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" } ], "functionName": { - "name": "slt", + "name": "and", "nodeType": "YulIdentifier", - "src": "3712:3:1" + "src": "1153:3:1" }, "nodeType": "YulFunctionCall", - "src": "3712:33:1" + "src": "1153:78:1" }, - "nodeType": "YulIf", - "src": "3709:120:1" - }, - { - "nodeType": "YulBlock", - "src": "3839:117:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3854:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3868:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3858:6:1", - "type": "" - } - ] - }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "3883:63:1", - "value": { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1142:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bytes12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1114:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1124:7:1", + "type": "" + } + ], + "src": "1087:150:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1286:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1343:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1352:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1355:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1345:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1345:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1345:12:1" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1309:5:1" + }, { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3918:9:1" - }, - { - "name": "offset", + "name": "value", "nodeType": "YulIdentifier", - "src": "3929:6:1" + "src": "1334:5:1" } ], "functionName": { - "name": "add", + "name": "cleanup_t_bytes12", "nodeType": "YulIdentifier", - "src": "3914:3:1" + "src": "1316:17:1" }, "nodeType": "YulFunctionCall", - "src": "3914:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3938:7:1" + "src": "1316:24:1" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "eq", "nodeType": "YulIdentifier", - "src": "3893:20:1" + "src": "1306:2:1" }, "nodeType": "YulFunctionCall", - "src": "3893:53:1" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3883:6:1" - } - ] + "src": "1306:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1299:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1299:43:1" + }, + "nodeType": "YulIf", + "src": "1296:63:1" + } + ] + }, + "name": "validator_revert_t_bytes12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1279:5:1", + "type": "" + } + ], + "src": "1243:122:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1423:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1433:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1455:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1442:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "1442:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1433:5:1" } ] }, { - "nodeType": "YulBlock", - "src": "3966:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3981:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3995:2:1", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3985:6:1", + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1498:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_bytes12", + "nodeType": "YulIdentifier", + "src": "1471:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "1471:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1471:33:1" + } + ] + }, + "name": "abi_decode_t_bytes12", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1401:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1409:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1417:5:1", + "type": "" + } + ], + "src": "1371:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1633:648:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1680:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1682:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "1682:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1682:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1654:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1663:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1650:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1650:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1675:3:1", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1646:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1646:33:1" + }, + "nodeType": "YulIf", + "src": "1643:120:1" + }, + { + "nodeType": "YulBlock", + "src": "1773:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1788:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1802:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1792:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "4011:63:1", + "src": "1817:63:1", "value": { "arguments": [ { @@ -2286,41 +2105,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4046:9:1" + "src": "1852:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4057:6:1" + "src": "1863:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4042:3:1" + "src": "1848:3:1" }, "nodeType": "YulFunctionCall", - "src": "4042:22:1" + "src": "1848:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4066:7:1" + "src": "1872:7:1" } ], "functionName": { - "name": "abi_decode_t_bytes12", + "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "4021:20:1" + "src": "1827:20:1" }, "nodeType": "YulFunctionCall", - "src": "4021:53:1" + "src": "1827:53:1" }, "variableNames": [ { - "name": "value1", + "name": "value0", "nodeType": "YulIdentifier", - "src": "4011:6:1" + "src": "1817:6:1" } ] } @@ -2328,30 +2147,30 @@ }, { "nodeType": "YulBlock", - "src": "4094:118:1", + "src": "1900:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4109:16:1", + "src": "1915:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "4123:2:1", + "src": "1929:2:1", "type": "", - "value": "64" + "value": "32" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "4113:6:1", + "src": "1919:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "4139:63:1", + "src": "1945:63:1", "value": { "arguments": [ { @@ -2359,41 +2178,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4174:9:1" + "src": "1980:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4185:6:1" + "src": "1991:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4170:3:1" + "src": "1976:3:1" }, "nodeType": "YulFunctionCall", - "src": "4170:22:1" + "src": "1976:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4194:7:1" + "src": "2000:7:1" } ], "functionName": { "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "4149:20:1" + "src": "1955:20:1" }, "nodeType": "YulFunctionCall", - "src": "4149:53:1" + "src": "1955:53:1" }, "variableNames": [ { - "name": "value2", + "name": "value1", "nodeType": "YulIdentifier", - "src": "4139:6:1" + "src": "1945:6:1" } ] } @@ -2401,30 +2220,30 @@ }, { "nodeType": "YulBlock", - "src": "4222:118:1", + "src": "2028:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4237:16:1", + "src": "2043:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "4251:2:1", + "src": "2057:2:1", "type": "", - "value": "96" + "value": "64" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "4241:6:1", + "src": "2047:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "4267:63:1", + "src": "2073:63:1", "value": { "arguments": [ { @@ -2432,41 +2251,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4302:9:1" + "src": "2108:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4313:6:1" + "src": "2119:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4298:3:1" + "src": "2104:3:1" }, "nodeType": "YulFunctionCall", - "src": "4298:22:1" + "src": "2104:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4322:7:1" + "src": "2128:7:1" } ], "functionName": { "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "4277:20:1" + "src": "2083:20:1" }, "nodeType": "YulFunctionCall", - "src": "4277:53:1" + "src": "2083:53:1" }, "variableNames": [ { - "name": "value3", + "name": "value2", "nodeType": "YulIdentifier", - "src": "4267:6:1" + "src": "2073:6:1" } ] } @@ -2474,30 +2293,30 @@ }, { "nodeType": "YulBlock", - "src": "4350:119:1", + "src": "2156:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4365:17:1", + "src": "2171:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "4379:3:1", + "src": "2185:2:1", "type": "", - "value": "128" + "value": "96" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "4369:6:1", + "src": "2175:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "4396:63:1", + "src": "2201:63:1", "value": { "arguments": [ { @@ -2505,41 +2324,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4431:9:1" + "src": "2236:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4442:6:1" + "src": "2247:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4427:3:1" + "src": "2232:3:1" }, "nodeType": "YulFunctionCall", - "src": "4427:22:1" + "src": "2232:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4451:7:1" + "src": "2256:7:1" } ], "functionName": { - "name": "abi_decode_t_uint128", + "name": "abi_decode_t_bytes12", "nodeType": "YulIdentifier", - "src": "4406:20:1" + "src": "2211:20:1" }, "nodeType": "YulFunctionCall", - "src": "4406:53:1" + "src": "2211:53:1" }, "variableNames": [ { - "name": "value4", + "name": "value3", "nodeType": "YulIdentifier", - "src": "4396:6:1" + "src": "2201:6:1" } ] } @@ -2547,19 +2366,19 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_bytes12t_uint128t_uint128t_uint128", + "name": "abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes12", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3637:9:1", + "src": "1579:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "3648:7:1", + "src": "1590:7:1", "type": "" } ], @@ -2567,84 +2386,78 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "3660:6:1", + "src": "1602:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "3668:6:1", + "src": "1610:6:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "3676:6:1", + "src": "1618:6:1", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "3684:6:1", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "3692:6:1", + "src": "1626:6:1", "type": "" } ], - "src": "3565:911:1" + "src": "1516:765:1" }, { "body": { "nodeType": "YulBlock", - "src": "4526:105:1", + "src": "2332:81:1", "statements": [ { "nodeType": "YulAssignment", - "src": "4536:89:1", + "src": "2342:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "4551:5:1" + "src": "2357:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4558:66:1", + "src": "2364:42:1", "type": "", - "value": "0xffffffffffff0000000000000000000000000000000000000000000000000000" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4547:3:1" + "src": "2353:3:1" }, "nodeType": "YulFunctionCall", - "src": "4547:78:1" + "src": "2353:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "4536:7:1" + "src": "2342:7:1" } ] } ] }, - "name": "cleanup_t_bytes6", + "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "4508:5:1", + "src": "2314:5:1", "type": "" } ], @@ -2652,21 +2465,75 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "4518:7:1", + "src": "2324:7:1", "type": "" } ], - "src": "4482:149:1" + "src": "2287:126:1" }, { "body": { "nodeType": "YulBlock", - "src": "4679:78:1", + "src": "2464:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2474:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2503:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2485:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2485:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2474:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2446:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2456:7:1", + "type": "" + } + ], + "src": "2419:96:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2564:79:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "4735:16:1", + "src": "2621:16:1", "statements": [ { "expression": { @@ -2674,14 +2541,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4744:1:1", + "src": "2630:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4747:1:1", + "src": "2633:1:1", "type": "", "value": "0" } @@ -2689,13 +2556,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4737:6:1" + "src": "2623:6:1" }, "nodeType": "YulFunctionCall", - "src": "4737:12:1" + "src": "2623:12:1" }, "nodeType": "YulExpressionStatement", - "src": "4737:12:1" + "src": "2623:12:1" } ] }, @@ -2706,88 +2573,88 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "4702:5:1" + "src": "2587:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "4726:5:1" + "src": "2612:5:1" } ], "functionName": { - "name": "cleanup_t_bytes6", + "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "4709:16:1" + "src": "2594:17:1" }, "nodeType": "YulFunctionCall", - "src": "4709:23:1" + "src": "2594:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "4699:2:1" + "src": "2584:2:1" }, "nodeType": "YulFunctionCall", - "src": "4699:34:1" + "src": "2584:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4692:6:1" + "src": "2577:6:1" }, "nodeType": "YulFunctionCall", - "src": "4692:42:1" + "src": "2577:43:1" }, "nodeType": "YulIf", - "src": "4689:62:1" + "src": "2574:63:1" } ] }, - "name": "validator_revert_t_bytes6", + "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "4672:5:1", + "src": "2557:5:1", "type": "" } ], - "src": "4637:120:1" + "src": "2521:122:1" }, { "body": { "nodeType": "YulBlock", - "src": "4814:86:1", + "src": "2701:87:1", "statements": [ { "nodeType": "YulAssignment", - "src": "4824:29:1", + "src": "2711:29:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "4846:6:1" + "src": "2733:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "4833:12:1" + "src": "2720:12:1" }, "nodeType": "YulFunctionCall", - "src": "4833:20:1" + "src": "2720:20:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "4824:5:1" + "src": "2711:5:1" } ] }, @@ -2797,35 +2664,35 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "4888:5:1" + "src": "2776:5:1" } ], "functionName": { - "name": "validator_revert_t_bytes6", + "name": "validator_revert_t_address", "nodeType": "YulIdentifier", - "src": "4862:25:1" + "src": "2749:26:1" }, "nodeType": "YulFunctionCall", - "src": "4862:32:1" + "src": "2749:33:1" }, "nodeType": "YulExpressionStatement", - "src": "4862:32:1" + "src": "2749:33:1" } ] }, - "name": "abi_decode_t_bytes6", + "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "4792:6:1", + "src": "2679:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "4800:3:1", + "src": "2687:3:1", "type": "" } ], @@ -2833,21 +2700,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "4808:5:1", + "src": "2695:5:1", "type": "" } ], - "src": "4763:137:1" + "src": "2649:139:1" }, { "body": { "nodeType": "YulBlock", - "src": "5056:905:1", + "src": "2911:648:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "5103:83:1", + "src": "2958:83:1", "statements": [ { "expression": { @@ -2855,13 +2722,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "5105:77:1" + "src": "2960:77:1" }, "nodeType": "YulFunctionCall", - "src": "5105:79:1" + "src": "2960:79:1" }, "nodeType": "YulExpressionStatement", - "src": "5105:79:1" + "src": "2960:79:1" } ] }, @@ -2872,52 +2739,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5077:7:1" + "src": "2932:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5086:9:1" + "src": "2941:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "5073:3:1" + "src": "2928:3:1" }, "nodeType": "YulFunctionCall", - "src": "5073:23:1" + "src": "2928:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5098:3:1", + "src": "2953:3:1", "type": "", - "value": "192" + "value": "128" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "5069:3:1" + "src": "2924:3:1" }, "nodeType": "YulFunctionCall", - "src": "5069:33:1" + "src": "2924:33:1" }, "nodeType": "YulIf", - "src": "5066:120:1" + "src": "2921:120:1" }, { "nodeType": "YulBlock", - "src": "5196:117:1", + "src": "3051:117:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5211:15:1", + "src": "3066:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5225:1:1", + "src": "3080:1:1", "type": "", "value": "0" }, @@ -2925,14 +2792,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "5215:6:1", + "src": "3070:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "5240:63:1", + "src": "3095:63:1", "value": { "arguments": [ { @@ -2940,41 +2807,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5275:9:1" + "src": "3130:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "5286:6:1" + "src": "3141:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5271:3:1" + "src": "3126:3:1" }, "nodeType": "YulFunctionCall", - "src": "5271:22:1" + "src": "3126:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5295:7:1" + "src": "3150:7:1" } ], "functionName": { - "name": "abi_decode_t_bytes12", + "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "5250:20:1" + "src": "3105:20:1" }, "nodeType": "YulFunctionCall", - "src": "5250:53:1" + "src": "3105:53:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5240:6:1" + "src": "3095:6:1" } ] } @@ -2982,15 +2849,15 @@ }, { "nodeType": "YulBlock", - "src": "5323:118:1", + "src": "3178:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5338:16:1", + "src": "3193:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5352:2:1", + "src": "3207:2:1", "type": "", "value": "32" }, @@ -2998,14 +2865,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "5342:6:1", + "src": "3197:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "5368:63:1", + "src": "3223:63:1", "value": { "arguments": [ { @@ -3013,41 +2880,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5403:9:1" + "src": "3258:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "5414:6:1" + "src": "3269:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5399:3:1" + "src": "3254:3:1" }, "nodeType": "YulFunctionCall", - "src": "5399:22:1" + "src": "3254:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5423:7:1" + "src": "3278:7:1" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_bytes12", "nodeType": "YulIdentifier", - "src": "5378:20:1" + "src": "3233:20:1" }, "nodeType": "YulFunctionCall", - "src": "5378:53:1" + "src": "3233:53:1" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "5368:6:1" + "src": "3223:6:1" } ] } @@ -3055,15 +2922,15 @@ }, { "nodeType": "YulBlock", - "src": "5451:118:1", + "src": "3306:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5466:16:1", + "src": "3321:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5480:2:1", + "src": "3335:2:1", "type": "", "value": "64" }, @@ -3071,14 +2938,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "5470:6:1", + "src": "3325:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "5496:63:1", + "src": "3351:63:1", "value": { "arguments": [ { @@ -3086,41 +2953,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5531:9:1" + "src": "3386:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "5542:6:1" + "src": "3397:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5527:3:1" + "src": "3382:3:1" }, "nodeType": "YulFunctionCall", - "src": "5527:22:1" + "src": "3382:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5551:7:1" + "src": "3406:7:1" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "5506:20:1" + "src": "3361:20:1" }, "nodeType": "YulFunctionCall", - "src": "5506:53:1" + "src": "3361:53:1" }, "variableNames": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "5496:6:1" + "src": "3351:6:1" } ] } @@ -3128,15 +2995,15 @@ }, { "nodeType": "YulBlock", - "src": "5579:118:1", + "src": "3434:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5594:16:1", + "src": "3449:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5608:2:1", + "src": "3463:2:1", "type": "", "value": "96" }, @@ -3144,14 +3011,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "5598:6:1", + "src": "3453:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "5624:63:1", + "src": "3479:63:1", "value": { "arguments": [ { @@ -3159,187 +3026,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5659:9:1" + "src": "3514:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "5670:6:1" + "src": "3525:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5655:3:1" + "src": "3510:3:1" }, "nodeType": "YulFunctionCall", - "src": "5655:22:1" + "src": "3510:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5679:7:1" + "src": "3534:7:1" } ], "functionName": { "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "5634:20:1" + "src": "3489:20:1" }, "nodeType": "YulFunctionCall", - "src": "5634:53:1" + "src": "3489:53:1" }, "variableNames": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "5624:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "5707:119:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5722:17:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5736:3:1", - "type": "", - "value": "128" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "5726:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5753:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5788:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "5799:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5784:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "5784:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5808:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint128", - "nodeType": "YulIdentifier", - "src": "5763:20:1" - }, - "nodeType": "YulFunctionCall", - "src": "5763:53:1" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "5753:6:1" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "5836:118:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5851:17:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5865:3:1", - "type": "", - "value": "160" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "5855:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5882:62:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5916:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "5927:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5912:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "5912:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5936:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_bytes6", - "nodeType": "YulIdentifier", - "src": "5892:19:1" - }, - "nodeType": "YulFunctionCall", - "src": "5892:52:1" - }, - "variableNames": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "5882:6:1" + "src": "3479:6:1" } ] } @@ -3347,19 +3068,19 @@ } ] }, - "name": "abi_decode_tuple_t_bytes12t_uint256t_addresst_uint128t_uint128t_bytes6", + "name": "abi_decode_tuple_t_addresst_bytes12t_uint256t_uint128", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4986:9:1", + "src": "2857:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "4997:7:1", + "src": "2868:7:1", "type": "" } ], @@ -3367,51 +3088,39 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "5009:6:1", + "src": "2880:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "5017:6:1", + "src": "2888:6:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "5025:6:1", + "src": "2896:6:1", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "5033:6:1", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "5041:6:1", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "5049:6:1", + "src": "2904:6:1", "type": "" } ], - "src": "4906:1055:1" + "src": "2794:765:1" }, { "body": { "nodeType": "YulBlock", - "src": "6083:647:1", + "src": "3699:777:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "6130:83:1", + "src": "3746:83:1", "statements": [ { "expression": { @@ -3419,13 +3128,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "6132:77:1" + "src": "3748:77:1" }, "nodeType": "YulFunctionCall", - "src": "6132:79:1" + "src": "3748:79:1" }, "nodeType": "YulExpressionStatement", - "src": "6132:79:1" + "src": "3748:79:1" } ] }, @@ -3436,52 +3145,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6104:7:1" + "src": "3720:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6113:9:1" + "src": "3729:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "6100:3:1" + "src": "3716:3:1" }, "nodeType": "YulFunctionCall", - "src": "6100:23:1" + "src": "3716:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6125:3:1", + "src": "3741:3:1", "type": "", - "value": "128" + "value": "160" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "6096:3:1" + "src": "3712:3:1" }, "nodeType": "YulFunctionCall", - "src": "6096:33:1" + "src": "3712:33:1" }, "nodeType": "YulIf", - "src": "6093:120:1" + "src": "3709:120:1" }, { "nodeType": "YulBlock", - "src": "6223:117:1", + "src": "3839:117:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6238:15:1", + "src": "3854:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "6252:1:1", + "src": "3868:1:1", "type": "", "value": "0" }, @@ -3489,14 +3198,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "6242:6:1", + "src": "3858:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "6267:63:1", + "src": "3883:63:1", "value": { "arguments": [ { @@ -3504,41 +3213,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6302:9:1" + "src": "3918:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "6313:6:1" + "src": "3929:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6298:3:1" + "src": "3914:3:1" }, "nodeType": "YulFunctionCall", - "src": "6298:22:1" + "src": "3914:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6322:7:1" + "src": "3938:7:1" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "6277:20:1" + "src": "3893:20:1" }, "nodeType": "YulFunctionCall", - "src": "6277:53:1" + "src": "3893:53:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "6267:6:1" + "src": "3883:6:1" } ] } @@ -3546,15 +3255,15 @@ }, { "nodeType": "YulBlock", - "src": "6350:118:1", + "src": "3966:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6365:16:1", + "src": "3981:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "6379:2:1", + "src": "3995:2:1", "type": "", "value": "32" }, @@ -3562,14 +3271,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "6369:6:1", + "src": "3985:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "6395:63:1", + "src": "4011:63:1", "value": { "arguments": [ { @@ -3577,41 +3286,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6430:9:1" + "src": "4046:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "6441:6:1" + "src": "4057:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6426:3:1" + "src": "4042:3:1" }, "nodeType": "YulFunctionCall", - "src": "6426:22:1" + "src": "4042:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6450:7:1" + "src": "4066:7:1" } ], "functionName": { - "name": "abi_decode_t_uint128", + "name": "abi_decode_t_bytes12", "nodeType": "YulIdentifier", - "src": "6405:20:1" + "src": "4021:20:1" }, "nodeType": "YulFunctionCall", - "src": "6405:53:1" + "src": "4021:53:1" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "6395:6:1" + "src": "4011:6:1" } ] } @@ -3619,15 +3328,15 @@ }, { "nodeType": "YulBlock", - "src": "6478:118:1", + "src": "4094:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6493:16:1", + "src": "4109:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "6507:2:1", + "src": "4123:2:1", "type": "", "value": "64" }, @@ -3635,14 +3344,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "6497:6:1", + "src": "4113:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "6523:63:1", + "src": "4139:63:1", "value": { "arguments": [ { @@ -3650,41 +3359,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6558:9:1" + "src": "4174:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "6569:6:1" + "src": "4185:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6554:3:1" + "src": "4170:3:1" }, "nodeType": "YulFunctionCall", - "src": "6554:22:1" + "src": "4170:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6578:7:1" + "src": "4194:7:1" } ], "functionName": { "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "6533:20:1" + "src": "4149:20:1" }, "nodeType": "YulFunctionCall", - "src": "6533:53:1" + "src": "4149:53:1" }, "variableNames": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "6523:6:1" + "src": "4139:6:1" } ] } @@ -3692,15 +3401,15 @@ }, { "nodeType": "YulBlock", - "src": "6606:117:1", + "src": "4222:118:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6621:16:1", + "src": "4237:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "6635:2:1", + "src": "4251:2:1", "type": "", "value": "96" }, @@ -3708,14 +3417,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "6625:6:1", + "src": "4241:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "6651:62:1", + "src": "4267:63:1", "value": { "arguments": [ { @@ -3723,41 +3432,114 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6685:9:1" + "src": "4302:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "6696:6:1" + "src": "4313:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6681:3:1" + "src": "4298:3:1" }, "nodeType": "YulFunctionCall", - "src": "6681:22:1" + "src": "4298:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6705:7:1" + "src": "4322:7:1" } ], "functionName": { - "name": "abi_decode_t_bytes6", + "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "6661:19:1" + "src": "4277:20:1" }, "nodeType": "YulFunctionCall", - "src": "6661:52:1" + "src": "4277:53:1" }, "variableNames": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "6651:6:1" + "src": "4267:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4350:119:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4365:17:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:3:1", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4369:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4396:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4431:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4442:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4427:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4427:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4451:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "4406:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "4406:53:1" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4396:6:1" } ] } @@ -3765,19 +3547,19 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes6", + "name": "abi_decode_tuple_t_addresst_bytes12t_uint128t_uint128t_uint128", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "6029:9:1", + "src": "3637:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "6040:7:1", + "src": "3648:7:1", "type": "" } ], @@ -3785,188 +3567,227 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "6052:6:1", + "src": "3660:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "6060:6:1", + "src": "3668:6:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "6068:6:1", + "src": "3676:6:1", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "6076:6:1", + "src": "3684:6:1", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "3692:6:1", "type": "" } ], - "src": "5967:763:1" + "src": "3565:911:1" }, { "body": { "nodeType": "YulBlock", - "src": "6801:53:1", + "src": "4526:105:1", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "4536:89:1", + "value": { "arguments": [ { - "name": "pos", + "name": "value", "nodeType": "YulIdentifier", - "src": "6818:3:1" + "src": "4551:5:1" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6841:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "6823:17:1" - }, - "nodeType": "YulFunctionCall", - "src": "6823:24:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "4558:66:1", + "type": "", + "value": "0xffffffffffff0000000000000000000000000000000000000000000000000000" } ], "functionName": { - "name": "mstore", + "name": "and", "nodeType": "YulIdentifier", - "src": "6811:6:1" + "src": "4547:3:1" }, "nodeType": "YulFunctionCall", - "src": "6811:37:1" + "src": "4547:78:1" }, - "nodeType": "YulExpressionStatement", - "src": "6811:37:1" + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4536:7:1" + } + ] } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "cleanup_t_bytes6", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "6789:5:1", + "src": "4508:5:1", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "cleaned", "nodeType": "YulTypedName", - "src": "6796:3:1", + "src": "4518:7:1", "type": "" } ], - "src": "6736:118:1" + "src": "4482:149:1" }, { "body": { "nodeType": "YulBlock", - "src": "6925:53:1", + "src": "4679:78:1", "statements": [ { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "4735:16:1", + "statements": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6942:3:1" - }, + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4744:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4747:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4737:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4737:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4737:12:1" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "6965:5:1" + "src": "4702:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4726:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bytes6", + "nodeType": "YulIdentifier", + "src": "4709:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "4709:23:1" } ], "functionName": { - "name": "cleanup_t_address", + "name": "eq", "nodeType": "YulIdentifier", - "src": "6947:17:1" + "src": "4699:2:1" }, "nodeType": "YulFunctionCall", - "src": "6947:24:1" + "src": "4699:34:1" } ], "functionName": { - "name": "mstore", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "6935:6:1" + "src": "4692:6:1" }, "nodeType": "YulFunctionCall", - "src": "6935:37:1" + "src": "4692:42:1" }, - "nodeType": "YulExpressionStatement", - "src": "6935:37:1" + "nodeType": "YulIf", + "src": "4689:62:1" } ] }, - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "validator_revert_t_bytes6", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "6913:5:1", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "6920:3:1", + "src": "4672:5:1", "type": "" } ], - "src": "6860:118:1" + "src": "4637:120:1" }, { "body": { "nodeType": "YulBlock", - "src": "7110:206:1", + "src": "4814:86:1", "statements": [ { "nodeType": "YulAssignment", - "src": "7120:26:1", + "src": "4824:29:1", "value": { "arguments": [ { - "name": "headStart", + "name": "offset", "nodeType": "YulIdentifier", - "src": "7132:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7143:2:1", - "type": "", - "value": "64" + "src": "4846:6:1" } ], "functionName": { - "name": "add", + "name": "calldataload", "nodeType": "YulIdentifier", - "src": "7128:3:1" + "src": "4833:12:1" }, "nodeType": "YulFunctionCall", - "src": "7128:18:1" + "src": "4833:20:1" }, "variableNames": [ { - "name": "tail", + "name": "value", "nodeType": "YulIdentifier", - "src": "7120:4:1" + "src": "4824:5:1" } ] }, @@ -3974,227 +3795,75 @@ "expression": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7200:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7213:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7224:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7209:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "7209:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "7156:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "7156:71:1" - }, - "nodeType": "YulExpressionStatement", - "src": "7156:71:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", + "name": "value", "nodeType": "YulIdentifier", - "src": "7281:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7294:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7305:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7290:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "7290:18:1" + "src": "4888:5:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "validator_revert_t_bytes6", "nodeType": "YulIdentifier", - "src": "7237:43:1" + "src": "4862:25:1" }, "nodeType": "YulFunctionCall", - "src": "7237:72:1" + "src": "4862:32:1" }, "nodeType": "YulExpressionStatement", - "src": "7237:72:1" + "src": "4862:32:1" } ] }, - "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", + "name": "abi_decode_t_bytes6", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7074:9:1", - "type": "" - }, - { - "name": "value1", + "name": "offset", "nodeType": "YulTypedName", - "src": "7086:6:1", + "src": "4792:6:1", "type": "" }, { - "name": "value0", + "name": "end", "nodeType": "YulTypedName", - "src": "7094:6:1", + "src": "4800:3:1", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value", "nodeType": "YulTypedName", - "src": "7105:4:1", + "src": "4808:5:1", "type": "" } ], - "src": "6984:332:1" + "src": "4763:137:1" }, { "body": { "nodeType": "YulBlock", - "src": "7385:80:1", + "src": "5056:905:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "7395:22:1", - "value": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "5103:83:1", + "statements": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7410:6:1" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5105:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "5105:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5105:79:1" } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7404:5:1" - }, - "nodeType": "YulFunctionCall", - "src": "7404:13:1" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7395:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7453:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "7426:26:1" - }, - "nodeType": "YulFunctionCall", - "src": "7426:33:1" - }, - "nodeType": "YulExpressionStatement", - "src": "7426:33:1" - } - ] - }, - "name": "abi_decode_t_uint256_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "7363:6:1", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "7371:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7379:5:1", - "type": "" - } - ], - "src": "7322:143:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7548:274:1", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7594:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "7596:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "7596:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "7596:79:1" - } - ] + ] }, "condition": { "arguments": [ @@ -4203,52 +3872,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7569:7:1" + "src": "5077:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7578:9:1" + "src": "5086:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "7565:3:1" + "src": "5073:3:1" }, "nodeType": "YulFunctionCall", - "src": "7565:23:1" + "src": "5073:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7590:2:1", + "src": "5098:3:1", "type": "", - "value": "32" + "value": "192" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "7561:3:1" + "src": "5069:3:1" }, "nodeType": "YulFunctionCall", - "src": "7561:32:1" + "src": "5069:33:1" }, "nodeType": "YulIf", - "src": "7558:119:1" + "src": "5066:120:1" }, { "nodeType": "YulBlock", - "src": "7687:128:1", + "src": "5196:117:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7702:15:1", + "src": "5211:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7716:1:1", + "src": "5225:1:1", "type": "", "value": "0" }, @@ -4256,14 +3925,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "7706:6:1", + "src": "5215:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "7731:74:1", + "src": "5240:63:1", "value": { "arguments": [ { @@ -4271,591 +3940,478 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7777:9:1" + "src": "5275:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "7788:6:1" + "src": "5286:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7773:3:1" + "src": "5271:3:1" }, "nodeType": "YulFunctionCall", - "src": "7773:22:1" + "src": "5271:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7797:7:1" + "src": "5295:7:1" } ], "functionName": { - "name": "abi_decode_t_uint256_fromMemory", + "name": "abi_decode_t_bytes12", "nodeType": "YulIdentifier", - "src": "7741:31:1" + "src": "5250:20:1" }, "nodeType": "YulFunctionCall", - "src": "7741:64:1" + "src": "5250:53:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "7731:6:1" + "src": "5240:6:1" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7518:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "7529:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7541:6:1", - "type": "" - } - ], - "src": "7471:351:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7893:53:1", - "statements": [ + }, { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7910:3:1" + "nodeType": "YulBlock", + "src": "5323:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5338:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5352:2:1", + "type": "", + "value": "32" }, - { + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5342:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5368:63:1", + "value": { "arguments": [ { - "name": "value", + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5403:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5414:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5399:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5399:22:1" + }, + { + "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7933:5:1" + "src": "5423:7:1" } ], "functionName": { - "name": "cleanup_t_bytes12", + "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "7915:17:1" + "src": "5378:20:1" }, "nodeType": "YulFunctionCall", - "src": "7915:24:1" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7903:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "7903:37:1" - }, - "nodeType": "YulExpressionStatement", - "src": "7903:37:1" - } - ] - }, - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7881:5:1", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "7888:3:1", - "type": "" - } - ], - "src": "7828:118:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8017:53:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8034:3:1" + "src": "5378:53:1" }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8057:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint128", + "variableNames": [ + { + "name": "value1", "nodeType": "YulIdentifier", - "src": "8039:17:1" - }, - "nodeType": "YulFunctionCall", - "src": "8039:24:1" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8027:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "8027:37:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8027:37:1" - } - ] - }, - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "8005:5:1", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "8012:3:1", - "type": "" - } - ], - "src": "7952:118:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8286:454:1", - "statements": [ + "src": "5368:6:1" + } + ] + } + ] + }, { - "nodeType": "YulAssignment", - "src": "8296:27:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8308:9:1" - }, - { + "nodeType": "YulBlock", + "src": "5451:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5466:16:1", + "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "8319:3:1", + "src": "5480:2:1", "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8304:3:1" + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5470:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "8304:19:1" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8296:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "8377:6:1" - }, - { + "nodeType": "YulAssignment", + "src": "5496:63:1", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8390:9:1" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5531:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5542:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5527:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5527:22:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8401:1:1", - "type": "", - "value": "0" + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5551:7:1" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "8386:3:1" + "src": "5506:20:1" }, "nodeType": "YulFunctionCall", - "src": "8386:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", - "nodeType": "YulIdentifier", - "src": "8333:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "8333:71:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8333:71:1" + "src": "5506:53:1" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5496:6:1" + } + ] + } + ] }, { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "8458:6:1" + "nodeType": "YulBlock", + "src": "5579:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5594:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5608:2:1", + "type": "", + "value": "96" }, - { + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5598:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5624:63:1", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8471:9:1" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5659:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5670:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5655:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5655:22:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8482:2:1", - "type": "", - "value": "32" + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5679:7:1" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "8467:3:1" + "src": "5634:20:1" }, "nodeType": "YulFunctionCall", - "src": "8467:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "8414:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "8414:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8414:72:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "8540:6:1" + "src": "5634:53:1" }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8553:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8564:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", + "variableNames": [ + { + "name": "value3", "nodeType": "YulIdentifier", - "src": "8549:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "8549:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", - "nodeType": "YulIdentifier", - "src": "8496:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "8496:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8496:72:1" + "src": "5624:6:1" + } + ] + } + ] }, { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "8622:6:1" + "nodeType": "YulBlock", + "src": "5707:119:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5722:17:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5736:3:1", + "type": "", + "value": "128" }, - { + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5726:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5753:63:1", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8635:9:1" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5788:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5799:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5784:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5784:22:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8646:2:1", - "type": "", - "value": "96" + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5808:7:1" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_uint128", "nodeType": "YulIdentifier", - "src": "8631:3:1" + "src": "5763:20:1" }, "nodeType": "YulFunctionCall", - "src": "8631:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", - "nodeType": "YulIdentifier", - "src": "8578:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "8578:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8578:72:1" + "src": "5763:53:1" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "5753:6:1" + } + ] + } + ] }, { - "expression": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "8704:6:1" + "nodeType": "YulBlock", + "src": "5836:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5851:17:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5865:3:1", + "type": "", + "value": "160" }, - { + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5855:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5882:62:1", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8717:9:1" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5916:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5927:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5912:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5912:22:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8728:3:1", - "type": "", - "value": "128" + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5936:7:1" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_bytes6", "nodeType": "YulIdentifier", - "src": "8713:3:1" + "src": "5892:19:1" }, "nodeType": "YulFunctionCall", - "src": "8713:19:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", - "nodeType": "YulIdentifier", - "src": "8660:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "8660:73:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8660:73:1" + "src": "5892:52:1" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "5882:6:1" + } + ] + } + ] } ] }, - "name": "abi_encode_tuple_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__to_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__fromStack_reversed", + "name": "abi_decode_tuple_t_bytes12t_uint256t_addresst_uint128t_uint128t_bytes6", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8226:9:1", + "src": "4986:9:1", "type": "" }, { - "name": "value4", + "name": "dataEnd", "nodeType": "YulTypedName", - "src": "8238:6:1", + "src": "4997:7:1", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "value3", + "name": "value0", "nodeType": "YulTypedName", - "src": "8246:6:1", + "src": "5009:6:1", "type": "" }, { - "name": "value2", + "name": "value1", "nodeType": "YulTypedName", - "src": "8254:6:1", + "src": "5017:6:1", "type": "" }, { - "name": "value1", + "name": "value2", "nodeType": "YulTypedName", - "src": "8262:6:1", + "src": "5025:6:1", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "8270:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8281:4:1", - "type": "" - } - ], - "src": "8076:664:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8809:80:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8819:22:1", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "8834:6:1" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "8828:5:1" - }, - "nodeType": "YulFunctionCall", - "src": "8828:13:1" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8819:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8877:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_uint128", - "nodeType": "YulIdentifier", - "src": "8850:26:1" - }, - "nodeType": "YulFunctionCall", - "src": "8850:33:1" - }, - "nodeType": "YulExpressionStatement", - "src": "8850:33:1" - } - ] - }, - "name": "abi_decode_t_uint128_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", + "name": "value3", "nodeType": "YulTypedName", - "src": "8787:6:1", + "src": "5033:6:1", "type": "" }, { - "name": "end", + "name": "value4", "nodeType": "YulTypedName", - "src": "8795:3:1", + "src": "5041:6:1", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "value", + "name": "value5", "nodeType": "YulTypedName", - "src": "8803:5:1", + "src": "5049:6:1", "type": "" } ], - "src": "8746:143:1" + "src": "4906:1055:1" }, { "body": { "nodeType": "YulBlock", - "src": "8972:274:1", + "src": "6083:647:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "9018:83:1", + "src": "6130:83:1", "statements": [ { "expression": { @@ -4863,13 +4419,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "9020:77:1" + "src": "6132:77:1" }, "nodeType": "YulFunctionCall", - "src": "9020:79:1" + "src": "6132:79:1" }, "nodeType": "YulExpressionStatement", - "src": "9020:79:1" + "src": "6132:79:1" } ] }, @@ -4880,52 +4436,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8993:7:1" + "src": "6104:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "9002:9:1" + "src": "6113:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "8989:3:1" + "src": "6100:3:1" }, "nodeType": "YulFunctionCall", - "src": "8989:23:1" + "src": "6100:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9014:2:1", + "src": "6125:3:1", "type": "", - "value": "32" + "value": "128" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "8985:3:1" + "src": "6096:3:1" }, "nodeType": "YulFunctionCall", - "src": "8985:32:1" + "src": "6096:33:1" }, "nodeType": "YulIf", - "src": "8982:119:1" + "src": "6093:120:1" }, { "nodeType": "YulBlock", - "src": "9111:128:1", + "src": "6223:117:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9126:15:1", + "src": "6238:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9140:1:1", + "src": "6252:1:1", "type": "", "value": "0" }, @@ -4933,14 +4489,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "9130:6:1", + "src": "6242:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "9155:74:1", + "src": "6267:63:1", "value": { "arguments": [ { @@ -4948,372 +4504,376 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "9201:9:1" + "src": "6302:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "9212:6:1" + "src": "6313:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9197:3:1" + "src": "6298:3:1" }, "nodeType": "YulFunctionCall", - "src": "9197:22:1" + "src": "6298:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "9221:7:1" + "src": "6322:7:1" } ], "functionName": { - "name": "abi_decode_t_uint128_fromMemory", + "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "9165:31:1" + "src": "6277:20:1" }, "nodeType": "YulFunctionCall", - "src": "9165:64:1" + "src": "6277:53:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "9155:6:1" + "src": "6267:6:1" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_uint128_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8942:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "8953:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "8965:6:1", - "type": "" - } - ], - "src": "8895:351:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9296:48:1", - "statements": [ + }, { - "nodeType": "YulAssignment", - "src": "9306:32:1", - "value": { - "arguments": [ - { + "nodeType": "YulBlock", + "src": "6350:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6365:16:1", + "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9328:2:1", + "src": "6379:2:1", "type": "", - "value": "15" + "value": "32" }, - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9332:5:1" - } - ], - "functionName": { - "name": "signextend", - "nodeType": "YulIdentifier", - "src": "9317:10:1" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6369:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "9317:21:1" - }, - "variableNames": [ { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "9306:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_int128", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9278:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "9288:7:1", - "type": "" - } - ], - "src": "9252:92:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9378:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9395:1:1", - "type": "", - "value": "0" + "nodeType": "YulAssignment", + "src": "6395:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6430:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6441:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6426:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6426:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6450:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "6405:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "6405:53:1" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9398:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9388:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "9388:88:1" - }, - "nodeType": "YulExpressionStatement", - "src": "9388:88:1" + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6395:6:1" + } + ] + } + ] }, { - "expression": { - "arguments": [ - { + "nodeType": "YulBlock", + "src": "6478:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6493:16:1", + "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9492:1:1", + "src": "6507:2:1", "type": "", - "value": "4" + "value": "64" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9495:4:1", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9485:6:1" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6497:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "9485:15:1" - }, - "nodeType": "YulExpressionStatement", - "src": "9485:15:1" + { + "nodeType": "YulAssignment", + "src": "6523:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6558:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6569:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6554:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6554:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6578:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "6533:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "6533:53:1" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6523:6:1" + } + ] + } + ] }, { - "expression": { - "arguments": [ - { + "nodeType": "YulBlock", + "src": "6606:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6621:16:1", + "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9516:1:1", + "src": "6635:2:1", "type": "", - "value": "0" + "value": "96" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9519:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9509:6:1" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6625:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "9509:15:1" - }, - "nodeType": "YulExpressionStatement", - "src": "9509:15:1" + { + "nodeType": "YulAssignment", + "src": "6651:62:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6685:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6696:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6681:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "6681:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6705:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_bytes6", + "nodeType": "YulIdentifier", + "src": "6661:19:1" + }, + "nodeType": "YulFunctionCall", + "src": "6661:52:1" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "6651:6:1" + } + ] + } + ] } ] }, - "name": "panic_error_0x11", + "name": "abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes6", "nodeType": "YulFunctionDefinition", - "src": "9350:180:1" + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6029:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6040:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6052:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6060:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6068:6:1", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "6076:6:1", + "type": "" + } + ], + "src": "5967:763:1" }, { "body": { "nodeType": "YulBlock", - "src": "9575:189:1", + "src": "6801:53:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "9585:32:1", - "value": { + "expression": { "arguments": [ { - "name": "value", + "name": "pos", "nodeType": "YulIdentifier", - "src": "9611:5:1" - } - ], - "functionName": { - "name": "cleanup_t_int128", - "nodeType": "YulIdentifier", - "src": "9594:16:1" - }, - "nodeType": "YulFunctionCall", - "src": "9594:23:1" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9585:5:1" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9707:22:1", - "statements": [ + "src": "6818:3:1" + }, { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", + "arguments": [ + { + "name": "value", "nodeType": "YulIdentifier", - "src": "9709:16:1" - }, - "nodeType": "YulFunctionCall", - "src": "9709:18:1" + "src": "6841:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6823:17:1" }, - "nodeType": "YulExpressionStatement", - "src": "9709:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9632:5:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9639:66:1", - "type": "", - "value": "0xffffffffffffffffffffffffffffffff80000000000000000000000000000000" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "9629:2:1" - }, - "nodeType": "YulFunctionCall", - "src": "9629:77:1" - }, - "nodeType": "YulIf", - "src": "9626:103:1" - }, - { - "nodeType": "YulAssignment", - "src": "9738:20:1", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9749:1:1", - "type": "", - "value": "0" - }, - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9752:5:1" + "nodeType": "YulFunctionCall", + "src": "6823:24:1" } ], "functionName": { - "name": "sub", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "9745:3:1" + "src": "6811:6:1" }, "nodeType": "YulFunctionCall", - "src": "9745:13:1" + "src": "6811:37:1" }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "9738:3:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "6811:37:1" } ] }, - "name": "negate_t_int128", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "9561:5:1", + "src": "6789:5:1", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "ret", + "name": "pos", "nodeType": "YulTypedName", - "src": "9571:3:1", + "src": "6796:3:1", "type": "" } ], - "src": "9536:228:1" + "src": "6736:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "9833:52:1", + "src": "6925:53:1", "statements": [ { "expression": { @@ -5321,92 +4881,92 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "9850:3:1" + "src": "6942:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "9872:5:1" + "src": "6965:5:1" } ], "functionName": { - "name": "cleanup_t_int128", + "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "9855:16:1" + "src": "6947:17:1" }, "nodeType": "YulFunctionCall", - "src": "9855:23:1" + "src": "6947:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9843:6:1" + "src": "6935:6:1" }, "nodeType": "YulFunctionCall", - "src": "9843:36:1" + "src": "6935:37:1" }, "nodeType": "YulExpressionStatement", - "src": "9843:36:1" + "src": "6935:37:1" } ] }, - "name": "abi_encode_t_int128_to_t_int128_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "9821:5:1", + "src": "6913:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "9828:3:1", + "src": "6920:3:1", "type": "" } ], - "src": "9770:115:1" + "src": "6860:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "10071:369:1", + "src": "7110:206:1", "statements": [ { "nodeType": "YulAssignment", - "src": "10081:27:1", + "src": "7120:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10093:9:1" + "src": "7132:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10104:3:1", + "src": "7143:2:1", "type": "", - "value": "128" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10089:3:1" + "src": "7128:3:1" }, "nodeType": "YulFunctionCall", - "src": "10089:19:1" + "src": "7128:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10081:4:1" + "src": "7120:4:1" } ] }, @@ -5416,19 +4976,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "10162:6:1" + "src": "7200:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10175:9:1" + "src": "7213:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10186:1:1", + "src": "7224:1:1", "type": "", "value": "0" } @@ -5436,22 +4996,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10171:3:1" + "src": "7209:3:1" }, "nodeType": "YulFunctionCall", - "src": "10171:17:1" + "src": "7209:17:1" } ], "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "10118:43:1" + "src": "7156:43:1" }, "nodeType": "YulFunctionCall", - "src": "10118:71:1" + "src": "7156:71:1" }, "nodeType": "YulExpressionStatement", - "src": "10118:71:1" + "src": "7156:71:1" }, { "expression": { @@ -5459,19 +5019,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "10243:6:1" + "src": "7281:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10256:9:1" + "src": "7294:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10267:2:1", + "src": "7305:2:1", "type": "", "value": "32" } @@ -5479,142 +5039,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10252:3:1" + "src": "7290:3:1" }, "nodeType": "YulFunctionCall", - "src": "10252:18:1" + "src": "7290:18:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "10199:43:1" + "src": "7237:43:1" }, "nodeType": "YulFunctionCall", - "src": "10199:72:1" + "src": "7237:72:1" }, "nodeType": "YulExpressionStatement", - "src": "10199:72:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "10323:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10336:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10347:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10332:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "10332:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_int128_to_t_int128_fromStack", - "nodeType": "YulIdentifier", - "src": "10281:41:1" - }, - "nodeType": "YulFunctionCall", - "src": "10281:70:1" - }, - "nodeType": "YulExpressionStatement", - "src": "10281:70:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "10405:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10418:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10429:2:1", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10414:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "10414:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", - "nodeType": "YulIdentifier", - "src": "10361:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "10361:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "10361:72:1" + "src": "7237:72:1" } ] }, - "name": "abi_encode_tuple_t_bytes12_t_address_t_int128_t_uint128__to_t_bytes12_t_address_t_int128_t_uint128__fromStack_reversed", + "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "10019:9:1", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "10031:6:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "10039:6:1", + "src": "7074:9:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "10047:6:1", + "src": "7086:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "10055:6:1", + "src": "7094:6:1", "type": "" } ], @@ -5622,48 +5084,41 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "10066:4:1", + "src": "7105:4:1", "type": "" } ], - "src": "9891:549:1" + "src": "6984:332:1" }, { "body": { "nodeType": "YulBlock", - "src": "10572:206:1", + "src": "7385:80:1", "statements": [ { "nodeType": "YulAssignment", - "src": "10582:26:1", + "src": "7395:22:1", "value": { "arguments": [ { - "name": "headStart", + "name": "offset", "nodeType": "YulIdentifier", - "src": "10594:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10605:2:1", - "type": "", - "value": "64" + "src": "7410:6:1" } ], "functionName": { - "name": "add", + "name": "mload", "nodeType": "YulIdentifier", - "src": "10590:3:1" + "src": "7404:5:1" }, "nodeType": "YulFunctionCall", - "src": "10590:18:1" + "src": "7404:13:1" }, "variableNames": [ { - "name": "tail", + "name": "value", "nodeType": "YulIdentifier", - "src": "10582:4:1" + "src": "7395:5:1" } ] }, @@ -5671,573 +5126,377 @@ "expression": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "10662:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10675:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10686:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10671:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "10671:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "10618:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "10618:71:1" - }, - "nodeType": "YulExpressionStatement", - "src": "10618:71:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", + "name": "value", "nodeType": "YulIdentifier", - "src": "10743:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10756:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10767:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10752:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "10752:18:1" + "src": "7453:5:1" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", - "src": "10699:43:1" + "src": "7426:26:1" }, "nodeType": "YulFunctionCall", - "src": "10699:72:1" + "src": "7426:33:1" }, "nodeType": "YulExpressionStatement", - "src": "10699:72:1" + "src": "7426:33:1" } ] }, - "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "name": "abi_decode_t_uint256_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "10536:9:1", - "type": "" - }, - { - "name": "value1", + "name": "offset", "nodeType": "YulTypedName", - "src": "10548:6:1", + "src": "7363:6:1", "type": "" }, { - "name": "value0", + "name": "end", "nodeType": "YulTypedName", - "src": "10556:6:1", + "src": "7371:3:1", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value", "nodeType": "YulTypedName", - "src": "10567:4:1", + "src": "7379:5:1", "type": "" } ], - "src": "10446:332:1" + "src": "7322:143:1" }, { "body": { "nodeType": "YulBlock", - "src": "10826:48:1", + "src": "7548:274:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "10836:32:1", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "7594:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7596:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "7596:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "7596:79:1" + } + ] + }, + "condition": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "10861:5:1" - } + "src": "7569:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7578:9:1" + } ], "functionName": { - "name": "iszero", + "name": "sub", "nodeType": "YulIdentifier", - "src": "10854:6:1" + "src": "7565:3:1" }, "nodeType": "YulFunctionCall", - "src": "10854:13:1" + "src": "7565:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7590:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "iszero", + "name": "slt", "nodeType": "YulIdentifier", - "src": "10847:6:1" + "src": "7561:3:1" }, "nodeType": "YulFunctionCall", - "src": "10847:21:1" + "src": "7561:32:1" }, - "variableNames": [ + "nodeType": "YulIf", + "src": "7558:119:1" + }, + { + "nodeType": "YulBlock", + "src": "7687:128:1", + "statements": [ { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "10836:7:1" + "nodeType": "YulVariableDeclaration", + "src": "7702:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7716:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7706:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7731:74:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7777:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7788:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7773:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "7773:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7797:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "7741:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "7741:64:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7731:6:1" + } + ] } ] } ] }, - "name": "cleanup_t_bool", + "name": "abi_decode_tuple_t_uint256_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "10808:5:1", + "src": "7518:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7529:7:1", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "value0", "nodeType": "YulTypedName", - "src": "10818:7:1", + "src": "7541:6:1", "type": "" } ], - "src": "10784:90:1" + "src": "7471:351:1" }, { "body": { "nodeType": "YulBlock", - "src": "10920:76:1", + "src": "7893:53:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "10974:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10983:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10986:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "10976:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "10976:12:1" - }, - "nodeType": "YulExpressionStatement", - "src": "10976:12:1" - } - ] - }, - "condition": { + "expression": { "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7910:3:1" + }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "10943:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10965:5:1" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nodeType": "YulIdentifier", - "src": "10950:14:1" - }, - "nodeType": "YulFunctionCall", - "src": "10950:21:1" + "src": "7933:5:1" } ], "functionName": { - "name": "eq", + "name": "cleanup_t_bytes12", "nodeType": "YulIdentifier", - "src": "10940:2:1" + "src": "7915:17:1" }, "nodeType": "YulFunctionCall", - "src": "10940:32:1" + "src": "7915:24:1" } ], "functionName": { - "name": "iszero", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "10933:6:1" + "src": "7903:6:1" }, "nodeType": "YulFunctionCall", - "src": "10933:40:1" + "src": "7903:37:1" }, - "nodeType": "YulIf", - "src": "10930:60:1" + "nodeType": "YulExpressionStatement", + "src": "7903:37:1" } ] }, - "name": "validator_revert_t_bool", + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "10913:5:1", + "src": "7881:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7888:3:1", "type": "" } ], - "src": "10880:116:1" + "src": "7828:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "11062:77:1", + "src": "8017:53:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "11072:22:1", - "value": { + "expression": { "arguments": [ { - "name": "offset", + "name": "pos", "nodeType": "YulIdentifier", - "src": "11087:6:1" + "src": "8034:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8057:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "8039:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "8039:24:1" } ], "functionName": { - "name": "mload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "11081:5:1" + "src": "8027:6:1" }, "nodeType": "YulFunctionCall", - "src": "11081:13:1" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11072:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11127:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_bool", - "nodeType": "YulIdentifier", - "src": "11103:23:1" - }, - "nodeType": "YulFunctionCall", - "src": "11103:30:1" + "src": "8027:37:1" }, "nodeType": "YulExpressionStatement", - "src": "11103:30:1" + "src": "8027:37:1" } ] }, - "name": "abi_decode_t_bool_fromMemory", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "11040:6:1", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "11048:3:1", - "type": "" - } - ], - "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "11056:5:1", - "type": "" - } - ], - "src": "11002:137:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11219:271:1", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "11265:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "11267:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "11267:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "11267:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "11240:7:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11249:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "11236:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "11236:23:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11261:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "11232:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "11232:32:1" - }, - "nodeType": "YulIf", - "src": "11229:119:1" - }, - { - "nodeType": "YulBlock", - "src": "11358:125:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11373:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11387:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "11377:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11402:71:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11445:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "11456:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11441:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "11441:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "11465:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_bool_fromMemory", - "nodeType": "YulIdentifier", - "src": "11412:28:1" - }, - "nodeType": "YulFunctionCall", - "src": "11412:61:1" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11402:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11189:9:1", + "src": "8005:5:1", "type": "" }, { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "11200:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "pos", "nodeType": "YulTypedName", - "src": "11212:6:1", + "src": "8012:3:1", "type": "" } ], - "src": "11145:345:1" + "src": "7952:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "11594:124:1", + "src": "8286:454:1", "statements": [ { "nodeType": "YulAssignment", - "src": "11604:26:1", + "src": "8296:27:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11616:9:1" + "src": "8308:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11627:2:1", + "src": "8319:3:1", "type": "", - "value": "32" + "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11612:3:1" + "src": "8304:3:1" }, "nodeType": "YulFunctionCall", - "src": "11612:18:1" + "src": "8304:19:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "11604:4:1" + "src": "8296:4:1" } ] }, @@ -6247,19 +5506,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "11684:6:1" + "src": "8377:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11697:9:1" + "src": "8390:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11708:1:1", + "src": "8401:1:1", "type": "", "value": "0" } @@ -6267,295 +5526,234 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11693:3:1" + "src": "8386:3:1" }, "nodeType": "YulFunctionCall", - "src": "11693:17:1" + "src": "8386:17:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", "nodeType": "YulIdentifier", - "src": "11640:43:1" + "src": "8333:43:1" }, "nodeType": "YulFunctionCall", - "src": "11640:71:1" + "src": "8333:71:1" }, "nodeType": "YulExpressionStatement", - "src": "11640:71:1" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11566:9:1", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11578:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11589:4:1", - "type": "" - } - ], - "src": "11496:222:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11902:367:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11912:27:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11924:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11935:3:1", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11920:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "11920:19:1" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11912:4:1" - } - ] + "src": "8333:71:1" }, { "expression": { "arguments": [ { - "name": "value0", + "name": "value1", "nodeType": "YulIdentifier", - "src": "11993:6:1" + "src": "8458:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12006:9:1" + "src": "8471:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12017:1:1", + "src": "8482:2:1", "type": "", - "value": "0" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12002:3:1" + "src": "8467:3:1" }, "nodeType": "YulFunctionCall", - "src": "12002:17:1" + "src": "8467:18:1" } ], "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "11949:43:1" + "src": "8414:43:1" }, "nodeType": "YulFunctionCall", - "src": "11949:71:1" + "src": "8414:72:1" }, "nodeType": "YulExpressionStatement", - "src": "11949:71:1" + "src": "8414:72:1" }, { "expression": { "arguments": [ { - "name": "value1", + "name": "value2", "nodeType": "YulIdentifier", - "src": "12074:6:1" + "src": "8540:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12087:9:1" + "src": "8553:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12098:2:1", + "src": "8564:2:1", "type": "", - "value": "32" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12083:3:1" + "src": "8549:3:1" }, "nodeType": "YulFunctionCall", - "src": "12083:18:1" + "src": "8549:18:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "12030:43:1" + "src": "8496:43:1" }, "nodeType": "YulFunctionCall", - "src": "12030:72:1" + "src": "8496:72:1" }, "nodeType": "YulExpressionStatement", - "src": "12030:72:1" + "src": "8496:72:1" }, { "expression": { "arguments": [ { - "name": "value2", + "name": "value3", "nodeType": "YulIdentifier", - "src": "12154:6:1" + "src": "8622:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12167:9:1" + "src": "8635:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12178:2:1", + "src": "8646:2:1", "type": "", - "value": "64" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12163:3:1" + "src": "8631:3:1" }, "nodeType": "YulFunctionCall", - "src": "12163:18:1" + "src": "8631:18:1" } ], "functionName": { - "name": "abi_encode_t_int128_to_t_int128_fromStack", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "12112:41:1" + "src": "8578:43:1" }, "nodeType": "YulFunctionCall", - "src": "12112:70:1" + "src": "8578:72:1" }, "nodeType": "YulExpressionStatement", - "src": "12112:70:1" + "src": "8578:72:1" }, { "expression": { "arguments": [ { - "name": "value3", + "name": "value4", "nodeType": "YulIdentifier", - "src": "12234:6:1" + "src": "8704:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12247:9:1" + "src": "8717:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12258:2:1", + "src": "8728:3:1", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12243:3:1" + "src": "8713:3:1" }, "nodeType": "YulFunctionCall", - "src": "12243:18:1" + "src": "8713:19:1" } ], "functionName": { - "name": "abi_encode_t_int128_to_t_int128_fromStack", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "12192:41:1" + "src": "8660:43:1" }, "nodeType": "YulFunctionCall", - "src": "12192:70:1" + "src": "8660:73:1" }, "nodeType": "YulExpressionStatement", - "src": "12192:70:1" + "src": "8660:73:1" } ] }, - "name": "abi_encode_tuple_t_bytes12_t_address_t_int128_t_int128__to_t_bytes12_t_address_t_int128_t_int128__fromStack_reversed", + "name": "abi_encode_tuple_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__to_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "11850:9:1", + "src": "8226:9:1", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "8238:6:1", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "11862:6:1", + "src": "8246:6:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "11870:6:1", + "src": "8254:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "11878:6:1", + "src": "8262:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "11886:6:1", + "src": "8270:6:1", "type": "" } ], @@ -6563,387 +5761,652 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "11897:4:1", + "src": "8281:4:1", "type": "" } ], - "src": "11724:545:1" + "src": "8076:664:1" }, { "body": { "nodeType": "YulBlock", - "src": "12307:28:1", + "src": "8809:80:1", "statements": [ { "nodeType": "YulAssignment", - "src": "12317:12:1", + "src": "8819:22:1", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "12324:5:1" + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8834:6:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8828:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "8828:13:1" }, "variableNames": [ { - "name": "ret", + "name": "value", "nodeType": "YulIdentifier", - "src": "12317:3:1" + "src": "8819:5:1" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8877:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint128", + "nodeType": "YulIdentifier", + "src": "8850:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "8850:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "8850:33:1" } ] }, - "name": "identity", + "name": "abi_decode_t_uint128_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "offset", "nodeType": "YulTypedName", - "src": "12293:5:1", + "src": "8787:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8795:3:1", "type": "" } ], "returnVariables": [ { - "name": "ret", + "name": "value", "nodeType": "YulTypedName", - "src": "12303:3:1", + "src": "8803:5:1", "type": "" } ], - "src": "12275:60:1" + "src": "8746:143:1" }, { "body": { "nodeType": "YulBlock", - "src": "12401:82:1", + "src": "8972:274:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "12411:66:1", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "9018:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9020:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "9020:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "9020:79:1" + } + ] + }, + "condition": { "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "12469:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint128", - "nodeType": "YulIdentifier", - "src": "12451:17:1" - }, - "nodeType": "YulFunctionCall", - "src": "12451:24:1" + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8993:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9002:9:1" } ], "functionName": { - "name": "identity", + "name": "sub", "nodeType": "YulIdentifier", - "src": "12442:8:1" + "src": "8989:3:1" }, "nodeType": "YulFunctionCall", - "src": "12442:34:1" + "src": "8989:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9014:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "slt", "nodeType": "YulIdentifier", - "src": "12424:17:1" + "src": "8985:3:1" }, "nodeType": "YulFunctionCall", - "src": "12424:53:1" + "src": "8985:32:1" }, - "variableNames": [ + "nodeType": "YulIf", + "src": "8982:119:1" + }, + { + "nodeType": "YulBlock", + "src": "9111:128:1", + "statements": [ { - "name": "converted", - "nodeType": "YulIdentifier", - "src": "12411:9:1" + "nodeType": "YulVariableDeclaration", + "src": "9126:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9140:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9130:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9155:74:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9201:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9212:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9197:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "9197:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9221:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint128_fromMemory", + "nodeType": "YulIdentifier", + "src": "9165:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "9165:64:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9155:6:1" + } + ] } ] } ] }, - "name": "convert_t_uint128_to_t_uint256", + "name": "abi_decode_tuple_t_uint128_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "12381:5:1", + "src": "8942:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8953:7:1", "type": "" } ], "returnVariables": [ { - "name": "converted", + "name": "value0", "nodeType": "YulTypedName", - "src": "12391:9:1", + "src": "8965:6:1", "type": "" } ], - "src": "12341:142:1" + "src": "8895:351:1" }, { "body": { "nodeType": "YulBlock", - "src": "12554:66:1", + "src": "9296:48:1", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "9306:32:1", + "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12571:3:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "9328:2:1", + "type": "", + "value": "15" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "12607:5:1" - } - ], - "functionName": { - "name": "convert_t_uint128_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "12576:30:1" - }, - "nodeType": "YulFunctionCall", - "src": "12576:37:1" + "name": "value", + "nodeType": "YulIdentifier", + "src": "9332:5:1" } ], "functionName": { - "name": "mstore", + "name": "signextend", "nodeType": "YulIdentifier", - "src": "12564:6:1" + "src": "9317:10:1" }, "nodeType": "YulFunctionCall", - "src": "12564:50:1" + "src": "9317:21:1" }, - "nodeType": "YulExpressionStatement", - "src": "12564:50:1" + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "9306:7:1" + } + ] } ] }, - "name": "abi_encode_t_uint128_to_t_uint256_fromStack", + "name": "cleanup_t_int128", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "12542:5:1", + "src": "9278:5:1", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "cleaned", "nodeType": "YulTypedName", - "src": "12549:3:1", + "src": "9288:7:1", "type": "" } ], - "src": "12489:131:1" + "src": "9252:92:1" }, { "body": { "nodeType": "YulBlock", - "src": "12752:206:1", + "src": "9378:152:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "12762:26:1", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12774:9:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:1:1", + "type": "", + "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12785:2:1", + "src": "9398:77:1", "type": "", - "value": "64" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "12770:3:1" + "src": "9388:6:1" }, "nodeType": "YulFunctionCall", - "src": "12770:18:1" + "src": "9388:88:1" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12762:4:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "9388:88:1" }, { "expression": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12842:6:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "9492:1:1", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12855:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12866:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12851:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "12851:17:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "9495:4:1", + "type": "", + "value": "0x11" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "12798:43:1" + "src": "9485:6:1" }, "nodeType": "YulFunctionCall", - "src": "12798:71:1" + "src": "9485:15:1" }, "nodeType": "YulExpressionStatement", - "src": "12798:71:1" + "src": "9485:15:1" }, { "expression": { "arguments": [ { - "name": "value1", + "kind": "number", + "nodeType": "YulLiteral", + "src": "9516:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9519:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9509:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "9509:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "9509:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "9350:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9575:189:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9585:32:1", + "value": { + "arguments": [ + { + "name": "value", "nodeType": "YulIdentifier", - "src": "12923:6:1" + "src": "9611:5:1" + } + ], + "functionName": { + "name": "cleanup_t_int128", + "nodeType": "YulIdentifier", + "src": "9594:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "9594:23:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9585:5:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9707:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9709:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "9709:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "9709:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9632:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9639:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff80000000000000000000000000000000" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9629:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "9629:77:1" + }, + "nodeType": "YulIf", + "src": "9626:103:1" + }, + { + "nodeType": "YulAssignment", + "src": "9738:20:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9749:1:1", + "type": "", + "value": "0" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9752:5:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9745:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "9745:13:1" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "9738:3:1" + } + ] + } + ] + }, + "name": "negate_t_int128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9561:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "9571:3:1", + "type": "" + } + ], + "src": "9536:228:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9833:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9850:3:1" }, { "arguments": [ { - "name": "headStart", + "name": "value", "nodeType": "YulIdentifier", - "src": "12936:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12947:2:1", - "type": "", - "value": "32" + "src": "9872:5:1" } ], "functionName": { - "name": "add", + "name": "cleanup_t_int128", "nodeType": "YulIdentifier", - "src": "12932:3:1" + "src": "9855:16:1" }, "nodeType": "YulFunctionCall", - "src": "12932:18:1" + "src": "9855:23:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint256_fromStack", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "12879:43:1" + "src": "9843:6:1" }, "nodeType": "YulFunctionCall", - "src": "12879:72:1" + "src": "9843:36:1" }, "nodeType": "YulExpressionStatement", - "src": "12879:72:1" + "src": "9843:36:1" } ] }, - "name": "abi_encode_tuple_t_address_t_uint128__to_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_t_int128_to_t_int128_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12716:9:1", - "type": "" - }, - { - "name": "value1", + "name": "value", "nodeType": "YulTypedName", - "src": "12728:6:1", + "src": "9821:5:1", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12736:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", "nodeType": "YulTypedName", - "src": "12747:4:1", + "src": "9828:3:1", "type": "" } ], - "src": "12626:332:1" + "src": "9770:115:1" }, { "body": { "nodeType": "YulBlock", - "src": "13062:124:1", + "src": "10071:369:1", "statements": [ { "nodeType": "YulAssignment", - "src": "13072:26:1", + "src": "10081:27:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13084:9:1" + "src": "10093:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13095:2:1", + "src": "10104:3:1", "type": "", - "value": "32" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13080:3:1" + "src": "10089:3:1" }, "nodeType": "YulFunctionCall", - "src": "13080:18:1" + "src": "10089:19:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13072:4:1" + "src": "10081:4:1" } ] }, @@ -6953,19 +6416,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "13152:6:1" + "src": "10162:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13165:9:1" + "src": "10175:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13176:1:1", + "src": "10186:1:1", "type": "", "value": "0" } @@ -6973,346 +6436,460 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13161:3:1" + "src": "10171:3:1" }, "nodeType": "YulFunctionCall", - "src": "13161:17:1" + "src": "10171:17:1" } ], "functionName": { "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", "nodeType": "YulIdentifier", - "src": "13108:43:1" + "src": "10118:43:1" }, "nodeType": "YulFunctionCall", - "src": "13108:71:1" + "src": "10118:71:1" }, "nodeType": "YulExpressionStatement", - "src": "13108:71:1" - } - ] - }, - "name": "abi_encode_tuple_t_bytes12__to_t_bytes12__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "13034:9:1", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "13046:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13057:4:1", - "type": "" - } - ], - "src": "12964:222:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13281:28:1", - "statements": [ + "src": "10118:71:1" + }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13298:1:1", - "type": "", - "value": "0" + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10243:6:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13301:1:1", - "type": "", - "value": "0" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10256:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10267:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "10252:18:1" } ], "functionName": { - "name": "revert", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "13291:6:1" + "src": "10199:43:1" }, "nodeType": "YulFunctionCall", - "src": "13291:12:1" + "src": "10199:72:1" }, "nodeType": "YulExpressionStatement", - "src": "13291:12:1" - } - ] - }, - "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", - "nodeType": "YulFunctionDefinition", - "src": "13192:117:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13363:54:1", - "statements": [ + "src": "10199:72:1" + }, { - "nodeType": "YulAssignment", - "src": "13373:38:1", - "value": { + "expression": { "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10323:6:1" + }, { "arguments": [ { - "name": "value", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "13391:5:1" + "src": "10336:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13398:2:1", + "src": "10347:2:1", "type": "", - "value": "31" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13387:3:1" + "src": "10332:3:1" }, "nodeType": "YulFunctionCall", - "src": "13387:14:1" + "src": "10332:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_int128_to_t_int128_fromStack", + "nodeType": "YulIdentifier", + "src": "10281:41:1" + }, + "nodeType": "YulFunctionCall", + "src": "10281:70:1" + }, + "nodeType": "YulExpressionStatement", + "src": "10281:70:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "10405:6:1" }, { "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10418:9:1" + }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13407:2:1", + "src": "10429:2:1", "type": "", - "value": "31" + "value": "96" } ], "functionName": { - "name": "not", + "name": "add", "nodeType": "YulIdentifier", - "src": "13403:3:1" + "src": "10414:3:1" }, "nodeType": "YulFunctionCall", - "src": "13403:7:1" + "src": "10414:18:1" } ], "functionName": { - "name": "and", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "13383:3:1" + "src": "10361:43:1" }, "nodeType": "YulFunctionCall", - "src": "13383:28:1" + "src": "10361:72:1" }, - "variableNames": [ - { - "name": "result", - "nodeType": "YulIdentifier", - "src": "13373:6:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "10361:72:1" } ] }, - "name": "round_up_to_mul_of_32", + "name": "abi_encode_tuple_t_bytes12_t_address_t_int128_t_uint128__to_t_bytes12_t_address_t_int128_t_uint128__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "13346:5:1", + "src": "10019:9:1", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "10031:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10039:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10047:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10055:6:1", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "tail", "nodeType": "YulTypedName", - "src": "13356:6:1", + "src": "10066:4:1", "type": "" } ], - "src": "13315:102:1" + "src": "9891:549:1" }, { "body": { "nodeType": "YulBlock", - "src": "13451:152:1", + "src": "10572:206:1", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "10582:26:1", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13468:1:1", - "type": "", - "value": "0" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10594:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13471:77:1", + "src": "10605:2:1", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "13461:6:1" + "src": "10590:3:1" }, "nodeType": "YulFunctionCall", - "src": "13461:88:1" + "src": "10590:18:1" }, - "nodeType": "YulExpressionStatement", - "src": "13461:88:1" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10582:4:1" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13565:1:1", - "type": "", - "value": "4" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10662:6:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13568:4:1", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13558:6:1" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10675:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10686:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10671:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "10671:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10618:43:1" }, "nodeType": "YulFunctionCall", - "src": "13558:15:1" + "src": "10618:71:1" }, "nodeType": "YulExpressionStatement", - "src": "13558:15:1" + "src": "10618:71:1" }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13589:1:1", - "type": "", - "value": "0" + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10743:6:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13592:4:1", - "type": "", - "value": "0x24" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10756:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10767:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10752:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "10752:18:1" } ], "functionName": { - "name": "revert", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "13582:6:1" + "src": "10699:43:1" }, "nodeType": "YulFunctionCall", - "src": "13582:15:1" + "src": "10699:72:1" }, "nodeType": "YulExpressionStatement", - "src": "13582:15:1" + "src": "10699:72:1" } ] }, - "name": "panic_error_0x41", + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", - "src": "13423:180:1" + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10536:9:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10548:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10556:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10567:4:1", + "type": "" + } + ], + "src": "10446:332:1" }, { "body": { "nodeType": "YulBlock", - "src": "13652:238:1", + "src": "10826:48:1", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "13662:58:1", + "nodeType": "YulAssignment", + "src": "10836:32:1", "value": { "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "13684:6:1" - }, { "arguments": [ { - "name": "size", + "name": "value", "nodeType": "YulIdentifier", - "src": "13714:4:1" + "src": "10861:5:1" } ], "functionName": { - "name": "round_up_to_mul_of_32", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "13692:21:1" + "src": "10854:6:1" }, "nodeType": "YulFunctionCall", - "src": "13692:27:1" + "src": "10854:13:1" } ], "functionName": { - "name": "add", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "13680:3:1" + "src": "10847:6:1" }, "nodeType": "YulFunctionCall", - "src": "13680:40:1" + "src": "10847:21:1" }, - "variables": [ + "variableNames": [ { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "13666:10:1", - "type": "" + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "10836:7:1" } ] - }, + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10808:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "10818:7:1", + "type": "" + } + ], + "src": "10784:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10920:76:1", + "statements": [ { "body": { "nodeType": "YulBlock", - "src": "13831:22:1", + "src": "10974:16:1", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10983:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10986:1:1", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "panic_error_0x41", + "name": "revert", "nodeType": "YulIdentifier", - "src": "13833:16:1" + "src": "10976:6:1" }, "nodeType": "YulFunctionCall", - "src": "13833:18:1" + "src": "10976:12:1" }, "nodeType": "YulExpressionStatement", - "src": "13833:18:1" + "src": "10976:12:1" } ] }, @@ -7321,248 +6898,90 @@ { "arguments": [ { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "13774:10:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13786:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "13771:2:1" - }, - "nodeType": "YulFunctionCall", - "src": "13771:34:1" - }, - { - "arguments": [ - { - "name": "newFreePtr", + "name": "value", "nodeType": "YulIdentifier", - "src": "13810:10:1" + "src": "10943:5:1" }, { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "13822:6:1" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10965:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "10950:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "10950:21:1" } ], "functionName": { - "name": "lt", + "name": "eq", "nodeType": "YulIdentifier", - "src": "13807:2:1" + "src": "10940:2:1" }, "nodeType": "YulFunctionCall", - "src": "13807:22:1" + "src": "10940:32:1" } ], "functionName": { - "name": "or", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "13768:2:1" + "src": "10933:6:1" }, "nodeType": "YulFunctionCall", - "src": "13768:62:1" + "src": "10933:40:1" }, "nodeType": "YulIf", - "src": "13765:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13869:2:1", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "13873:10:1" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13862:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "13862:22:1" - }, - "nodeType": "YulExpressionStatement", - "src": "13862:22:1" - } - ] - }, - "name": "finalize_allocation", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "13638:6:1", - "type": "" - }, - { - "name": "size", - "nodeType": "YulTypedName", - "src": "13646:4:1", - "type": "" - } - ], - "src": "13609:281:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13937:88:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "13947:30:1", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nodeType": "YulIdentifier", - "src": "13957:18:1" - }, - "nodeType": "YulFunctionCall", - "src": "13957:20:1" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "13947:6:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "14006:6:1" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "14014:4:1" - } - ], - "functionName": { - "name": "finalize_allocation", - "nodeType": "YulIdentifier", - "src": "13986:19:1" - }, - "nodeType": "YulFunctionCall", - "src": "13986:33:1" - }, - "nodeType": "YulExpressionStatement", - "src": "13986:33:1" + "src": "10930:60:1" } ] }, - "name": "allocate_memory", + "name": "validator_revert_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "size", - "nodeType": "YulTypedName", - "src": "13921:4:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", + "name": "value", "nodeType": "YulTypedName", - "src": "13930:6:1", + "src": "10913:5:1", "type": "" } ], - "src": "13896:129:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14120:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14137:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14140:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "14130:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "14130:12:1" - }, - "nodeType": "YulExpressionStatement", - "src": "14130:12:1" - } - ] - }, - "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", - "nodeType": "YulFunctionDefinition", - "src": "14031:117:1" + "src": "10880:116:1" }, { "body": { "nodeType": "YulBlock", - "src": "14217:80:1", + "src": "11062:77:1", "statements": [ { "nodeType": "YulAssignment", - "src": "14227:22:1", + "src": "11072:22:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "14242:6:1" + "src": "11087:6:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "14236:5:1" + "src": "11081:5:1" }, "nodeType": "YulFunctionCall", - "src": "14236:13:1" + "src": "11081:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "14227:5:1" + "src": "11072:5:1" } ] }, @@ -7572,35 +6991,35 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "14285:5:1" + "src": "11127:5:1" } ], "functionName": { - "name": "validator_revert_t_address", + "name": "validator_revert_t_bool", "nodeType": "YulIdentifier", - "src": "14258:26:1" + "src": "11103:23:1" }, "nodeType": "YulFunctionCall", - "src": "14258:33:1" + "src": "11103:30:1" }, "nodeType": "YulExpressionStatement", - "src": "14258:33:1" + "src": "11103:30:1" } ] }, - "name": "abi_decode_t_address_fromMemory", + "name": "abi_decode_t_bool_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "14195:6:1", + "src": "11040:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "14203:3:1", + "src": "11048:3:1", "type": "" } ], @@ -7608,690 +7027,671 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "14211:5:1", + "src": "11056:5:1", "type": "" } ], - "src": "14154:143:1" + "src": "11002:137:1" }, { "body": { "nodeType": "YulBlock", - "src": "14365:79:1", + "src": "11219:271:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "14375:22:1", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "11265:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11267:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "11267:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "11267:79:1" + } + ] + }, + "condition": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "14390:6:1" + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11240:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11249:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11236:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "11236:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11261:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "mload", + "name": "slt", "nodeType": "YulIdentifier", - "src": "14384:5:1" + "src": "11232:3:1" }, "nodeType": "YulFunctionCall", - "src": "14384:13:1" + "src": "11232:32:1" }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "14375:5:1" - } - ] + "nodeType": "YulIf", + "src": "11229:119:1" }, { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "14432:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_bytes6", - "nodeType": "YulIdentifier", - "src": "14406:25:1" + "nodeType": "YulBlock", + "src": "11358:125:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11373:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11387:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11377:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "14406:32:1" - }, - "nodeType": "YulExpressionStatement", - "src": "14406:32:1" + { + "nodeType": "YulAssignment", + "src": "11402:71:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11445:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11456:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11441:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "11441:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11465:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11412:28:1" + }, + "nodeType": "YulFunctionCall", + "src": "11412:61:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11402:6:1" + } + ] + } + ] } ] }, - "name": "abi_decode_t_bytes6_fromMemory", + "name": "abi_decode_tuple_t_bool_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "headStart", "nodeType": "YulTypedName", - "src": "14343:6:1", + "src": "11189:9:1", "type": "" }, { - "name": "end", + "name": "dataEnd", "nodeType": "YulTypedName", - "src": "14351:3:1", + "src": "11200:7:1", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "value0", "nodeType": "YulTypedName", - "src": "14359:5:1", + "src": "11212:6:1", "type": "" } ], - "src": "14303:141:1" + "src": "11145:345:1" }, { "body": { "nodeType": "YulBlock", - "src": "14556:692:1", + "src": "11594:124:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "14600:83:1", - "statements": [ + "nodeType": "YulAssignment", + "src": "11604:26:1", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", - "nodeType": "YulIdentifier", - "src": "14602:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "14602:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "14602:79:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11616:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11627:2:1", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11612:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "11612:18:1" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11604:4:1" + } + ] + }, + { + "expression": { "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11684:6:1" + }, { "arguments": [ { - "name": "end", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "14577:3:1" + "src": "11697:9:1" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14582:9:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "11708:1:1", + "type": "", + "value": "0" } ], "functionName": { - "name": "sub", + "name": "add", "nodeType": "YulIdentifier", - "src": "14573:3:1" + "src": "11693:3:1" }, "nodeType": "YulFunctionCall", - "src": "14573:19:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14594:4:1", - "type": "", - "value": "0x60" + "src": "11693:17:1" } ], "functionName": { - "name": "slt", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "14569:3:1" + "src": "11640:43:1" }, "nodeType": "YulFunctionCall", - "src": "14569:30:1" + "src": "11640:71:1" }, - "nodeType": "YulIf", - "src": "14566:117:1" - }, + "nodeType": "YulExpressionStatement", + "src": "11640:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11566:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11578:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11589:4:1", + "type": "" + } + ], + "src": "11496:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11902:367:1", + "statements": [ { "nodeType": "YulAssignment", - "src": "14692:30:1", + "src": "11912:27:1", "value": { "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11924:9:1" + }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14717:4:1", + "src": "11935:3:1", "type": "", - "value": "0x60" + "value": "128" } ], "functionName": { - "name": "allocate_memory", + "name": "add", "nodeType": "YulIdentifier", - "src": "14701:15:1" + "src": "11920:3:1" }, "nodeType": "YulFunctionCall", - "src": "14701:21:1" + "src": "11920:19:1" }, "variableNames": [ { - "name": "value", + "name": "tail", "nodeType": "YulIdentifier", - "src": "14692:5:1" + "src": "11912:4:1" } ] }, { - "nodeType": "YulBlock", - "src": "14732:162:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "14768:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14782:1:1", - "type": "", - "value": "0" + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11993:6:1" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "14772:6:1", - "type": "" - } - ] - }, - { - "expression": { + { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "14808:5:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14815:4:1", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14804:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "14804:16:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12006:9:1" }, { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14858:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "14869:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14854:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "14854:22:1" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "14878:3:1" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nodeType": "YulIdentifier", - "src": "14822:31:1" - }, - "nodeType": "YulFunctionCall", - "src": "14822:60:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "12017:1:1", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "14797:6:1" + "src": "12002:3:1" }, "nodeType": "YulFunctionCall", - "src": "14797:86:1" - }, - "nodeType": "YulExpressionStatement", - "src": "14797:86:1" - } - ] + "src": "12002:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", + "nodeType": "YulIdentifier", + "src": "11949:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "11949:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "11949:71:1" }, { - "nodeType": "YulBlock", - "src": "14904:165:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "14943:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14957:2:1", - "type": "", - "value": "32" + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12074:6:1" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "14947:6:1", - "type": "" - } - ] - }, - { - "expression": { + { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "14984:5:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14991:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14980:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "14980:16:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12087:9:1" }, { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15033:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "15044:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15029:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "15029:22:1" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "15053:3:1" - } - ], - "functionName": { - "name": "abi_decode_t_bytes6_fromMemory", - "nodeType": "YulIdentifier", - "src": "14998:30:1" - }, - "nodeType": "YulFunctionCall", - "src": "14998:59:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "12098:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "14973:6:1" + "src": "12083:3:1" }, "nodeType": "YulFunctionCall", - "src": "14973:85:1" - }, - "nodeType": "YulExpressionStatement", - "src": "14973:85:1" - } - ] + "src": "12083:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12030:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "12030:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "12030:72:1" }, { - "nodeType": "YulBlock", - "src": "15079:162:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "15115:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15129:2:1", - "type": "", - "value": "64" + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12154:6:1" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "15119:6:1", - "type": "" - } - ] - }, - { - "expression": { + { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "15156:5:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15163:4:1", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15152:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "15152:16:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12167:9:1" }, { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15205:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "15216:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15201:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "15201:22:1" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "15225:3:1" - } - ], - "functionName": { - "name": "abi_decode_t_bytes6_fromMemory", - "nodeType": "YulIdentifier", - "src": "15170:30:1" - }, - "nodeType": "YulFunctionCall", - "src": "15170:59:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "12178:2:1", + "type": "", + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "15145:6:1" + "src": "12163:3:1" }, "nodeType": "YulFunctionCall", - "src": "15145:85:1" + "src": "12163:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_int128_to_t_int128_fromStack", + "nodeType": "YulIdentifier", + "src": "12112:41:1" + }, + "nodeType": "YulFunctionCall", + "src": "12112:70:1" + }, + "nodeType": "YulExpressionStatement", + "src": "12112:70:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "12234:6:1" }, - "nodeType": "YulExpressionStatement", - "src": "15145:85:1" - } - ] + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12247:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12258:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12243:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "12243:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_int128_to_t_int128_fromStack", + "nodeType": "YulIdentifier", + "src": "12192:41:1" + }, + "nodeType": "YulFunctionCall", + "src": "12192:70:1" + }, + "nodeType": "YulExpressionStatement", + "src": "12192:70:1" } ] }, - "name": "abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory", + "name": "abi_encode_tuple_t_bytes12_t_address_t_int128_t_int128__to_t_bytes12_t_address_t_int128_t_int128__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "14531:9:1", + "src": "11850:9:1", "type": "" }, { - "name": "end", + "name": "value3", "nodeType": "YulTypedName", - "src": "14542:3:1", + "src": "11862:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11870:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11878:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11886:6:1", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "tail", "nodeType": "YulTypedName", - "src": "14550:5:1", + "src": "11897:4:1", "type": "" } ], - "src": "14470:778:1" + "src": "11724:545:1" }, { "body": { "nodeType": "YulBlock", - "src": "15351:294:1", + "src": "12307:28:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "15397:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "15399:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "15399:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "15399:79:1" - } - ] + "nodeType": "YulAssignment", + "src": "12317:12:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12324:5:1" }, - "condition": { + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "12317:3:1" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12293:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "12303:3:1", + "type": "" + } + ], + "src": "12275:60:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12401:82:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12411:66:1", + "value": { "arguments": [ { "arguments": [ { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "15372:7:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15381:9:1" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12469:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "12451:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "12451:24:1" } ], "functionName": { - "name": "sub", + "name": "identity", "nodeType": "YulIdentifier", - "src": "15368:3:1" + "src": "12442:8:1" }, "nodeType": "YulFunctionCall", - "src": "15368:23:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15393:2:1", - "type": "", - "value": "96" + "src": "12442:34:1" } ], "functionName": { - "name": "slt", + "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "15364:3:1" + "src": "12424:17:1" }, "nodeType": "YulFunctionCall", - "src": "15364:32:1" + "src": "12424:53:1" }, - "nodeType": "YulIf", - "src": "15361:119:1" - }, - { - "nodeType": "YulBlock", - "src": "15490:148:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "15505:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15519:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "15509:6:1", - "type": "" - } - ] - }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "15534:94:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15600:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "15611:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15596:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "15596:22:1" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "15620:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory", - "nodeType": "YulIdentifier", - "src": "15544:51:1" - }, - "nodeType": "YulFunctionCall", - "src": "15544:84:1" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "15534:6:1" - } - ] + "name": "converted", + "nodeType": "YulIdentifier", + "src": "12411:9:1" } ] } ] }, - "name": "abi_decode_tuple_t_struct$_Vault_$8_memory_ptr_fromMemory", + "name": "convert_t_uint128_to_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "15321:9:1", - "type": "" - }, - { - "name": "dataEnd", + "name": "value", "nodeType": "YulTypedName", - "src": "15332:7:1", + "src": "12381:5:1", "type": "" } ], "returnVariables": [ { - "name": "value0", + "name": "converted", "nodeType": "YulTypedName", - "src": "15344:6:1", + "src": "12391:9:1", "type": "" } ], - "src": "15254:391:1" + "src": "12341:142:1" }, { "body": { "nodeType": "YulBlock", - "src": "15714:52:1", + "src": "12554:66:1", "statements": [ { "expression": { @@ -8299,92 +7699,92 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "15731:3:1" + "src": "12571:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "15753:5:1" + "src": "12607:5:1" } ], "functionName": { - "name": "cleanup_t_bytes6", + "name": "convert_t_uint128_to_t_uint256", "nodeType": "YulIdentifier", - "src": "15736:16:1" + "src": "12576:30:1" }, "nodeType": "YulFunctionCall", - "src": "15736:23:1" + "src": "12576:37:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15724:6:1" + "src": "12564:6:1" }, "nodeType": "YulFunctionCall", - "src": "15724:36:1" + "src": "12564:50:1" }, "nodeType": "YulExpressionStatement", - "src": "15724:36:1" + "src": "12564:50:1" } ] }, - "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "name": "abi_encode_t_uint128_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "15702:5:1", + "src": "12542:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "15709:3:1", + "src": "12549:3:1", "type": "" } ], - "src": "15651:115:1" + "src": "12489:131:1" }, { "body": { "nodeType": "YulBlock", - "src": "15868:122:1", + "src": "12752:206:1", "statements": [ { "nodeType": "YulAssignment", - "src": "15878:26:1", + "src": "12762:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15890:9:1" + "src": "12774:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15901:2:1", + "src": "12785:2:1", "type": "", - "value": "32" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15886:3:1" + "src": "12770:3:1" }, "nodeType": "YulFunctionCall", - "src": "15886:18:1" + "src": "12770:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "15878:4:1" + "src": "12762:4:1" } ] }, @@ -8394,19 +7794,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "15956:6:1" + "src": "12842:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15969:9:1" + "src": "12855:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15980:1:1", + "src": "12866:1:1", "type": "", "value": "0" } @@ -8414,38 +7814,87 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15965:3:1" + "src": "12851:3:1" }, "nodeType": "YulFunctionCall", - "src": "15965:17:1" + "src": "12851:17:1" } ], "functionName": { - "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "15914:41:1" + "src": "12798:43:1" }, "nodeType": "YulFunctionCall", - "src": "15914:69:1" + "src": "12798:71:1" }, "nodeType": "YulExpressionStatement", - "src": "15914:69:1" + "src": "12798:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12947:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "12932:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12879:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "12879:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "12879:72:1" } ] }, - "name": "abi_encode_tuple_t_bytes6__to_t_bytes6__fromStack_reversed", + "name": "abi_encode_tuple_t_address_t_uint128__to_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "15840:9:1", + "src": "12716:9:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12728:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "15852:6:1", + "src": "12736:6:1", "type": "" } ], @@ -8453,346 +7902,417 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "15863:4:1", + "src": "12747:4:1", "type": "" } ], - "src": "15772:218:1" + "src": "12626:332:1" }, { "body": { "nodeType": "YulBlock", - "src": "16055:51:1", + "src": "13062:124:1", "statements": [ { "nodeType": "YulAssignment", - "src": "16065:35:1", + "src": "13072:26:1", "value": { "arguments": [ { - "name": "value", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "16094:5:1" + "src": "13084:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13095:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_address", + "name": "add", "nodeType": "YulIdentifier", - "src": "16076:17:1" + "src": "13080:3:1" }, "nodeType": "YulFunctionCall", - "src": "16076:24:1" + "src": "13080:18:1" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", "nodeType": "YulIdentifier", - "src": "16065:7:1" + "src": "13072:4:1" } ] - } - ] - }, - "name": "cleanup_t_contract$_IFYToken_$9", + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13152:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13165:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13176:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13161:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "13161:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", + "nodeType": "YulIdentifier", + "src": "13108:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "13108:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "13108:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_bytes12__to_t_bytes12__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "16037:5:1", + "src": "13034:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13046:6:1", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", "nodeType": "YulTypedName", - "src": "16047:7:1", + "src": "13057:4:1", "type": "" } ], - "src": "15996:110:1" + "src": "12964:222:1" }, { "body": { "nodeType": "YulBlock", - "src": "16169:93:1", + "src": "13281:28:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "16240:16:1", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16249:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16252:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "16242:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "16242:12:1" - }, - "nodeType": "YulExpressionStatement", - "src": "16242:12:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "13298:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13301:1:1", + "type": "", + "value": "0" } - ] + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13291:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "13291:12:1" }, - "condition": { + "nodeType": "YulExpressionStatement", + "src": "13291:12:1" + } + ] + }, + "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", + "nodeType": "YulFunctionDefinition", + "src": "13192:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13363:54:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13373:38:1", + "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "16192:5:1" + "src": "13391:5:1" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "16231:5:1" - } - ], - "functionName": { - "name": "cleanup_t_contract$_IFYToken_$9", - "nodeType": "YulIdentifier", - "src": "16199:31:1" - }, - "nodeType": "YulFunctionCall", - "src": "16199:38:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "13398:2:1", + "type": "", + "value": "31" } ], "functionName": { - "name": "eq", + "name": "add", "nodeType": "YulIdentifier", - "src": "16189:2:1" + "src": "13387:3:1" }, "nodeType": "YulFunctionCall", - "src": "16189:49:1" + "src": "13387:14:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13407:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "13403:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "13403:7:1" } ], "functionName": { - "name": "iszero", + "name": "and", "nodeType": "YulIdentifier", - "src": "16182:6:1" + "src": "13383:3:1" }, "nodeType": "YulFunctionCall", - "src": "16182:57:1" + "src": "13383:28:1" }, - "nodeType": "YulIf", - "src": "16179:77:1" + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "13373:6:1" + } + ] } ] }, - "name": "validator_revert_t_contract$_IFYToken_$9", + "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "16162:5:1", + "src": "13346:5:1", "type": "" } ], - "src": "16112:150:1" + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "13356:6:1", + "type": "" + } + ], + "src": "13315:102:1" }, { "body": { "nodeType": "YulBlock", - "src": "16345:94:1", + "src": "13451:152:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "16355:22:1", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "16370:6:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "13468:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13471:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "mload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "16364:5:1" + "src": "13461:6:1" }, "nodeType": "YulFunctionCall", - "src": "16364:13:1" + "src": "13461:88:1" }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "16355:5:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "13461:88:1" }, { "expression": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "16427:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_contract$_IFYToken_$9", + "kind": "number", + "nodeType": "YulLiteral", + "src": "13565:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13568:4:1", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", "nodeType": "YulIdentifier", - "src": "16386:40:1" + "src": "13558:6:1" }, "nodeType": "YulFunctionCall", - "src": "16386:47:1" + "src": "13558:15:1" }, "nodeType": "YulExpressionStatement", - "src": "16386:47:1" + "src": "13558:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13589:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13592:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13582:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "13582:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "13582:15:1" } ] }, - "name": "abi_decode_t_contract$_IFYToken_$9_fromMemory", + "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "16323:6:1", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "16331:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "16339:5:1", - "type": "" - } - ], - "src": "16268:171:1" + "src": "13423:180:1" }, { "body": { "nodeType": "YulBlock", - "src": "16489:49:1", + "src": "13652:238:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "16499:33:1", + "nodeType": "YulVariableDeclaration", + "src": "13662:58:1", "value": { "arguments": [ { - "name": "value", + "name": "memPtr", "nodeType": "YulIdentifier", - "src": "16514:5:1" + "src": "13684:6:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16521:10:1", - "type": "", - "value": "0xffffffff" + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13714:4:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "13692:21:1" + }, + "nodeType": "YulFunctionCall", + "src": "13692:27:1" } ], "functionName": { - "name": "and", + "name": "add", "nodeType": "YulIdentifier", - "src": "16510:3:1" + "src": "13680:3:1" }, "nodeType": "YulFunctionCall", - "src": "16510:22:1" + "src": "13680:40:1" }, - "variableNames": [ + "variables": [ { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "16499:7:1" + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "13666:10:1", + "type": "" } ] - } - ] - }, - "name": "cleanup_t_uint32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "16471:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "16481:7:1", - "type": "" - } - ], - "src": "16445:93:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "16586:78:1", - "statements": [ + }, { "body": { "nodeType": "YulBlock", - "src": "16642:16:1", + "src": "13831:22:1", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16651:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16654:1:1", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "16644:6:1" + "src": "13833:16:1" }, "nodeType": "YulFunctionCall", - "src": "16644:12:1" + "src": "13833:18:1" }, "nodeType": "YulExpressionStatement", - "src": "16644:12:1" + "src": "13833:18:1" } ] }, @@ -8801,90 +8321,129 @@ { "arguments": [ { - "name": "value", + "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "16609:5:1" + "src": "13774:10:1" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "16633:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint32", - "nodeType": "YulIdentifier", - "src": "16616:16:1" - }, - "nodeType": "YulFunctionCall", - "src": "16616:23:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "13786:18:1", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "eq", + "name": "gt", "nodeType": "YulIdentifier", - "src": "16606:2:1" + "src": "13771:2:1" }, "nodeType": "YulFunctionCall", - "src": "16606:34:1" + "src": "13771:34:1" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "13810:10:1" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13822:6:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "13807:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "13807:22:1" } ], "functionName": { - "name": "iszero", + "name": "or", "nodeType": "YulIdentifier", - "src": "16599:6:1" + "src": "13768:2:1" }, "nodeType": "YulFunctionCall", - "src": "16599:42:1" + "src": "13768:62:1" }, "nodeType": "YulIf", - "src": "16596:62:1" - } - ] - }, - "name": "validator_revert_t_uint32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "16579:5:1", - "type": "" - } - ], - "src": "16544:120:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "16732:79:1", - "statements": [ + "src": "13765:88:1" + }, { - "nodeType": "YulAssignment", - "src": "16742:22:1", - "value": { + "expression": { "arguments": [ { - "name": "offset", + "kind": "number", + "nodeType": "YulLiteral", + "src": "13869:2:1", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "16757:6:1" + "src": "13873:10:1" } ], "functionName": { - "name": "mload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "16751:5:1" + "src": "13862:6:1" }, "nodeType": "YulFunctionCall", - "src": "16751:13:1" + "src": "13862:22:1" + }, + "nodeType": "YulExpressionStatement", + "src": "13862:22:1" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13638:6:1", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "13646:4:1", + "type": "" + } + ], + "src": "13609:281:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13937:88:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13947:30:1", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "13957:18:1" + }, + "nodeType": "YulFunctionCall", + "src": "13957:20:1" }, "variableNames": [ { - "name": "value", + "name": "memPtr", "nodeType": "YulIdentifier", - "src": "16742:5:1" + "src": "13947:6:1" } ] }, @@ -8892,266 +8451,365 @@ "expression": { "arguments": [ { - "name": "value", + "name": "memPtr", "nodeType": "YulIdentifier", - "src": "16799:5:1" + "src": "14006:6:1" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "14014:4:1" } ], "functionName": { - "name": "validator_revert_t_uint32", + "name": "finalize_allocation", "nodeType": "YulIdentifier", - "src": "16773:25:1" + "src": "13986:19:1" }, "nodeType": "YulFunctionCall", - "src": "16773:32:1" + "src": "13986:33:1" }, "nodeType": "YulExpressionStatement", - "src": "16773:32:1" + "src": "13986:33:1" } ] }, - "name": "abi_decode_t_uint32_fromMemory", + "name": "allocate_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "16710:6:1", - "type": "" - }, - { - "name": "end", + "name": "size", "nodeType": "YulTypedName", - "src": "16718:3:1", + "src": "13921:4:1", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "memPtr", "nodeType": "YulTypedName", - "src": "16726:5:1", + "src": "13930:6:1", "type": "" } ], - "src": "16670:141:1" + "src": "13896:129:1" }, { "body": { "nodeType": "YulBlock", - "src": "16926:709:1", + "src": "14120:28:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "16970:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", - "nodeType": "YulIdentifier", - "src": "16972:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "16972:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "16972:79:1" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "16947:3:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16952:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "16943:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "16943:19:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "14137:1:1", + "type": "", + "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16964:4:1", + "src": "14140:1:1", "type": "", - "value": "0x60" + "value": "0" } ], "functionName": { - "name": "slt", + "name": "revert", "nodeType": "YulIdentifier", - "src": "16939:3:1" + "src": "14130:6:1" }, "nodeType": "YulFunctionCall", - "src": "16939:30:1" + "src": "14130:12:1" }, - "nodeType": "YulIf", - "src": "16936:117:1" - }, + "nodeType": "YulExpressionStatement", + "src": "14130:12:1" + } + ] + }, + "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", + "nodeType": "YulFunctionDefinition", + "src": "14031:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14217:80:1", + "statements": [ { "nodeType": "YulAssignment", - "src": "17062:30:1", + "src": "14227:22:1", "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17087:4:1", - "type": "", - "value": "0x60" + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14242:6:1" } ], "functionName": { - "name": "allocate_memory", + "name": "mload", "nodeType": "YulIdentifier", - "src": "17071:15:1" + "src": "14236:5:1" }, "nodeType": "YulFunctionCall", - "src": "17071:21:1" + "src": "14236:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "17062:5:1" + "src": "14227:5:1" } ] }, { - "nodeType": "YulBlock", - "src": "17102:178:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "17140:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17154:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "17144:6:1", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14285:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "14258:26:1" }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "17180:5:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17187:4:1", - "type": "", - "value": "0x00" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17176:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "17176:16:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17244:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "17255:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17240:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "17240:22:1" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "17264:3:1" - } - ], - "functionName": { - "name": "abi_decode_t_contract$_IFYToken_$9_fromMemory", - "nodeType": "YulIdentifier", - "src": "17194:45:1" - }, - "nodeType": "YulFunctionCall", - "src": "17194:74:1" + "nodeType": "YulFunctionCall", + "src": "14258:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "14258:33:1" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14195:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14203:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14211:5:1", + "type": "" + } + ], + "src": "14154:143:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14365:79:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14375:22:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14390:6:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "14384:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "14384:13:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14375:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14432:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_bytes6", + "nodeType": "YulIdentifier", + "src": "14406:25:1" + }, + "nodeType": "YulFunctionCall", + "src": "14406:32:1" + }, + "nodeType": "YulExpressionStatement", + "src": "14406:32:1" + } + ] + }, + "name": "abi_decode_t_bytes6_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14343:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14351:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14359:5:1", + "type": "" + } + ], + "src": "14303:141:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14556:692:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14600:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", + "nodeType": "YulIdentifier", + "src": "14602:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "14602:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "14602:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14577:3:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14582:9:1" } ], "functionName": { - "name": "mstore", + "name": "sub", "nodeType": "YulIdentifier", - "src": "17169:6:1" + "src": "14573:3:1" }, "nodeType": "YulFunctionCall", - "src": "17169:100:1" + "src": "14573:19:1" }, - "nodeType": "YulExpressionStatement", - "src": "17169:100:1" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14594:4:1", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14569:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "14569:30:1" + }, + "nodeType": "YulIf", + "src": "14566:117:1" + }, + { + "nodeType": "YulAssignment", + "src": "14692:30:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:4:1", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "14701:15:1" + }, + "nodeType": "YulFunctionCall", + "src": "14701:21:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14692:5:1" } ] }, { "nodeType": "YulBlock", - "src": "17290:163:1", + "src": "14732:162:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "17327:16:1", + "src": "14768:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "17341:2:1", + "src": "14782:1:1", "type": "", - "value": "32" + "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "17331:6:1", + "src": "14772:6:1", "type": "" } ] @@ -9164,23 +8822,23 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "17368:5:1" + "src": "14808:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17375:4:1", + "src": "14815:4:1", "type": "", - "value": "0x20" + "value": "0x00" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17364:3:1" + "src": "14804:3:1" }, "nodeType": "YulFunctionCall", - "src": "17364:16:1" + "src": "14804:16:1" }, { "arguments": [ @@ -9189,61 +8847,161 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17417:9:1" + "src": "14858:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "17428:6:1" + "src": "14869:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17413:3:1" + "src": "14854:3:1" }, "nodeType": "YulFunctionCall", - "src": "17413:22:1" + "src": "14854:22:1" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "17437:3:1" + "src": "14878:3:1" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "14822:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "14822:60:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14797:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "14797:86:1" + }, + "nodeType": "YulExpressionStatement", + "src": "14797:86:1" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14904:165:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14943:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14957:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14947:6:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14984:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14991:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14980:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "14980:16:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15033:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15044:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15029:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "15029:22:1" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15053:3:1" } ], "functionName": { "name": "abi_decode_t_bytes6_fromMemory", "nodeType": "YulIdentifier", - "src": "17382:30:1" + "src": "14998:30:1" }, "nodeType": "YulFunctionCall", - "src": "17382:59:1" + "src": "14998:59:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17357:6:1" + "src": "14973:6:1" }, "nodeType": "YulFunctionCall", - "src": "17357:85:1" + "src": "14973:85:1" }, "nodeType": "YulExpressionStatement", - "src": "17357:85:1" + "src": "14973:85:1" } ] }, { "nodeType": "YulBlock", - "src": "17463:165:1", + "src": "15079:162:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "17502:16:1", + "src": "15115:16:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "17516:2:1", + "src": "15129:2:1", "type": "", "value": "64" }, @@ -9251,7 +9009,7 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "17506:6:1", + "src": "15119:6:1", "type": "" } ] @@ -9264,12 +9022,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "17543:5:1" + "src": "15156:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17550:4:1", + "src": "15163:4:1", "type": "", "value": "0x40" } @@ -9277,10 +9035,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17539:3:1" + "src": "15152:3:1" }, "nodeType": "YulFunctionCall", - "src": "17539:16:1" + "src": "15152:16:1" }, { "arguments": [ @@ -9289,65 +9047,65 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17592:9:1" + "src": "15205:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "17603:6:1" + "src": "15216:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17588:3:1" + "src": "15201:3:1" }, "nodeType": "YulFunctionCall", - "src": "17588:22:1" + "src": "15201:22:1" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "17612:3:1" + "src": "15225:3:1" } ], "functionName": { - "name": "abi_decode_t_uint32_fromMemory", + "name": "abi_decode_t_bytes6_fromMemory", "nodeType": "YulIdentifier", - "src": "17557:30:1" + "src": "15170:30:1" }, "nodeType": "YulFunctionCall", - "src": "17557:59:1" + "src": "15170:59:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17532:6:1" + "src": "15145:6:1" }, "nodeType": "YulFunctionCall", - "src": "17532:85:1" + "src": "15145:85:1" }, "nodeType": "YulExpressionStatement", - "src": "17532:85:1" + "src": "15145:85:1" } ] } ] }, - "name": "abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory", + "name": "abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "16901:9:1", + "src": "14531:9:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "16912:3:1", + "src": "14542:3:1", "type": "" } ], @@ -9355,21 +9113,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "16920:5:1", + "src": "14550:5:1", "type": "" } ], - "src": "16838:797:1" + "src": "14470:778:1" }, { "body": { "nodeType": "YulBlock", - "src": "17740:296:1", + "src": "15351:294:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "17786:83:1", + "src": "15397:83:1", "statements": [ { "expression": { @@ -9377,13 +9135,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "17788:77:1" + "src": "15399:77:1" }, "nodeType": "YulFunctionCall", - "src": "17788:79:1" + "src": "15399:79:1" }, "nodeType": "YulExpressionStatement", - "src": "17788:79:1" + "src": "15399:79:1" } ] }, @@ -9394,26 +9152,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "17761:7:1" + "src": "15372:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17770:9:1" + "src": "15381:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "17757:3:1" + "src": "15368:3:1" }, "nodeType": "YulFunctionCall", - "src": "17757:23:1" + "src": "15368:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17782:2:1", + "src": "15393:2:1", "type": "", "value": "96" } @@ -9421,25 +9179,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "17753:3:1" + "src": "15364:3:1" }, "nodeType": "YulFunctionCall", - "src": "17753:32:1" + "src": "15364:32:1" }, "nodeType": "YulIf", - "src": "17750:119:1" + "src": "15361:119:1" }, { "nodeType": "YulBlock", - "src": "17879:150:1", + "src": "15490:148:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "17894:15:1", + "src": "15505:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "17908:1:1", + "src": "15519:1:1", "type": "", "value": "0" }, @@ -9447,14 +9205,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "17898:6:1", + "src": "15509:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "17923:96:1", + "src": "15534:94:1", "value": { "arguments": [ { @@ -9462,41 +9220,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17991:9:1" + "src": "15600:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "18002:6:1" + "src": "15611:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17987:3:1" + "src": "15596:3:1" }, "nodeType": "YulFunctionCall", - "src": "17987:22:1" + "src": "15596:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "18011:7:1" + "src": "15620:7:1" } ], "functionName": { - "name": "abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory", + "name": "abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory", "nodeType": "YulIdentifier", - "src": "17933:53:1" + "src": "15544:51:1" }, "nodeType": "YulFunctionCall", - "src": "17933:86:1" + "src": "15544:84:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "17923:6:1" + "src": "15534:6:1" } ] } @@ -9504,19 +9262,19 @@ } ] }, - "name": "abi_decode_tuple_t_struct$_Series_$17_memory_ptr_fromMemory", + "name": "abi_decode_tuple_t_struct$_Vault_$8_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "17710:9:1", + "src": "15321:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "17721:7:1", + "src": "15332:7:1", "type": "" } ], @@ -9524,207 +9282,109 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "17733:6:1", + "src": "15344:6:1", "type": "" } ], - "src": "17641:395:1" + "src": "15254:391:1" }, { "body": { "nodeType": "YulBlock", - "src": "18168:206:1", + "src": "15714:52:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "18178:26:1", - "value": { + "expression": { "arguments": [ { - "name": "headStart", + "name": "pos", "nodeType": "YulIdentifier", - "src": "18190:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18201:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18186:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "18186:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18178:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "18258:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18271:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18282:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18267:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "18267:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", - "nodeType": "YulIdentifier", - "src": "18214:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "18214:71:1" - }, - "nodeType": "YulExpressionStatement", - "src": "18214:71:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "18339:6:1" + "src": "15731:3:1" }, { "arguments": [ { - "name": "headStart", + "name": "value", "nodeType": "YulIdentifier", - "src": "18352:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18363:2:1", - "type": "", - "value": "32" + "src": "15753:5:1" } ], "functionName": { - "name": "add", + "name": "cleanup_t_bytes6", "nodeType": "YulIdentifier", - "src": "18348:3:1" + "src": "15736:16:1" }, "nodeType": "YulFunctionCall", - "src": "18348:18:1" + "src": "15736:23:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "18295:43:1" + "src": "15724:6:1" }, "nodeType": "YulFunctionCall", - "src": "18295:72:1" + "src": "15724:36:1" }, "nodeType": "YulExpressionStatement", - "src": "18295:72:1" + "src": "15724:36:1" } ] }, - "name": "abi_encode_tuple_t_bytes12_t_address__to_t_bytes12_t_address__fromStack_reversed", + "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "18132:9:1", - "type": "" - }, - { - "name": "value1", + "name": "value", "nodeType": "YulTypedName", - "src": "18144:6:1", + "src": "15702:5:1", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "18152:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", "nodeType": "YulTypedName", - "src": "18163:4:1", + "src": "15709:3:1", "type": "" } ], - "src": "18042:332:1" + "src": "15651:115:1" }, { "body": { "nodeType": "YulBlock", - "src": "18562:371:1", + "src": "15868:122:1", "statements": [ { "nodeType": "YulAssignment", - "src": "18572:27:1", + "src": "15878:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18584:9:1" + "src": "15890:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18595:3:1", + "src": "15901:2:1", "type": "", - "value": "128" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18580:3:1" + "src": "15886:3:1" }, "nodeType": "YulFunctionCall", - "src": "18580:19:1" + "src": "15886:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18572:4:1" + "src": "15878:4:1" } ] }, @@ -9734,19 +9394,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "18653:6:1" + "src": "15956:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18666:9:1" + "src": "15969:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18677:1:1", + "src": "15980:1:1", "type": "", "value": "0" } @@ -9754,1057 +9414,1158 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18662:3:1" + "src": "15965:3:1" }, "nodeType": "YulFunctionCall", - "src": "18662:17:1" + "src": "15965:17:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", "nodeType": "YulIdentifier", - "src": "18609:43:1" + "src": "15914:41:1" }, "nodeType": "YulFunctionCall", - "src": "18609:71:1" + "src": "15914:69:1" }, "nodeType": "YulExpressionStatement", - "src": "18609:71:1" - }, + "src": "15914:69:1" + } + ] + }, + "name": "abi_encode_tuple_t_bytes6__to_t_bytes6__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15840:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15852:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15863:4:1", + "type": "" + } + ], + "src": "15772:218:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16055:51:1", + "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "16065:35:1", + "value": { "arguments": [ { - "name": "value1", + "name": "value", "nodeType": "YulIdentifier", - "src": "18734:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18747:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18758:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18743:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "18743:18:1" + "src": "16094:5:1" } ], "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", + "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "18690:43:1" + "src": "16076:17:1" }, "nodeType": "YulFunctionCall", - "src": "18690:72:1" + "src": "16076:24:1" }, - "nodeType": "YulExpressionStatement", - "src": "18690:72:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "18816:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18829:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18840:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18825:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "18825:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "variableNames": [ + { + "name": "cleaned", "nodeType": "YulIdentifier", - "src": "18772:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "18772:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "18772:72:1" - }, + "src": "16065:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IFYToken_$9", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16037:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "16047:7:1", + "type": "" + } + ], + "src": "15996:110:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16169:93:1", + "statements": [ { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "16240:16:1", + "statements": [ { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "18898:6:1" - }, + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16249:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16252:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "16242:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "16242:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "16242:12:1" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "value", "nodeType": "YulIdentifier", - "src": "18911:9:1" + "src": "16192:5:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18922:2:1", - "type": "", - "value": "96" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16231:5:1" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IFYToken_$9", + "nodeType": "YulIdentifier", + "src": "16199:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "16199:38:1" } ], "functionName": { - "name": "add", + "name": "eq", "nodeType": "YulIdentifier", - "src": "18907:3:1" + "src": "16189:2:1" }, "nodeType": "YulFunctionCall", - "src": "18907:18:1" + "src": "16189:49:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "18854:43:1" + "src": "16182:6:1" }, "nodeType": "YulFunctionCall", - "src": "18854:72:1" + "src": "16182:57:1" }, - "nodeType": "YulExpressionStatement", - "src": "18854:72:1" + "nodeType": "YulIf", + "src": "16179:77:1" } ] }, - "name": "abi_encode_tuple_t_address_t_bytes12_t_uint256_t_uint128__to_t_address_t_bytes12_t_uint256_t_uint128__fromStack_reversed", + "name": "validator_revert_t_contract$_IFYToken_$9", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "18510:9:1", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "18522:6:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "18530:6:1", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "18538:6:1", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "18546:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "value", "nodeType": "YulTypedName", - "src": "18557:4:1", + "src": "16162:5:1", "type": "" } ], - "src": "18380:553:1" + "src": "16112:150:1" }, { "body": { "nodeType": "YulBlock", - "src": "19035:73:1", + "src": "16345:94:1", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "16355:22:1", + "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19052:3:1" - }, - { - "name": "length", + "name": "offset", "nodeType": "YulIdentifier", - "src": "19057:6:1" + "src": "16370:6:1" } ], "functionName": { - "name": "mstore", + "name": "mload", "nodeType": "YulIdentifier", - "src": "19045:6:1" + "src": "16364:5:1" }, "nodeType": "YulFunctionCall", - "src": "19045:19:1" + "src": "16364:13:1" }, - "nodeType": "YulExpressionStatement", - "src": "19045:19:1" + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16355:5:1" + } + ] }, { - "nodeType": "YulAssignment", - "src": "19073:29:1", - "value": { + "expression": { "arguments": [ { - "name": "pos", + "name": "value", "nodeType": "YulIdentifier", - "src": "19092:3:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19097:4:1", - "type": "", - "value": "0x20" + "src": "16427:5:1" } ], "functionName": { - "name": "add", + "name": "validator_revert_t_contract$_IFYToken_$9", "nodeType": "YulIdentifier", - "src": "19088:3:1" + "src": "16386:40:1" }, "nodeType": "YulFunctionCall", - "src": "19088:14:1" + "src": "16386:47:1" }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "19073:11:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "16386:47:1" } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_decode_t_contract$_IFYToken_$9_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "offset", "nodeType": "YulTypedName", - "src": "19007:3:1", + "src": "16323:6:1", "type": "" }, { - "name": "length", + "name": "end", "nodeType": "YulTypedName", - "src": "19012:6:1", + "src": "16331:3:1", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "value", "nodeType": "YulTypedName", - "src": "19023:11:1", + "src": "16339:5:1", "type": "" } ], - "src": "18939:169:1" + "src": "16268:171:1" }, { "body": { "nodeType": "YulBlock", - "src": "19220:8:1", - "statements": [] - }, - "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "19212:6:1", - "type": "" - } - ], - "src": "19114:114:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19380:218:1", + "src": "16489:49:1", "statements": [ { "nodeType": "YulAssignment", - "src": "19390:73:1", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19456:3:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19461:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "19397:58:1" - }, - "nodeType": "YulFunctionCall", - "src": "19397:66:1" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19390:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19561:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "nodeType": "YulIdentifier", - "src": "19472:88:1" - }, - "nodeType": "YulFunctionCall", - "src": "19472:93:1" - }, - "nodeType": "YulExpressionStatement", - "src": "19472:93:1" - }, - { - "nodeType": "YulAssignment", - "src": "19574:18:1", + "src": "16499:33:1", "value": { "arguments": [ { - "name": "pos", + "name": "value", "nodeType": "YulIdentifier", - "src": "19585:3:1" + "src": "16514:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19590:1:1", + "src": "16521:10:1", "type": "", - "value": "0" + "value": "0xffffffff" } ], "functionName": { - "name": "add", + "name": "and", "nodeType": "YulIdentifier", - "src": "19581:3:1" + "src": "16510:3:1" }, "nodeType": "YulFunctionCall", - "src": "19581:11:1" + "src": "16510:22:1" }, "variableNames": [ { - "name": "end", + "name": "cleaned", "nodeType": "YulIdentifier", - "src": "19574:3:1" + "src": "16499:7:1" } ] } ] }, - "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint32", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", "nodeType": "YulTypedName", - "src": "19368:3:1", + "src": "16471:5:1", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", "nodeType": "YulTypedName", - "src": "19376:3:1", + "src": "16481:7:1", "type": "" } ], - "src": "19234:364:1" + "src": "16445:93:1" }, { "body": { "nodeType": "YulBlock", - "src": "19662:40:1", + "src": "16586:78:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "19673:22:1", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "16642:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16651:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16654:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "16644:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "16644:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "16644:12:1" + } + ] + }, + "condition": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19689:5:1" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16609:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16633:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint32", + "nodeType": "YulIdentifier", + "src": "16616:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "16616:23:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "16606:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "16606:34:1" } ], "functionName": { - "name": "mload", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "19683:5:1" + "src": "16599:6:1" }, "nodeType": "YulFunctionCall", - "src": "19683:12:1" + "src": "16599:42:1" }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19673:6:1" - } - ] + "nodeType": "YulIf", + "src": "16596:62:1" } ] }, - "name": "array_length_t_bytes_memory_ptr", + "name": "validator_revert_t_uint32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "19645:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19655:6:1", + "src": "16579:5:1", "type": "" } ], - "src": "19604:98:1" + "src": "16544:120:1" }, { "body": { "nodeType": "YulBlock", - "src": "19803:73:1", + "src": "16732:79:1", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "16742:22:1", + "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19820:3:1" - }, - { - "name": "length", + "name": "offset", "nodeType": "YulIdentifier", - "src": "19825:6:1" + "src": "16757:6:1" } ], "functionName": { - "name": "mstore", + "name": "mload", "nodeType": "YulIdentifier", - "src": "19813:6:1" + "src": "16751:5:1" }, "nodeType": "YulFunctionCall", - "src": "19813:19:1" + "src": "16751:13:1" }, - "nodeType": "YulExpressionStatement", - "src": "19813:19:1" + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16742:5:1" + } + ] }, { - "nodeType": "YulAssignment", - "src": "19841:29:1", - "value": { + "expression": { "arguments": [ { - "name": "pos", + "name": "value", "nodeType": "YulIdentifier", - "src": "19860:3:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19865:4:1", - "type": "", - "value": "0x20" + "src": "16799:5:1" } ], "functionName": { - "name": "add", + "name": "validator_revert_t_uint32", "nodeType": "YulIdentifier", - "src": "19856:3:1" + "src": "16773:25:1" }, "nodeType": "YulFunctionCall", - "src": "19856:14:1" + "src": "16773:32:1" }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "19841:11:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "16773:32:1" } ] }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "name": "abi_decode_t_uint32_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "offset", "nodeType": "YulTypedName", - "src": "19775:3:1", + "src": "16710:6:1", "type": "" }, { - "name": "length", + "name": "end", "nodeType": "YulTypedName", - "src": "19780:6:1", + "src": "16718:3:1", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "value", "nodeType": "YulTypedName", - "src": "19791:11:1", + "src": "16726:5:1", "type": "" } ], - "src": "19708:168:1" + "src": "16670:141:1" }, { "body": { "nodeType": "YulBlock", - "src": "19931:258:1", + "src": "16926:709:1", "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "19941:10:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19950:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "19945:1:1", - "type": "" - } - ] - }, { "body": { "nodeType": "YulBlock", - "src": "20010:63:1", + "src": "16970:83:1", "statements": [ { "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "20035:3:1" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20040:1:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20031:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "20031:11:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "20054:3:1" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20059:1:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20050:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "20050:11:1" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "20044:5:1" - }, - "nodeType": "YulFunctionCall", - "src": "20044:18:1" - } - ], + "arguments": [], "functionName": { - "name": "mstore", + "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", "nodeType": "YulIdentifier", - "src": "20024:6:1" + "src": "16972:77:1" }, "nodeType": "YulFunctionCall", - "src": "20024:39:1" + "src": "16972:79:1" }, "nodeType": "YulExpressionStatement", - "src": "20024:39:1" + "src": "16972:79:1" } ] }, "condition": { "arguments": [ { - "name": "i", - "nodeType": "YulIdentifier", - "src": "19971:1:1" + "arguments": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16947:3:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16952:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16943:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "16943:19:1" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19974:6:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "16964:4:1", + "type": "", + "value": "0x60" } ], "functionName": { - "name": "lt", + "name": "slt", "nodeType": "YulIdentifier", - "src": "19968:2:1" + "src": "16939:3:1" }, "nodeType": "YulFunctionCall", - "src": "19968:13:1" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "19982:19:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19984:15:1", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "19993:1:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19996:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19989:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "19989:10:1" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "19984:1:1" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "19964:3:1", - "statements": [] + "src": "16939:30:1" }, - "src": "19960:113:1" + "nodeType": "YulIf", + "src": "16936:117:1" }, { - "body": { - "nodeType": "YulBlock", - "src": "20107:76:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "20157:3:1" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20162:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20153:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "20153:16:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20171:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "20146:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "20146:27:1" - }, - "nodeType": "YulExpressionStatement", - "src": "20146:27:1" - } - ] - }, - "condition": { + "nodeType": "YulAssignment", + "src": "17062:30:1", + "value": { "arguments": [ { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20088:1:1" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20091:6:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "17087:4:1", + "type": "", + "value": "0x60" } ], "functionName": { - "name": "gt", + "name": "allocate_memory", "nodeType": "YulIdentifier", - "src": "20085:2:1" + "src": "17071:15:1" }, "nodeType": "YulFunctionCall", - "src": "20085:13:1" - }, - "nodeType": "YulIf", - "src": "20082:101:1" - } - ] - }, - "name": "copy_memory_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "19913:3:1", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "19918:3:1", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19923:6:1", - "type": "" - } - ], - "src": "19882:307:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20285:270:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "20295:52:1", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20341:5:1" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "20309:31:1" - }, - "nodeType": "YulFunctionCall", - "src": "20309:38:1" + "src": "17071:21:1" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nodeType": "YulTypedName", - "src": "20299:6:1", - "type": "" + "name": "value", + "nodeType": "YulIdentifier", + "src": "17062:5:1" } ] }, { - "nodeType": "YulAssignment", - "src": "20356:77:1", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20421:3:1" + "nodeType": "YulBlock", + "src": "17102:178:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17140:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17154:1:1", + "type": "", + "value": "0" }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20426:6:1" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "20363:57:1" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "17144:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "20363:70:1" - }, - "variableNames": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20356:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { + "expression": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20468:5:1" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17180:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17187:4:1", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17176:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17176:16:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20475:4:1", - "type": "", - "value": "0x20" + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17244:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "17255:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17240:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17240:22:1" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17264:3:1" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IFYToken_$9_fromMemory", + "nodeType": "YulIdentifier", + "src": "17194:45:1" + }, + "nodeType": "YulFunctionCall", + "src": "17194:74:1" } ], "functionName": { - "name": "add", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "20464:3:1" + "src": "17169:6:1" }, "nodeType": "YulFunctionCall", - "src": "20464:16:1" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20482:3:1" + "src": "17169:100:1" }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20487:6:1" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "20442:21:1" - }, - "nodeType": "YulFunctionCall", - "src": "20442:52:1" - }, - "nodeType": "YulExpressionStatement", - "src": "20442:52:1" + "nodeType": "YulExpressionStatement", + "src": "17169:100:1" + } + ] }, { - "nodeType": "YulAssignment", - "src": "20503:46:1", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "20514:3:1" + "nodeType": "YulBlock", + "src": "17290:163:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17327:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17341:2:1", + "type": "", + "value": "32" }, - { + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "17331:6:1", + "type": "" + } + ] + }, + { + "expression": { "arguments": [ { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20541:6:1" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "20519:21:1" - }, - "nodeType": "YulFunctionCall", - "src": "20519:29:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20510:3:1" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17368:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17375:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17364:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17364:16:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17417:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "17428:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17413:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17413:22:1" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17437:3:1" + } + ], + "functionName": { + "name": "abi_decode_t_bytes6_fromMemory", + "nodeType": "YulIdentifier", + "src": "17382:30:1" + }, + "nodeType": "YulFunctionCall", + "src": "17382:59:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17357:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "17357:85:1" + }, + "nodeType": "YulExpressionStatement", + "src": "17357:85:1" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "17463:165:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17502:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17516:2:1", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "17506:6:1", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "20510:39:1" - }, - "variableNames": [ { - "name": "end", - "nodeType": "YulIdentifier", - "src": "20503:3:1" + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17543:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17550:4:1", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17539:16:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17592:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "17603:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17588:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17588:22:1" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17612:3:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint32_fromMemory", + "nodeType": "YulIdentifier", + "src": "17557:30:1" + }, + "nodeType": "YulFunctionCall", + "src": "17557:59:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17532:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "17532:85:1" + }, + "nodeType": "YulExpressionStatement", + "src": "17532:85:1" } ] } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "20266:5:1", + "src": "16901:9:1", "type": "" }, { - "name": "pos", + "name": "end", "nodeType": "YulTypedName", - "src": "20273:3:1", + "src": "16912:3:1", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value", "nodeType": "YulTypedName", - "src": "20281:3:1", + "src": "16920:5:1", "type": "" } ], - "src": "20195:360:1" + "src": "16838:797:1" }, { "body": { "nodeType": "YulBlock", - "src": "20862:647:1", + "src": "17740:296:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "20872:27:1", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "17786:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "17788:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "17788:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "17788:79:1" + } + ] + }, + "condition": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "20884:9:1" + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "17761:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17770:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17757:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17757:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20895:3:1", + "src": "17782:2:1", "type": "", - "value": "160" + "value": "96" } ], "functionName": { - "name": "add", + "name": "slt", "nodeType": "YulIdentifier", - "src": "20880:3:1" + "src": "17753:3:1" }, "nodeType": "YulFunctionCall", - "src": "20880:19:1" + "src": "17753:32:1" }, - "variableNames": [ + "nodeType": "YulIf", + "src": "17750:119:1" + }, + { + "nodeType": "YulBlock", + "src": "17879:150:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17894:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17908:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "17898:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17923:96:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17991:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "18002:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17987:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "17987:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "18011:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "17933:53:1" + }, + "nodeType": "YulFunctionCall", + "src": "17933:86:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "17923:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Series_$17_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17710:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "17721:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "17733:6:1", + "type": "" + } + ], + "src": "17641:395:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18168:206:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18178:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18190:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18201:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18186:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "18186:18:1" + }, + "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20872:4:1" + "src": "18178:4:1" } ] }, @@ -10814,19 +10575,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "20953:6:1" + "src": "18258:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20966:9:1" + "src": "18271:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20977:1:1", + "src": "18282:1:1", "type": "", "value": "0" } @@ -10834,22 +10595,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20962:3:1" + "src": "18267:3:1" }, "nodeType": "YulFunctionCall", - "src": "20962:17:1" + "src": "18267:17:1" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", "nodeType": "YulIdentifier", - "src": "20909:43:1" + "src": "18214:43:1" }, "nodeType": "YulFunctionCall", - "src": "20909:71:1" + "src": "18214:71:1" }, "nodeType": "YulExpressionStatement", - "src": "20909:71:1" + "src": "18214:71:1" }, { "expression": { @@ -10857,19 +10618,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "21034:6:1" + "src": "18339:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21047:9:1" + "src": "18352:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21058:2:1", + "src": "18363:2:1", "type": "", "value": "32" } @@ -10877,276 +10638,301 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21043:3:1" + "src": "18348:3:1" }, "nodeType": "YulFunctionCall", - "src": "21043:18:1" + "src": "18348:18:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "20990:43:1" + "src": "18295:43:1" }, "nodeType": "YulFunctionCall", - "src": "20990:72:1" + "src": "18295:72:1" }, "nodeType": "YulExpressionStatement", - "src": "20990:72:1" + "src": "18295:72:1" + } + ] + }, + "name": "abi_encode_tuple_t_bytes12_t_address__to_t_bytes12_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18132:9:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "18144:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "18152:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18163:4:1", + "type": "" + } + ], + "src": "18042:332:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18562:371:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18572:27:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18584:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18595:3:1", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18580:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "18580:19:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18572:4:1" + } + ] }, { "expression": { "arguments": [ { - "name": "value2", + "name": "value0", "nodeType": "YulIdentifier", - "src": "21116:6:1" + "src": "18653:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21129:9:1" + "src": "18666:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21140:2:1", + "src": "18677:1:1", "type": "", - "value": "64" + "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21125:3:1" + "src": "18662:3:1" }, "nodeType": "YulFunctionCall", - "src": "21125:18:1" + "src": "18662:17:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "21072:43:1" + "src": "18609:43:1" }, "nodeType": "YulFunctionCall", - "src": "21072:72:1" + "src": "18609:71:1" }, "nodeType": "YulExpressionStatement", - "src": "21072:72:1" + "src": "18609:71:1" }, { "expression": { "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "18734:6:1" + }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21165:9:1" + "src": "18747:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21176:2:1", + "src": "18758:2:1", "type": "", - "value": "96" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21161:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "21161:18:1" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21185:4:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "21191:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "21181:3:1" + "src": "18743:3:1" }, "nodeType": "YulFunctionCall", - "src": "21181:20:1" + "src": "18743:18:1" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", "nodeType": "YulIdentifier", - "src": "21154:6:1" + "src": "18690:43:1" }, "nodeType": "YulFunctionCall", - "src": "21154:48:1" + "src": "18690:72:1" }, "nodeType": "YulExpressionStatement", - "src": "21154:48:1" + "src": "18690:72:1" }, { - "nodeType": "YulAssignment", - "src": "21211:139:1", - "value": { + "expression": { "arguments": [ { - "name": "tail", + "name": "value2", "nodeType": "YulIdentifier", - "src": "21345:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "21219:124:1" - }, - "nodeType": "YulFunctionCall", - "src": "21219:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21211:4:1" - } - ] - }, - { - "expression": { - "arguments": [ + "src": "18816:6:1" + }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21371:9:1" + "src": "18829:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21382:3:1", + "src": "18840:2:1", "type": "", - "value": "128" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21367:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "21367:19:1" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21392:4:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "21398:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "21388:3:1" + "src": "18825:3:1" }, "nodeType": "YulFunctionCall", - "src": "21388:20:1" + "src": "18825:18:1" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "21360:6:1" + "src": "18772:43:1" }, "nodeType": "YulFunctionCall", - "src": "21360:49:1" + "src": "18772:72:1" }, "nodeType": "YulExpressionStatement", - "src": "21360:49:1" + "src": "18772:72:1" }, { - "nodeType": "YulAssignment", - "src": "21418:84:1", - "value": { + "expression": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "21488:6:1" + "src": "18898:6:1" }, { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21497:4:1" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18911:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18922:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18907:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "18907:18:1" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "21426:61:1" + "src": "18854:43:1" }, "nodeType": "YulFunctionCall", - "src": "21426:76:1" + "src": "18854:72:1" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "21418:4:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "18854:72:1" } ] }, - "name": "abi_encode_tuple_t_uint256_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_address_t_bytes12_t_uint256_t_uint128__to_t_address_t_bytes12_t_uint256_t_uint128__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "20810:9:1", + "src": "18510:9:1", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "20822:6:1", + "src": "18522:6:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "20830:6:1", + "src": "18530:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "20838:6:1", + "src": "18538:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "20846:6:1", + "src": "18546:6:1", "type": "" } ], @@ -11154,309 +10940,335 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "20857:4:1", + "src": "18557:4:1", "type": "" } ], - "src": "20561:948:1" + "src": "18380:553:1" }, { "body": { "nodeType": "YulBlock", - "src": "21604:28:1", + "src": "19035:73:1", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21621:1:1", - "type": "", - "value": "0" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19052:3:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21624:1:1", - "type": "", - "value": "0" + "name": "length", + "nodeType": "YulIdentifier", + "src": "19057:6:1" } ], "functionName": { - "name": "revert", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "21614:6:1" + "src": "19045:6:1" }, "nodeType": "YulFunctionCall", - "src": "21614:12:1" + "src": "19045:19:1" }, "nodeType": "YulExpressionStatement", - "src": "21614:12:1" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nodeType": "YulFunctionDefinition", - "src": "21515:117:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21727:28:1", - "statements": [ + "src": "19045:19:1" + }, { - "expression": { + "nodeType": "YulAssignment", + "src": "19073:29:1", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21744:1:1", - "type": "", - "value": "0" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19092:3:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21747:1:1", + "src": "19097:4:1", "type": "", - "value": "0" + "value": "0x20" } ], "functionName": { - "name": "revert", + "name": "add", "nodeType": "YulIdentifier", - "src": "21737:6:1" + "src": "19088:3:1" }, "nodeType": "YulFunctionCall", - "src": "21737:12:1" + "src": "19088:14:1" }, - "nodeType": "YulExpressionStatement", - "src": "21737:12:1" + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "19073:11:1" + } + ] } ] }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", - "src": "21638:117:1" + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19007:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "19012:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "19023:11:1", + "type": "" + } + ], + "src": "18939:169:1" }, { "body": { "nodeType": "YulBlock", - "src": "21827:241:1", + "src": "19220:8:1", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19212:6:1", + "type": "" + } + ], + "src": "19114:114:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19380:218:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "21932:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "21934:16:1" - }, - "nodeType": "YulFunctionCall", - "src": "21934:18:1" - }, - "nodeType": "YulExpressionStatement", - "src": "21934:18:1" - } - ] - }, - "condition": { + "nodeType": "YulAssignment", + "src": "19390:73:1", + "value": { "arguments": [ { - "name": "length", + "name": "pos", "nodeType": "YulIdentifier", - "src": "21904:6:1" + "src": "19456:3:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21912:18:1", + "src": "19461:1:1", "type": "", - "value": "0xffffffffffffffff" + "value": "0" } ], "functionName": { - "name": "gt", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "21901:2:1" + "src": "19397:58:1" }, "nodeType": "YulFunctionCall", - "src": "21901:30:1" + "src": "19397:66:1" }, - "nodeType": "YulIf", - "src": "21898:56:1" + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19390:3:1" + } + ] }, { - "nodeType": "YulAssignment", - "src": "21964:37:1", - "value": { + "expression": { "arguments": [ { - "name": "length", + "name": "pos", "nodeType": "YulIdentifier", - "src": "21994:6:1" + "src": "19561:3:1" } ], "functionName": { - "name": "round_up_to_mul_of_32", + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "nodeType": "YulIdentifier", - "src": "21972:21:1" + "src": "19472:88:1" }, "nodeType": "YulFunctionCall", - "src": "21972:29:1" + "src": "19472:93:1" }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "21964:4:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "19472:93:1" }, { "nodeType": "YulAssignment", - "src": "22038:23:1", + "src": "19574:18:1", "value": { "arguments": [ { - "name": "size", + "name": "pos", "nodeType": "YulIdentifier", - "src": "22050:4:1" + "src": "19585:3:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22056:4:1", + "src": "19590:1:1", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22046:3:1" + "src": "19581:3:1" }, "nodeType": "YulFunctionCall", - "src": "22046:15:1" + "src": "19581:11:1" }, "variableNames": [ { - "name": "size", + "name": "end", "nodeType": "YulIdentifier", - "src": "22038:4:1" + "src": "19574:3:1" } ] } ] }, - "name": "array_allocation_size_t_bytes_memory_ptr", + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", + "name": "pos", "nodeType": "YulTypedName", - "src": "21811:6:1", + "src": "19368:3:1", "type": "" } ], "returnVariables": [ { - "name": "size", + "name": "end", "nodeType": "YulTypedName", - "src": "21822:4:1", + "src": "19376:3:1", "type": "" } ], - "src": "21761:307:1" + "src": "19234:364:1" }, { "body": { "nodeType": "YulBlock", - "src": "22168:325:1", + "src": "19662:40:1", "statements": [ { "nodeType": "YulAssignment", - "src": "22178:74:1", + "src": "19673:22:1", "value": { "arguments": [ { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "22244:6:1" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "22203:40:1" - }, - "nodeType": "YulFunctionCall", - "src": "22203:48:1" + "name": "value", + "nodeType": "YulIdentifier", + "src": "19689:5:1" } ], "functionName": { - "name": "allocate_memory", + "name": "mload", "nodeType": "YulIdentifier", - "src": "22187:15:1" + "src": "19683:5:1" }, "nodeType": "YulFunctionCall", - "src": "22187:65:1" + "src": "19683:12:1" }, "variableNames": [ { - "name": "array", + "name": "length", "nodeType": "YulIdentifier", - "src": "22178:5:1" + "src": "19673:6:1" } ] - }, + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19645:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "19655:6:1", + "type": "" + } + ], + "src": "19604:98:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19803:73:1", + "statements": [ { "expression": { "arguments": [ { - "name": "array", + "name": "pos", "nodeType": "YulIdentifier", - "src": "22268:5:1" + "src": "19820:3:1" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "22275:6:1" + "src": "19825:6:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22261:6:1" + "src": "19813:6:1" }, "nodeType": "YulFunctionCall", - "src": "22261:21:1" + "src": "19813:19:1" }, "nodeType": "YulExpressionStatement", - "src": "22261:21:1" + "src": "19813:19:1" }, { - "nodeType": "YulVariableDeclaration", - "src": "22291:27:1", + "nodeType": "YulAssignment", + "src": "19841:29:1", "value": { "arguments": [ { - "name": "array", + "name": "pos", "nodeType": "YulIdentifier", - "src": "22306:5:1" + "src": "19860:3:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22313:4:1", + "src": "19865:4:1", "type": "", "value": "0x20" } @@ -11464,614 +11276,535 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22302:3:1" + "src": "19856:3:1" }, "nodeType": "YulFunctionCall", - "src": "22302:16:1" + "src": "19856:14:1" }, - "variables": [ + "variableNames": [ { - "name": "dst", - "nodeType": "YulTypedName", - "src": "22295:3:1", - "type": "" + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "19841:11:1" } ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22356:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulIdentifier", - "src": "22358:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "22358:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "22358:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "22337:3:1" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "22342:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22333:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "22333:16:1" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "22351:3:1" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "22330:2:1" - }, - "nodeType": "YulFunctionCall", - "src": "22330:25:1" - }, - "nodeType": "YulIf", - "src": "22327:112:1" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "22470:3:1" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "22475:3:1" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "22480:6:1" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "22448:21:1" - }, - "nodeType": "YulFunctionCall", - "src": "22448:39:1" - }, - "nodeType": "YulExpressionStatement", - "src": "22448:39:1" } ] }, - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", + "name": "pos", "nodeType": "YulTypedName", - "src": "22141:3:1", + "src": "19775:3:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "22146:6:1", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "22154:3:1", + "src": "19780:6:1", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "updated_pos", "nodeType": "YulTypedName", - "src": "22162:5:1", + "src": "19791:11:1", "type": "" } ], - "src": "22074:419:1" + "src": "19708:168:1" }, { "body": { "nodeType": "YulBlock", - "src": "22584:281:1", + "src": "19931:258:1", "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "19941:10:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19950:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "19945:1:1", + "type": "" + } + ] + }, { "body": { "nodeType": "YulBlock", - "src": "22633:83:1", + "src": "20010:63:1", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "20035:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "20040:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20031:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "20031:11:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "20054:3:1" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "20059:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20050:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "20050:11:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "20044:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "20044:18:1" + } + ], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "22635:77:1" + "src": "20024:6:1" }, "nodeType": "YulFunctionCall", - "src": "22635:79:1" + "src": "20024:39:1" }, "nodeType": "YulExpressionStatement", - "src": "22635:79:1" + "src": "20024:39:1" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "22612:6:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22620:4:1", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22608:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "22608:17:1" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "22627:3:1" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "22604:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "22604:27:1" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "22597:6:1" - }, - "nodeType": "YulFunctionCall", - "src": "22597:35:1" - }, - "nodeType": "YulIf", - "src": "22594:122:1" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "22725:27:1", - "value": { - "arguments": [ + "name": "i", + "nodeType": "YulIdentifier", + "src": "19971:1:1" + }, { - "name": "offset", + "name": "length", "nodeType": "YulIdentifier", - "src": "22745:6:1" + "src": "19974:6:1" } ], "functionName": { - "name": "mload", + "name": "lt", "nodeType": "YulIdentifier", - "src": "22739:5:1" + "src": "19968:2:1" }, "nodeType": "YulFunctionCall", - "src": "22739:13:1" + "src": "19968:13:1" }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "22729:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "22761:98:1", - "value": { - "arguments": [ + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "19982:19:1", + "statements": [ { - "arguments": [ - { - "name": "offset", + "nodeType": "YulAssignment", + "src": "19984:15:1", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "19993:1:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19996:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", "nodeType": "YulIdentifier", - "src": "22832:6:1" + "src": "19989:3:1" }, + "nodeType": "YulFunctionCall", + "src": "19989:10:1" + }, + "variableNames": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22840:4:1", - "type": "", - "value": "0x20" + "name": "i", + "nodeType": "YulIdentifier", + "src": "19984:1:1" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22828:3:1" + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "19964:3:1", + "statements": [] + }, + "src": "19960:113:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20107:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "20157:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20162:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20153:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "20153:16:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20171:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20146:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "20146:27:1" }, - "nodeType": "YulFunctionCall", - "src": "22828:17:1" - }, + "nodeType": "YulExpressionStatement", + "src": "20146:27:1" + } + ] + }, + "condition": { + "arguments": [ { - "name": "length", + "name": "i", "nodeType": "YulIdentifier", - "src": "22847:6:1" + "src": "20088:1:1" }, { - "name": "end", + "name": "length", "nodeType": "YulIdentifier", - "src": "22855:3:1" + "src": "20091:6:1" } ], "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", + "name": "gt", "nodeType": "YulIdentifier", - "src": "22770:57:1" + "src": "20085:2:1" }, "nodeType": "YulFunctionCall", - "src": "22770:89:1" + "src": "20085:13:1" }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "22761:5:1" - } - ] + "nodeType": "YulIf", + "src": "20082:101:1" } ] }, - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "src", "nodeType": "YulTypedName", - "src": "22562:6:1", + "src": "19913:3:1", "type": "" }, { - "name": "end", + "name": "dst", "nodeType": "YulTypedName", - "src": "22570:3:1", + "src": "19918:3:1", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "array", + "name": "length", "nodeType": "YulTypedName", - "src": "22578:5:1", + "src": "19923:6:1", "type": "" } ], - "src": "22512:353:1" + "src": "19882:307:1" }, { "body": { "nodeType": "YulBlock", - "src": "22957:436:1", + "src": "20285:270:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "23003:83:1", - "statements": [ + "nodeType": "YulVariableDeclaration", + "src": "20295:52:1", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "23005:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "23005:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "23005:79:1" + "name": "value", + "nodeType": "YulIdentifier", + "src": "20341:5:1" } - ] + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "20309:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "20309:38:1" }, - "condition": { + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20299:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "20356:77:1", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "22978:7:1" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "22987:9:1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "22974:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "22974:23:1" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20421:3:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22999:2:1", - "type": "", - "value": "32" + "name": "length", + "nodeType": "YulIdentifier", + "src": "20426:6:1" } ], "functionName": { - "name": "slt", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "22970:3:1" + "src": "20363:57:1" }, "nodeType": "YulFunctionCall", - "src": "22970:32:1" + "src": "20363:70:1" }, - "nodeType": "YulIf", - "src": "22967:119:1" + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20356:3:1" + } + ] }, { - "nodeType": "YulBlock", - "src": "23096:290:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "23111:38:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "23135:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23146:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "23131:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "23131:17:1" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "23125:5:1" - }, - "nodeType": "YulFunctionCall", - "src": "23125:24:1" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "23115:6:1", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23196:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "23198:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "23198:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "23198:79:1" - } - ] - }, - "condition": { + "expression": { + "arguments": [ + { "arguments": [ { - "name": "offset", + "name": "value", "nodeType": "YulIdentifier", - "src": "23168:6:1" + "src": "20468:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23176:18:1", + "src": "20475:4:1", "type": "", - "value": "0xffffffffffffffff" + "value": "0x20" } ], "functionName": { - "name": "gt", + "name": "add", "nodeType": "YulIdentifier", - "src": "23165:2:1" + "src": "20464:3:1" }, "nodeType": "YulFunctionCall", - "src": "23165:30:1" + "src": "20464:16:1" }, - "nodeType": "YulIf", - "src": "23162:117:1" + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20482:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20487:6:1" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "20442:21:1" }, - { - "nodeType": "YulAssignment", - "src": "23293:83:1", - "value": { + "nodeType": "YulFunctionCall", + "src": "20442:52:1" + }, + "nodeType": "YulExpressionStatement", + "src": "20442:52:1" + }, + { + "nodeType": "YulAssignment", + "src": "20503:46:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20514:3:1" + }, + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "23348:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "23359:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "23344:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "23344:22:1" - }, - { - "name": "dataEnd", + "name": "length", "nodeType": "YulIdentifier", - "src": "23368:7:1" + "src": "20541:6:1" } ], "functionName": { - "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", - "src": "23303:40:1" + "src": "20519:21:1" }, "nodeType": "YulFunctionCall", - "src": "23303:73:1" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "23293:6:1" - } - ] + "src": "20519:29:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20510:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "20510:39:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20503:3:1" } ] } ] }, - "name": "abi_decode_tuple_t_bytes_memory_ptr_fromMemory", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", "nodeType": "YulTypedName", - "src": "22927:9:1", + "src": "20266:5:1", "type": "" }, { - "name": "dataEnd", + "name": "pos", "nodeType": "YulTypedName", - "src": "22938:7:1", + "src": "20273:3:1", "type": "" } ], "returnVariables": [ { - "name": "value0", + "name": "end", "nodeType": "YulTypedName", - "src": "22950:6:1", + "src": "20281:3:1", "type": "" } ], - "src": "22871:522:1" + "src": "20195:360:1" }, { "body": { "nodeType": "YulBlock", - "src": "23523:204:1", + "src": "20862:647:1", "statements": [ { "nodeType": "YulAssignment", - "src": "23533:26:1", + "src": "20872:27:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23545:9:1" + "src": "20884:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23556:2:1", + "src": "20895:3:1", "type": "", - "value": "64" + "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23541:3:1" + "src": "20880:3:1" }, "nodeType": "YulFunctionCall", - "src": "23541:18:1" + "src": "20880:19:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23533:4:1" + "src": "20872:4:1" } ] }, @@ -12081,19 +11814,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "23611:6:1" + "src": "20953:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23624:9:1" + "src": "20966:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23635:1:1", + "src": "20977:1:1", "type": "", "value": "0" } @@ -12101,22 +11834,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23620:3:1" + "src": "20962:3:1" }, "nodeType": "YulFunctionCall", - "src": "23620:17:1" + "src": "20962:17:1" } ], "functionName": { - "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "23569:41:1" + "src": "20909:43:1" }, "nodeType": "YulFunctionCall", - "src": "23569:69:1" + "src": "20909:71:1" }, "nodeType": "YulExpressionStatement", - "src": "23569:69:1" + "src": "20909:71:1" }, { "expression": { @@ -12124,19 +11857,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "23692:6:1" + "src": "21034:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23705:9:1" + "src": "21047:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23716:2:1", + "src": "21058:2:1", "type": "", "value": "32" } @@ -12144,350 +11877,276 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23701:3:1" + "src": "21043:3:1" }, "nodeType": "YulFunctionCall", - "src": "23701:18:1" + "src": "21043:18:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "23648:43:1" + "src": "20990:43:1" }, "nodeType": "YulFunctionCall", - "src": "23648:72:1" + "src": "20990:72:1" }, "nodeType": "YulExpressionStatement", - "src": "23648:72:1" - } - ] - }, - "name": "abi_encode_tuple_t_bytes6_t_uint128__to_t_bytes6_t_uint128__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "23487:9:1", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "23499:6:1", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "23507:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "23518:4:1", - "type": "" - } - ], - "src": "23399:328:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23943:454:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "23953:27:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "23965:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23976:3:1", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "23961:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "23961:19:1" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "23953:4:1" - } - ] + "src": "20990:72:1" }, { "expression": { "arguments": [ { - "name": "value0", + "name": "value2", "nodeType": "YulIdentifier", - "src": "24034:6:1" + "src": "21116:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24047:9:1" + "src": "21129:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24058:1:1", + "src": "21140:2:1", "type": "", - "value": "0" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24043:3:1" + "src": "21125:3:1" }, "nodeType": "YulFunctionCall", - "src": "24043:17:1" + "src": "21125:18:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "23990:43:1" + "src": "21072:43:1" }, "nodeType": "YulFunctionCall", - "src": "23990:71:1" + "src": "21072:72:1" }, "nodeType": "YulExpressionStatement", - "src": "23990:71:1" + "src": "21072:72:1" }, { "expression": { "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "24115:6:1" - }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24128:9:1" + "src": "21165:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24139:2:1", + "src": "21176:2:1", "type": "", - "value": "32" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24124:3:1" + "src": "21161:3:1" }, "nodeType": "YulFunctionCall", - "src": "24124:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", - "nodeType": "YulIdentifier", - "src": "24071:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "24071:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "24071:72:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "24197:6:1" + "src": "21161:18:1" }, { "arguments": [ { - "name": "headStart", + "name": "tail", "nodeType": "YulIdentifier", - "src": "24210:9:1" + "src": "21185:4:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24221:2:1", - "type": "", - "value": "64" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21191:9:1" } ], "functionName": { - "name": "add", + "name": "sub", "nodeType": "YulIdentifier", - "src": "24206:3:1" + "src": "21181:3:1" }, "nodeType": "YulFunctionCall", - "src": "24206:18:1" + "src": "21181:20:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "24153:43:1" + "src": "21154:6:1" }, "nodeType": "YulFunctionCall", - "src": "24153:72:1" + "src": "21154:48:1" }, "nodeType": "YulExpressionStatement", - "src": "24153:72:1" + "src": "21154:48:1" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "21211:139:1", + "value": { "arguments": [ { - "name": "value3", + "name": "tail", "nodeType": "YulIdentifier", - "src": "24279:6:1" - }, + "src": "21345:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21219:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "21219:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21211:4:1" + } + ] + }, + { + "expression": { + "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24292:9:1" + "src": "21371:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24303:2:1", + "src": "21382:3:1", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24288:3:1" + "src": "21367:3:1" }, "nodeType": "YulFunctionCall", - "src": "24288:18:1" + "src": "21367:19:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21392:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21398:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21388:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "21388:20:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "24235:43:1" + "src": "21360:6:1" }, "nodeType": "YulFunctionCall", - "src": "24235:72:1" + "src": "21360:49:1" }, "nodeType": "YulExpressionStatement", - "src": "24235:72:1" + "src": "21360:49:1" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "21418:84:1", + "value": { "arguments": [ { - "name": "value4", + "name": "value3", "nodeType": "YulIdentifier", - "src": "24361:6:1" + "src": "21488:6:1" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "24374:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24385:3:1", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24370:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "24370:19:1" + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21497:4:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "24317:43:1" + "src": "21426:61:1" }, "nodeType": "YulFunctionCall", - "src": "24317:73:1" + "src": "21426:76:1" }, - "nodeType": "YulExpressionStatement", - "src": "24317:73:1" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__to_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__fromStack_reversed", + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21418:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "23883:9:1", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "23895:6:1", + "src": "20810:9:1", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "23903:6:1", + "src": "20822:6:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "23911:6:1", + "src": "20830:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "23919:6:1", + "src": "20838:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "23927:6:1", + "src": "20846:6:1", "type": "" } ], @@ -12495,888 +12154,1083 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "23938:4:1", + "src": "20857:4:1", "type": "" } ], - "src": "23733:664:1" + "src": "20561:948:1" }, { "body": { "nodeType": "YulBlock", - "src": "24704:647:1", + "src": "21604:28:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "24714:27:1", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "24726:9:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "21621:1:1", + "type": "", + "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24737:3:1", + "src": "21624:1:1", "type": "", - "value": "160" + "value": "0" } ], "functionName": { - "name": "add", + "name": "revert", "nodeType": "YulIdentifier", - "src": "24722:3:1" + "src": "21614:6:1" }, "nodeType": "YulFunctionCall", - "src": "24722:19:1" + "src": "21614:12:1" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "24714:4:1" - } - ] - }, + "nodeType": "YulExpressionStatement", + "src": "21614:12:1" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "21515:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21727:28:1", + "statements": [ { "expression": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "24795:6:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "21744:1:1", + "type": "", + "value": "0" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "24808:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24819:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24804:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "24804:17:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "21747:1:1", + "type": "", + "value": "0" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint256_fromStack", + "name": "revert", "nodeType": "YulIdentifier", - "src": "24751:43:1" + "src": "21737:6:1" }, "nodeType": "YulFunctionCall", - "src": "24751:71:1" + "src": "21737:12:1" }, "nodeType": "YulExpressionStatement", - "src": "24751:71:1" - }, + "src": "21737:12:1" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "21638:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21827:241:1", + "statements": [ { - "expression": { + "body": { + "nodeType": "YulBlock", + "src": "21932:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "21934:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "21934:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "21934:18:1" + } + ] + }, + "condition": { "arguments": [ { - "name": "value1", + "name": "length", "nodeType": "YulIdentifier", - "src": "24876:6:1" + "src": "21904:6:1" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "24889:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24900:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24885:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "24885:18:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "21912:18:1", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "gt", "nodeType": "YulIdentifier", - "src": "24832:43:1" + "src": "21901:2:1" }, "nodeType": "YulFunctionCall", - "src": "24832:72:1" + "src": "21901:30:1" }, - "nodeType": "YulExpressionStatement", - "src": "24832:72:1" + "nodeType": "YulIf", + "src": "21898:56:1" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "21964:37:1", + "value": { "arguments": [ { - "name": "value2", + "name": "length", "nodeType": "YulIdentifier", - "src": "24958:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "24971:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "24982:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "24967:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "24967:18:1" + "src": "21994:6:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", - "src": "24914:43:1" + "src": "21972:21:1" }, "nodeType": "YulFunctionCall", - "src": "24914:72:1" + "src": "21972:29:1" }, - "nodeType": "YulExpressionStatement", - "src": "24914:72:1" + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "21964:4:1" + } + ] }, { - "expression": { + "nodeType": "YulAssignment", + "src": "22038:23:1", + "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "25007:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25018:2:1", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "25003:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "25003:18:1" + "name": "size", + "nodeType": "YulIdentifier", + "src": "22050:4:1" }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22056:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22046:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "22046:15:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "22038:4:1" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21811:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "21822:4:1", + "type": "" + } + ], + "src": "21761:307:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22168:325:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22178:74:1", + "value": { + "arguments": [ { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "25027:4:1" - }, - { - "name": "headStart", + "name": "length", "nodeType": "YulIdentifier", - "src": "25033:9:1" + "src": "22244:6:1" } ], "functionName": { - "name": "sub", + "name": "array_allocation_size_t_bytes_memory_ptr", "nodeType": "YulIdentifier", - "src": "25023:3:1" + "src": "22203:40:1" }, "nodeType": "YulFunctionCall", - "src": "25023:20:1" + "src": "22203:48:1" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "22187:15:1" + }, + "nodeType": "YulFunctionCall", + "src": "22187:65:1" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "22178:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "22268:5:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22275:6:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24996:6:1" + "src": "22261:6:1" }, "nodeType": "YulFunctionCall", - "src": "24996:48:1" + "src": "22261:21:1" }, "nodeType": "YulExpressionStatement", - "src": "24996:48:1" + "src": "22261:21:1" }, { - "nodeType": "YulAssignment", - "src": "25053:139:1", + "nodeType": "YulVariableDeclaration", + "src": "22291:27:1", "value": { "arguments": [ { - "name": "tail", + "name": "array", "nodeType": "YulIdentifier", - "src": "25187:4:1" + "src": "22306:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22313:4:1", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack", + "name": "add", "nodeType": "YulIdentifier", - "src": "25061:124:1" + "src": "22302:3:1" }, "nodeType": "YulFunctionCall", - "src": "25061:131:1" + "src": "22302:16:1" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "25053:4:1" + "name": "dst", + "nodeType": "YulTypedName", + "src": "22295:3:1", + "type": "" } ] }, { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "22356:83:1", + "statements": [ { - "arguments": [ - { - "name": "headStart", + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nodeType": "YulIdentifier", - "src": "25213:9:1" + "src": "22358:77:1" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25224:3:1", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "25209:3:1" + "nodeType": "YulFunctionCall", + "src": "22358:79:1" }, - "nodeType": "YulFunctionCall", - "src": "25209:19:1" - }, + "nodeType": "YulExpressionStatement", + "src": "22358:79:1" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "tail", + "name": "src", "nodeType": "YulIdentifier", - "src": "25234:4:1" + "src": "22337:3:1" }, { - "name": "headStart", + "name": "length", "nodeType": "YulIdentifier", - "src": "25240:9:1" + "src": "22342:6:1" } ], "functionName": { - "name": "sub", + "name": "add", "nodeType": "YulIdentifier", - "src": "25230:3:1" + "src": "22333:3:1" }, "nodeType": "YulFunctionCall", - "src": "25230:20:1" + "src": "22333:16:1" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22351:3:1" } ], "functionName": { - "name": "mstore", + "name": "gt", "nodeType": "YulIdentifier", - "src": "25202:6:1" + "src": "22330:2:1" }, "nodeType": "YulFunctionCall", - "src": "25202:49:1" + "src": "22330:25:1" }, - "nodeType": "YulExpressionStatement", - "src": "25202:49:1" + "nodeType": "YulIf", + "src": "22327:112:1" }, { - "nodeType": "YulAssignment", - "src": "25260:84:1", - "value": { + "expression": { "arguments": [ { - "name": "value3", + "name": "src", "nodeType": "YulIdentifier", - "src": "25330:6:1" + "src": "22470:3:1" }, { - "name": "tail", + "name": "dst", "nodeType": "YulIdentifier", - "src": "25339:4:1" + "src": "22475:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22480:6:1" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "25268:61:1" + "src": "22448:21:1" }, "nodeType": "YulFunctionCall", - "src": "25268:76:1" + "src": "22448:39:1" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "25260:4:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "22448:39:1" } ] }, - "name": "abi_encode_tuple_t_uint128_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "src", "nodeType": "YulTypedName", - "src": "24652:9:1", + "src": "22141:3:1", "type": "" }, { - "name": "value3", - "nodeType": "YulTypedName", - "src": "24664:6:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "24672:6:1", - "type": "" - }, - { - "name": "value1", + "name": "length", "nodeType": "YulTypedName", - "src": "24680:6:1", + "src": "22146:6:1", "type": "" }, { - "name": "value0", + "name": "end", "nodeType": "YulTypedName", - "src": "24688:6:1", + "src": "22154:3:1", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "array", "nodeType": "YulTypedName", - "src": "24699:4:1", + "src": "22162:5:1", "type": "" } ], - "src": "24403:948:1" + "src": "22074:419:1" }, { "body": { "nodeType": "YulBlock", - "src": "25511:288:1", + "src": "22584:281:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "25521:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "25533:9:1" - }, + "body": { + "nodeType": "YulBlock", + "src": "22633:83:1", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25544:2:1", - "type": "", - "value": "96" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "22635:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "22635:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "22635:79:1" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "25529:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "25529:18:1" + ] }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "25521:4:1" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "25601:6:1" - }, { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "25614:9:1" + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "22612:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22620:4:1", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22608:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "22608:17:1" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25625:1:1", - "type": "", - "value": "0" + "name": "end", + "nodeType": "YulIdentifier", + "src": "22627:3:1" } ], "functionName": { - "name": "add", + "name": "slt", "nodeType": "YulIdentifier", - "src": "25610:3:1" + "src": "22604:3:1" }, "nodeType": "YulFunctionCall", - "src": "25610:17:1" + "src": "22604:27:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "25557:43:1" + "src": "22597:6:1" }, "nodeType": "YulFunctionCall", - "src": "25557:71:1" + "src": "22597:35:1" }, - "nodeType": "YulExpressionStatement", - "src": "25557:71:1" + "nodeType": "YulIf", + "src": "22594:122:1" }, { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "22725:27:1", + "value": { "arguments": [ { - "name": "value1", + "name": "offset", "nodeType": "YulIdentifier", - "src": "25682:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "25695:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "25706:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "25691:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "25691:18:1" + "src": "22745:6:1" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "mload", "nodeType": "YulIdentifier", - "src": "25638:43:1" + "src": "22739:5:1" }, "nodeType": "YulFunctionCall", - "src": "25638:72:1" + "src": "22739:13:1" }, - "nodeType": "YulExpressionStatement", - "src": "25638:72:1" + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "22729:6:1", + "type": "" + } + ] }, { - "expression": { + "nodeType": "YulAssignment", + "src": "22761:98:1", + "value": { "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "25764:6:1" - }, { "arguments": [ { - "name": "headStart", + "name": "offset", "nodeType": "YulIdentifier", - "src": "25777:9:1" + "src": "22832:6:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25788:2:1", + "src": "22840:4:1", "type": "", - "value": "64" + "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25773:3:1" + "src": "22828:3:1" }, "nodeType": "YulFunctionCall", - "src": "25773:18:1" + "src": "22828:17:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22847:6:1" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22855:3:1" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", "nodeType": "YulIdentifier", - "src": "25720:43:1" + "src": "22770:57:1" }, "nodeType": "YulFunctionCall", - "src": "25720:72:1" + "src": "22770:89:1" }, - "nodeType": "YulExpressionStatement", - "src": "25720:72:1" + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "22761:5:1" + } + ] } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "25467:9:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "25479:6:1", - "type": "" - }, - { - "name": "value1", + "name": "offset", "nodeType": "YulTypedName", - "src": "25487:6:1", + "src": "22562:6:1", "type": "" }, { - "name": "value0", + "name": "end", "nodeType": "YulTypedName", - "src": "25495:6:1", + "src": "22570:3:1", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "array", "nodeType": "YulTypedName", - "src": "25506:4:1", + "src": "22578:5:1", "type": "" } ], - "src": "25357:442:1" + "src": "22512:353:1" }, { "body": { "nodeType": "YulBlock", - "src": "25858:32:1", + "src": "22957:436:1", "statements": [ { - "nodeType": "YulAssignment", - "src": "25868:16:1", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "25879:5:1" + "body": { + "nodeType": "YulBlock", + "src": "23003:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "23005:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "23005:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "23005:79:1" + } + ] }, - "variableNames": [ - { - "name": "cleaned", + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22978:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22987:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22974:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "22974:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22999:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", "nodeType": "YulIdentifier", - "src": "25868:7:1" + "src": "22970:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "22970:32:1" + }, + "nodeType": "YulIf", + "src": "22967:119:1" + }, + { + "nodeType": "YulBlock", + "src": "23096:290:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23111:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23135:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23146:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23131:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "23131:17:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "23125:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "23125:24:1" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23115:6:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23196:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "23198:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "23198:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "23198:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23168:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23176:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "23165:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "23165:30:1" + }, + "nodeType": "YulIf", + "src": "23162:117:1" + }, + { + "nodeType": "YulAssignment", + "src": "23293:83:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23348:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23359:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23344:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "23344:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23368:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "23303:40:1" + }, + "nodeType": "YulFunctionCall", + "src": "23303:73:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "23293:6:1" + } + ] } ] } ] }, - "name": "cleanup_t_rational_0_by_1", + "name": "abi_decode_tuple_t_bytes_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "25840:5:1", + "src": "22927:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "22938:7:1", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "value0", "nodeType": "YulTypedName", - "src": "25850:7:1", + "src": "22950:6:1", "type": "" } ], - "src": "25805:85:1" + "src": "22871:522:1" }, { "body": { "nodeType": "YulBlock", - "src": "25939:43:1", + "src": "23523:204:1", "statements": [ { "nodeType": "YulAssignment", - "src": "25949:27:1", + "src": "23533:26:1", "value": { "arguments": [ { - "name": "value", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "25964:5:1" + "src": "23545:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25971:4:1", + "src": "23556:2:1", "type": "", - "value": "0xff" + "value": "64" } ], "functionName": { - "name": "and", + "name": "add", "nodeType": "YulIdentifier", - "src": "25960:3:1" + "src": "23541:3:1" }, "nodeType": "YulFunctionCall", - "src": "25960:16:1" + "src": "23541:18:1" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", "nodeType": "YulIdentifier", - "src": "25949:7:1" + "src": "23533:4:1" } ] - } - ] - }, - "name": "cleanup_t_uint8", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "25921:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "25931:7:1", - "type": "" - } - ], - "src": "25896:86:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26054:88:1", - "statements": [ + }, { - "nodeType": "YulAssignment", - "src": "26064:72:1", - "value": { + "expression": { "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "23611:6:1" + }, { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "26128:5:1" - } - ], - "functionName": { - "name": "cleanup_t_rational_0_by_1", - "nodeType": "YulIdentifier", - "src": "26102:25:1" - }, - "nodeType": "YulFunctionCall", - "src": "26102:32:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23624:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23635:1:1", + "type": "", + "value": "0" } ], "functionName": { - "name": "identity", + "name": "add", "nodeType": "YulIdentifier", - "src": "26093:8:1" + "src": "23620:3:1" }, "nodeType": "YulFunctionCall", - "src": "26093:42:1" + "src": "23620:17:1" } ], "functionName": { - "name": "cleanup_t_uint8", + "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", "nodeType": "YulIdentifier", - "src": "26077:15:1" + "src": "23569:41:1" }, "nodeType": "YulFunctionCall", - "src": "26077:59:1" + "src": "23569:69:1" }, - "variableNames": [ - { - "name": "converted", - "nodeType": "YulIdentifier", - "src": "26064:9:1" - } - ] - } - ] - }, - "name": "convert_t_rational_0_by_1_to_t_uint8", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "26034:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nodeType": "YulTypedName", - "src": "26044:9:1", - "type": "" - } - ], - "src": "25988:154:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26219:72:1", - "statements": [ + "nodeType": "YulExpressionStatement", + "src": "23569:69:1" + }, { "expression": { "arguments": [ { - "name": "pos", + "name": "value1", "nodeType": "YulIdentifier", - "src": "26236:3:1" + "src": "23692:6:1" }, { "arguments": [ { - "name": "value", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "26278:5:1" + "src": "23705:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23716:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "convert_t_rational_0_by_1_to_t_uint8", + "name": "add", "nodeType": "YulIdentifier", - "src": "26241:36:1" + "src": "23701:3:1" }, "nodeType": "YulFunctionCall", - "src": "26241:43:1" + "src": "23701:18:1" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "26229:6:1" + "src": "23648:43:1" }, "nodeType": "YulFunctionCall", - "src": "26229:56:1" + "src": "23648:72:1" }, "nodeType": "YulExpressionStatement", - "src": "26229:56:1" + "src": "23648:72:1" } ] }, - "name": "abi_encode_t_rational_0_by_1_to_t_uint8_fromStack", + "name": "abi_encode_tuple_t_bytes6_t_uint128__to_t_bytes6_t_uint128__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "26207:5:1", + "src": "23487:9:1", "type": "" }, { - "name": "pos", + "name": "value1", "nodeType": "YulTypedName", - "src": "26214:3:1", + "src": "23499:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "23507:6:1", "type": "" } ], - "src": "26148:143:1" + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23518:4:1", + "type": "" + } + ], + "src": "23399:328:1" }, { "body": { "nodeType": "YulBlock", - "src": "26453:290:1", + "src": "23943:454:1", "statements": [ { "nodeType": "YulAssignment", - "src": "26463:26:1", + "src": "23953:27:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26475:9:1" + "src": "23965:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26486:2:1", + "src": "23976:3:1", "type": "", - "value": "96" + "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26471:3:1" + "src": "23961:3:1" }, "nodeType": "YulFunctionCall", - "src": "26471:18:1" + "src": "23961:19:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26463:4:1" + "src": "23953:4:1" } ] }, @@ -13386,19 +13240,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "26541:6:1" + "src": "24034:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26554:9:1" + "src": "24047:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26565:1:1", + "src": "24058:1:1", "type": "", "value": "0" } @@ -13406,22 +13260,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26550:3:1" + "src": "24043:3:1" }, "nodeType": "YulFunctionCall", - "src": "26550:17:1" + "src": "24043:17:1" } ], "functionName": { - "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "26499:41:1" + "src": "23990:43:1" }, "nodeType": "YulFunctionCall", - "src": "26499:69:1" + "src": "23990:71:1" }, "nodeType": "YulExpressionStatement", - "src": "26499:69:1" + "src": "23990:71:1" }, { "expression": { @@ -13429,19 +13283,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "26620:6:1" + "src": "24115:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26633:9:1" + "src": "24128:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26644:2:1", + "src": "24139:2:1", "type": "", "value": "32" } @@ -13449,22 +13303,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26629:3:1" + "src": "24124:3:1" }, "nodeType": "YulFunctionCall", - "src": "26629:18:1" + "src": "24124:18:1" } ], "functionName": { - "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", "nodeType": "YulIdentifier", - "src": "26578:41:1" + "src": "24071:43:1" }, "nodeType": "YulFunctionCall", - "src": "26578:70:1" + "src": "24071:72:1" }, "nodeType": "YulExpressionStatement", - "src": "26578:70:1" + "src": "24071:72:1" }, { "expression": { @@ -13472,19 +13326,19 @@ { "name": "value2", "nodeType": "YulIdentifier", - "src": "26708:6:1" + "src": "24197:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26721:9:1" + "src": "24210:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26732:2:1", + "src": "24221:2:1", "type": "", "value": "64" } @@ -13492,609 +13346,588 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26717:3:1" + "src": "24206:3:1" }, "nodeType": "YulFunctionCall", - "src": "26717:18:1" + "src": "24206:18:1" } ], "functionName": { - "name": "abi_encode_t_rational_0_by_1_to_t_uint8_fromStack", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "26658:49:1" + "src": "24153:43:1" }, "nodeType": "YulFunctionCall", - "src": "26658:78:1" + "src": "24153:72:1" }, "nodeType": "YulExpressionStatement", - "src": "26658:78:1" - } - ] - }, - "name": "abi_encode_tuple_t_bytes6_t_bytes6_t_rational_0_by_1__to_t_bytes6_t_bytes6_t_uint8__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "26409:9:1", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "26421:6:1", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "26429:6:1", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "26437:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "26448:4:1", - "type": "" - } - ], - "src": "26297:446:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26812:80:1", - "statements": [ + "src": "24153:72:1" + }, { - "nodeType": "YulAssignment", - "src": "26822:22:1", - "value": { + "expression": { "arguments": [ { - "name": "offset", + "name": "value3", "nodeType": "YulIdentifier", - "src": "26837:6:1" + "src": "24279:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24292:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24303:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24288:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "24288:18:1" } ], "functionName": { - "name": "mload", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "26831:5:1" + "src": "24235:43:1" }, "nodeType": "YulFunctionCall", - "src": "26831:13:1" + "src": "24235:72:1" }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "26822:5:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "24235:72:1" }, { "expression": { "arguments": [ { - "name": "value", + "name": "value4", "nodeType": "YulIdentifier", - "src": "26880:5:1" + "src": "24361:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24374:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24385:3:1", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24370:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "24370:19:1" } ], "functionName": { - "name": "validator_revert_t_bytes12", + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", "nodeType": "YulIdentifier", - "src": "26853:26:1" + "src": "24317:43:1" }, "nodeType": "YulFunctionCall", - "src": "26853:33:1" + "src": "24317:73:1" }, "nodeType": "YulExpressionStatement", - "src": "26853:33:1" + "src": "24317:73:1" } ] }, - "name": "abi_decode_t_bytes12_fromMemory", + "name": "abi_encode_tuple_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__to_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "headStart", "nodeType": "YulTypedName", - "src": "26790:6:1", + "src": "23883:9:1", "type": "" }, { - "name": "end", + "name": "value4", "nodeType": "YulTypedName", - "src": "26798:3:1", + "src": "23895:6:1", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "23903:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "23911:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "23919:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "23927:6:1", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "tail", "nodeType": "YulTypedName", - "src": "26806:5:1", + "src": "23938:4:1", "type": "" } ], - "src": "26749:143:1" + "src": "23733:664:1" }, { "body": { "nodeType": "YulBlock", - "src": "27012:434:1", + "src": "24704:647:1", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "27059:83:1", - "statements": [ + "nodeType": "YulAssignment", + "src": "24714:27:1", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "27061:77:1" - }, - "nodeType": "YulFunctionCall", - "src": "27061:79:1" - }, - "nodeType": "YulExpressionStatement", - "src": "27061:79:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24726:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24737:3:1", + "type": "", + "value": "160" } - ] + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24722:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "24722:19:1" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24714:4:1" + } + ] + }, + { + "expression": { "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "24795:6:1" + }, { "arguments": [ { - "name": "dataEnd", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "27033:7:1" + "src": "24808:9:1" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27042:9:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "24819:1:1", + "type": "", + "value": "0" } ], "functionName": { - "name": "sub", + "name": "add", "nodeType": "YulIdentifier", - "src": "27029:3:1" + "src": "24804:3:1" }, "nodeType": "YulFunctionCall", - "src": "27029:23:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27054:3:1", - "type": "", - "value": "128" + "src": "24804:17:1" } ], "functionName": { - "name": "slt", + "name": "abi_encode_t_uint128_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "27025:3:1" + "src": "24751:43:1" }, "nodeType": "YulFunctionCall", - "src": "27025:33:1" + "src": "24751:71:1" }, - "nodeType": "YulIf", - "src": "27022:120:1" + "nodeType": "YulExpressionStatement", + "src": "24751:71:1" }, { - "nodeType": "YulBlock", - "src": "27152:128:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "27167:15:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27181:1:1", - "type": "", - "value": "0" + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "24876:6:1" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "27171:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "27196:74:1", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27242:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "27253:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27238:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "27238:22:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24889:9:1" }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "27262:7:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "24900:2:1", + "type": "", + "value": "32" } ], "functionName": { - "name": "abi_decode_t_bytes12_fromMemory", + "name": "add", "nodeType": "YulIdentifier", - "src": "27206:31:1" + "src": "24885:3:1" }, "nodeType": "YulFunctionCall", - "src": "27206:64:1" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "27196:6:1" - } - ] - } - ] + "src": "24885:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "24832:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "24832:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "24832:72:1" }, { - "nodeType": "YulBlock", - "src": "27290:149:1", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "27305:16:1", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27319:2:1", - "type": "", - "value": "32" + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "24958:6:1" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "27309:6:1", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "27335:94:1", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27401:9:1" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "27412:6:1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27397:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "27397:22:1" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24971:9:1" }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "27421:7:1" + "kind": "number", + "nodeType": "YulLiteral", + "src": "24982:2:1", + "type": "", + "value": "64" } ], "functionName": { - "name": "abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory", + "name": "add", "nodeType": "YulIdentifier", - "src": "27345:51:1" + "src": "24967:3:1" }, "nodeType": "YulFunctionCall", - "src": "27345:84:1" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "27335:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes12t_struct$_Vault_$8_memory_ptr_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "26974:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "26985:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "26997:6:1", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "27005:6:1", - "type": "" - } - ], - "src": "26898:548:1" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27496:261:1", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "27506:25:1", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "27529:1:1" + "src": "24967:18:1" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "27511:17:1" + "src": "24914:43:1" }, "nodeType": "YulFunctionCall", - "src": "27511:20:1" + "src": "24914:72:1" }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "27506:1:1" - } - ] + "nodeType": "YulExpressionStatement", + "src": "24914:72:1" }, { - "nodeType": "YulAssignment", - "src": "27540:25:1", - "value": { + "expression": { "arguments": [ { - "name": "y", - "nodeType": "YulIdentifier", - "src": "27563:1:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "27545:17:1" - }, - "nodeType": "YulFunctionCall", - "src": "27545:20:1" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "27540:1:1" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "27703:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "27705:16:1" + "src": "25007:9:1" }, - "nodeType": "YulFunctionCall", - "src": "27705:18:1" - }, - "nodeType": "YulExpressionStatement", - "src": "27705:18:1" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25018:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25003:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25003:18:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25027:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25033:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25023:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25023:20:1" } - ] + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24996:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "24996:48:1" }, - "condition": { + "nodeType": "YulExpressionStatement", + "src": "24996:48:1" + }, + { + "nodeType": "YulAssignment", + "src": "25053:139:1", + "value": { "arguments": [ { - "name": "x", + "name": "tail", "nodeType": "YulIdentifier", - "src": "27624:1:1" - }, + "src": "25187:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25061:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "25061:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25053:4:1" + } + ] + }, + { + "expression": { + "arguments": [ { "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25213:9:1" + }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27631:66:1", + "src": "25224:3:1", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25209:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25209:19:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25234:4:1" }, { - "name": "y", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "27699:1:1" + "src": "25240:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "27627:3:1" + "src": "25230:3:1" }, "nodeType": "YulFunctionCall", - "src": "27627:74:1" + "src": "25230:20:1" } ], "functionName": { - "name": "gt", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "27621:2:1" + "src": "25202:6:1" }, "nodeType": "YulFunctionCall", - "src": "27621:81:1" + "src": "25202:49:1" }, - "nodeType": "YulIf", - "src": "27618:107:1" + "nodeType": "YulExpressionStatement", + "src": "25202:49:1" }, { "nodeType": "YulAssignment", - "src": "27735:16:1", + "src": "25260:84:1", "value": { "arguments": [ { - "name": "x", + "name": "value3", "nodeType": "YulIdentifier", - "src": "27746:1:1" + "src": "25330:6:1" }, { - "name": "y", + "name": "tail", "nodeType": "YulIdentifier", - "src": "27749:1:1" + "src": "25339:4:1" } ], "functionName": { - "name": "add", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "27742:3:1" + "src": "25268:61:1" }, "nodeType": "YulFunctionCall", - "src": "27742:9:1" + "src": "25268:76:1" }, "variableNames": [ { - "name": "sum", + "name": "tail", "nodeType": "YulIdentifier", - "src": "27735:3:1" + "src": "25260:4:1" } ] } ] }, - "name": "checked_add_t_uint256", + "name": "abi_encode_tuple_t_uint128_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "x", + "name": "headStart", "nodeType": "YulTypedName", - "src": "27483:1:1", + "src": "24652:9:1", "type": "" }, { - "name": "y", + "name": "value3", "nodeType": "YulTypedName", - "src": "27486:1:1", + "src": "24664:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "24672:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "24680:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "24688:6:1", "type": "" } ], "returnVariables": [ { - "name": "sum", + "name": "tail", "nodeType": "YulTypedName", - "src": "27492:3:1", + "src": "24699:4:1", "type": "" } ], - "src": "27452:305:1" + "src": "24403:948:1" }, { "body": { "nodeType": "YulBlock", - "src": "27945:371:1", + "src": "25511:288:1", "statements": [ { "nodeType": "YulAssignment", - "src": "27955:27:1", + "src": "25521:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27967:9:1" + "src": "25533:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27978:3:1", + "src": "25544:2:1", "type": "", - "value": "128" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27963:3:1" + "src": "25529:3:1" }, "nodeType": "YulFunctionCall", - "src": "27963:19:1" + "src": "25529:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27955:4:1" + "src": "25521:4:1" } ] }, @@ -14104,19 +13937,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "28036:6:1" + "src": "25601:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28049:9:1" + "src": "25614:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28060:1:1", + "src": "25625:1:1", "type": "", "value": "0" } @@ -14124,22 +13957,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28045:3:1" + "src": "25610:3:1" }, "nodeType": "YulFunctionCall", - "src": "28045:17:1" + "src": "25610:17:1" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "27992:43:1" + "src": "25557:43:1" }, "nodeType": "YulFunctionCall", - "src": "27992:71:1" + "src": "25557:71:1" }, "nodeType": "YulExpressionStatement", - "src": "27992:71:1" + "src": "25557:71:1" }, { "expression": { @@ -14147,19 +13980,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "28117:6:1" + "src": "25682:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28130:9:1" + "src": "25695:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28141:2:1", + "src": "25706:2:1", "type": "", "value": "32" } @@ -14167,22 +14000,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28126:3:1" + "src": "25691:3:1" }, "nodeType": "YulFunctionCall", - "src": "28126:18:1" + "src": "25691:18:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "28073:43:1" + "src": "25638:43:1" }, "nodeType": "YulFunctionCall", - "src": "28073:72:1" + "src": "25638:72:1" }, "nodeType": "YulExpressionStatement", - "src": "28073:72:1" + "src": "25638:72:1" }, { "expression": { @@ -14190,19 +14023,19 @@ { "name": "value2", "nodeType": "YulIdentifier", - "src": "28199:6:1" + "src": "25764:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28212:9:1" + "src": "25777:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28223:2:1", + "src": "25788:2:1", "type": "", "value": "64" } @@ -14210,99 +14043,50 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28208:3:1" + "src": "25773:3:1" }, "nodeType": "YulFunctionCall", - "src": "28208:18:1" + "src": "25773:18:1" } ], "functionName": { - "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "28155:43:1" + "src": "25720:43:1" }, "nodeType": "YulFunctionCall", - "src": "28155:72:1" + "src": "25720:72:1" }, "nodeType": "YulExpressionStatement", - "src": "28155:72:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "28281:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "28294:9:1" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "28305:2:1", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "28290:3:1" - }, - "nodeType": "YulFunctionCall", - "src": "28290:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", - "nodeType": "YulIdentifier", - "src": "28237:43:1" - }, - "nodeType": "YulFunctionCall", - "src": "28237:72:1" - }, - "nodeType": "YulExpressionStatement", - "src": "28237:72:1" + "src": "25720:72:1" } ] }, - "name": "abi_encode_tuple_t_uint256_t_uint128_t_uint128_t_bytes12__to_t_uint256_t_uint128_t_uint128_t_bytes12__fromStack_reversed", + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "27893:9:1", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "27905:6:1", + "src": "25467:9:1", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "27913:6:1", + "src": "25479:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "27921:6:1", + "src": "25487:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "27929:6:1", + "src": "25495:6:1", "type": "" } ], @@ -14310,142 +14094,1358 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "27940:4:1", + "src": "25506:4:1", "type": "" } ], - "src": "27763:553:1" - } - ] - }, - "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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint128(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n }\n\n function validator_revert_t_uint128(value) {\n if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint128(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint128(value)\n }\n\n function cleanup_t_bytes12(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff0000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes12(value) {\n if iszero(eq(value, cleanup_t_bytes12(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes12(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes12(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes12(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bytes12(add(headStart, offset), dataEnd)\n }\n\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 abi_decode_tuple_t_addresst_bytes12t_uint256t_uint128(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { 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_bytes12(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 let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bytes12t_uint128t_uint128t_uint128(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_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes12(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes6(value) -> cleaned {\n cleaned := and(value, 0xffffffffffff0000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes6(value) {\n if iszero(eq(value, cleanup_t_bytes6(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes6(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes6(value)\n }\n\n function abi_decode_tuple_t_bytes12t_uint256t_addresst_uint128t_uint128t_bytes6(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes12(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 let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes6(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes6(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bytes6(add(headStart, offset), dataEnd)\n }\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_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__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_address_to_t_address_fromStack(value1, add(headStart, 32))\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_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_t_bytes12_to_t_bytes12_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes12(value))\n }\n\n function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint128(value))\n }\n\n function abi_encode_tuple_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__to_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_t_uint128_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint128(value)\n }\n\n function abi_decode_tuple_t_uint128_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_uint128_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_int128(value) -> cleaned {\n cleaned := signextend(15, value)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function negate_t_int128(value) -> ret {\n value := cleanup_t_int128(value)\n if eq(value, 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000) { panic_error_0x11() }\n ret := sub(0, value)\n }\n\n function abi_encode_t_int128_to_t_int128_fromStack(value, pos) {\n mstore(pos, cleanup_t_int128(value))\n }\n\n function abi_encode_tuple_t_bytes12_t_address_t_int128_t_uint128__to_t_bytes12_t_address_t_int128_t_uint128__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_int128_to_t_int128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\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 cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\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 abi_encode_tuple_t_bytes12_t_address_t_int128_t_int128__to_t_bytes12_t_address_t_int128_t_int128__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_int128_to_t_int128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_int128_to_t_int128_fromStack(value3, add(headStart, 96))\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint128_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint128(value)))\n }\n\n function abi_encode_t_uint128_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_uint128_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint128__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_uint128_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_bytes12__to_t_bytes12__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n 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_t_bytes6_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes6(value)\n }\n\n // struct Vault\n function abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // seriesId\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes6_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // ilkId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes6_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Vault_$8_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes6_to_t_bytes6_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes6(value))\n }\n\n function abi_encode_tuple_t_bytes6__to_t_bytes6__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_contract$_IFYToken_$9(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IFYToken_$9(value) {\n if iszero(eq(value, cleanup_t_contract$_IFYToken_$9(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IFYToken_$9_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IFYToken_$9(value)\n }\n\n function cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function validator_revert_t_uint32(value) {\n if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint32(value)\n }\n\n // struct Series\n function abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // fyToken\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_IFYToken_$9_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // baseId\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes6_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maturity\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Series_$17_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes12_t_address__to_t_bytes12_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes12_t_uint256_t_uint128__to_t_address_t_bytes12_t_uint256_t_uint128__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_bytes12_to_t_bytes12_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\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 store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_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(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes6_t_uint128__to_t_bytes6_t_uint128__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__to_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__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_bytes12_to_t_bytes12_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_uint128_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint128_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\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 cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function convert_t_rational_0_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes6_t_bytes6_t_rational_0_by_1__to_t_bytes6_t_bytes6_t_uint8__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_rational_0_by_1_to_t_uint8_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_decode_t_bytes12_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes12(value)\n }\n\n function abi_decode_tuple_t_bytes12t_struct$_Vault_$8_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes12_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\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\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function abi_encode_tuple_t_uint256_t_uint128_t_uint128_t_bytes12__to_t_uint256_t_uint128_t_uint128_t_bytes12__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n", - "id": 1, - "language": "Yul", - "name": "#utility.yul" - } - ], - "sourceMap": "3298:6831:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "3298:6831:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5850:601;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8905:449;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9724:403;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7144:1341;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4726:832;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5850:601;6142:21;3354:42;6174:14;;;6189:12;3828:42;6174:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6142:73;;3743:42;6368:11;;;6380:7;3496:42;6405:13;6420:12;6434:11;6368:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5979:472;5850:601;;;;:::o;8905:449::-;3743:42;9034:16;;;9051:7;9068:4;9083:3;9075:12;;;:::i;:::-;9097;9034:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3354:42;9146:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3574:42;9197:13;;;3496:42;9227:12;9197:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3574:42;9298:13;;;9312:5;3574:42;9319:14;;;9342:4;9319:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9298:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8905:449;;;;:::o;9724:403::-;3743:42;9851:11;;;9863:7;9880:4;9895:3;9887:12;;;:::i;:::-;9909:3;9901:12;;;:::i;:::-;9851:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3354:42;9949:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3574:42;9996:13;;;3496:42;10026:4;9996:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3574:42;10071:13;;;10085:5;3574:42;10092:14;;;10115:4;10092:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10071:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9724:403;;;;;:::o;7144:1341::-;7268:19;3913:42;7290:15;;;7306:7;7290:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7268:46;;7320:21;3913:42;7344:15;;;7360:8;7344:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7320:49;;7525:10;7509:26;;:6;:12;;;:26;;;7501:35;;;;;;3913:42;7581:13;;;7595:7;7612:4;7581:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7657:7;:16;;;7631:42;;7638:15;7631:42;;;7627:735;;;3496:42;7778:17;;;7805:9;7824:4;7846;7941:10;7953:7;7962:9;7973:3;7873:104;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7778:207;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7627:735;;;8084:12;3913:42;8099:19;;;8119:8;8129:3;8099:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8084:49;;3496:42;8141:17;;;8168:4;3657:42;8208:4;8311:10;8323:7;8332:4;8338:3;8343;8235:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8141:214;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7998:364;7627:735;3913:42;8446:13;;;8460:7;8469:10;8446:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7262:1223;;7144:1341;;;;;;:::o;4726:832::-;3574:42;4894:17;;;4912:10;4932:4;4939:10;4894:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4984:15;3743:42;5005:11;;;5017:8;3432:14;3425:22;;5034:1;5005:31;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4983:53;;;5043:20;5079:12;5066:25;;:10;:25;;;;:::i;:::-;5043:48;;3574:42;5097:12;;;3354:42;5127:12;5097:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3496:42;5172:17;;;5199:12;5229:4;5252;5369:12;5393;5417:11;5440:7;5279:178;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:291;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3913:42;5519:13;;;5533:7;5542:10;5519:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4851:707;;4726:832;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310: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:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:118::-;727:7;767:34;760:5;756:46;745:57;;690:118;;;:::o;814:122::-;887:24;905:5;887:24;:::i;:::-;880:5;877:35;867:63;;926:1;923;916:12;867:63;814:122;:::o;942:139::-;988:5;1026:6;1013:20;1004:29;;1042:33;1069:5;1042:33;:::i;:::-;942:139;;;;:::o;1087:150::-;1124:7;1164:66;1157:5;1153:78;1142:89;;1087:150;;;:::o;1243:122::-;1316:24;1334:5;1316:24;:::i;:::-;1309:5;1306:35;1296:63;;1355:1;1352;1345:12;1296:63;1243:122;:::o;1371:139::-;1417:5;1455:6;1442:20;1433:29;;1471:33;1498:5;1471:33;:::i;:::-;1371:139;;;;:::o;1516:765::-;1602:6;1610;1618;1626;1675:3;1663:9;1654:7;1650:23;1646:33;1643:120;;;1682:79;;:::i;:::-;1643:120;1802:1;1827:53;1872:7;1863:6;1852:9;1848:22;1827:53;:::i;:::-;1817:63;;1773:117;1929:2;1955:53;2000:7;1991:6;1980:9;1976:22;1955:53;:::i;:::-;1945:63;;1900:118;2057:2;2083:53;2128:7;2119:6;2108:9;2104:22;2083:53;:::i;:::-;2073:63;;2028:118;2185:2;2211:53;2256:7;2247:6;2236:9;2232:22;2211:53;:::i;:::-;2201:63;;2156:118;1516:765;;;;;;;:::o;2287:126::-;2324:7;2364:42;2357:5;2353:54;2342:65;;2287:126;;;:::o;2419:96::-;2456:7;2485:24;2503:5;2485:24;:::i;:::-;2474:35;;2419:96;;;:::o;2521:122::-;2594:24;2612:5;2594:24;:::i;:::-;2587:5;2584:35;2574:63;;2633:1;2630;2623:12;2574:63;2521:122;:::o;2649:139::-;2695:5;2733:6;2720:20;2711:29;;2749:33;2776:5;2749:33;:::i;:::-;2649:139;;;;:::o;2794:765::-;2880:6;2888;2896;2904;2953:3;2941:9;2932:7;2928:23;2924:33;2921:120;;;2960:79;;:::i;:::-;2921:120;3080:1;3105:53;3150:7;3141:6;3130:9;3126:22;3105:53;:::i;:::-;3095:63;;3051:117;3207:2;3233:53;3278:7;3269:6;3258:9;3254:22;3233:53;:::i;:::-;3223:63;;3178:118;3335:2;3361:53;3406:7;3397:6;3386:9;3382:22;3361:53;:::i;:::-;3351:63;;3306:118;3463:2;3489:53;3534:7;3525:6;3514:9;3510:22;3489:53;:::i;:::-;3479:63;;3434:118;2794:765;;;;;;;:::o;3565:911::-;3660:6;3668;3676;3684;3692;3741:3;3729:9;3720:7;3716:23;3712:33;3709:120;;;3748:79;;:::i;:::-;3709:120;3868:1;3893:53;3938:7;3929:6;3918:9;3914:22;3893:53;:::i;:::-;3883:63;;3839:117;3995:2;4021:53;4066:7;4057:6;4046:9;4042:22;4021:53;:::i;:::-;4011:63;;3966:118;4123:2;4149:53;4194:7;4185:6;4174:9;4170:22;4149:53;:::i;:::-;4139:63;;4094:118;4251:2;4277:53;4322:7;4313:6;4302:9;4298:22;4277:53;:::i;:::-;4267:63;;4222:118;4379:3;4406:53;4451:7;4442:6;4431:9;4427:22;4406:53;:::i;:::-;4396:63;;4350:119;3565:911;;;;;;;;:::o;4482:149::-;4518:7;4558:66;4551:5;4547:78;4536:89;;4482:149;;;:::o;4637:120::-;4709:23;4726:5;4709:23;:::i;:::-;4702:5;4699:34;4689:62;;4747:1;4744;4737:12;4689:62;4637:120;:::o;4763:137::-;4808:5;4846:6;4833:20;4824:29;;4862:32;4888:5;4862:32;:::i;:::-;4763:137;;;;:::o;4906:1055::-;5009:6;5017;5025;5033;5041;5049;5098:3;5086:9;5077:7;5073:23;5069:33;5066:120;;;5105:79;;:::i;:::-;5066:120;5225:1;5250:53;5295:7;5286:6;5275:9;5271:22;5250:53;:::i;:::-;5240:63;;5196:117;5352:2;5378:53;5423:7;5414:6;5403:9;5399:22;5378:53;:::i;:::-;5368:63;;5323:118;5480:2;5506:53;5551:7;5542:6;5531:9;5527:22;5506:53;:::i;:::-;5496:63;;5451:118;5608:2;5634:53;5679:7;5670:6;5659:9;5655:22;5634:53;:::i;:::-;5624:63;;5579:118;5736:3;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5707:119;5865:3;5892:52;5936:7;5927:6;5916:9;5912:22;5892:52;:::i;:::-;5882:62;;5836:118;4906:1055;;;;;;;;:::o;5967:763::-;6052:6;6060;6068;6076;6125:3;6113:9;6104:7;6100:23;6096:33;6093:120;;;6132:79;;:::i;:::-;6093:120;6252:1;6277:53;6322:7;6313:6;6302:9;6298:22;6277:53;:::i;:::-;6267:63;;6223:117;6379:2;6405:53;6450:7;6441:6;6430:9;6426:22;6405:53;:::i;:::-;6395:63;;6350:118;6507:2;6533:53;6578:7;6569:6;6558:9;6554:22;6533:53;:::i;:::-;6523:63;;6478:118;6635:2;6661:52;6705:7;6696:6;6685:9;6681:22;6661:52;:::i;:::-;6651:62;;6606:117;5967:763;;;;;;;:::o;6736:118::-;6823:24;6841:5;6823:24;:::i;:::-;6818:3;6811:37;6736:118;;:::o;6860:::-;6947:24;6965:5;6947:24;:::i;:::-;6942:3;6935:37;6860:118;;:::o;6984:332::-;7105:4;7143:2;7132:9;7128:18;7120:26;;7156:71;7224:1;7213:9;7209:17;7200:6;7156:71;:::i;:::-;7237:72;7305:2;7294:9;7290:18;7281:6;7237:72;:::i;:::-;6984:332;;;;;:::o;7322:143::-;7379:5;7410:6;7404:13;7395:22;;7426:33;7453:5;7426:33;:::i;:::-;7322:143;;;;:::o;7471:351::-;7541:6;7590:2;7578:9;7569:7;7565:23;7561:32;7558:119;;;7596:79;;:::i;:::-;7558:119;7716:1;7741:64;7797:7;7788:6;7777:9;7773:22;7741:64;:::i;:::-;7731:74;;7687:128;7471:351;;;;:::o;7828:118::-;7915:24;7933:5;7915:24;:::i;:::-;7910:3;7903:37;7828:118;;:::o;7952:::-;8039:24;8057:5;8039:24;:::i;:::-;8034:3;8027:37;7952:118;;:::o;8076:664::-;8281:4;8319:3;8308:9;8304:19;8296:27;;8333:71;8401:1;8390:9;8386:17;8377:6;8333:71;:::i;:::-;8414:72;8482:2;8471:9;8467:18;8458:6;8414:72;:::i;:::-;8496;8564:2;8553:9;8549:18;8540:6;8496:72;:::i;:::-;8578;8646:2;8635:9;8631:18;8622:6;8578:72;:::i;:::-;8660:73;8728:3;8717:9;8713:19;8704:6;8660:73;:::i;:::-;8076:664;;;;;;;;:::o;8746:143::-;8803:5;8834:6;8828:13;8819:22;;8850:33;8877:5;8850:33;:::i;:::-;8746:143;;;;:::o;8895:351::-;8965:6;9014:2;9002:9;8993:7;8989:23;8985:32;8982:119;;;9020:79;;:::i;:::-;8982:119;9140:1;9165:64;9221:7;9212:6;9201:9;9197:22;9165:64;:::i;:::-;9155:74;;9111:128;8895:351;;;;:::o;9252:92::-;9288:7;9332:5;9328:2;9317:21;9306:32;;9252:92;;;:::o;9350:180::-;9398:77;9395:1;9388:88;9495:4;9492:1;9485:15;9519:4;9516:1;9509:15;9536:228;9571:3;9594:23;9611:5;9594:23;:::i;:::-;9585:32;;9639:66;9632:5;9629:77;9626:103;;;9709:18;;:::i;:::-;9626:103;9752:5;9749:1;9745:13;9738:20;;9536:228;;;:::o;9770:115::-;9855:23;9872:5;9855:23;:::i;:::-;9850:3;9843:36;9770:115;;:::o;9891:549::-;10066:4;10104:3;10093:9;10089:19;10081:27;;10118:71;10186:1;10175:9;10171:17;10162:6;10118:71;:::i;:::-;10199:72;10267:2;10256:9;10252:18;10243:6;10199:72;:::i;:::-;10281:70;10347:2;10336:9;10332:18;10323:6;10281:70;:::i;:::-;10361:72;10429:2;10418:9;10414:18;10405:6;10361:72;:::i;:::-;9891:549;;;;;;;:::o;10446:332::-;10567:4;10605:2;10594:9;10590:18;10582:26;;10618:71;10686:1;10675:9;10671:17;10662:6;10618:71;:::i;:::-;10699:72;10767:2;10756:9;10752:18;10743:6;10699:72;:::i;:::-;10446:332;;;;;:::o;10784:90::-;10818:7;10861:5;10854:13;10847:21;10836:32;;10784:90;;;:::o;10880:116::-;10950:21;10965:5;10950:21;:::i;:::-;10943:5;10940:32;10930:60;;10986:1;10983;10976:12;10930:60;10880:116;:::o;11002:137::-;11056:5;11087:6;11081:13;11072:22;;11103:30;11127:5;11103:30;:::i;:::-;11002:137;;;;:::o;11145:345::-;11212:6;11261:2;11249:9;11240:7;11236:23;11232:32;11229:119;;;11267:79;;:::i;:::-;11229:119;11387:1;11412:61;11465:7;11456:6;11445:9;11441:22;11412:61;:::i;:::-;11402:71;;11358:125;11145:345;;;;:::o;11496:222::-;11589:4;11627:2;11616:9;11612:18;11604:26;;11640:71;11708:1;11697:9;11693:17;11684:6;11640:71;:::i;:::-;11496:222;;;;:::o;11724:545::-;11897:4;11935:3;11924:9;11920:19;11912:27;;11949:71;12017:1;12006:9;12002:17;11993:6;11949:71;:::i;:::-;12030:72;12098:2;12087:9;12083:18;12074:6;12030:72;:::i;:::-;12112:70;12178:2;12167:9;12163:18;12154:6;12112:70;:::i;:::-;12192;12258:2;12247:9;12243:18;12234:6;12192:70;:::i;:::-;11724:545;;;;;;;:::o;12275:60::-;12303:3;12324:5;12317:12;;12275:60;;;:::o;12341:142::-;12391:9;12424:53;12442:34;12451:24;12469:5;12451:24;:::i;:::-;12442:34;:::i;:::-;12424:53;:::i;:::-;12411:66;;12341:142;;;:::o;12489:131::-;12576:37;12607:5;12576:37;:::i;:::-;12571:3;12564:50;12489:131;;:::o;12626:332::-;12747:4;12785:2;12774:9;12770:18;12762:26;;12798:71;12866:1;12855:9;12851:17;12842:6;12798:71;:::i;:::-;12879:72;12947:2;12936:9;12932:18;12923:6;12879:72;:::i;:::-;12626:332;;;;;:::o;12964:222::-;13057:4;13095:2;13084:9;13080:18;13072:26;;13108:71;13176:1;13165:9;13161:17;13152:6;13108:71;:::i;:::-;12964:222;;;;:::o;13192:117::-;13301:1;13298;13291:12;13315:102;13356:6;13407:2;13403:7;13398:2;13391:5;13387:14;13383:28;13373:38;;13315:102;;;:::o;13423:180::-;13471:77;13468:1;13461:88;13568:4;13565:1;13558:15;13592:4;13589:1;13582:15;13609:281;13692:27;13714:4;13692:27;:::i;:::-;13684:6;13680:40;13822:6;13810:10;13807:22;13786:18;13774:10;13771:34;13768:62;13765:88;;;13833:18;;:::i;:::-;13765:88;13873:10;13869:2;13862:22;13652:238;13609:281;;:::o;13896:129::-;13930:6;13957:20;;:::i;:::-;13947:30;;13986:33;14014:4;14006:6;13986:33;:::i;:::-;13896:129;;;:::o;14154:143::-;14211:5;14242:6;14236:13;14227:22;;14258:33;14285:5;14258:33;:::i;:::-;14154:143;;;;:::o;14303:141::-;14359:5;14390:6;14384:13;14375:22;;14406:32;14432:5;14406:32;:::i;:::-;14303:141;;;;:::o;14470:778::-;14550:5;14594:4;14582:9;14577:3;14573:19;14569:30;14566:117;;;14602:79;;:::i;:::-;14566:117;14701:21;14717:4;14701:21;:::i;:::-;14692:30;;14782:1;14822:60;14878:3;14869:6;14858:9;14854:22;14822:60;:::i;:::-;14815:4;14808:5;14804:16;14797:86;14732:162;14957:2;14998:59;15053:3;15044:6;15033:9;15029:22;14998:59;:::i;:::-;14991:4;14984:5;14980:16;14973:85;14904:165;15129:2;15170:59;15225:3;15216:6;15205:9;15201:22;15170:59;:::i;:::-;15163:4;15156:5;15152:16;15145:85;15079:162;14470:778;;;;:::o;15254:391::-;15344:6;15393:2;15381:9;15372:7;15368:23;15364:32;15361:119;;;15399:79;;:::i;:::-;15361:119;15519:1;15544:84;15620:7;15611:6;15600:9;15596:22;15544:84;:::i;:::-;15534:94;;15490:148;15254:391;;;;:::o;15651:115::-;15736:23;15753:5;15736:23;:::i;:::-;15731:3;15724:36;15651:115;;:::o;15772:218::-;15863:4;15901:2;15890:9;15886:18;15878:26;;15914:69;15980:1;15969:9;15965:17;15956:6;15914:69;:::i;:::-;15772:218;;;;:::o;15996:110::-;16047:7;16076:24;16094:5;16076:24;:::i;:::-;16065:35;;15996:110;;;:::o;16112:150::-;16199:38;16231:5;16199:38;:::i;:::-;16192:5;16189:49;16179:77;;16252:1;16249;16242:12;16179:77;16112:150;:::o;16268:171::-;16339:5;16370:6;16364:13;16355:22;;16386:47;16427:5;16386:47;:::i;:::-;16268:171;;;;:::o;16445:93::-;16481:7;16521:10;16514:5;16510:22;16499:33;;16445:93;;;:::o;16544:120::-;16616:23;16633:5;16616:23;:::i;:::-;16609:5;16606:34;16596:62;;16654:1;16651;16644:12;16596:62;16544:120;:::o;16670:141::-;16726:5;16757:6;16751:13;16742:22;;16773:32;16799:5;16773:32;:::i;:::-;16670:141;;;;:::o;16838:797::-;16920:5;16964:4;16952:9;16947:3;16943:19;16939:30;16936:117;;;16972:79;;:::i;:::-;16936:117;17071:21;17087:4;17071:21;:::i;:::-;17062:30;;17154:1;17194:74;17264:3;17255:6;17244:9;17240:22;17194:74;:::i;:::-;17187:4;17180:5;17176:16;17169:100;17102:178;17341:2;17382:59;17437:3;17428:6;17417:9;17413:22;17382:59;:::i;:::-;17375:4;17368:5;17364:16;17357:85;17290:163;17516:2;17557:59;17612:3;17603:6;17592:9;17588:22;17557:59;:::i;:::-;17550:4;17543:5;17539:16;17532:85;17463:165;16838:797;;;;:::o;17641:395::-;17733:6;17782:2;17770:9;17761:7;17757:23;17753:32;17750:119;;;17788:79;;:::i;:::-;17750:119;17908:1;17933:86;18011:7;18002:6;17991:9;17987:22;17933:86;:::i;:::-;17923:96;;17879:150;17641:395;;;;:::o;18042:332::-;18163:4;18201:2;18190:9;18186:18;18178:26;;18214:71;18282:1;18271:9;18267:17;18258:6;18214:71;:::i;:::-;18295:72;18363:2;18352:9;18348:18;18339:6;18295:72;:::i;:::-;18042:332;;;;;:::o;18380:553::-;18557:4;18595:3;18584:9;18580:19;18572:27;;18609:71;18677:1;18666:9;18662:17;18653:6;18609:71;:::i;:::-;18690:72;18758:2;18747:9;18743:18;18734:6;18690:72;:::i;:::-;18772;18840:2;18829:9;18825:18;18816:6;18772:72;:::i;:::-;18854;18922:2;18911:9;18907:18;18898:6;18854:72;:::i;:::-;18380:553;;;;;;;:::o;18939:169::-;19023:11;19057:6;19052:3;19045:19;19097:4;19092:3;19088:14;19073:29;;18939:169;;;;:::o;19114:114::-;;:::o;19234:364::-;19376:3;19397:66;19461:1;19456:3;19397:66;:::i;:::-;19390:73;;19472:93;19561:3;19472:93;:::i;:::-;19590:1;19585:3;19581:11;19574:18;;19234:364;;;:::o;19604:98::-;19655:6;19689:5;19683:12;19673:22;;19604:98;;;:::o;19708:168::-;19791:11;19825:6;19820:3;19813:19;19865:4;19860:3;19856:14;19841:29;;19708:168;;;;:::o;19882:307::-;19950:1;19960:113;19974:6;19971:1;19968:13;19960:113;;;20059:1;20054:3;20050:11;20044:18;20040:1;20035:3;20031:11;20024:39;19996:2;19993:1;19989:10;19984:15;;19960:113;;;20091:6;20088:1;20085:13;20082:101;;;20171:1;20162:6;20157:3;20153:16;20146:27;20082:101;19931:258;19882:307;;;:::o;20195:360::-;20281:3;20309:38;20341:5;20309:38;:::i;:::-;20363:70;20426:6;20421:3;20363:70;:::i;:::-;20356:77;;20442:52;20487:6;20482:3;20475:4;20468:5;20464:16;20442:52;:::i;:::-;20519:29;20541:6;20519:29;:::i;:::-;20514:3;20510:39;20503:46;;20285:270;20195:360;;;;:::o;20561:948::-;20857:4;20895:3;20884:9;20880:19;20872:27;;20909:71;20977:1;20966:9;20962:17;20953:6;20909:71;:::i;:::-;20990:72;21058:2;21047:9;21043:18;21034:6;20990:72;:::i;:::-;21072;21140:2;21129:9;21125:18;21116:6;21072:72;:::i;:::-;21191:9;21185:4;21181:20;21176:2;21165:9;21161:18;21154:48;21219:131;21345:4;21219:131;:::i;:::-;21211:139;;21398:9;21392:4;21388:20;21382:3;21371:9;21367:19;21360:49;21426:76;21497:4;21488:6;21426:76;:::i;:::-;21418:84;;20561:948;;;;;;;:::o;21515:117::-;21624:1;21621;21614:12;21638:117;21747:1;21744;21737:12;21761:307;21822:4;21912:18;21904:6;21901:30;21898:56;;;21934:18;;:::i;:::-;21898:56;21972:29;21994:6;21972:29;:::i;:::-;21964:37;;22056:4;22050;22046:15;22038:23;;21761:307;;;:::o;22074:419::-;22162:5;22187:65;22203:48;22244:6;22203:48;:::i;:::-;22187:65;:::i;:::-;22178:74;;22275:6;22268:5;22261:21;22313:4;22306:5;22302:16;22351:3;22342:6;22337:3;22333:16;22330:25;22327:112;;;22358:79;;:::i;:::-;22327:112;22448:39;22480:6;22475:3;22470;22448:39;:::i;:::-;22168:325;22074:419;;;;;:::o;22512:353::-;22578:5;22627:3;22620:4;22612:6;22608:17;22604:27;22594:122;;22635:79;;:::i;:::-;22594:122;22745:6;22739:13;22770:89;22855:3;22847:6;22840:4;22832:6;22828:17;22770:89;:::i;:::-;22761:98;;22584:281;22512:353;;;;:::o;22871:522::-;22950:6;22999:2;22987:9;22978:7;22974:23;22970:32;22967:119;;;23005:79;;:::i;:::-;22967:119;23146:1;23135:9;23131:17;23125:24;23176:18;23168:6;23165:30;23162:117;;;23198:79;;:::i;:::-;23162:117;23303:73;23368:7;23359:6;23348:9;23344:22;23303:73;:::i;:::-;23293:83;;23096:290;22871:522;;;;:::o;23399:328::-;23518:4;23556:2;23545:9;23541:18;23533:26;;23569:69;23635:1;23624:9;23620:17;23611:6;23569:69;:::i;:::-;23648:72;23716:2;23705:9;23701:18;23692:6;23648:72;:::i;:::-;23399:328;;;;;:::o;23733:664::-;23938:4;23976:3;23965:9;23961:19;23953:27;;23990:71;24058:1;24047:9;24043:17;24034:6;23990:71;:::i;:::-;24071:72;24139:2;24128:9;24124:18;24115:6;24071:72;:::i;:::-;24153;24221:2;24210:9;24206:18;24197:6;24153:72;:::i;:::-;24235;24303:2;24292:9;24288:18;24279:6;24235:72;:::i;:::-;24317:73;24385:3;24374:9;24370:19;24361:6;24317:73;:::i;:::-;23733:664;;;;;;;;:::o;24403:948::-;24699:4;24737:3;24726:9;24722:19;24714:27;;24751:71;24819:1;24808:9;24804:17;24795:6;24751:71;:::i;:::-;24832:72;24900:2;24889:9;24885:18;24876:6;24832:72;:::i;:::-;24914;24982:2;24971:9;24967:18;24958:6;24914:72;:::i;:::-;25033:9;25027:4;25023:20;25018:2;25007:9;25003:18;24996:48;25061:131;25187:4;25061:131;:::i;:::-;25053:139;;25240:9;25234:4;25230:20;25224:3;25213:9;25209:19;25202:49;25268:76;25339:4;25330:6;25268:76;:::i;:::-;25260:84;;24403:948;;;;;;;:::o;25357:442::-;25506:4;25544:2;25533:9;25529:18;25521:26;;25557:71;25625:1;25614:9;25610:17;25601:6;25557:71;:::i;:::-;25638:72;25706:2;25695:9;25691:18;25682:6;25638:72;:::i;:::-;25720;25788:2;25777:9;25773:18;25764:6;25720:72;:::i;:::-;25357:442;;;;;;:::o;25805:85::-;25850:7;25879:5;25868:16;;25805:85;;;:::o;25896:86::-;25931:7;25971:4;25964:5;25960:16;25949:27;;25896:86;;;:::o;25988:154::-;26044:9;26077:59;26093:42;26102:32;26128:5;26102:32;:::i;:::-;26093:42;:::i;:::-;26077:59;:::i;:::-;26064:72;;25988:154;;;:::o;26148:143::-;26241:43;26278:5;26241:43;:::i;:::-;26236:3;26229:56;26148:143;;:::o;26297:446::-;26448:4;26486:2;26475:9;26471:18;26463:26;;26499:69;26565:1;26554:9;26550:17;26541:6;26499:69;:::i;:::-;26578:70;26644:2;26633:9;26629:18;26620:6;26578:70;:::i;:::-;26658:78;26732:2;26721:9;26717:18;26708:6;26658:78;:::i;:::-;26297:446;;;;;;:::o;26749:143::-;26806:5;26837:6;26831:13;26822:22;;26853:33;26880:5;26853:33;:::i;:::-;26749:143;;;;:::o;26898:548::-;26997:6;27005;27054:3;27042:9;27033:7;27029:23;27025:33;27022:120;;;27061:79;;:::i;:::-;27022:120;27181:1;27206:64;27262:7;27253:6;27242:9;27238:22;27206:64;:::i;:::-;27196:74;;27152:128;27319:2;27345:84;27421:7;27412:6;27401:9;27397:22;27345:84;:::i;:::-;27335:94;;27290:149;26898:548;;;;;:::o;27452:305::-;27492:3;27511:20;27529:1;27511:20;:::i;:::-;27506:25;;27545:20;27563:1;27545:20;:::i;:::-;27540:25;;27699:1;27631:66;27627:74;27624:1;27621:81;27618:107;;;27705:18;;:::i;:::-;27618:107;27749:1;27746;27742:9;27735:16;;27452:305;;;;:::o;27763:553::-;27940:4;27978:3;27967:9;27963:19;27955:27;;27992:71;28060:1;28049:9;28045:17;28036:6;27992:71;:::i;:::-;28073:72;28141:2;28130:9;28126:18;28117:6;28073:72;:::i;:::-;28155;28223:2;28212:9;28208:18;28199:6;28155:72;:::i;:::-;28237;28305:2;28294:9;28290:18;28281:6;28237:72;:::i;:::-;27763:553;;;;;;;:::o", - "source": "// SPDX-License-Identifier: MIT\n\n/// # Security of this contract\n/// This contract owns nothing between transactions. Any funds or vaults owned\n/// by it may very well be extractable. The security comes from the fact that\n/// after any interaction, the user (re-)obtains ownership of their assets. In\n/// `doInvest`, this happens by transferring the vault at the end. In `unwind`\n/// the contract can actually take ownership of a vault, but only when called\n/// by the owner of the vault in the first place.\n\npragma solidity ^0.8.11;\n\nstruct Vault {\n address owner;\n bytes6 seriesId; // Each vault is related to only one series, which also determines the underlying.\n bytes6 ilkId; // Asset accepted as collateral\n}\n\ninterface IFYToken {}\n\nstruct Series {\n IFYToken fyToken; // Redeemable token for the series.\n bytes6 baseId; // Asset received on redemption.\n uint32 maturity; // Unix time at which redemption becomes possible.\n}\n\nstruct Balances {\n uint128 art; // Debt amount\n uint128 ink; // Collateral amount\n}\n\ninterface YieldLadle {\n function pools(bytes6 seriesId) external view returns (address);\n function build(bytes6 seriesId, bytes6 ilkId, uint8 salt)\n external payable\n returns(bytes12, Vault memory);\n function serve(bytes12 vaultId_, address to, uint128 ink, uint128 base, uint128 max)\n external payable\n returns (uint128 art);\n function repay(bytes12 vaultId_, address to, int128 ink, uint128 min)\n external payable\n returns (uint128 art);\n function repayVault(bytes12 vaultId_, address to, int128 ink, uint128 max)\n external payable\n returns (uint128 base);\n function close(bytes12 vaultId_, address to, int128 ink, int128 art)\n external payable\n returns (uint128 base);\n function give(bytes12 vaultId_, address receiver)\n external payable\n returns(Vault memory vault);\n}\n\ninterface IERC20 {\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 balanceOf(address owner) 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\ninterface yVault is IERC20 {\n function deposit(uint amount, address to) external returns (uint256);\n function withdraw() external returns (uint);\n}\n\ninterface IToken {\n function loanTokenAddress() external view returns (address);\n function flashBorrow(\n uint256 borrowAmount,\n address borrower,\n address target,\n string calldata signature,\n bytes calldata data\n ) external payable returns (bytes memory);\n}\n\ninterface Cauldron {\n function series(bytes6 seriesId) external view returns (Series memory);\n function vaults(bytes12 vaultId) external view returns (Vault memory);\n function balances(bytes12 vaultId) external view returns (Balances memory);\n function debtToBase(bytes6 seriesId, uint128 art)\n external\n returns (uint128 base);\n function give(bytes12 vaultId, address receiver)\n external\n returns(Vault memory vault);\n}\n\ncontract YieldLever {\n yVault constant yvUSDC = yVault(0xa354F35829Ae975e850e23e9615b11Da1B3dC4DE);\n bytes6 constant ilkId = bytes6(0x303900000000); // for yvUSDC\n IToken constant iUSDC = IToken(0x32E4c68B3A4a813b710595AebA7f6B7604Ab9c15); \n IERC20 constant usdc = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);\n address constant usdcJoin = address(0x0d9A1A773be5a83eEbda23bf98efB8585C3ae4f4);\n YieldLadle constant ladle = YieldLadle(0x6cB18fF2A33e981D1e38A663Ca056c0a5265066A);\n address constant yvUSDCJoin = address(0x403ae7384E89b086Ea2935d5fAFed07465242B38);\n Cauldron constant cauldron = Cauldron(0xc88191F8cb8e6D4a668B047c1C8503432c3Ca867);\n\n /// @notice Invest `baseAmount` and borrow an additional `borrowAmount`.\n /// Use this to obtain a maximum of `maxFyAmount` to repay the flash loan.\n /// The end goal is to have a debt of `borrowAmount`, but earn interest on\n /// the entire collateral, including the borrowed part.\n /// @param baseAmount - The amount to invest from your own funds.\n /// @param borrowAmount - The extra amount to borrow. This is immediately\n /// repaid, so setting this to 3 times baseAmount will incur a debt of 75%\n /// of the collateral.\n /// @param maxFyAmount - The maximum amount of fyTokens to sell. Should be\n /// enough to cover the flash loan.\n /// @param seriesId - The series Id to invest in. For example, 0x303230360000\n /// for FYUSDC06LP.\n function invest(\n uint256 baseAmount,\n uint128 borrowAmount,\n uint128 maxFyAmount,\n bytes6 seriesId\n ) external {\n // Take USDC from the msg sender\n usdc.transferFrom(msg.sender, address(this), baseAmount);\n // Build a Yield Vault\n (bytes12 vaultId, ) = ladle.build(seriesId, ilkId, 0);\n\n uint256 investAmount = baseAmount + borrowAmount;\n usdc.approve(address(yvUSDC), investAmount);\n\n // Flash borrow USDC\n iUSDC.flashBorrow(\n borrowAmount,\n address(this),\n address(this),\n \"\",\n abi.encodeWithSignature(\n \"doInvest(uint256,uint128,uint128,bytes12)\",\n investAmount,\n borrowAmount,\n maxFyAmount,\n vaultId\n )\n );\n \n // Finally, give the vault to the sender\n cauldron.give(vaultId, msg.sender);\n }\n\n /// @notice This function is called inside the flash loan and handles the\n /// actual investment.\n /// @param borrowAmount - The amount borrowed using a flash loan.\n /// @param maxFyAmount - The maximum amount of fyTokens to sell.\n /// @param vaultId - The vault id to invest in.\n function doInvest(\n uint256 investAmount,\n uint128 borrowAmount,\n uint128 maxFyAmount,\n bytes12 vaultId\n ) external {\n // Deposit USDC and obtain yvUSDC.\n // Send it to the yvUSDCJoin to use as collateral in the vault.\n // Returned is the amount of yvUSDC obtained.\n uint128 yvUSDCBalance = uint128(yvUSDC.deposit(investAmount, yvUSDCJoin));\n\n // Add collateral to the Yield vault.\n // Borrow enough to repay the flash loan.\n // Transfer it to `address(iUSDC)` to repay the loan.\n ladle.serve(vaultId, address(iUSDC), yvUSDCBalance, borrowAmount, maxFyAmount);\n }\n\n /// @notice Empty a vault.\n /// @param vaultId - The id of the vault that should be emptied.\n /// @param maxAmount - The maximum amount of USDC to borrow. If past\n /// maturity, this parameter is unused as the amount can be determined\n /// precisely.\n /// @param pool - The pool to deposit USDC into. This can be obtained via the\n /// seriesId, and calling `address pool = ladle.pools(seriesId);`\n /// @param ink - The amount of collateral in the vault. Together with art,\n /// this value can be obtained using `cauldron.balances(vaultId);`, which\n /// will return an object containing both `art` and `ink`.\n /// @param art - The amount of debt taken from the vault.\n function unwind(bytes12 vaultId, uint256 maxAmount, address pool, uint128 ink, uint128 art, bytes6 seriesId) external {\n Vault memory vault_ = cauldron.vaults(vaultId);\n Series memory series_ = cauldron.series(seriesId);\n \n // Test that the caller is the owner of the vault.\n // This is important as we will take the vault from the user.\n require(vault_.owner == msg.sender);\n\n // Give the vault to the contract\n cauldron.give(vaultId, address(this));\n \n if (uint32(block.timestamp) < series_.maturity) {\n // Series is not past maturity\n // Borrow to repay debt, move directly to the pool.\n iUSDC.flashBorrow(\n maxAmount,\n pool,\n address(this),\n \"\",\n abi.encodeWithSignature(\"doRepay(address,bytes12,uint256,uint128)\", msg.sender, vaultId, maxAmount, ink)\n );\n } else {\n // Series is past maturity, borrow and move directly to collateral pool\n uint128 base = cauldron.debtToBase(seriesId, art);\n iUSDC.flashBorrow(\n base,\n usdcJoin,\n address(this),\n \"\",\n abi.encodeWithSignature(\"doClose(address,bytes12,uint128,uint128,uint128)\", msg.sender, vaultId, base, ink, art)\n );\n }\n\n // Give the vault back to the sender, just in case there is anything left\n cauldron.give(vaultId, msg.sender);\n }\n\n /// @notice Repay a vault after having borrowed a suitable amount using a\n /// flash loan. Will only succeed if the pool hasn't reached its expiration\n /// date yet.\n /// @param owner - The address of the owner. This is the address that will be\n /// used to obtain certain parameters, and it is also the destination for\n /// the profit that was obtained.\n /// @param vaultId - The vault id to repay.\n function doRepay(address owner, bytes12 vaultId, uint256 borrowAmount, uint128 ink) external {\n // Repay Yield vault debt\n ladle.repayVault(vaultId, address(this), -int128(ink), uint128(borrowAmount));\n\n // withdraw from yvUSDC\n yvUSDC.withdraw();\n // Repay the flash loan\n usdc.transfer(address(iUSDC), borrowAmount);\n // Send the remaining USDC balance to the user.\n usdc.transfer(owner, usdc.balanceOf(address(this)));\n }\n\n /// @notice Close a vault that has already reached its expiration date.\n /// @param owner - The address of the owner. This is the address that will be\n /// used to obtain certain parameters, and it is also the destination for\n /// the profit that was obtained.\n /// @param vaultId - The vault id to repay.\n /// @param base - The size of the debt in USDC.\n function doClose(address owner, bytes12 vaultId, uint128 base, uint128 ink, uint128 art) external {\n // Close the vault\n ladle.close(vaultId, address(this), -int128(ink), -int128(art));\n\n // Withdraw from yvUSDC\n yvUSDC.withdraw();\n // Repay flash loan\n usdc.transfer(address(iUSDC), base);\n // Send the remainder to user\n usdc.transfer(owner, usdc.balanceOf(address(this)));\n }\n}\n", - "sourcePath": "F:\\Git\\yvarb\\contracts\\YieldLever.sol", - "ast": { - "absolutePath": "project:/contracts/YieldLever.sol", - "exportedSymbols": { - "Balances": [22], - "Cauldron": [243], - "IERC20": [161], - "IFYToken": [9], - "IToken": [199], - "Series": [17], - "Vault": [8], - "YieldLadle": [108], - "YieldLever": [654], - "yVault": [178] - }, - "id": 655, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": ["solidity", "^", "0.8", ".11"], - "nodeType": "PragmaDirective", - "src": "509:24:0" - }, - { - "canonicalName": "Vault", - "id": 8, - "members": [ + "src": "25357:442:1" + }, { - "constant": false, - "id": 3, - "mutability": "mutable", - "name": "owner", - "nameLocation": "562:5:0", - "nodeType": "VariableDeclaration", - "scope": 8, - "src": "554:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "body": { + "nodeType": "YulBlock", + "src": "25858:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25868:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25879:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "25868:7:1" + } + ] + } + ] }, - "typeName": { - "id": 2, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "554:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "name": "cleanup_t_rational_0_by_1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "25840:5:1", + "type": "" } - }, - "visibility": "internal" + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "25850:7:1", + "type": "" + } + ], + "src": "25805:85:1" }, { - "constant": false, - "id": 5, - "mutability": "mutable", - "name": "seriesId", - "nameLocation": "580:8:0", - "nodeType": "VariableDeclaration", - "scope": 8, - "src": "573:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" + "body": { + "nodeType": "YulBlock", + "src": "25939:43:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25949:27:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25964:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25971:4:1", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "25960:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25960:16:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "25949:7:1" + } + ] + } + ] }, - "typeName": { - "id": 4, - "name": "bytes6", - "nodeType": "ElementaryTypeName", - "src": "573:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "25921:5:1", + "type": "" } - }, - "visibility": "internal" + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "25931:7:1", + "type": "" + } + ], + "src": "25896:86:1" }, { - "constant": false, - "id": 7, - "mutability": "mutable", - "name": "ilkId", - "nameLocation": "684:5:0", - "nodeType": "VariableDeclaration", - "scope": 8, - "src": "677:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" - }, - "typeName": { - "id": 6, - "name": "bytes6", - "nodeType": "ElementaryTypeName", - "src": "677:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" - } - }, - "visibility": "internal" - } - ], - "name": "Vault", - "nameLocation": "542:5:0", - "nodeType": "StructDefinition", - "scope": 655, - "src": "535:189:0", - "visibility": "public" - }, + "body": { + "nodeType": "YulBlock", + "src": "26054:88:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26064:72:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "26128:5:1" + } + ], + "functionName": { + "name": "cleanup_t_rational_0_by_1", + "nodeType": "YulIdentifier", + "src": "26102:25:1" + }, + "nodeType": "YulFunctionCall", + "src": "26102:32:1" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "26093:8:1" + }, + "nodeType": "YulFunctionCall", + "src": "26093:42:1" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "26077:15:1" + }, + "nodeType": "YulFunctionCall", + "src": "26077:59:1" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "26064:9:1" + } + ] + } + ] + }, + "name": "convert_t_rational_0_by_1_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "26034:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "26044:9:1", + "type": "" + } + ], + "src": "25988:154:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26219:72:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26236:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "26278:5:1" + } + ], + "functionName": { + "name": "convert_t_rational_0_by_1_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "26241:36:1" + }, + "nodeType": "YulFunctionCall", + "src": "26241:43:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26229:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "26229:56:1" + }, + "nodeType": "YulExpressionStatement", + "src": "26229:56:1" + } + ] + }, + "name": "abi_encode_t_rational_0_by_1_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "26207:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26214:3:1", + "type": "" + } + ], + "src": "26148:143:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26453:290:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26463:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26475:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26486:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26471:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "26471:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26463:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "26541:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26554:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26565:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26550:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "26550:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "nodeType": "YulIdentifier", + "src": "26499:41:1" + }, + "nodeType": "YulFunctionCall", + "src": "26499:69:1" + }, + "nodeType": "YulExpressionStatement", + "src": "26499:69:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "26620:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26633:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26644:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26629:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "26629:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes6_to_t_bytes6_fromStack", + "nodeType": "YulIdentifier", + "src": "26578:41:1" + }, + "nodeType": "YulFunctionCall", + "src": "26578:70:1" + }, + "nodeType": "YulExpressionStatement", + "src": "26578:70:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "26708:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26721:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26732:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26717:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "26717:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_rational_0_by_1_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "26658:49:1" + }, + "nodeType": "YulFunctionCall", + "src": "26658:78:1" + }, + "nodeType": "YulExpressionStatement", + "src": "26658:78:1" + } + ] + }, + "name": "abi_encode_tuple_t_bytes6_t_bytes6_t_rational_0_by_1__to_t_bytes6_t_bytes6_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26409:9:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "26421:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "26429:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "26437:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26448:4:1", + "type": "" + } + ], + "src": "26297:446:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26812:80:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26822:22:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "26837:6:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "26831:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "26831:13:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "26822:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "26880:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_bytes12", + "nodeType": "YulIdentifier", + "src": "26853:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "26853:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "26853:33:1" + } + ] + }, + "name": "abi_decode_t_bytes12_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "26790:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26798:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "26806:5:1", + "type": "" + } + ], + "src": "26749:143:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27012:434:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "27059:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "27061:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "27061:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "27061:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "27033:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27042:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27029:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27029:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27054:3:1", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "27025:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27025:33:1" + }, + "nodeType": "YulIf", + "src": "27022:120:1" + }, + { + "nodeType": "YulBlock", + "src": "27152:128:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "27167:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27181:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "27171:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "27196:74:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27242:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "27253:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27238:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27238:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "27262:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_bytes12_fromMemory", + "nodeType": "YulIdentifier", + "src": "27206:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "27206:64:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "27196:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "27290:149:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "27305:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27319:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "27309:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "27335:94:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27401:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "27412:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27397:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27397:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "27421:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "27345:51:1" + }, + "nodeType": "YulFunctionCall", + "src": "27345:84:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "27335:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes12t_struct$_Vault_$8_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26974:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "26985:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "26997:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "27005:6:1", + "type": "" + } + ], + "src": "26898:548:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27496:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27506:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27529:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "27511:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "27511:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27506:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "27540:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27563:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "27545:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "27545:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27540:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27703:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "27705:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "27705:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "27705:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27624:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27631:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27699:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27627:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27627:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "27621:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "27621:81:1" + }, + "nodeType": "YulIf", + "src": "27618:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "27735:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27746:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27749:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27742:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27742:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "27735:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "27483:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "27486:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "27492:3:1", + "type": "" + } + ], + "src": "27452:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27945:371:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27955:27:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27967:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27978:3:1", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27963:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "27963:19:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27955:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "28036:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28049:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28060:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28045:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "28045:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "27992:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "27992:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "27992:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "28117:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28130:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28141:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28126:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "28126:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "28073:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "28073:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "28073:72:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "28199:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28212:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28223:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28208:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "28208:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "28155:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "28155:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "28155:72:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "28281:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28294:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28305:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28290:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "28290:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes12_to_t_bytes12_fromStack", + "nodeType": "YulIdentifier", + "src": "28237:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "28237:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "28237:72:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint128_t_uint128_t_bytes12__to_t_uint256_t_uint128_t_uint128_t_bytes12__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27893:9:1", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "27905:6:1", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "27913:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "27921:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "27929:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27940:4:1", + "type": "" + } + ], + "src": "27763:553:1" + } + ] + }, + "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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint128(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n }\n\n function validator_revert_t_uint128(value) {\n if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint128(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint128(value)\n }\n\n function cleanup_t_bytes12(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff0000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes12(value) {\n if iszero(eq(value, cleanup_t_bytes12(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes12(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes12(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes12(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bytes12(add(headStart, offset), dataEnd)\n }\n\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 abi_decode_tuple_t_addresst_bytes12t_uint256t_uint128(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { 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_bytes12(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 let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bytes12t_uint128t_uint128t_uint128(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_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes12(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes6(value) -> cleaned {\n cleaned := and(value, 0xffffffffffff0000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes6(value) {\n if iszero(eq(value, cleanup_t_bytes6(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes6(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes6(value)\n }\n\n function abi_decode_tuple_t_bytes12t_uint256t_addresst_uint128t_uint128t_bytes6(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes12(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 let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes6(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint128t_uint128t_bytes6(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bytes6(add(headStart, offset), dataEnd)\n }\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_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__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_address_to_t_address_fromStack(value1, add(headStart, 32))\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_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_t_bytes12_to_t_bytes12_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes12(value))\n }\n\n function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint128(value))\n }\n\n function abi_encode_tuple_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__to_t_bytes12_t_address_t_uint128_t_uint128_t_uint128__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_t_uint128_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint128(value)\n }\n\n function abi_decode_tuple_t_uint128_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_uint128_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_int128(value) -> cleaned {\n cleaned := signextend(15, value)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function negate_t_int128(value) -> ret {\n value := cleanup_t_int128(value)\n if eq(value, 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000) { panic_error_0x11() }\n ret := sub(0, value)\n }\n\n function abi_encode_t_int128_to_t_int128_fromStack(value, pos) {\n mstore(pos, cleanup_t_int128(value))\n }\n\n function abi_encode_tuple_t_bytes12_t_address_t_int128_t_uint128__to_t_bytes12_t_address_t_int128_t_uint128__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_int128_to_t_int128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\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 cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\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 abi_encode_tuple_t_bytes12_t_address_t_int128_t_int128__to_t_bytes12_t_address_t_int128_t_int128__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_int128_to_t_int128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_int128_to_t_int128_fromStack(value3, add(headStart, 96))\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint128_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint128(value)))\n }\n\n function abi_encode_t_uint128_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_uint128_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint128__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_uint128_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_bytes12__to_t_bytes12__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n 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_t_bytes6_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes6(value)\n }\n\n // struct Vault\n function abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // seriesId\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes6_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // ilkId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes6_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Vault_$8_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes6_to_t_bytes6_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes6(value))\n }\n\n function abi_encode_tuple_t_bytes6__to_t_bytes6__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_contract$_IFYToken_$9(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IFYToken_$9(value) {\n if iszero(eq(value, cleanup_t_contract$_IFYToken_$9(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IFYToken_$9_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IFYToken_$9(value)\n }\n\n function cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function validator_revert_t_uint32(value) {\n if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint32(value)\n }\n\n // struct Series\n function abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // fyToken\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_IFYToken_$9_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // baseId\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes6_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maturity\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Series_$17_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Series_$17_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes12_t_address__to_t_bytes12_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes12_t_uint256_t_uint128__to_t_address_t_bytes12_t_uint256_t_uint128__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_bytes12_to_t_bytes12_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\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 store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_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(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes6_t_uint128__to_t_bytes6_t_uint128__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__to_t_address_t_bytes12_t_uint128_t_uint128_t_uint128__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_bytes12_to_t_bytes12_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_uint128_t_address_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_bytes_memory_ptr__to_t_uint256_t_address_t_address_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint128_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\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 cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function convert_t_rational_0_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes6_t_bytes6_t_rational_0_by_1__to_t_bytes6_t_bytes6_t_uint8__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes6_to_t_bytes6_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_rational_0_by_1_to_t_uint8_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_decode_t_bytes12_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes12(value)\n }\n\n function abi_decode_tuple_t_bytes12t_struct$_Vault_$8_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes12_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_struct$_Vault_$8_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\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\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function abi_encode_tuple_t_uint256_t_uint128_t_uint128_t_bytes12__to_t_uint256_t_uint128_t_uint128_t_bytes12__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes12_to_t_bytes12_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "3390:7889:0:-:0;;;4172:75;;;;;;;;;;3670:42;4193:12;;;3447:42;4223:17;4193:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3390:7889;;7:126:1;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;991:117::-;1100:1;1097;1090:12;1237:90;1271:7;1314:5;1307:13;1300:21;1289:32;;1237:90;;;:::o;1333:116::-;1403:21;1418:5;1403:21;:::i;:::-;1396:5;1393:32;1383:60;;1439:1;1436;1429:12;1383:60;1333:116;:::o;1455:137::-;1509:5;1540:6;1534:13;1525:22;;1556:30;1580:5;1556:30;:::i;:::-;1455:137;;;;:::o;1598:345::-;1665:6;1714:2;1702:9;1693:7;1689:23;1685:32;1682:119;;;1720:79;;:::i;:::-;1682:119;1840:1;1865:61;1918:7;1909:6;1898:9;1894:22;1865:61;:::i;:::-;1855:71;;1811:125;1598:345;;;;:::o;3390:7889:0:-;;;;;;;", + "deployedSourceMap": "3390:7889:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:616;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9872:459;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10863:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7913:1376;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5030:1101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6591:616;6892:21;3447:42;6924:14;;;6939:12;3927:42;6924:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6892:73;;3841:42;7123:11;;;7135:7;3591:42;7160:13;7175:12;7189:11;7123:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6725:482;6591:616;;;;:::o;9872:459::-;3841:42;10003:16;;;10020:7;10037:4;10052:3;10044:12;;;:::i;:::-;10066;10003:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3447:42;10118:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3670:42;10171:13;;;3591:42;10201:12;10171:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3670:42;10274:13;;;10288:5;3670:42;10295:14;;;10318:4;10295:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10274:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9872:459;;;;:::o;10863:413::-;3841:42;10992:11;;;11004:7;11021:4;11036:3;11028:12;;;:::i;:::-;11050:3;11042:12;;;:::i;:::-;10992:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3447:42;11093:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3670:42;11142:13;;;3591:42;11172:4;11142:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3670:42;11219:13;;;11233:5;3670:42;11240:14;;;11263:4;11240:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11219:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10863:413;;;;;:::o;7913:1376::-;8038:19;4013:42;8060:15;;;8076:7;8060:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8038:46;;8091:21;4013:42;8115:15;;;8131:8;8115:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8091:49;;8300:10;8284:26;;:6;:12;;;:26;;;8276:35;;;;;;4013:42;8359:13;;;8373:7;8390:4;8359:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8437:7;:16;;;8411:42;;8418:15;8411:42;;;8407:755;;;3591:42;8561:17;;;8589:9;8609:4;8632;8729:10;8741:7;8750:9;8761:3;8661:104;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8561:213;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8407:755;;;8876:12;4013:42;8891:19;;;8911:8;8921:3;8891:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8876:49;;3591:42;8934:17;;;8962:4;3754:42;9004:4;9109:10;9121:7;9130:4;9136:3;9141;9033:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8934:220;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8788:374;8407:755;4013:42;9249:13;;;9263:7;9272:10;9249:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8031:1258;;7913:1376;;;;;;:::o;5030:1101::-;4095:13;5215:42;;;4013;5215:15;;;5231:8;5215:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;:42;;;;5207:51;;;;;;3670:42;5493:17;;;5511:10;5531:4;5538:10;5493:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5585:15;3841:42;5606:11;;;5618:8;3526:14;3519:22;;5635:1;5606:31;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5584:53;;;5646:20;5682:12;5669:25;;:10;:25;;;;:::i;:::-;5646:48;;3591:42;5729:17;;;5757:12;5788:4;5812;5933:12;5958;5983:11;6007:7;5841:184;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5729:303;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4013:42;6091:13;;;6105:7;6114:10;6091:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5160:971;;5030:1101;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310: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:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:118::-;727:7;767:34;760:5;756:46;745:57;;690:118;;;:::o;814:122::-;887:24;905:5;887:24;:::i;:::-;880:5;877:35;867:63;;926:1;923;916:12;867:63;814:122;:::o;942:139::-;988:5;1026:6;1013:20;1004:29;;1042:33;1069:5;1042:33;:::i;:::-;942:139;;;;:::o;1087:150::-;1124:7;1164:66;1157:5;1153:78;1142:89;;1087:150;;;:::o;1243:122::-;1316:24;1334:5;1316:24;:::i;:::-;1309:5;1306:35;1296:63;;1355:1;1352;1345:12;1296:63;1243:122;:::o;1371:139::-;1417:5;1455:6;1442:20;1433:29;;1471:33;1498:5;1471:33;:::i;:::-;1371:139;;;;:::o;1516:765::-;1602:6;1610;1618;1626;1675:3;1663:9;1654:7;1650:23;1646:33;1643:120;;;1682:79;;:::i;:::-;1643:120;1802:1;1827:53;1872:7;1863:6;1852:9;1848:22;1827:53;:::i;:::-;1817:63;;1773:117;1929:2;1955:53;2000:7;1991:6;1980:9;1976:22;1955:53;:::i;:::-;1945:63;;1900:118;2057:2;2083:53;2128:7;2119:6;2108:9;2104:22;2083:53;:::i;:::-;2073:63;;2028:118;2185:2;2211:53;2256:7;2247:6;2236:9;2232:22;2211:53;:::i;:::-;2201:63;;2156:118;1516:765;;;;;;;:::o;2287:126::-;2324:7;2364:42;2357:5;2353:54;2342:65;;2287:126;;;:::o;2419:96::-;2456:7;2485:24;2503:5;2485:24;:::i;:::-;2474:35;;2419:96;;;:::o;2521:122::-;2594:24;2612:5;2594:24;:::i;:::-;2587:5;2584:35;2574:63;;2633:1;2630;2623:12;2574:63;2521:122;:::o;2649:139::-;2695:5;2733:6;2720:20;2711:29;;2749:33;2776:5;2749:33;:::i;:::-;2649:139;;;;:::o;2794:765::-;2880:6;2888;2896;2904;2953:3;2941:9;2932:7;2928:23;2924:33;2921:120;;;2960:79;;:::i;:::-;2921:120;3080:1;3105:53;3150:7;3141:6;3130:9;3126:22;3105:53;:::i;:::-;3095:63;;3051:117;3207:2;3233:53;3278:7;3269:6;3258:9;3254:22;3233:53;:::i;:::-;3223:63;;3178:118;3335:2;3361:53;3406:7;3397:6;3386:9;3382:22;3361:53;:::i;:::-;3351:63;;3306:118;3463:2;3489:53;3534:7;3525:6;3514:9;3510:22;3489:53;:::i;:::-;3479:63;;3434:118;2794:765;;;;;;;:::o;3565:911::-;3660:6;3668;3676;3684;3692;3741:3;3729:9;3720:7;3716:23;3712:33;3709:120;;;3748:79;;:::i;:::-;3709:120;3868:1;3893:53;3938:7;3929:6;3918:9;3914:22;3893:53;:::i;:::-;3883:63;;3839:117;3995:2;4021:53;4066:7;4057:6;4046:9;4042:22;4021:53;:::i;:::-;4011:63;;3966:118;4123:2;4149:53;4194:7;4185:6;4174:9;4170:22;4149:53;:::i;:::-;4139:63;;4094:118;4251:2;4277:53;4322:7;4313:6;4302:9;4298:22;4277:53;:::i;:::-;4267:63;;4222:118;4379:3;4406:53;4451:7;4442:6;4431:9;4427:22;4406:53;:::i;:::-;4396:63;;4350:119;3565:911;;;;;;;;:::o;4482:149::-;4518:7;4558:66;4551:5;4547:78;4536:89;;4482:149;;;:::o;4637:120::-;4709:23;4726:5;4709:23;:::i;:::-;4702:5;4699:34;4689:62;;4747:1;4744;4737:12;4689:62;4637:120;:::o;4763:137::-;4808:5;4846:6;4833:20;4824:29;;4862:32;4888:5;4862:32;:::i;:::-;4763:137;;;;:::o;4906:1055::-;5009:6;5017;5025;5033;5041;5049;5098:3;5086:9;5077:7;5073:23;5069:33;5066:120;;;5105:79;;:::i;:::-;5066:120;5225:1;5250:53;5295:7;5286:6;5275:9;5271:22;5250:53;:::i;:::-;5240:63;;5196:117;5352:2;5378:53;5423:7;5414:6;5403:9;5399:22;5378:53;:::i;:::-;5368:63;;5323:118;5480:2;5506:53;5551:7;5542:6;5531:9;5527:22;5506:53;:::i;:::-;5496:63;;5451:118;5608:2;5634:53;5679:7;5670:6;5659:9;5655:22;5634:53;:::i;:::-;5624:63;;5579:118;5736:3;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5707:119;5865:3;5892:52;5936:7;5927:6;5916:9;5912:22;5892:52;:::i;:::-;5882:62;;5836:118;4906:1055;;;;;;;;:::o;5967:763::-;6052:6;6060;6068;6076;6125:3;6113:9;6104:7;6100:23;6096:33;6093:120;;;6132:79;;:::i;:::-;6093:120;6252:1;6277:53;6322:7;6313:6;6302:9;6298:22;6277:53;:::i;:::-;6267:63;;6223:117;6379:2;6405:53;6450:7;6441:6;6430:9;6426:22;6405:53;:::i;:::-;6395:63;;6350:118;6507:2;6533:53;6578:7;6569:6;6558:9;6554:22;6533:53;:::i;:::-;6523:63;;6478:118;6635:2;6661:52;6705:7;6696:6;6685:9;6681:22;6661:52;:::i;:::-;6651:62;;6606:117;5967:763;;;;;;;:::o;6736:118::-;6823:24;6841:5;6823:24;:::i;:::-;6818:3;6811:37;6736:118;;:::o;6860:::-;6947:24;6965:5;6947:24;:::i;:::-;6942:3;6935:37;6860:118;;:::o;6984:332::-;7105:4;7143:2;7132:9;7128:18;7120:26;;7156:71;7224:1;7213:9;7209:17;7200:6;7156:71;:::i;:::-;7237:72;7305:2;7294:9;7290:18;7281:6;7237:72;:::i;:::-;6984:332;;;;;:::o;7322:143::-;7379:5;7410:6;7404:13;7395:22;;7426:33;7453:5;7426:33;:::i;:::-;7322:143;;;;:::o;7471:351::-;7541:6;7590:2;7578:9;7569:7;7565:23;7561:32;7558:119;;;7596:79;;:::i;:::-;7558:119;7716:1;7741:64;7797:7;7788:6;7777:9;7773:22;7741:64;:::i;:::-;7731:74;;7687:128;7471:351;;;;:::o;7828:118::-;7915:24;7933:5;7915:24;:::i;:::-;7910:3;7903:37;7828:118;;:::o;7952:::-;8039:24;8057:5;8039:24;:::i;:::-;8034:3;8027:37;7952:118;;:::o;8076:664::-;8281:4;8319:3;8308:9;8304:19;8296:27;;8333:71;8401:1;8390:9;8386:17;8377:6;8333:71;:::i;:::-;8414:72;8482:2;8471:9;8467:18;8458:6;8414:72;:::i;:::-;8496;8564:2;8553:9;8549:18;8540:6;8496:72;:::i;:::-;8578;8646:2;8635:9;8631:18;8622:6;8578:72;:::i;:::-;8660:73;8728:3;8717:9;8713:19;8704:6;8660:73;:::i;:::-;8076:664;;;;;;;;:::o;8746:143::-;8803:5;8834:6;8828:13;8819:22;;8850:33;8877:5;8850:33;:::i;:::-;8746:143;;;;:::o;8895:351::-;8965:6;9014:2;9002:9;8993:7;8989:23;8985:32;8982:119;;;9020:79;;:::i;:::-;8982:119;9140:1;9165:64;9221:7;9212:6;9201:9;9197:22;9165:64;:::i;:::-;9155:74;;9111:128;8895:351;;;;:::o;9252:92::-;9288:7;9332:5;9328:2;9317:21;9306:32;;9252:92;;;:::o;9350:180::-;9398:77;9395:1;9388:88;9495:4;9492:1;9485:15;9519:4;9516:1;9509:15;9536:228;9571:3;9594:23;9611:5;9594:23;:::i;:::-;9585:32;;9639:66;9632:5;9629:77;9626:103;;;9709:18;;:::i;:::-;9626:103;9752:5;9749:1;9745:13;9738:20;;9536:228;;;:::o;9770:115::-;9855:23;9872:5;9855:23;:::i;:::-;9850:3;9843:36;9770:115;;:::o;9891:549::-;10066:4;10104:3;10093:9;10089:19;10081:27;;10118:71;10186:1;10175:9;10171:17;10162:6;10118:71;:::i;:::-;10199:72;10267:2;10256:9;10252:18;10243:6;10199:72;:::i;:::-;10281:70;10347:2;10336:9;10332:18;10323:6;10281:70;:::i;:::-;10361:72;10429:2;10418:9;10414:18;10405:6;10361:72;:::i;:::-;9891:549;;;;;;;:::o;10446:332::-;10567:4;10605:2;10594:9;10590:18;10582:26;;10618:71;10686:1;10675:9;10671:17;10662:6;10618:71;:::i;:::-;10699:72;10767:2;10756:9;10752:18;10743:6;10699:72;:::i;:::-;10446:332;;;;;:::o;10784:90::-;10818:7;10861:5;10854:13;10847:21;10836:32;;10784:90;;;:::o;10880:116::-;10950:21;10965:5;10950:21;:::i;:::-;10943:5;10940:32;10930:60;;10986:1;10983;10976:12;10930:60;10880:116;:::o;11002:137::-;11056:5;11087:6;11081:13;11072:22;;11103:30;11127:5;11103:30;:::i;:::-;11002:137;;;;:::o;11145:345::-;11212:6;11261:2;11249:9;11240:7;11236:23;11232:32;11229:119;;;11267:79;;:::i;:::-;11229:119;11387:1;11412:61;11465:7;11456:6;11445:9;11441:22;11412:61;:::i;:::-;11402:71;;11358:125;11145:345;;;;:::o;11496:222::-;11589:4;11627:2;11616:9;11612:18;11604:26;;11640:71;11708:1;11697:9;11693:17;11684:6;11640:71;:::i;:::-;11496:222;;;;:::o;11724:545::-;11897:4;11935:3;11924:9;11920:19;11912:27;;11949:71;12017:1;12006:9;12002:17;11993:6;11949:71;:::i;:::-;12030:72;12098:2;12087:9;12083:18;12074:6;12030:72;:::i;:::-;12112:70;12178:2;12167:9;12163:18;12154:6;12112:70;:::i;:::-;12192;12258:2;12247:9;12243:18;12234:6;12192:70;:::i;:::-;11724:545;;;;;;;:::o;12275:60::-;12303:3;12324:5;12317:12;;12275:60;;;:::o;12341:142::-;12391:9;12424:53;12442:34;12451:24;12469:5;12451:24;:::i;:::-;12442:34;:::i;:::-;12424:53;:::i;:::-;12411:66;;12341:142;;;:::o;12489:131::-;12576:37;12607:5;12576:37;:::i;:::-;12571:3;12564:50;12489:131;;:::o;12626:332::-;12747:4;12785:2;12774:9;12770:18;12762:26;;12798:71;12866:1;12855:9;12851:17;12842:6;12798:71;:::i;:::-;12879:72;12947:2;12936:9;12932:18;12923:6;12879:72;:::i;:::-;12626:332;;;;;:::o;12964:222::-;13057:4;13095:2;13084:9;13080:18;13072:26;;13108:71;13176:1;13165:9;13161:17;13152:6;13108:71;:::i;:::-;12964:222;;;;:::o;13192:117::-;13301:1;13298;13291:12;13315:102;13356:6;13407:2;13403:7;13398:2;13391:5;13387:14;13383:28;13373:38;;13315:102;;;:::o;13423:180::-;13471:77;13468:1;13461:88;13568:4;13565:1;13558:15;13592:4;13589:1;13582:15;13609:281;13692:27;13714:4;13692:27;:::i;:::-;13684:6;13680:40;13822:6;13810:10;13807:22;13786:18;13774:10;13771:34;13768:62;13765:88;;;13833:18;;:::i;:::-;13765:88;13873:10;13869:2;13862:22;13652:238;13609:281;;:::o;13896:129::-;13930:6;13957:20;;:::i;:::-;13947:30;;13986:33;14014:4;14006:6;13986:33;:::i;:::-;13896:129;;;:::o;14154:143::-;14211:5;14242:6;14236:13;14227:22;;14258:33;14285:5;14258:33;:::i;:::-;14154:143;;;;:::o;14303:141::-;14359:5;14390:6;14384:13;14375:22;;14406:32;14432:5;14406:32;:::i;:::-;14303:141;;;;:::o;14470:778::-;14550:5;14594:4;14582:9;14577:3;14573:19;14569:30;14566:117;;;14602:79;;:::i;:::-;14566:117;14701:21;14717:4;14701:21;:::i;:::-;14692:30;;14782:1;14822:60;14878:3;14869:6;14858:9;14854:22;14822:60;:::i;:::-;14815:4;14808:5;14804:16;14797:86;14732:162;14957:2;14998:59;15053:3;15044:6;15033:9;15029:22;14998:59;:::i;:::-;14991:4;14984:5;14980:16;14973:85;14904:165;15129:2;15170:59;15225:3;15216:6;15205:9;15201:22;15170:59;:::i;:::-;15163:4;15156:5;15152:16;15145:85;15079:162;14470:778;;;;:::o;15254:391::-;15344:6;15393:2;15381:9;15372:7;15368:23;15364:32;15361:119;;;15399:79;;:::i;:::-;15361:119;15519:1;15544:84;15620:7;15611:6;15600:9;15596:22;15544:84;:::i;:::-;15534:94;;15490:148;15254:391;;;;:::o;15651:115::-;15736:23;15753:5;15736:23;:::i;:::-;15731:3;15724:36;15651:115;;:::o;15772:218::-;15863:4;15901:2;15890:9;15886:18;15878:26;;15914:69;15980:1;15969:9;15965:17;15956:6;15914:69;:::i;:::-;15772:218;;;;:::o;15996:110::-;16047:7;16076:24;16094:5;16076:24;:::i;:::-;16065:35;;15996:110;;;:::o;16112:150::-;16199:38;16231:5;16199:38;:::i;:::-;16192:5;16189:49;16179:77;;16252:1;16249;16242:12;16179:77;16112:150;:::o;16268:171::-;16339:5;16370:6;16364:13;16355:22;;16386:47;16427:5;16386:47;:::i;:::-;16268:171;;;;:::o;16445:93::-;16481:7;16521:10;16514:5;16510:22;16499:33;;16445:93;;;:::o;16544:120::-;16616:23;16633:5;16616:23;:::i;:::-;16609:5;16606:34;16596:62;;16654:1;16651;16644:12;16596:62;16544:120;:::o;16670:141::-;16726:5;16757:6;16751:13;16742:22;;16773:32;16799:5;16773:32;:::i;:::-;16670:141;;;;:::o;16838:797::-;16920:5;16964:4;16952:9;16947:3;16943:19;16939:30;16936:117;;;16972:79;;:::i;:::-;16936:117;17071:21;17087:4;17071:21;:::i;:::-;17062:30;;17154:1;17194:74;17264:3;17255:6;17244:9;17240:22;17194:74;:::i;:::-;17187:4;17180:5;17176:16;17169:100;17102:178;17341:2;17382:59;17437:3;17428:6;17417:9;17413:22;17382:59;:::i;:::-;17375:4;17368:5;17364:16;17357:85;17290:163;17516:2;17557:59;17612:3;17603:6;17592:9;17588:22;17557:59;:::i;:::-;17550:4;17543:5;17539:16;17532:85;17463:165;16838:797;;;;:::o;17641:395::-;17733:6;17782:2;17770:9;17761:7;17757:23;17753:32;17750:119;;;17788:79;;:::i;:::-;17750:119;17908:1;17933:86;18011:7;18002:6;17991:9;17987:22;17933:86;:::i;:::-;17923:96;;17879:150;17641:395;;;;:::o;18042:332::-;18163:4;18201:2;18190:9;18186:18;18178:26;;18214:71;18282:1;18271:9;18267:17;18258:6;18214:71;:::i;:::-;18295:72;18363:2;18352:9;18348:18;18339:6;18295:72;:::i;:::-;18042:332;;;;;:::o;18380:553::-;18557:4;18595:3;18584:9;18580:19;18572:27;;18609:71;18677:1;18666:9;18662:17;18653:6;18609:71;:::i;:::-;18690:72;18758:2;18747:9;18743:18;18734:6;18690:72;:::i;:::-;18772;18840:2;18829:9;18825:18;18816:6;18772:72;:::i;:::-;18854;18922:2;18911:9;18907:18;18898:6;18854:72;:::i;:::-;18380:553;;;;;;;:::o;18939:169::-;19023:11;19057:6;19052:3;19045:19;19097:4;19092:3;19088:14;19073:29;;18939:169;;;;:::o;19114:114::-;;:::o;19234:364::-;19376:3;19397:66;19461:1;19456:3;19397:66;:::i;:::-;19390:73;;19472:93;19561:3;19472:93;:::i;:::-;19590:1;19585:3;19581:11;19574:18;;19234:364;;;:::o;19604:98::-;19655:6;19689:5;19683:12;19673:22;;19604:98;;;:::o;19708:168::-;19791:11;19825:6;19820:3;19813:19;19865:4;19860:3;19856:14;19841:29;;19708:168;;;;:::o;19882:307::-;19950:1;19960:113;19974:6;19971:1;19968:13;19960:113;;;20059:1;20054:3;20050:11;20044:18;20040:1;20035:3;20031:11;20024:39;19996:2;19993:1;19989:10;19984:15;;19960:113;;;20091:6;20088:1;20085:13;20082:101;;;20171:1;20162:6;20157:3;20153:16;20146:27;20082:101;19931:258;19882:307;;;:::o;20195:360::-;20281:3;20309:38;20341:5;20309:38;:::i;:::-;20363:70;20426:6;20421:3;20363:70;:::i;:::-;20356:77;;20442:52;20487:6;20482:3;20475:4;20468:5;20464:16;20442:52;:::i;:::-;20519:29;20541:6;20519:29;:::i;:::-;20514:3;20510:39;20503:46;;20285:270;20195:360;;;;:::o;20561:948::-;20857:4;20895:3;20884:9;20880:19;20872:27;;20909:71;20977:1;20966:9;20962:17;20953:6;20909:71;:::i;:::-;20990:72;21058:2;21047:9;21043:18;21034:6;20990:72;:::i;:::-;21072;21140:2;21129:9;21125:18;21116:6;21072:72;:::i;:::-;21191:9;21185:4;21181:20;21176:2;21165:9;21161:18;21154:48;21219:131;21345:4;21219:131;:::i;:::-;21211:139;;21398:9;21392:4;21388:20;21382:3;21371:9;21367:19;21360:49;21426:76;21497:4;21488:6;21426:76;:::i;:::-;21418:84;;20561:948;;;;;;;:::o;21515:117::-;21624:1;21621;21614:12;21638:117;21747:1;21744;21737:12;21761:307;21822:4;21912:18;21904:6;21901:30;21898:56;;;21934:18;;:::i;:::-;21898:56;21972:29;21994:6;21972:29;:::i;:::-;21964:37;;22056:4;22050;22046:15;22038:23;;21761:307;;;:::o;22074:419::-;22162:5;22187:65;22203:48;22244:6;22203:48;:::i;:::-;22187:65;:::i;:::-;22178:74;;22275:6;22268:5;22261:21;22313:4;22306:5;22302:16;22351:3;22342:6;22337:3;22333:16;22330:25;22327:112;;;22358:79;;:::i;:::-;22327:112;22448:39;22480:6;22475:3;22470;22448:39;:::i;:::-;22168:325;22074:419;;;;;:::o;22512:353::-;22578:5;22627:3;22620:4;22612:6;22608:17;22604:27;22594:122;;22635:79;;:::i;:::-;22594:122;22745:6;22739:13;22770:89;22855:3;22847:6;22840:4;22832:6;22828:17;22770:89;:::i;:::-;22761:98;;22584:281;22512:353;;;;:::o;22871:522::-;22950:6;22999:2;22987:9;22978:7;22974:23;22970:32;22967:119;;;23005:79;;:::i;:::-;22967:119;23146:1;23135:9;23131:17;23125:24;23176:18;23168:6;23165:30;23162:117;;;23198:79;;:::i;:::-;23162:117;23303:73;23368:7;23359:6;23348:9;23344:22;23303:73;:::i;:::-;23293:83;;23096:290;22871:522;;;;:::o;23399:328::-;23518:4;23556:2;23545:9;23541:18;23533:26;;23569:69;23635:1;23624:9;23620:17;23611:6;23569:69;:::i;:::-;23648:72;23716:2;23705:9;23701:18;23692:6;23648:72;:::i;:::-;23399:328;;;;;:::o;23733:664::-;23938:4;23976:3;23965:9;23961:19;23953:27;;23990:71;24058:1;24047:9;24043:17;24034:6;23990:71;:::i;:::-;24071:72;24139:2;24128:9;24124:18;24115:6;24071:72;:::i;:::-;24153;24221:2;24210:9;24206:18;24197:6;24153:72;:::i;:::-;24235;24303:2;24292:9;24288:18;24279:6;24235:72;:::i;:::-;24317:73;24385:3;24374:9;24370:19;24361:6;24317:73;:::i;:::-;23733:664;;;;;;;;:::o;24403:948::-;24699:4;24737:3;24726:9;24722:19;24714:27;;24751:71;24819:1;24808:9;24804:17;24795:6;24751:71;:::i;:::-;24832:72;24900:2;24889:9;24885:18;24876:6;24832:72;:::i;:::-;24914;24982:2;24971:9;24967:18;24958:6;24914:72;:::i;:::-;25033:9;25027:4;25023:20;25018:2;25007:9;25003:18;24996:48;25061:131;25187:4;25061:131;:::i;:::-;25053:139;;25240:9;25234:4;25230:20;25224:3;25213:9;25209:19;25202:49;25268:76;25339:4;25330:6;25268:76;:::i;:::-;25260:84;;24403:948;;;;;;;:::o;25357:442::-;25506:4;25544:2;25533:9;25529:18;25521:26;;25557:71;25625:1;25614:9;25610:17;25601:6;25557:71;:::i;:::-;25638:72;25706:2;25695:9;25691:18;25682:6;25638:72;:::i;:::-;25720;25788:2;25777:9;25773:18;25764:6;25720:72;:::i;:::-;25357:442;;;;;;:::o;25805:85::-;25850:7;25879:5;25868:16;;25805:85;;;:::o;25896:86::-;25931:7;25971:4;25964:5;25960:16;25949:27;;25896:86;;;:::o;25988:154::-;26044:9;26077:59;26093:42;26102:32;26128:5;26102:32;:::i;:::-;26093:42;:::i;:::-;26077:59;:::i;:::-;26064:72;;25988:154;;;:::o;26148:143::-;26241:43;26278:5;26241:43;:::i;:::-;26236:3;26229:56;26148:143;;:::o;26297:446::-;26448:4;26486:2;26475:9;26471:18;26463:26;;26499:69;26565:1;26554:9;26550:17;26541:6;26499:69;:::i;:::-;26578:70;26644:2;26633:9;26629:18;26620:6;26578:70;:::i;:::-;26658:78;26732:2;26721:9;26717:18;26708:6;26658:78;:::i;:::-;26297:446;;;;;;:::o;26749:143::-;26806:5;26837:6;26831:13;26822:22;;26853:33;26880:5;26853:33;:::i;:::-;26749:143;;;;:::o;26898:548::-;26997:6;27005;27054:3;27042:9;27033:7;27029:23;27025:33;27022:120;;;27061:79;;:::i;:::-;27022:120;27181:1;27206:64;27262:7;27253:6;27242:9;27238:22;27206:64;:::i;:::-;27196:74;;27152:128;27319:2;27345:84;27421:7;27412:6;27401:9;27397:22;27345:84;:::i;:::-;27335:94;;27290:149;26898:548;;;;;:::o;27452:305::-;27492:3;27511:20;27529:1;27511:20;:::i;:::-;27506:25;;27545:20;27563:1;27545:20;:::i;:::-;27540:25;;27699:1;27631:66;27627:74;27624:1;27621:81;27618:107;;;27705:18;;:::i;:::-;27618:107;27749:1;27746;27742:9;27735:16;;27452:305;;;;:::o;27763:553::-;27940:4;27978:3;27967:9;27963:19;27955:27;;27992:71;28060:1;28049:9;28045:17;28036:6;27992:71;:::i;:::-;28073:72;28141:2;28130:9;28126:18;28117:6;28073:72;:::i;:::-;28155;28223:2;28212:9;28208:18;28199:6;28155:72;:::i;:::-;28237;28305:2;28294:9;28290:18;28281:6;28237:72;:::i;:::-;27763:553;;;;;;;:::o", + "source": "// SPDX-License-Identifier: MIT\r\n\r\n/// # Security of this contract\r\n/// This contract owns nothing between transactions. Any funds or vaults owned\r\n/// by it may very well be extractable. The security comes from the fact that\r\n/// after any interaction, the user (re-)obtains ownership of their assets. In\r\n/// `doInvest`, this happens by transferring the vault at the end. In `unwind`\r\n/// the contract can actually take ownership of a vault, but only when called\r\n/// by the owner of the vault in the first place.\r\n\r\npragma solidity ^0.8.11;\r\n\r\nstruct Vault {\r\n address owner;\r\n bytes6 seriesId; // Each vault is related to only one series, which also determines the underlying.\r\n bytes6 ilkId; // Asset accepted as collateral\r\n}\r\n\r\ninterface IFYToken {}\r\n\r\nstruct Series {\r\n IFYToken fyToken; // Redeemable token for the series.\r\n bytes6 baseId; // Asset received on redemption.\r\n uint32 maturity; // Unix time at which redemption becomes possible.\r\n}\r\n\r\nstruct Balances {\r\n uint128 art; // Debt amount\r\n uint128 ink; // Collateral amount\r\n}\r\n\r\ninterface YieldLadle {\r\n function pools(bytes6 seriesId) external view returns (address);\r\n function build(bytes6 seriesId, bytes6 ilkId, uint8 salt)\r\n external payable\r\n returns(bytes12, Vault memory);\r\n function serve(bytes12 vaultId_, address to, uint128 ink, uint128 base, uint128 max)\r\n external payable\r\n returns (uint128 art);\r\n function repay(bytes12 vaultId_, address to, int128 ink, uint128 min)\r\n external payable\r\n returns (uint128 art);\r\n function repayVault(bytes12 vaultId_, address to, int128 ink, uint128 max)\r\n external payable\r\n returns (uint128 base);\r\n function close(bytes12 vaultId_, address to, int128 ink, int128 art)\r\n external payable\r\n returns (uint128 base);\r\n function give(bytes12 vaultId_, address receiver)\r\n external payable\r\n returns(Vault memory vault);\r\n}\r\n\r\ninterface IERC20 {\r\n event Approval(address indexed owner, address indexed spender, uint value);\r\n event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n function balanceOf(address owner) external view returns (uint);\r\n \r\n function approve(address spender, uint value) external returns (bool);\r\n function transfer(address to, uint value) external returns (bool);\r\n function transferFrom(address from, address to, uint value) external returns (bool);\r\n}\r\n\r\ninterface yVault is IERC20 {\r\n function deposit(uint amount, address to) external returns (uint256);\r\n function withdraw() external returns (uint);\r\n}\r\n\r\ninterface IToken {\r\n function loanTokenAddress() external view returns (address);\r\n function flashBorrow(\r\n uint256 borrowAmount,\r\n address borrower,\r\n address target,\r\n string calldata signature,\r\n bytes calldata data\r\n ) external payable returns (bytes memory);\r\n}\r\n\r\ninterface Cauldron {\r\n function series(bytes6 seriesId) external view returns (Series memory);\r\n function vaults(bytes12 vaultId) external view returns (Vault memory);\r\n function balances(bytes12 vaultId) external view returns (Balances memory);\r\n function debtToBase(bytes6 seriesId, uint128 art)\r\n external\r\n returns (uint128 base);\r\n function give(bytes12 vaultId, address receiver)\r\n external\r\n returns(Vault memory vault);\r\n}\r\n\r\ncontract YieldLever {\r\n yVault constant yvUSDC = yVault(0xa354F35829Ae975e850e23e9615b11Da1B3dC4DE);\r\n bytes6 constant ilkId = bytes6(0x303900000000); // for yvUSDC\r\n IToken constant iUSDC = IToken(0x32E4c68B3A4a813b710595AebA7f6B7604Ab9c15); \r\n IERC20 constant usdc = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);\r\n address constant usdcJoin = address(0x0d9A1A773be5a83eEbda23bf98efB8585C3ae4f4);\r\n YieldLadle constant ladle = YieldLadle(0x6cB18fF2A33e981D1e38A663Ca056c0a5265066A);\r\n address constant yvUSDCJoin = address(0x403ae7384E89b086Ea2935d5fAFed07465242B38);\r\n Cauldron constant cauldron = Cauldron(0xc88191F8cb8e6D4a668B047c1C8503432c3Ca867);\r\n\r\n bytes6 constant usdcId = bytes6(bytes32(\"02\"));\r\n\r\n /// @dev YieldLever is not expected to hold any USDC\r\n constructor() {\r\n usdc.approve(address(yvUSDC), type(uint256).max);\r\n }\r\n\r\n /// @notice Invest `baseAmount` and borrow an additional `borrowAmount`.\r\n /// Use this to obtain a maximum of `maxFyAmount` to repay the flash loan.\r\n /// The end goal is to have a debt of `borrowAmount`, but earn interest on\r\n /// the entire collateral, including the borrowed part.\r\n /// @param baseAmount - The amount to invest from your own funds.\r\n /// @param borrowAmount - The extra amount to borrow. This is immediately\r\n /// repaid, so setting this to 3 times baseAmount will incur a debt of 75%\r\n /// of the collateral.\r\n /// @param maxFyAmount - The maximum amount of fyTokens to sell. Should be\r\n /// enough to cover the flash loan.\r\n /// @param seriesId - The series Id to invest in. For example, 0x303230360000\r\n /// for FYUSDC06LP.\r\n function invest(\r\n uint256 baseAmount,\r\n uint128 borrowAmount,\r\n uint128 maxFyAmount,\r\n bytes6 seriesId\r\n ) external {\r\n // Check that it is a USDC series.\r\n require(cauldron.series(seriesId).baseId == usdcId);\r\n\r\n // Take USDC from the msg sender. We know USDC reverts on failure.\r\n // In future iterations, YieldLever can integrate with the Ladle by using\r\n // USDC it received previously in the same transaction, if available.\r\n usdc.transferFrom(msg.sender, address(this), baseAmount);\r\n // Build a Yield Vault\r\n (bytes12 vaultId, ) = ladle.build(seriesId, ilkId, 0);\r\n\r\n uint256 investAmount = baseAmount + borrowAmount;\r\n\r\n // Flash borrow USDC\r\n iUSDC.flashBorrow(\r\n borrowAmount,\r\n address(this),\r\n address(this),\r\n \"\",\r\n abi.encodeWithSignature(\r\n \"doInvest(uint256,uint128,uint128,bytes12)\",\r\n investAmount,\r\n borrowAmount,\r\n maxFyAmount,\r\n vaultId\r\n )\r\n );\r\n \r\n // Finally, give the vault to the sender\r\n cauldron.give(vaultId, msg.sender);\r\n }\r\n\r\n /// @notice This function is called inside the flash loan and handles the\r\n /// actual investment.\r\n /// @param borrowAmount - The amount borrowed using a flash loan.\r\n /// @param maxFyAmount - The maximum amount of fyTokens to sell.\r\n /// @param vaultId - The vault id to invest in.\r\n /// @dev Calling this function outside a flash loan achieves nothing,\r\n /// since the contract needs to have assets and own the vault it's borrowing from.\r\n function doInvest(\r\n uint256 investAmount,\r\n uint128 borrowAmount,\r\n uint128 maxFyAmount,\r\n bytes12 vaultId\r\n ) external {\r\n // Deposit USDC and obtain yvUSDC.\r\n // Send it to the yvUSDCJoin to use as collateral in the vault.\r\n // Returned is the amount of yvUSDC obtained.\r\n uint128 yvUSDCBalance = uint128(yvUSDC.deposit(investAmount, yvUSDCJoin));\r\n\r\n // Add collateral to the Yield vault.\r\n // Borrow enough to repay the flash loan.\r\n // Transfer it to `address(iUSDC)` to repay the loan.\r\n ladle.serve(vaultId, address(iUSDC), yvUSDCBalance, borrowAmount, maxFyAmount);\r\n }\r\n\r\n /// @notice Empty a vault.\r\n /// @param vaultId - The id of the vault that should be emptied.\r\n /// @param maxAmount - The maximum amount of USDC to borrow. If past\r\n /// maturity, this parameter is unused as the amount can be determined\r\n /// precisely.\r\n /// @param pool - The pool to deposit USDC into. This can be obtained via the\r\n /// seriesId, and calling `address pool = ladle.pools(seriesId);`\r\n /// @param ink - The amount of collateral in the vault. Together with art,\r\n /// this value can be obtained using `cauldron.balances(vaultId);`, which\r\n /// will return an object containing both `art` and `ink`.\r\n /// @param art - The amount of debt taken from the vault.\r\n function unwind(bytes12 vaultId, uint256 maxAmount, address pool, uint128 ink, uint128 art, bytes6 seriesId) external {\r\n Vault memory vault_ = cauldron.vaults(vaultId);\r\n Series memory series_ = cauldron.series(seriesId);\r\n \r\n // Test that the caller is the owner of the vault.\r\n // This is important as we will take the vault from the user.\r\n require(vault_.owner == msg.sender);\r\n\r\n // Give the vault to the contract\r\n cauldron.give(vaultId, address(this));\r\n \r\n if (uint32(block.timestamp) < series_.maturity) {\r\n // Series is not past maturity\r\n // Borrow to repay debt, move directly to the pool.\r\n iUSDC.flashBorrow(\r\n maxAmount,\r\n pool,\r\n address(this),\r\n \"\",\r\n abi.encodeWithSignature(\"doRepay(address,bytes12,uint256,uint128)\", msg.sender, vaultId, maxAmount, ink)\r\n );\r\n } else {\r\n // Series is past maturity, borrow and move directly to collateral pool\r\n uint128 base = cauldron.debtToBase(seriesId, art);\r\n iUSDC.flashBorrow(\r\n base,\r\n usdcJoin,\r\n address(this),\r\n \"\",\r\n abi.encodeWithSignature(\"doClose(address,bytes12,uint128,uint128,uint128)\", msg.sender, vaultId, base, ink, art)\r\n );\r\n }\r\n\r\n // Give the vault back to the sender, just in case there is anything left\r\n cauldron.give(vaultId, msg.sender);\r\n }\r\n\r\n /// @notice Repay a vault after having borrowed a suitable amount using a\r\n /// flash loan. Will only succeed if the pool hasn't reached its expiration\r\n /// date yet.\r\n /// @param owner - The address of the owner. This is the address that will be\r\n /// used to obtain certain parameters, and it is also the destination for\r\n /// the profit that was obtained.\r\n /// @param vaultId - The vault id to repay.\r\n /// @dev Calling this function outside a flash loan achieves nothing, since\r\n /// the contract needs to own the vault it's getting collateral from.\r\n function doRepay(address owner, bytes12 vaultId, uint256 borrowAmount, uint128 ink) external {\r\n // Repay Yield vault debt\r\n ladle.repayVault(vaultId, address(this), -int128(ink), uint128(borrowAmount));\r\n\r\n // withdraw from yvUSDC\r\n yvUSDC.withdraw();\r\n // Repay the flash loan\r\n usdc.transfer(address(iUSDC), borrowAmount);\r\n // Send the remaining USDC balance to the user.\r\n usdc.transfer(owner, usdc.balanceOf(address(this)));\r\n }\r\n\r\n /// @notice Close a vault that has already reached its expiration date.\r\n /// @param owner - The address of the owner. This is the address that will be\r\n /// used to obtain certain parameters, and it is also the destination for\r\n /// the profit that was obtained.\r\n /// @param vaultId - The vault id to repay.\r\n /// @param base - The size of the debt in USDC.\r\n /// @dev Calling this function outside a flash loan achieves nothing, since\r\n /// the contract needs to own the vault it's getting collateral from.\r\n function doClose(address owner, bytes12 vaultId, uint128 base, uint128 ink, uint128 art) external {\r\n // Close the vault\r\n ladle.close(vaultId, address(this), -int128(ink), -int128(art));\r\n\r\n // Withdraw from yvUSDC\r\n yvUSDC.withdraw();\r\n // Repay flash loan\r\n usdc.transfer(address(iUSDC), base);\r\n // Send the remainder to user\r\n usdc.transfer(owner, usdc.balanceOf(address(this)));\r\n }\r\n}\r\n", + "sourcePath": "F:\\Git\\yvarb\\contracts\\YieldLever.sol", + "ast": { + "absolutePath": "project:/contracts/YieldLever.sol", + "exportedSymbols": { + "Balances": [22], + "Cauldron": [243], + "IERC20": [161], + "IFYToken": [9], + "IToken": [199], + "Series": [17], + "Vault": [8], + "YieldLadle": [108], + "YieldLever": [682], + "yVault": [178] + }, + "id": 683, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": ["solidity", "^", "0.8", ".11"], + "nodeType": "PragmaDirective", + "src": "519:24:0" + }, + { + "canonicalName": "Vault", + "id": 8, + "members": [ + { + "constant": false, + "id": 3, + "mutability": "mutable", + "name": "owner", + "nameLocation": "575:5:0", + "nodeType": "VariableDeclaration", + "scope": 8, + "src": "567:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "567:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "seriesId", + "nameLocation": "594:8:0", + "nodeType": "VariableDeclaration", + "scope": 8, + "src": "587:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + }, + "typeName": { + "id": 4, + "name": "bytes6", + "nodeType": "ElementaryTypeName", + "src": "587:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "ilkId", + "nameLocation": "699:5:0", + "nodeType": "VariableDeclaration", + "scope": 8, + "src": "692:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + }, + "typeName": { + "id": 6, + "name": "bytes6", + "nodeType": "ElementaryTypeName", + "src": "692:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "visibility": "internal" + } + ], + "name": "Vault", + "nameLocation": "554:5:0", + "nodeType": "StructDefinition", + "scope": 683, + "src": "547:193:0", + "visibility": "public" + }, { "abstract": false, "baseContracts": [], @@ -14456,11 +15456,11 @@ "id": 9, "linearizedBaseContracts": [9], "name": "IFYToken", - "nameLocation": "736:8:0", + "nameLocation": "754:8:0", "nodeType": "ContractDefinition", "nodes": [], - "scope": 655, - "src": "726:21:0", + "scope": 683, + "src": "744:21:0", "usedErrors": [] }, { @@ -14472,10 +15472,10 @@ "id": 12, "mutability": "mutable", "name": "fyToken", - "nameLocation": "778:7:0", + "nameLocation": "799:7:0", "nodeType": "VariableDeclaration", "scope": 17, - "src": "769:16:0", + "src": "790:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14490,10 +15490,10 @@ "name": "IFYToken", "nodeType": "IdentifierPath", "referencedDeclaration": 9, - "src": "769:8:0" + "src": "790:8:0" }, "referencedDeclaration": 9, - "src": "769:8:0", + "src": "790:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IFYToken_$9", "typeString": "contract IFYToken" @@ -14506,10 +15506,10 @@ "id": 14, "mutability": "mutable", "name": "baseId", - "nameLocation": "834:6:0", + "nameLocation": "856:6:0", "nodeType": "VariableDeclaration", "scope": 17, - "src": "827:13:0", + "src": "849:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14520,7 +15520,7 @@ "id": 13, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "827:6:0", + "src": "849:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -14533,10 +15533,10 @@ "id": 16, "mutability": "mutable", "name": "maturity", - "nameLocation": "886:8:0", + "nameLocation": "909:8:0", "nodeType": "VariableDeclaration", "scope": 17, - "src": "879:15:0", + "src": "902:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14547,7 +15547,7 @@ "id": 15, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "879:6:0", + "src": "902:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14557,10 +15557,10 @@ } ], "name": "Series", - "nameLocation": "756:6:0", + "nameLocation": "776:6:0", "nodeType": "StructDefinition", - "scope": 655, - "src": "749:199:0", + "scope": 683, + "src": "769:203:0", "visibility": "public" }, { @@ -14572,10 +15572,10 @@ "id": 19, "mutability": "mutable", "name": "art", - "nameLocation": "980:3:0", + "nameLocation": "1007:3:0", "nodeType": "VariableDeclaration", "scope": 22, - "src": "972:11:0", + "src": "999:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14586,7 +15586,7 @@ "id": 18, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "972:7:0", + "src": "999:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -14599,10 +15599,10 @@ "id": 21, "mutability": "mutable", "name": "ink", - "nameLocation": "1012:3:0", + "nameLocation": "1040:3:0", "nodeType": "VariableDeclaration", "scope": 22, - "src": "1004:11:0", + "src": "1032:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14613,7 +15613,7 @@ "id": 20, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1004:7:0", + "src": "1032:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -14623,10 +15623,10 @@ } ], "name": "Balances", - "nameLocation": "957:8:0", + "nameLocation": "983:8:0", "nodeType": "StructDefinition", - "scope": 655, - "src": "950:89:0", + "scope": 683, + "src": "976:92:0", "visibility": "public" }, { @@ -14639,7 +15639,7 @@ "id": 108, "linearizedBaseContracts": [108], "name": "YieldLadle", - "nameLocation": "1051:10:0", + "nameLocation": "1082:10:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -14649,7 +15649,7 @@ "kind": "function", "modifiers": [], "name": "pools", - "nameLocation": "1075:5:0", + "nameLocation": "1107:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 25, @@ -14660,10 +15660,10 @@ "id": 24, "mutability": "mutable", "name": "seriesId", - "nameLocation": "1088:8:0", + "nameLocation": "1120:8:0", "nodeType": "VariableDeclaration", "scope": 29, - "src": "1081:15:0", + "src": "1113:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14674,7 +15674,7 @@ "id": 23, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "1081:6:0", + "src": "1113:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -14683,7 +15683,7 @@ "visibility": "internal" } ], - "src": "1080:17:0" + "src": "1112:17:0" }, "returnParameters": { "id": 28, @@ -14697,7 +15697,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 29, - "src": "1121:7:0", + "src": "1153:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14708,7 +15708,7 @@ "id": 26, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1121:7:0", + "src": "1153:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14718,10 +15718,10 @@ "visibility": "internal" } ], - "src": "1120:9:0" + "src": "1152:9:0" }, "scope": 108, - "src": "1066:64:0", + "src": "1098:64:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -14733,7 +15733,7 @@ "kind": "function", "modifiers": [], "name": "build", - "nameLocation": "1142:5:0", + "nameLocation": "1175:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 36, @@ -14744,10 +15744,10 @@ "id": 31, "mutability": "mutable", "name": "seriesId", - "nameLocation": "1155:8:0", + "nameLocation": "1188:8:0", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1148:15:0", + "src": "1181:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14758,7 +15758,7 @@ "id": 30, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "1148:6:0", + "src": "1181:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -14771,10 +15771,10 @@ "id": 33, "mutability": "mutable", "name": "ilkId", - "nameLocation": "1172:5:0", + "nameLocation": "1205:5:0", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1165:12:0", + "src": "1198:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14785,7 +15785,7 @@ "id": 32, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "1165:6:0", + "src": "1198:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -14798,10 +15798,10 @@ "id": 35, "mutability": "mutable", "name": "salt", - "nameLocation": "1185:4:0", + "nameLocation": "1218:4:0", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1179:10:0", + "src": "1212:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14812,7 +15812,7 @@ "id": 34, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1179:5:0", + "src": "1212:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14821,7 +15821,7 @@ "visibility": "internal" } ], - "src": "1147:43:0" + "src": "1180:43:0" }, "returnParameters": { "id": 42, @@ -14835,7 +15835,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1232:7:0", + "src": "1267:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14846,7 +15846,7 @@ "id": 37, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1232:7:0", + "src": "1267:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -14862,7 +15862,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1241:12:0", + "src": "1276:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14877,10 +15877,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "1241:5:0" + "src": "1276:5:0" }, "referencedDeclaration": 8, - "src": "1241:5:0", + "src": "1276:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -14889,10 +15889,10 @@ "visibility": "internal" } ], - "src": "1231:23:0" + "src": "1266:23:0" }, "scope": 108, - "src": "1133:122:0", + "src": "1166:124:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -14904,7 +15904,7 @@ "kind": "function", "modifiers": [], "name": "serve", - "nameLocation": "1267:5:0", + "nameLocation": "1303:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 54, @@ -14915,10 +15915,10 @@ "id": 45, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1281:8:0", + "nameLocation": "1317:8:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1273:16:0", + "src": "1309:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14929,7 +15929,7 @@ "id": 44, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1273:7:0", + "src": "1309:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -14942,10 +15942,10 @@ "id": 47, "mutability": "mutable", "name": "to", - "nameLocation": "1299:2:0", + "nameLocation": "1335:2:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1291:10:0", + "src": "1327:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14956,7 +15956,7 @@ "id": 46, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1291:7:0", + "src": "1327:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14970,10 +15970,10 @@ "id": 49, "mutability": "mutable", "name": "ink", - "nameLocation": "1311:3:0", + "nameLocation": "1347:3:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1303:11:0", + "src": "1339:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14984,7 +15984,7 @@ "id": 48, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1303:7:0", + "src": "1339:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -14997,10 +15997,10 @@ "id": 51, "mutability": "mutable", "name": "base", - "nameLocation": "1324:4:0", + "nameLocation": "1360:4:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1316:12:0", + "src": "1352:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15011,7 +16011,7 @@ "id": 50, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1316:7:0", + "src": "1352:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15024,10 +16024,10 @@ "id": 53, "mutability": "mutable", "name": "max", - "nameLocation": "1338:3:0", + "nameLocation": "1374:3:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1330:11:0", + "src": "1366:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15038,7 +16038,7 @@ "id": 52, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1330:7:0", + "src": "1366:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15047,7 +16047,7 @@ "visibility": "internal" } ], - "src": "1272:70:0" + "src": "1308:70:0" }, "returnParameters": { "id": 57, @@ -15058,10 +16058,10 @@ "id": 56, "mutability": "mutable", "name": "art", - "nameLocation": "1393:3:0", + "nameLocation": "1431:3:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1385:11:0", + "src": "1423:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15072,7 +16072,7 @@ "id": 55, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1385:7:0", + "src": "1423:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15081,10 +16081,10 @@ "visibility": "internal" } ], - "src": "1384:13:0" + "src": "1422:13:0" }, "scope": 108, - "src": "1258:140:0", + "src": "1294:142:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -15096,7 +16096,7 @@ "kind": "function", "modifiers": [], "name": "repay", - "nameLocation": "1410:5:0", + "nameLocation": "1449:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 67, @@ -15107,10 +16107,10 @@ "id": 60, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1424:8:0", + "nameLocation": "1463:8:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1416:16:0", + "src": "1455:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15121,7 +16121,7 @@ "id": 59, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1416:7:0", + "src": "1455:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -15134,10 +16134,10 @@ "id": 62, "mutability": "mutable", "name": "to", - "nameLocation": "1442:2:0", + "nameLocation": "1481:2:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1434:10:0", + "src": "1473:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15148,7 +16148,7 @@ "id": 61, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1434:7:0", + "src": "1473:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15162,10 +16162,10 @@ "id": 64, "mutability": "mutable", "name": "ink", - "nameLocation": "1453:3:0", + "nameLocation": "1492:3:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1446:10:0", + "src": "1485:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15176,7 +16176,7 @@ "id": 63, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1446:6:0", + "src": "1485:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -15189,10 +16189,10 @@ "id": 66, "mutability": "mutable", "name": "min", - "nameLocation": "1466:3:0", + "nameLocation": "1505:3:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1458:11:0", + "src": "1497:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15203,7 +16203,7 @@ "id": 65, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1458:7:0", + "src": "1497:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15212,7 +16212,7 @@ "visibility": "internal" } ], - "src": "1415:55:0" + "src": "1454:55:0" }, "returnParameters": { "id": 70, @@ -15223,10 +16223,10 @@ "id": 69, "mutability": "mutable", "name": "art", - "nameLocation": "1521:3:0", + "nameLocation": "1562:3:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1513:11:0", + "src": "1554:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15237,7 +16237,7 @@ "id": 68, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1513:7:0", + "src": "1554:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15246,10 +16246,10 @@ "visibility": "internal" } ], - "src": "1512:13:0" + "src": "1553:13:0" }, "scope": 108, - "src": "1401:125:0", + "src": "1440:127:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -15261,7 +16261,7 @@ "kind": "function", "modifiers": [], "name": "repayVault", - "nameLocation": "1538:10:0", + "nameLocation": "1580:10:0", "nodeType": "FunctionDefinition", "parameters": { "id": 80, @@ -15272,10 +16272,10 @@ "id": 73, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1557:8:0", + "nameLocation": "1599:8:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1549:16:0", + "src": "1591:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15286,7 +16286,7 @@ "id": 72, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1549:7:0", + "src": "1591:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -15299,10 +16299,10 @@ "id": 75, "mutability": "mutable", "name": "to", - "nameLocation": "1575:2:0", + "nameLocation": "1617:2:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1567:10:0", + "src": "1609:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15313,7 +16313,7 @@ "id": 74, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1567:7:0", + "src": "1609:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15327,10 +16327,10 @@ "id": 77, "mutability": "mutable", "name": "ink", - "nameLocation": "1586:3:0", + "nameLocation": "1628:3:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1579:10:0", + "src": "1621:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15341,7 +16341,7 @@ "id": 76, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1579:6:0", + "src": "1621:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -15354,10 +16354,10 @@ "id": 79, "mutability": "mutable", "name": "max", - "nameLocation": "1599:3:0", + "nameLocation": "1641:3:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1591:11:0", + "src": "1633:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15368,7 +16368,7 @@ "id": 78, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1591:7:0", + "src": "1633:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15377,7 +16377,7 @@ "visibility": "internal" } ], - "src": "1548:55:0" + "src": "1590:55:0" }, "returnParameters": { "id": 83, @@ -15388,10 +16388,10 @@ "id": 82, "mutability": "mutable", "name": "base", - "nameLocation": "1654:4:0", + "nameLocation": "1698:4:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1646:12:0", + "src": "1690:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15402,7 +16402,7 @@ "id": 81, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1646:7:0", + "src": "1690:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15411,10 +16411,10 @@ "visibility": "internal" } ], - "src": "1645:14:0" + "src": "1689:14:0" }, "scope": 108, - "src": "1529:131:0", + "src": "1571:133:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -15426,7 +16426,7 @@ "kind": "function", "modifiers": [], "name": "close", - "nameLocation": "1672:5:0", + "nameLocation": "1717:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 93, @@ -15437,10 +16437,10 @@ "id": 86, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1686:8:0", + "nameLocation": "1731:8:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1678:16:0", + "src": "1723:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15451,7 +16451,7 @@ "id": 85, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1678:7:0", + "src": "1723:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -15464,10 +16464,10 @@ "id": 88, "mutability": "mutable", "name": "to", - "nameLocation": "1704:2:0", + "nameLocation": "1749:2:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1696:10:0", + "src": "1741:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15478,7 +16478,7 @@ "id": 87, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1696:7:0", + "src": "1741:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15492,10 +16492,10 @@ "id": 90, "mutability": "mutable", "name": "ink", - "nameLocation": "1715:3:0", + "nameLocation": "1760:3:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1708:10:0", + "src": "1753:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15506,7 +16506,7 @@ "id": 89, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1708:6:0", + "src": "1753:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -15519,10 +16519,10 @@ "id": 92, "mutability": "mutable", "name": "art", - "nameLocation": "1727:3:0", + "nameLocation": "1772:3:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1720:10:0", + "src": "1765:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15533,7 +16533,7 @@ "id": 91, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1720:6:0", + "src": "1765:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -15542,7 +16542,7 @@ "visibility": "internal" } ], - "src": "1677:54:0" + "src": "1722:54:0" }, "returnParameters": { "id": 96, @@ -15553,10 +16553,10 @@ "id": 95, "mutability": "mutable", "name": "base", - "nameLocation": "1782:4:0", + "nameLocation": "1829:4:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1774:12:0", + "src": "1821:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15567,7 +16567,7 @@ "id": 94, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1774:7:0", + "src": "1821:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -15576,10 +16576,10 @@ "visibility": "internal" } ], - "src": "1773:14:0" + "src": "1820:14:0" }, "scope": 108, - "src": "1663:125:0", + "src": "1708:127:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -15591,7 +16591,7 @@ "kind": "function", "modifiers": [], "name": "give", - "nameLocation": "1800:4:0", + "nameLocation": "1848:4:0", "nodeType": "FunctionDefinition", "parameters": { "id": 102, @@ -15602,10 +16602,10 @@ "id": 99, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1813:8:0", + "nameLocation": "1861:8:0", "nodeType": "VariableDeclaration", "scope": 107, - "src": "1805:16:0", + "src": "1853:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15616,7 +16616,7 @@ "id": 98, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1805:7:0", + "src": "1853:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -15629,10 +16629,10 @@ "id": 101, "mutability": "mutable", "name": "receiver", - "nameLocation": "1831:8:0", + "nameLocation": "1879:8:0", "nodeType": "VariableDeclaration", "scope": 107, - "src": "1823:16:0", + "src": "1871:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15643,7 +16643,7 @@ "id": 100, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1823:7:0", + "src": "1871:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15653,7 +16653,7 @@ "visibility": "internal" } ], - "src": "1804:36:0" + "src": "1852:36:0" }, "returnParameters": { "id": 106, @@ -15664,10 +16664,10 @@ "id": 105, "mutability": "mutable", "name": "vault", - "nameLocation": "1895:5:0", + "nameLocation": "1945:5:0", "nodeType": "VariableDeclaration", "scope": 107, - "src": "1882:18:0", + "src": "1932:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -15682,10 +16682,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "1882:5:0" + "src": "1932:5:0" }, "referencedDeclaration": 8, - "src": "1882:5:0", + "src": "1932:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -15694,17 +16694,17 @@ "visibility": "internal" } ], - "src": "1881:20:0" + "src": "1931:20:0" }, "scope": 108, - "src": "1791:111:0", + "src": "1839:113:0", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "1041:863:0", + "scope": 683, + "src": "1072:883:0", "usedErrors": [] }, { @@ -15717,14 +16717,14 @@ "id": 161, "linearizedBaseContracts": [161], "name": "IERC20", - "nameLocation": "1916:6:0", + "nameLocation": "1969:6:0", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 116, "name": "Approval", - "nameLocation": "1935:8:0", + "nameLocation": "1989:8:0", "nodeType": "EventDefinition", "parameters": { "id": 115, @@ -15736,10 +16736,10 @@ "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "1960:5:0", + "nameLocation": "2014:5:0", "nodeType": "VariableDeclaration", "scope": 116, - "src": "1944:21:0", + "src": "1998:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15750,7 +16750,7 @@ "id": 109, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1944:7:0", + "src": "1998:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15765,10 +16765,10 @@ "indexed": true, "mutability": "mutable", "name": "spender", - "nameLocation": "1983:7:0", + "nameLocation": "2037:7:0", "nodeType": "VariableDeclaration", "scope": 116, - "src": "1967:23:0", + "src": "2021:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15779,7 +16779,7 @@ "id": 111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1967:7:0", + "src": "2021:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15794,10 +16794,10 @@ "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "1997:5:0", + "nameLocation": "2051:5:0", "nodeType": "VariableDeclaration", "scope": 116, - "src": "1992:10:0", + "src": "2046:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15808,7 +16808,7 @@ "id": 113, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1992:4:0", + "src": "2046:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15817,15 +16817,15 @@ "visibility": "internal" } ], - "src": "1943:60:0" + "src": "1997:60:0" }, - "src": "1929:75:0" + "src": "1983:75:0" }, { "anonymous": false, "id": 124, "name": "Transfer", - "nameLocation": "2015:8:0", + "nameLocation": "2070:8:0", "nodeType": "EventDefinition", "parameters": { "id": 123, @@ -15837,10 +16837,10 @@ "indexed": true, "mutability": "mutable", "name": "from", - "nameLocation": "2040:4:0", + "nameLocation": "2095:4:0", "nodeType": "VariableDeclaration", "scope": 124, - "src": "2024:20:0", + "src": "2079:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15851,7 +16851,7 @@ "id": 117, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2024:7:0", + "src": "2079:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15866,10 +16866,10 @@ "indexed": true, "mutability": "mutable", "name": "to", - "nameLocation": "2062:2:0", + "nameLocation": "2117:2:0", "nodeType": "VariableDeclaration", "scope": 124, - "src": "2046:18:0", + "src": "2101:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15880,7 +16880,7 @@ "id": 119, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2046:7:0", + "src": "2101:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15895,10 +16895,10 @@ "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "2071:5:0", + "nameLocation": "2126:5:0", "nodeType": "VariableDeclaration", "scope": 124, - "src": "2066:10:0", + "src": "2121:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15909,7 +16909,7 @@ "id": 121, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2066:4:0", + "src": "2121:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15918,9 +16918,9 @@ "visibility": "internal" } ], - "src": "2023:54:0" + "src": "2078:54:0" }, - "src": "2009:69:0" + "src": "2064:69:0" }, { "functionSelector": "70a08231", @@ -15929,7 +16929,7 @@ "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "2093:9:0", + "nameLocation": "2150:9:0", "nodeType": "FunctionDefinition", "parameters": { "id": 127, @@ -15940,10 +16940,10 @@ "id": 126, "mutability": "mutable", "name": "owner", - "nameLocation": "2111:5:0", + "nameLocation": "2168:5:0", "nodeType": "VariableDeclaration", "scope": 131, - "src": "2103:13:0", + "src": "2160:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15954,7 +16954,7 @@ "id": 125, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2103:7:0", + "src": "2160:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15964,7 +16964,7 @@ "visibility": "internal" } ], - "src": "2102:15:0" + "src": "2159:15:0" }, "returnParameters": { "id": 130, @@ -15978,7 +16978,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 131, - "src": "2141:4:0", + "src": "2198:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15989,7 +16989,7 @@ "id": 128, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2141:4:0", + "src": "2198:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15998,10 +16998,10 @@ "visibility": "internal" } ], - "src": "2140:6:0" + "src": "2197:6:0" }, "scope": 161, - "src": "2084:63:0", + "src": "2141:63:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -16013,7 +17013,7 @@ "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "2164:7:0", + "nameLocation": "2223:7:0", "nodeType": "FunctionDefinition", "parameters": { "id": 136, @@ -16024,10 +17024,10 @@ "id": 133, "mutability": "mutable", "name": "spender", - "nameLocation": "2180:7:0", + "nameLocation": "2239:7:0", "nodeType": "VariableDeclaration", "scope": 140, - "src": "2172:15:0", + "src": "2231:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16038,7 +17038,7 @@ "id": 132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2172:7:0", + "src": "2231:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16052,10 +17052,10 @@ "id": 135, "mutability": "mutable", "name": "value", - "nameLocation": "2194:5:0", + "nameLocation": "2253:5:0", "nodeType": "VariableDeclaration", "scope": 140, - "src": "2189:10:0", + "src": "2248:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16066,7 +17066,7 @@ "id": 134, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2189:4:0", + "src": "2248:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16075,7 +17075,7 @@ "visibility": "internal" } ], - "src": "2171:29:0" + "src": "2230:29:0" }, "returnParameters": { "id": 139, @@ -16089,7 +17089,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 140, - "src": "2219:4:0", + "src": "2278:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16100,7 +17100,7 @@ "id": 137, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2219:4:0", + "src": "2278:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16109,10 +17109,10 @@ "visibility": "internal" } ], - "src": "2218:6:0" + "src": "2277:6:0" }, "scope": 161, - "src": "2155:70:0", + "src": "2214:70:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -16124,7 +17124,7 @@ "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "2239:8:0", + "nameLocation": "2299:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 145, @@ -16135,10 +17135,10 @@ "id": 142, "mutability": "mutable", "name": "to", - "nameLocation": "2256:2:0", + "nameLocation": "2316:2:0", "nodeType": "VariableDeclaration", "scope": 149, - "src": "2248:10:0", + "src": "2308:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16149,7 +17149,7 @@ "id": 141, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2248:7:0", + "src": "2308:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16163,10 +17163,10 @@ "id": 144, "mutability": "mutable", "name": "value", - "nameLocation": "2265:5:0", + "nameLocation": "2325:5:0", "nodeType": "VariableDeclaration", "scope": 149, - "src": "2260:10:0", + "src": "2320:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16177,7 +17177,7 @@ "id": 143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2260:4:0", + "src": "2320:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16186,7 +17186,7 @@ "visibility": "internal" } ], - "src": "2247:24:0" + "src": "2307:24:0" }, "returnParameters": { "id": 148, @@ -16200,7 +17200,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 149, - "src": "2290:4:0", + "src": "2350:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16211,7 +17211,7 @@ "id": 146, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2290:4:0", + "src": "2350:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16220,10 +17220,10 @@ "visibility": "internal" } ], - "src": "2289:6:0" + "src": "2349:6:0" }, "scope": 161, - "src": "2230:66:0", + "src": "2290:66:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -16235,7 +17235,7 @@ "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "2310:12:0", + "nameLocation": "2371:12:0", "nodeType": "FunctionDefinition", "parameters": { "id": 156, @@ -16246,10 +17246,10 @@ "id": 151, "mutability": "mutable", "name": "from", - "nameLocation": "2331:4:0", + "nameLocation": "2392:4:0", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2323:12:0", + "src": "2384:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16260,7 +17260,7 @@ "id": 150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2323:7:0", + "src": "2384:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16274,10 +17274,10 @@ "id": 153, "mutability": "mutable", "name": "to", - "nameLocation": "2345:2:0", + "nameLocation": "2406:2:0", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2337:10:0", + "src": "2398:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16288,7 +17288,7 @@ "id": 152, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2337:7:0", + "src": "2398:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16302,10 +17302,10 @@ "id": 155, "mutability": "mutable", "name": "value", - "nameLocation": "2354:5:0", + "nameLocation": "2415:5:0", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2349:10:0", + "src": "2410:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16316,7 +17316,7 @@ "id": 154, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2349:4:0", + "src": "2410:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16325,7 +17325,7 @@ "visibility": "internal" } ], - "src": "2322:38:0" + "src": "2383:38:0" }, "returnParameters": { "id": 159, @@ -16339,7 +17339,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2379:4:0", + "src": "2440:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16350,7 +17350,7 @@ "id": 157, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2379:4:0", + "src": "2440:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16359,17 +17359,17 @@ "visibility": "internal" } ], - "src": "2378:6:0" + "src": "2439:6:0" }, "scope": 161, - "src": "2301:84:0", + "src": "2362:84:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "1906:481:0", + "scope": 683, + "src": "1959:490:0", "usedErrors": [] }, { @@ -16381,11 +17381,11 @@ "name": "IERC20", "nodeType": "IdentifierPath", "referencedDeclaration": 161, - "src": "2409:6:0" + "src": "2473:6:0" }, "id": 163, "nodeType": "InheritanceSpecifier", - "src": "2409:6:0" + "src": "2473:6:0" } ], "canonicalName": "yVault", @@ -16395,7 +17395,7 @@ "id": 178, "linearizedBaseContracts": [178, 161], "name": "yVault", - "nameLocation": "2399:6:0", + "nameLocation": "2463:6:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -16405,7 +17405,7 @@ "kind": "function", "modifiers": [], "name": "deposit", - "nameLocation": "2429:7:0", + "nameLocation": "2494:7:0", "nodeType": "FunctionDefinition", "parameters": { "id": 168, @@ -16416,10 +17416,10 @@ "id": 165, "mutability": "mutable", "name": "amount", - "nameLocation": "2442:6:0", + "nameLocation": "2507:6:0", "nodeType": "VariableDeclaration", "scope": 172, - "src": "2437:11:0", + "src": "2502:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16430,7 +17430,7 @@ "id": 164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2437:4:0", + "src": "2502:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16443,10 +17443,10 @@ "id": 167, "mutability": "mutable", "name": "to", - "nameLocation": "2458:2:0", + "nameLocation": "2523:2:0", "nodeType": "VariableDeclaration", "scope": 172, - "src": "2450:10:0", + "src": "2515:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16457,7 +17457,7 @@ "id": 166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2450:7:0", + "src": "2515:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16467,7 +17467,7 @@ "visibility": "internal" } ], - "src": "2436:25:0" + "src": "2501:25:0" }, "returnParameters": { "id": 171, @@ -16481,7 +17481,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 172, - "src": "2480:7:0", + "src": "2545:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16492,7 +17492,7 @@ "id": 169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2480:7:0", + "src": "2545:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16501,10 +17501,10 @@ "visibility": "internal" } ], - "src": "2479:9:0" + "src": "2544:9:0" }, "scope": 178, - "src": "2420:69:0", + "src": "2485:69:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -16516,13 +17516,13 @@ "kind": "function", "modifiers": [], "name": "withdraw", - "nameLocation": "2501:8:0", + "nameLocation": "2567:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 173, "nodeType": "ParameterList", "parameters": [], - "src": "2509:2:0" + "src": "2575:2:0" }, "returnParameters": { "id": 176, @@ -16536,7 +17536,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 177, - "src": "2530:4:0", + "src": "2596:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16547,7 +17547,7 @@ "id": 174, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2530:4:0", + "src": "2596:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16556,17 +17556,17 @@ "visibility": "internal" } ], - "src": "2529:6:0" + "src": "2595:6:0" }, "scope": 178, - "src": "2492:44:0", + "src": "2558:44:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "2389:149:0", + "scope": 683, + "src": "2453:152:0", "usedErrors": [] }, { @@ -16579,7 +17579,7 @@ "id": 199, "linearizedBaseContracts": [199], "name": "IToken", - "nameLocation": "2550:6:0", + "nameLocation": "2619:6:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -16589,13 +17589,13 @@ "kind": "function", "modifiers": [], "name": "loanTokenAddress", - "nameLocation": "2572:16:0", + "nameLocation": "2642:16:0", "nodeType": "FunctionDefinition", "parameters": { "id": 179, "nodeType": "ParameterList", "parameters": [], - "src": "2588:2:0" + "src": "2658:2:0" }, "returnParameters": { "id": 182, @@ -16609,7 +17609,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 183, - "src": "2614:7:0", + "src": "2684:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16620,7 +17620,7 @@ "id": 180, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2614:7:0", + "src": "2684:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16630,10 +17630,10 @@ "visibility": "internal" } ], - "src": "2613:9:0" + "src": "2683:9:0" }, "scope": 199, - "src": "2563:60:0", + "src": "2633:60:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -16645,7 +17645,7 @@ "kind": "function", "modifiers": [], "name": "flashBorrow", - "nameLocation": "2637:11:0", + "nameLocation": "2708:11:0", "nodeType": "FunctionDefinition", "parameters": { "id": 194, @@ -16656,10 +17656,10 @@ "id": 185, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "2666:12:0", + "nameLocation": "2738:12:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2658:20:0", + "src": "2730:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16670,7 +17670,7 @@ "id": 184, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2658:7:0", + "src": "2730:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16683,10 +17683,10 @@ "id": 187, "mutability": "mutable", "name": "borrower", - "nameLocation": "2696:8:0", + "nameLocation": "2769:8:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2688:16:0", + "src": "2761:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16697,7 +17697,7 @@ "id": 186, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2688:7:0", + "src": "2761:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16711,10 +17711,10 @@ "id": 189, "mutability": "mutable", "name": "target", - "nameLocation": "2722:6:0", + "nameLocation": "2796:6:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2714:14:0", + "src": "2788:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16725,7 +17725,7 @@ "id": 188, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2714:7:0", + "src": "2788:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16739,10 +17739,10 @@ "id": 191, "mutability": "mutable", "name": "signature", - "nameLocation": "2754:9:0", + "nameLocation": "2829:9:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2738:25:0", + "src": "2813:25:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -16753,7 +17753,7 @@ "id": 190, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2738:6:0", + "src": "2813:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -16766,10 +17766,10 @@ "id": 193, "mutability": "mutable", "name": "data", - "nameLocation": "2788:4:0", + "nameLocation": "2864:4:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2773:19:0", + "src": "2849:19:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -16780,7 +17780,7 @@ "id": 192, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2773:5:0", + "src": "2849:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16789,7 +17789,7 @@ "visibility": "internal" } ], - "src": "2648:150:0" + "src": "2719:156:0" }, "returnParameters": { "id": 197, @@ -16803,7 +17803,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2825:12:0", + "src": "2902:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16814,7 +17814,7 @@ "id": 195, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2825:5:0", + "src": "2902:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16823,17 +17823,17 @@ "visibility": "internal" } ], - "src": "2824:14:0" + "src": "2901:14:0" }, "scope": 199, - "src": "2628:211:0", + "src": "2699:217:0", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "2540:301:0", + "scope": 683, + "src": "2609:310:0", "usedErrors": [] }, { @@ -16846,7 +17846,7 @@ "id": 243, "linearizedBaseContracts": [243], "name": "Cauldron", - "nameLocation": "2853:8:0", + "nameLocation": "2933:8:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -16856,7 +17856,7 @@ "kind": "function", "modifiers": [], "name": "series", - "nameLocation": "2875:6:0", + "nameLocation": "2956:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 202, @@ -16867,10 +17867,10 @@ "id": 201, "mutability": "mutable", "name": "seriesId", - "nameLocation": "2889:8:0", + "nameLocation": "2970:8:0", "nodeType": "VariableDeclaration", "scope": 207, - "src": "2882:15:0", + "src": "2963:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16881,7 +17881,7 @@ "id": 200, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "2882:6:0", + "src": "2963:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -16890,7 +17890,7 @@ "visibility": "internal" } ], - "src": "2881:17:0" + "src": "2962:17:0" }, "returnParameters": { "id": 206, @@ -16904,7 +17904,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 207, - "src": "2922:13:0", + "src": "3003:13:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16919,10 +17919,10 @@ "name": "Series", "nodeType": "IdentifierPath", "referencedDeclaration": 17, - "src": "2922:6:0" + "src": "3003:6:0" }, "referencedDeclaration": 17, - "src": "2922:6:0", + "src": "3003:6:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_storage_ptr", "typeString": "struct Series" @@ -16931,10 +17931,10 @@ "visibility": "internal" } ], - "src": "2921:15:0" + "src": "3002:15:0" }, "scope": 243, - "src": "2866:71:0", + "src": "2947:71:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -16946,7 +17946,7 @@ "kind": "function", "modifiers": [], "name": "vaults", - "nameLocation": "2949:6:0", + "nameLocation": "3031:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 210, @@ -16957,10 +17957,10 @@ "id": 209, "mutability": "mutable", "name": "vaultId", - "nameLocation": "2964:7:0", + "nameLocation": "3046:7:0", "nodeType": "VariableDeclaration", "scope": 215, - "src": "2956:15:0", + "src": "3038:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16971,7 +17971,7 @@ "id": 208, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "2956:7:0", + "src": "3038:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -16980,7 +17980,7 @@ "visibility": "internal" } ], - "src": "2955:17:0" + "src": "3037:17:0" }, "returnParameters": { "id": 214, @@ -16994,7 +17994,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 215, - "src": "2996:12:0", + "src": "3078:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -17009,10 +18009,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "2996:5:0" + "src": "3078:5:0" }, "referencedDeclaration": 8, - "src": "2996:5:0", + "src": "3078:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -17021,10 +18021,10 @@ "visibility": "internal" } ], - "src": "2995:14:0" + "src": "3077:14:0" }, "scope": 243, - "src": "2940:70:0", + "src": "3022:70:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -17036,7 +18036,7 @@ "kind": "function", "modifiers": [], "name": "balances", - "nameLocation": "3022:8:0", + "nameLocation": "3105:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 218, @@ -17047,10 +18047,10 @@ "id": 217, "mutability": "mutable", "name": "vaultId", - "nameLocation": "3039:7:0", + "nameLocation": "3122:7:0", "nodeType": "VariableDeclaration", "scope": 223, - "src": "3031:15:0", + "src": "3114:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17061,7 +18061,7 @@ "id": 216, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "3031:7:0", + "src": "3114:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -17070,7 +18070,7 @@ "visibility": "internal" } ], - "src": "3030:17:0" + "src": "3113:17:0" }, "returnParameters": { "id": 222, @@ -17084,7 +18084,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 223, - "src": "3071:15:0", + "src": "3154:15:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -17099,10 +18099,10 @@ "name": "Balances", "nodeType": "IdentifierPath", "referencedDeclaration": 22, - "src": "3071:8:0" + "src": "3154:8:0" }, "referencedDeclaration": 22, - "src": "3071:8:0", + "src": "3154:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Balances_$22_storage_ptr", "typeString": "struct Balances" @@ -17111,10 +18111,10 @@ "visibility": "internal" } ], - "src": "3070:17:0" + "src": "3153:17:0" }, "scope": 243, - "src": "3013:75:0", + "src": "3096:75:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -17126,7 +18126,7 @@ "kind": "function", "modifiers": [], "name": "debtToBase", - "nameLocation": "3100:10:0", + "nameLocation": "3184:10:0", "nodeType": "FunctionDefinition", "parameters": { "id": 228, @@ -17137,10 +18137,10 @@ "id": 225, "mutability": "mutable", "name": "seriesId", - "nameLocation": "3118:8:0", + "nameLocation": "3202:8:0", "nodeType": "VariableDeclaration", "scope": 232, - "src": "3111:15:0", + "src": "3195:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17151,7 +18151,7 @@ "id": 224, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "3111:6:0", + "src": "3195:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -17164,10 +18164,10 @@ "id": 227, "mutability": "mutable", "name": "art", - "nameLocation": "3136:3:0", + "nameLocation": "3220:3:0", "nodeType": "VariableDeclaration", "scope": 232, - "src": "3128:11:0", + "src": "3212:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17178,7 +18178,7 @@ "id": 226, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "3128:7:0", + "src": "3212:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -17187,7 +18187,7 @@ "visibility": "internal" } ], - "src": "3110:30:0" + "src": "3194:30:0" }, "returnParameters": { "id": 231, @@ -17198,10 +18198,10 @@ "id": 230, "mutability": "mutable", "name": "base", - "nameLocation": "3183:4:0", + "nameLocation": "3269:4:0", "nodeType": "VariableDeclaration", "scope": 232, - "src": "3175:12:0", + "src": "3261:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17212,7 +18212,7 @@ "id": 229, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "3175:7:0", + "src": "3261:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -17221,10 +18221,10 @@ "visibility": "internal" } ], - "src": "3174:14:0" + "src": "3260:14:0" }, "scope": 243, - "src": "3091:98:0", + "src": "3175:100:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -17236,7 +18236,7 @@ "kind": "function", "modifiers": [], "name": "give", - "nameLocation": "3201:4:0", + "nameLocation": "3288:4:0", "nodeType": "FunctionDefinition", "parameters": { "id": 237, @@ -17247,10 +18247,10 @@ "id": 234, "mutability": "mutable", "name": "vaultId", - "nameLocation": "3214:7:0", + "nameLocation": "3301:7:0", "nodeType": "VariableDeclaration", "scope": 242, - "src": "3206:15:0", + "src": "3293:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17261,7 +18261,7 @@ "id": 233, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "3206:7:0", + "src": "3293:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -17274,10 +18274,10 @@ "id": 236, "mutability": "mutable", "name": "receiver", - "nameLocation": "3231:8:0", + "nameLocation": "3318:8:0", "nodeType": "VariableDeclaration", "scope": 242, - "src": "3223:16:0", + "src": "3310:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17288,7 +18288,7 @@ "id": 235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3223:7:0", + "src": "3310:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17298,7 +18298,7 @@ "visibility": "internal" } ], - "src": "3205:35:0" + "src": "3292:35:0" }, "returnParameters": { "id": 241, @@ -17309,10 +18309,10 @@ "id": 240, "mutability": "mutable", "name": "vault", - "nameLocation": "3287:5:0", + "nameLocation": "3376:5:0", "nodeType": "VariableDeclaration", "scope": 242, - "src": "3274:18:0", + "src": "3363:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -17327,10 +18327,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "3274:5:0" + "src": "3363:5:0" }, "referencedDeclaration": 8, - "src": "3274:5:0", + "src": "3363:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -17339,81 +18339,340 @@ "visibility": "internal" } ], - "src": "3273:20:0" + "src": "3362:20:0" + }, + "scope": 243, + "src": "3279:104:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 683, + "src": "2923:463:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "YieldLever", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 682, + "linearizedBaseContracts": [682], + "name": "YieldLever", + "nameLocation": "3399:10:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 249, + "mutability": "constant", + "name": "yvUSDC", + "nameLocation": "3431:6:0", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "3415:75:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + }, + "typeName": { + "id": 245, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 244, + "name": "yVault", + "nodeType": "IdentifierPath", + "referencedDeclaration": 178, + "src": "3415:6:0" + }, + "referencedDeclaration": 178, + "src": "3415:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + } + }, + "value": { + "arguments": [ + { + "hexValue": "307861333534463335383239416539373565383530653233653936313562313144613142336443344445", + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3447:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xa354F35829Ae975e850e23e9615b11Da1B3dC4DE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 246, + "name": "yVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 178, + "src": "3440:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_yVault_$178_$", + "typeString": "type(contract yVault)" + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3440:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 255, + "mutability": "constant", + "name": "ilkId", + "nameLocation": "3511:5:0", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "3495:46:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + }, + "typeName": { + "id": 250, + "name": "bytes6", + "nodeType": "ElementaryTypeName", + "src": "3495:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "value": { + "arguments": [ + { + "hexValue": "3078333033393030303030303030", + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3526:14:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_53021371269120_by_1", + "typeString": "int_const 53021371269120" + }, + "value": "0x303900000000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_53021371269120_by_1", + "typeString": "int_const 53021371269120" + } + ], + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3519:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes6_$", + "typeString": "type(bytes6)" + }, + "typeName": { + "id": 251, + "name": "bytes6", + "nodeType": "ElementaryTypeName", + "src": "3519:6:0", + "typeDescriptions": {} + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3519:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 261, + "mutability": "constant", + "name": "iUSDC", + "nameLocation": "3576:5:0", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "3560:74:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IToken_$199", + "typeString": "contract IToken" + }, + "typeName": { + "id": 257, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 256, + "name": "IToken", + "nodeType": "IdentifierPath", + "referencedDeclaration": 199, + "src": "3560:6:0" + }, + "referencedDeclaration": 199, + "src": "3560:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IToken_$199", + "typeString": "contract IToken" + } + }, + "value": { + "arguments": [ + { + "hexValue": "307833324534633638423341346138313362373130353935416562413766364237363034416239633135", + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3591:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x32E4c68B3A4a813b710595AebA7f6B7604Ab9c15" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 258, + "name": "IToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 199, + "src": "3584:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IToken_$199_$", + "typeString": "type(contract IToken)" + } + }, + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3584:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IToken_$199", + "typeString": "contract IToken" + } }, - "scope": 243, - "src": "3192:102:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 655, - "src": "2843:453:0", - "usedErrors": [] - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "YieldLever", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 654, - "linearizedBaseContracts": [654], - "name": "YieldLever", - "nameLocation": "3307:10:0", - "nodeType": "ContractDefinition", - "nodes": [ + "visibility": "internal" + }, { "constant": true, - "id": 249, + "id": 267, "mutability": "constant", - "name": "yvUSDC", - "nameLocation": "3338:6:0", + "name": "usdc", + "nameLocation": "3656:4:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3322:75:0", + "scope": 682, + "src": "3640:73:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" + "typeIdentifier": "t_contract$_IERC20_$161", + "typeString": "contract IERC20" }, "typeName": { - "id": 245, + "id": 263, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 244, - "name": "yVault", + "id": 262, + "name": "IERC20", "nodeType": "IdentifierPath", - "referencedDeclaration": 178, - "src": "3322:6:0" + "referencedDeclaration": 161, + "src": "3640:6:0" }, - "referencedDeclaration": 178, - "src": "3322:6:0", + "referencedDeclaration": 161, + "src": "3640:6:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" + "typeIdentifier": "t_contract$_IERC20_$161", + "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "hexValue": "307861333534463335383239416539373565383530653233653936313562313144613142336443344445", - "id": 247, + "hexValue": "307841306238363939316336323138623336633164313944346132653945623063453336303665423438", + "id": 265, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3354:42:0", + "src": "3670:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "value": "0xa354F35829Ae975e850e23e9615b11Da1B3dC4DE" + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" } ], "expression": { @@ -17423,18 +18682,18 @@ "typeString": "address" } ], - "id": 246, - "name": "yVault", + "id": 264, + "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "3347:6:0", + "referencedDeclaration": 161, + "src": "3663:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_yVault_$178_$", - "typeString": "type(contract yVault)" + "typeIdentifier": "t_type$_t_contract$_IERC20_$161_$", + "typeString": "type(contract IERC20)" } }, - "id": 248, + "id": 266, "isConstant": false, "isLValue": false, "isPure": true, @@ -17442,86 +18701,87 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3347:50:0", + "src": "3663:50:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" + "typeIdentifier": "t_contract$_IERC20_$161", + "typeString": "contract IERC20" } }, "visibility": "internal" }, { "constant": true, - "id": 255, + "id": 273, "mutability": "constant", - "name": "ilkId", - "nameLocation": "3417:5:0", + "name": "usdcJoin", + "nameLocation": "3735:8:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3401:46:0", + "scope": 682, + "src": "3718:79:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 250, - "name": "bytes6", + "id": 268, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3401:6:0", + "src": "3718:7:0", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": { "arguments": [ { - "hexValue": "3078333033393030303030303030", - "id": 253, + "hexValue": "307830643941314137373362653561383365456264613233626639386566423835383543336165346634", + "id": 271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3432:14:0", + "src": "3754:42:0", "typeDescriptions": { - "typeIdentifier": "t_rational_53021371269120_by_1", - "typeString": "int_const 53021371269120" + "typeIdentifier": "t_address", + "typeString": "address" }, - "value": "0x303900000000" + "value": "0x0d9A1A773be5a83eEbda23bf98efB8585C3ae4f4" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_53021371269120_by_1", - "typeString": "int_const 53021371269120" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 252, + "id": 270, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3425:6:0", + "src": "3746:7:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes6_$", - "typeString": "type(bytes6)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, "typeName": { - "id": 251, - "name": "bytes6", + "id": 269, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3425:6:0", + "src": "3746:7:0", "typeDescriptions": {} } }, - "id": 254, + "id": 272, "isConstant": false, "isLValue": false, "isPure": true, @@ -17529,64 +18789,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3425:22:0", + "src": "3746:51:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bytes6", - "typeString": "bytes6" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": true, - "id": 261, + "id": 279, "mutability": "constant", - "name": "iUSDC", - "nameLocation": "3481:5:0", + "name": "ladle", + "nameLocation": "3822:5:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3465:74:0", + "scope": 682, + "src": "3802:82:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IToken_$199", - "typeString": "contract IToken" + "typeIdentifier": "t_contract$_YieldLadle_$108", + "typeString": "contract YieldLadle" }, "typeName": { - "id": 257, + "id": 275, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 256, - "name": "IToken", + "id": 274, + "name": "YieldLadle", "nodeType": "IdentifierPath", - "referencedDeclaration": 199, - "src": "3465:6:0" + "referencedDeclaration": 108, + "src": "3802:10:0" }, - "referencedDeclaration": 199, - "src": "3465:6:0", + "referencedDeclaration": 108, + "src": "3802:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IToken_$199", - "typeString": "contract IToken" + "typeIdentifier": "t_contract$_YieldLadle_$108", + "typeString": "contract YieldLadle" } }, "value": { "arguments": [ { - "hexValue": "307833324534633638423341346138313362373130353935416562413766364237363034416239633135", - "id": 259, + "hexValue": "307836634231386646324133336539383144316533384136363343613035366330613532363530363641", + "id": 277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3496:42:0", + "src": "3841:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "value": "0x32E4c68B3A4a813b710595AebA7f6B7604Ab9c15" + "value": "0x6cB18fF2A33e981D1e38A663Ca056c0a5265066A" } ], "expression": { @@ -17596,18 +18856,18 @@ "typeString": "address" } ], - "id": 258, - "name": "IToken", + "id": 276, + "name": "YieldLadle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "3489:6:0", + "referencedDeclaration": 108, + "src": "3830:10:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IToken_$199_$", - "typeString": "type(contract IToken)" + "typeIdentifier": "t_type$_t_contract$_YieldLadle_$108_$", + "typeString": "type(contract YieldLadle)" } }, - "id": 260, + "id": 278, "isConstant": false, "isLValue": false, "isPure": true, @@ -17615,64 +18875,152 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3489:50:0", + "src": "3830:54:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IToken_$199", - "typeString": "contract IToken" + "typeIdentifier": "t_contract$_YieldLadle_$108", + "typeString": "contract YieldLadle" } }, "visibility": "internal" }, { "constant": true, - "id": 267, + "id": 285, "mutability": "constant", - "name": "usdc", - "nameLocation": "3560:4:0", + "name": "yvUSDCJoin", + "nameLocation": "3906:10:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3544:73:0", + "scope": 682, + "src": "3889:81:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$161", - "typeString": "contract IERC20" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 263, + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3889:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "arguments": [ + { + "hexValue": "307834303361653733383445383962303836456132393335643566414665643037343635323432423338", + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3927:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x403ae7384E89b086Ea2935d5fAFed07465242B38" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3919:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3919:7:0", + "typeDescriptions": {} + } + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3919:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 291, + "mutability": "constant", + "name": "cauldron", + "nameLocation": "3993:8:0", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "3975:81:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Cauldron_$243", + "typeString": "contract Cauldron" + }, + "typeName": { + "id": 287, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 262, - "name": "IERC20", + "id": 286, + "name": "Cauldron", "nodeType": "IdentifierPath", - "referencedDeclaration": 161, - "src": "3544:6:0" + "referencedDeclaration": 243, + "src": "3975:8:0" }, - "referencedDeclaration": 161, - "src": "3544:6:0", + "referencedDeclaration": 243, + "src": "3975:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$161", - "typeString": "contract IERC20" + "typeIdentifier": "t_contract$_Cauldron_$243", + "typeString": "contract Cauldron" } }, "value": { "arguments": [ { - "hexValue": "307841306238363939316336323138623336633164313944346132653945623063453336303665423438", - "id": 265, + "hexValue": "307863383831393146386362386536443461363638423034376331433835303334333263334361383637", + "id": 289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3574:42:0", + "src": "4013:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + "value": "0xc88191F8cb8e6D4a668B047c1C8503432c3Ca867" } ], "expression": { @@ -17682,18 +19030,18 @@ "typeString": "address" } ], - "id": 264, - "name": "IERC20", + "id": 288, + "name": "Cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "3567:6:0", + "referencedDeclaration": 243, + "src": "4004:8:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$161_$", - "typeString": "type(contract IERC20)" + "typeIdentifier": "t_type$_t_contract$_Cauldron_$243_$", + "typeString": "type(contract Cauldron)" } }, - "id": 266, + "id": 290, "isConstant": false, "isLValue": false, "isPure": true, @@ -17701,87 +19049,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3567:50:0", + "src": "4004:52:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$161", - "typeString": "contract IERC20" + "typeIdentifier": "t_contract$_Cauldron_$243", + "typeString": "contract Cauldron" } }, "visibility": "internal" }, { "constant": true, - "id": 273, + "id": 300, "mutability": "constant", - "name": "usdcJoin", - "nameLocation": "3638:8:0", + "name": "usdcId", + "nameLocation": "4079:6:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3621:79:0", + "scope": 682, + "src": "4063:46:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" }, "typeName": { - "id": 268, - "name": "address", + "id": 292, + "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "3621:7:0", - "stateMutability": "nonpayable", + "src": "4063:6:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" } }, "value": { "arguments": [ { - "hexValue": "307830643941314137373362653561383365456264613233626639386566423835383543336165346634", - "id": 271, + "arguments": [ + { + "hexValue": "3032", + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4103:4:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c810d4a7471a2c9f9fdc62a2715a1c7f2c7102d52841c11e2cbc662de9cc030e", + "typeString": "literal_string \"02\"" + }, + "value": "02" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c810d4a7471a2c9f9fdc62a2715a1c7f2c7102d52841c11e2cbc662de9cc030e", + "typeString": "literal_string \"02\"" + } + ], + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 295, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4095:7:0", + "typeDescriptions": {} + } + }, + "id": 298, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3657:42:0", + "names": [], + "nodeType": "FunctionCall", + "src": "4095:13:0", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x0d9A1A773be5a83eEbda23bf98efB8585C3ae4f4" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 270, + "id": 294, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3649:7:0", + "src": "4088:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "typeIdentifier": "t_type$_t_bytes6_$", + "typeString": "type(bytes6)" }, "typeName": { - "id": 269, - "name": "address", + "id": 293, + "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "3649:7:0", + "src": "4088:6:0", "typeDescriptions": {} } }, - "id": 272, + "id": 299, "isConstant": false, "isLValue": false, "isPure": true, @@ -17789,305 +19180,419 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3649:51:0", + "src": "4088:21:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" } }, "visibility": "internal" }, { - "constant": true, - "id": 279, - "mutability": "constant", - "name": "ladle", - "nameLocation": "3724:5:0", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3704:82:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLadle_$108", - "typeString": "contract YieldLadle" - }, - "typeName": { - "id": 275, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 274, - "name": "YieldLadle", - "nodeType": "IdentifierPath", - "referencedDeclaration": 108, - "src": "3704:10:0" - }, - "referencedDeclaration": 108, - "src": "3704:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLadle_$108", - "typeString": "contract YieldLadle" - } - }, - "value": { - "arguments": [ + "body": { + "id": 318, + "nodeType": "Block", + "src": "4186:61:0", + "statements": [ { - "hexValue": "307836634231386646324133336539383144316533384136363343613035366330613532363530363641", - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3743:42:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 309, + "name": "yvUSDC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "4214:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + } + ], + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4206:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4206:7:0", + "typeDescriptions": {} + } + }, + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4206:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4228:7:0", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 311, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "4223:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4223:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4223:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 304, + "name": "usdc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 267, + "src": "4193:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$161", + "typeString": "contract IERC20" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 140, + "src": "4193:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4193:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "value": "0x6cB18fF2A33e981D1e38A663Ca056c0a5265066A" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 276, - "name": "YieldLadle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 108, - "src": "3732:10:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_YieldLadle_$108_$", - "typeString": "type(contract YieldLadle)" + "id": 317, + "nodeType": "ExpressionStatement", + "src": "4193:48:0" } - }, - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3732:54:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLadle_$108", - "typeString": "contract YieldLadle" - } + ] }, - "visibility": "internal" - }, - { - "constant": true, - "id": 285, - "mutability": "constant", - "name": "yvUSDCJoin", - "nameLocation": "3807:10:0", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3790:81:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "documentation": { + "id": 301, + "nodeType": "StructuredDocumentation", + "src": "4116:52:0", + "text": "@dev YieldLever is not expected to hold any USDC" }, - "typeName": { - "id": 280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3790:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 319, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [], + "src": "4183:2:0" }, - "value": { - "arguments": [ - { - "hexValue": "307834303361653733383445383962303836456132393335643566414665643037343635323432423338", - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3828:42:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x403ae7384E89b086Ea2935d5fAFed07465242B38" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3820:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3820:7:0", - "typeDescriptions": {} - } - }, - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3820:51:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "returnParameters": { + "id": 303, + "nodeType": "ParameterList", + "parameters": [], + "src": "4186:0:0" }, - "visibility": "internal" + "scope": 682, + "src": "4172:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" }, { - "constant": true, - "id": 291, - "mutability": "constant", - "name": "cauldron", - "nameLocation": "3893:8:0", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3875:81:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cauldron_$243", - "typeString": "contract Cauldron" - }, - "typeName": { - "id": 287, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 286, - "name": "Cauldron", - "nodeType": "IdentifierPath", - "referencedDeclaration": 243, - "src": "3875:8:0" - }, - "referencedDeclaration": 243, - "src": "3875:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cauldron_$243", - "typeString": "contract Cauldron" - } - }, - "value": { - "arguments": [ + "body": { + "id": 399, + "nodeType": "Block", + "src": "5160:971:0", + "statements": [ { - "hexValue": "307863383831393146386362386536443461363638423034376331433835303334333263334361383637", - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3913:42:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + }, + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 334, + "name": "seriesId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "5231:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + ], + "expression": { + "id": 332, + "name": "cauldron", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "5215:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Cauldron_$243", + "typeString": "contract Cauldron" + } + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "series", + "nodeType": "MemberAccess", + "referencedDeclaration": 207, + "src": "5215:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes6_$returns$_t_struct$_Series_$17_memory_ptr_$", + "typeString": "function (bytes6) view external returns (struct Series memory)" + } + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5215:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Series_$17_memory_ptr", + "typeString": "struct Series memory" + } + }, + "id": 336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "baseId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14, + "src": "5215:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 337, + "name": "usdcId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 300, + "src": "5251:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "src": "5215:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 331, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5207:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "value": "0xc88191F8cb8e6D4a668B047c1C8503432c3Ca867" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 288, - "name": "Cauldron", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 243, - "src": "3904:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Cauldron_$243_$", - "typeString": "type(contract Cauldron)" - } - }, - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3904:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cauldron_$243", - "typeString": "contract Cauldron" - } - }, - "visibility": "internal" - }, - { - "body": { - "id": 371, - "nodeType": "Block", - "src": "4851:707:0", - "statements": [ + "id": 340, + "nodeType": "ExpressionStatement", + "src": "5207:51:0" + }, { "expression": { "arguments": [ { "expression": { - "id": 306, + "id": 344, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4912:3:0", + "src": "5511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 307, + "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4912:10:0", + "src": "5511:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18096,14 +19601,14 @@ { "arguments": [ { - "id": 310, + "id": 348, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "4932:4:0", + "src": "5531:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -18111,30 +19616,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 309, + "id": 347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4924:7:0", + "src": "5523:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 308, + "id": 346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4924:7:0", + "src": "5523:7:0", "typeDescriptions": {} } }, - "id": 311, + "id": 349, "isConstant": false, "isLValue": false, "isPure": false, @@ -18142,7 +19647,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4924:13:0", + "src": "5523:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18150,12 +19655,12 @@ } }, { - "id": 312, + "id": 350, "name": "baseAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "4939:10:0", + "referencedDeclaration": 322, + "src": "5538:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18178,18 +19683,18 @@ } ], "expression": { - "id": 303, + "id": 341, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "4894:4:0", + "src": "5493:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 305, + "id": 343, "isConstant": false, "isLValue": false, "isPure": false, @@ -18197,13 +19702,13 @@ "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 160, - "src": "4894:17:0", + "src": "5493:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 313, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -18211,29 +19716,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4894:56:0", + "src": "5493:56:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 314, + "id": 352, "nodeType": "ExpressionStatement", - "src": "4894:56:0" + "src": "5493:56:0" }, { - "assignments": [316, null], + "assignments": [354, null], "declarations": [ { "constant": false, - "id": 316, + "id": 354, "mutability": "mutable", "name": "vaultId", - "nameLocation": "4992:7:0", + "nameLocation": "5593:7:0", "nodeType": "VariableDeclaration", - "scope": 371, - "src": "4984:15:0", + "scope": 399, + "src": "5585:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18241,10 +19746,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 315, + "id": 353, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "4984:7:0", + "src": "5585:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -18254,28 +19759,28 @@ }, null ], - "id": 323, + "id": 361, "initialValue": { "arguments": [ { - "id": 319, + "id": 357, "name": "seriesId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "5017:8:0", + "referencedDeclaration": 328, + "src": "5618:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" } }, { - "id": 320, + "id": 358, "name": "ilkId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "5027:5:0", + "src": "5628:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -18283,14 +19788,14 @@ }, { "hexValue": "30", - "id": 321, + "id": 359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5034:1:0", + "src": "5635:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -18314,18 +19819,18 @@ } ], "expression": { - "id": 317, + "id": 355, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "5005:5:0", + "src": "5606:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 318, + "id": 356, "isConstant": false, "isLValue": false, "isPure": false, @@ -18333,217 +19838,13 @@ "memberName": "build", "nodeType": "MemberAccess", "referencedDeclaration": 43, - "src": "5005:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes6_$_t_bytes6_$_t_uint8_$returns$_t_bytes12_$_t_struct$_Vault_$8_memory_ptr_$", - "typeString": "function (bytes6,bytes6,uint8) payable external returns (bytes12,struct Vault memory)" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5005:31:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes12_$_t_struct$_Vault_$8_memory_ptr_$", - "typeString": "tuple(bytes12,struct Vault memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4983:53:0" - }, - { - "assignments": [325], - "declarations": [ - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "investAmount", - "nameLocation": "5051:12:0", - "nodeType": "VariableDeclaration", - "scope": 371, - "src": "5043:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 324, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5043:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 329, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 326, - "name": "baseAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "5066:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 327, - "name": "borrowAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 296, - "src": "5079:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "src": "5066:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5043:48:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 335, - "name": "yvUSDC", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "5118:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" - } - ], - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5110:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5110:7:0", - "typeDescriptions": {} - } - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5110:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 337, - "name": "investAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "5127:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 330, - "name": "usdc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 267, - "src": "5097:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$161", - "typeString": "contract IERC20" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 140, - "src": "5097:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "src": "5606:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes6_$_t_bytes6_$_t_uint8_$returns$_t_bytes12_$_t_struct$_Vault_$8_memory_ptr_$", + "typeString": "function (bytes6,bytes6,uint8) payable external returns (bytes12,struct Vault memory)" } }, - "id": 338, + "id": 360, "isConstant": false, "isLValue": false, "isPure": false, @@ -18551,27 +19852,103 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5097:43:0", + "src": "5606:31:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$_t_bytes12_$_t_struct$_Vault_$8_memory_ptr_$", + "typeString": "tuple(bytes12,struct Vault memory)" } }, - "id": 339, - "nodeType": "ExpressionStatement", - "src": "5097:43:0" + "nodeType": "VariableDeclarationStatement", + "src": "5584:53:0" + }, + { + "assignments": [363], + "declarations": [ + { + "constant": false, + "id": 363, + "mutability": "mutable", + "name": "investAmount", + "nameLocation": "5654:12:0", + "nodeType": "VariableDeclaration", + "scope": 399, + "src": "5646:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5646:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 367, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 364, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 322, + "src": "5669:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 365, + "name": "borrowAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "5682:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "5669:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5646:48:0" }, { "expression": { "arguments": [ { - "id": 343, + "id": 371, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 296, - "src": "5199:12:0", + "referencedDeclaration": 324, + "src": "5757:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -18580,14 +19957,14 @@ { "arguments": [ { - "id": 346, + "id": 374, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "5229:4:0", + "src": "5788:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -18595,30 +19972,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 345, + "id": 373, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5221:7:0", + "src": "5780:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 344, + "id": 372, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:0", + "src": "5780:7:0", "typeDescriptions": {} } }, - "id": 347, + "id": 375, "isConstant": false, "isLValue": false, "isPure": false, @@ -18626,7 +20003,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5221:13:0", + "src": "5780:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18636,14 +20013,14 @@ { "arguments": [ { - "id": 350, + "id": 378, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "5252:4:0", + "src": "5812:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -18651,30 +20028,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 349, + "id": 377, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5244:7:0", + "src": "5804:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 348, + "id": 376, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5244:7:0", + "src": "5804:7:0", "typeDescriptions": {} } }, - "id": 351, + "id": 379, "isConstant": false, "isLValue": false, "isPure": false, @@ -18682,7 +20059,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5244:13:0", + "src": "5804:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18691,14 +20068,14 @@ }, { "hexValue": "", - "id": 352, + "id": 380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5267:2:0", + "src": "5828:2:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -18709,14 +20086,14 @@ "arguments": [ { "hexValue": "646f496e766573742875696e743235362c75696e743132382c75696e743132382c6279746573313229", - "id": 355, + "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5314:43:0", + "src": "5877:43:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_47b34845029d274e25eda635cf8939b29bcf4a4002e0c275b9c8cce466366569", "typeString": "literal_string \"doInvest(uint256,uint128,uint128,bytes12)\"" @@ -18724,48 +20101,48 @@ "value": "doInvest(uint256,uint128,uint128,bytes12)" }, { - "id": 356, + "id": 384, "name": "investAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "5369:12:0", + "referencedDeclaration": 363, + "src": "5933:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 357, + "id": 385, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 296, - "src": "5393:12:0", + "referencedDeclaration": 324, + "src": "5958:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 358, + "id": 386, "name": "maxFyAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "5417:11:0", + "referencedDeclaration": 326, + "src": "5983:11:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 359, + "id": 387, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5440:7:0", + "referencedDeclaration": 354, + "src": "6007:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -18796,31 +20173,31 @@ } ], "expression": { - "id": 353, + "id": 381, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "5279:3:0", + "src": "5841:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 354, + "id": 382, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "5279:23:0", + "src": "5841:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 360, + "id": 388, "isConstant": false, "isLValue": false, "isPure": false, @@ -18828,7 +20205,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5279:178:0", + "src": "5841:184:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -18860,18 +20237,18 @@ } ], "expression": { - "id": 340, + "id": 368, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "5172:5:0", + "src": "5729:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" } }, - "id": 342, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, @@ -18879,13 +20256,13 @@ "memberName": "flashBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 198, - "src": "5172:17:0", + "src": "5729:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,address,address,string memory,bytes memory) payable external returns (bytes memory)" } }, - "id": 361, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, @@ -18893,27 +20270,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5172:291:0", + "src": "5729:303:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 362, + "id": 390, "nodeType": "ExpressionStatement", - "src": "5172:291:0" + "src": "5729:303:0" }, { "expression": { "arguments": [ { - "id": 366, + "id": 394, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5533:7:0", + "referencedDeclaration": 354, + "src": "6105:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -18921,25 +20298,25 @@ }, { "expression": { - "id": 367, + "id": 395, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "5542:3:0", + "src": "6114:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 368, + "id": 396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "5542:10:0", + "src": "6114:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18958,18 +20335,18 @@ } ], "expression": { - "id": 363, + "id": 391, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "5519:8:0", + "src": "6091:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 365, + "id": 393, "isConstant": false, "isLValue": false, "isPure": false, @@ -18977,13 +20354,13 @@ "memberName": "give", "nodeType": "MemberAccess", "referencedDeclaration": 242, - "src": "5519:13:0", + "src": "6091:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes12_$_t_address_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12,address) external returns (struct Vault memory)" } }, - "id": 369, + "id": 397, "isConstant": false, "isLValue": false, "isPure": false, @@ -18991,46 +20368,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5519:34:0", + "src": "6091:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 370, + "id": 398, "nodeType": "ExpressionStatement", - "src": "5519:34:0" + "src": "6091:34:0" } ] }, "documentation": { - "id": 292, + "id": 320, "nodeType": "StructuredDocumentation", - "src": "3961:761:0", + "src": "4253:772:0", "text": "@notice Invest `baseAmount` and borrow an additional `borrowAmount`.\n Use this to obtain a maximum of `maxFyAmount` to repay the flash loan.\n The end goal is to have a debt of `borrowAmount`, but earn interest on\n the entire collateral, including the borrowed part.\n @param baseAmount - The amount to invest from your own funds.\n @param borrowAmount - The extra amount to borrow. This is immediately\n repaid, so setting this to 3 times baseAmount will incur a debt of 75%\n of the collateral.\n @param maxFyAmount - The maximum amount of fyTokens to sell. Should be\n enough to cover the flash loan.\n @param seriesId - The series Id to invest in. For example, 0x303230360000\n for FYUSDC06LP." }, "functionSelector": "fcd064cf", - "id": 372, + "id": 400, "implemented": true, "kind": "function", "modifiers": [], "name": "invest", - "nameLocation": "4735:6:0", + "nameLocation": "5039:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 301, + "id": 329, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 294, + "id": 322, "mutability": "mutable", "name": "baseAmount", - "nameLocation": "4755:10:0", + "nameLocation": "5060:10:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4747:18:0", + "scope": 400, + "src": "5052:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19038,10 +20415,10 @@ "typeString": "uint256" }, "typeName": { - "id": 293, + "id": 321, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4747:7:0", + "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19051,13 +20428,13 @@ }, { "constant": false, - "id": 296, + "id": 324, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "4779:12:0", + "nameLocation": "5085:12:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4771:20:0", + "scope": 400, + "src": "5077:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19065,10 +20442,10 @@ "typeString": "uint128" }, "typeName": { - "id": 295, + "id": 323, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "4771:7:0", + "src": "5077:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -19078,13 +20455,13 @@ }, { "constant": false, - "id": 298, + "id": 326, "mutability": "mutable", "name": "maxFyAmount", - "nameLocation": "4805:11:0", + "nameLocation": "5112:11:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4797:19:0", + "scope": 400, + "src": "5104:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19092,10 +20469,10 @@ "typeString": "uint128" }, "typeName": { - "id": 297, + "id": 325, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "4797:7:0", + "src": "5104:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -19105,13 +20482,13 @@ }, { "constant": false, - "id": 300, + "id": 328, "mutability": "mutable", "name": "seriesId", - "nameLocation": "4829:8:0", + "nameLocation": "5137:8:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4822:15:0", + "scope": 400, + "src": "5130:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19119,10 +20496,10 @@ "typeString": "bytes6" }, "typeName": { - "id": 299, + "id": 327, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "4822:6:0", + "src": "5130:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -19131,38 +20508,38 @@ "visibility": "internal" } ], - "src": "4741:100:0" + "src": "5045:105:0" }, "returnParameters": { - "id": 302, + "id": 330, "nodeType": "ParameterList", "parameters": [], - "src": "4851:0:0" + "src": "5160:0:0" }, - "scope": 654, - "src": "4726:832:0", + "scope": 682, + "src": "5030:1101:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 408, + "id": 436, "nodeType": "Block", - "src": "5979:472:0", + "src": "6725:482:0", "statements": [ { - "assignments": [385], + "assignments": [413], "declarations": [ { "constant": false, - "id": 385, + "id": 413, "mutability": "mutable", "name": "yvUSDCBalance", - "nameLocation": "6150:13:0", + "nameLocation": "6900:13:0", "nodeType": "VariableDeclaration", - "scope": 408, - "src": "6142:21:0", + "scope": 436, + "src": "6892:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19170,10 +20547,10 @@ "typeString": "uint128" }, "typeName": { - "id": 384, + "id": 412, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "6142:7:0", + "src": "6892:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -19182,30 +20559,30 @@ "visibility": "internal" } ], - "id": 394, + "id": 422, "initialValue": { "arguments": [ { "arguments": [ { - "id": 390, + "id": 418, "name": "investAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 375, - "src": "6189:12:0", + "referencedDeclaration": 403, + "src": "6939:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 391, + "id": 419, "name": "yvUSDCJoin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 285, - "src": "6203:10:0", + "src": "6953:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19224,18 +20601,18 @@ } ], "expression": { - "id": 388, + "id": 416, "name": "yvUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 249, - "src": "6174:6:0", + "src": "6924:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" } }, - "id": 389, + "id": 417, "isConstant": false, "isLValue": false, "isPure": false, @@ -19243,13 +20620,13 @@ "memberName": "deposit", "nodeType": "MemberAccess", "referencedDeclaration": 172, - "src": "6174:14:0", + "src": "6924:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$", "typeString": "function (uint256,address) external returns (uint256)" } }, - "id": 392, + "id": 420, "isConstant": false, "isLValue": false, "isPure": false, @@ -19257,7 +20634,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:40:0", + "src": "6924:40:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19272,26 +20649,26 @@ "typeString": "uint256" } ], - "id": 387, + "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6166:7:0", + "src": "6916:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 386, + "id": 414, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "6166:7:0", + "src": "6916:7:0", "typeDescriptions": {} } }, - "id": 393, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, @@ -19299,7 +20676,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:49:0", + "src": "6916:49:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -19307,18 +20684,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6142:73:0" + "src": "6892:73:0" }, { "expression": { "arguments": [ { - "id": 398, + "id": 426, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "6380:7:0", + "referencedDeclaration": 409, + "src": "7135:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -19327,12 +20704,12 @@ { "arguments": [ { - "id": 401, + "id": 429, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "6397:5:0", + "src": "7152:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -19346,26 +20723,26 @@ "typeString": "contract IToken" } ], - "id": 400, + "id": 428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6389:7:0", + "src": "7144:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 399, + "id": 427, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6389:7:0", + "src": "7144:7:0", "typeDescriptions": {} } }, - "id": 402, + "id": 430, "isConstant": false, "isLValue": false, "isPure": true, @@ -19373,7 +20750,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6389:14:0", + "src": "7144:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19381,36 +20758,36 @@ } }, { - "id": 403, + "id": 431, "name": "yvUSDCBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "6405:13:0", + "referencedDeclaration": 413, + "src": "7160:13:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 404, + "id": 432, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "6420:12:0", + "referencedDeclaration": 405, + "src": "7175:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 405, + "id": 433, "name": "maxFyAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 379, - "src": "6434:11:0", + "referencedDeclaration": 407, + "src": "7189:11:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -19441,18 +20818,18 @@ } ], "expression": { - "id": 395, + "id": 423, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "6368:5:0", + "src": "7123:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 397, + "id": 425, "isConstant": false, "isLValue": false, "isPure": false, @@ -19460,13 +20837,13 @@ "memberName": "serve", "nodeType": "MemberAccess", "referencedDeclaration": 58, - "src": "6368:11:0", + "src": "7123:11:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes12_$_t_address_$_t_uint128_$_t_uint128_$_t_uint128_$returns$_t_uint128_$", "typeString": "function (bytes12,address,uint128,uint128,uint128) payable external returns (uint128)" } }, - "id": 406, + "id": 434, "isConstant": false, "isLValue": false, "isPure": false, @@ -19474,46 +20851,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6368:78:0", + "src": "7123:78:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 407, + "id": 435, "nodeType": "ExpressionStatement", - "src": "6368:78:0" + "src": "7123:78:0" } ] }, "documentation": { - "id": 373, + "id": 401, "nodeType": "StructuredDocumentation", - "src": "5562:285:0", - "text": "@notice This function is called inside the flash loan and handles the\n actual investment.\n @param borrowAmount - The amount borrowed using a flash loan.\n @param maxFyAmount - The maximum amount of fyTokens to sell.\n @param vaultId - The vault id to invest in." + "src": "6137:450:0", + "text": "@notice This function is called inside the flash loan and handles the\n actual investment.\n @param borrowAmount - The amount borrowed using a flash loan.\n @param maxFyAmount - The maximum amount of fyTokens to sell.\n @param vaultId - The vault id to invest in.\n @dev Calling this function outside a flash loan achieves nothing,\n since the contract needs to have assets and own the vault it's borrowing from." }, "functionSelector": "47b34845", - "id": 409, + "id": 437, "implemented": true, "kind": "function", "modifiers": [], "name": "doInvest", - "nameLocation": "5859:8:0", + "nameLocation": "6600:8:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 382, + "id": 410, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 375, + "id": 403, "mutability": "mutable", "name": "investAmount", - "nameLocation": "5881:12:0", + "nameLocation": "6623:12:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5873:20:0", + "scope": 437, + "src": "6615:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19521,10 +20898,10 @@ "typeString": "uint256" }, "typeName": { - "id": 374, + "id": 402, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:0", + "src": "6615:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19534,13 +20911,13 @@ }, { "constant": false, - "id": 377, + "id": 405, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "5907:12:0", + "nameLocation": "6650:12:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5899:20:0", + "scope": 437, + "src": "6642:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19548,10 +20925,10 @@ "typeString": "uint128" }, "typeName": { - "id": 376, + "id": 404, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "5899:7:0", + "src": "6642:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -19561,13 +20938,13 @@ }, { "constant": false, - "id": 379, + "id": 407, "mutability": "mutable", "name": "maxFyAmount", - "nameLocation": "5933:11:0", + "nameLocation": "6677:11:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5925:19:0", + "scope": 437, + "src": "6669:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19575,10 +20952,10 @@ "typeString": "uint128" }, "typeName": { - "id": 378, + "id": 406, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "5925:7:0", + "src": "6669:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -19588,13 +20965,13 @@ }, { "constant": false, - "id": 381, + "id": 409, "mutability": "mutable", "name": "vaultId", - "nameLocation": "5958:7:0", + "nameLocation": "6703:7:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5950:15:0", + "scope": 437, + "src": "6695:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19602,10 +20979,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 380, + "id": 408, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "5950:7:0", + "src": "6695:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -19614,38 +20991,38 @@ "visibility": "internal" } ], - "src": "5867:102:0" + "src": "6608:107:0" }, "returnParameters": { - "id": 383, + "id": 411, "nodeType": "ParameterList", "parameters": [], - "src": "5979:0:0" + "src": "6725:0:0" }, - "scope": 654, - "src": "5850:601:0", + "scope": 682, + "src": "6591:616:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 529, + "id": 557, "nodeType": "Block", - "src": "7262:1223:0", + "src": "8031:1258:0", "statements": [ { - "assignments": [427], + "assignments": [455], "declarations": [ { "constant": false, - "id": 427, + "id": 455, "mutability": "mutable", "name": "vault_", - "nameLocation": "7281:6:0", + "nameLocation": "8051:6:0", "nodeType": "VariableDeclaration", - "scope": 529, - "src": "7268:19:0", + "scope": 557, + "src": "8038:19:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -19653,17 +21030,17 @@ "typeString": "struct Vault" }, "typeName": { - "id": 426, + "id": 454, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 425, + "id": 453, "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "7268:5:0" + "src": "8038:5:0" }, "referencedDeclaration": 8, - "src": "7268:5:0", + "src": "8038:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -19672,16 +21049,16 @@ "visibility": "internal" } ], - "id": 432, + "id": 460, "initialValue": { "arguments": [ { - "id": 430, + "id": 458, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7306:7:0", + "referencedDeclaration": 440, + "src": "8076:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -19696,18 +21073,18 @@ } ], "expression": { - "id": 428, + "id": 456, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "7290:8:0", + "src": "8060:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 429, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -19715,13 +21092,13 @@ "memberName": "vaults", "nodeType": "MemberAccess", "referencedDeclaration": 215, - "src": "7290:15:0", + "src": "8060:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes12_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12) view external returns (struct Vault memory)" } }, - "id": 431, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, @@ -19729,7 +21106,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7290:24:0", + "src": "8060:24:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", @@ -19737,20 +21114,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7268:46:0" + "src": "8038:46:0" }, { - "assignments": [435], + "assignments": [463], "declarations": [ { "constant": false, - "id": 435, + "id": 463, "mutability": "mutable", "name": "series_", - "nameLocation": "7334:7:0", + "nameLocation": "8105:7:0", "nodeType": "VariableDeclaration", - "scope": 529, - "src": "7320:21:0", + "scope": 557, + "src": "8091:21:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -19758,17 +21135,17 @@ "typeString": "struct Series" }, "typeName": { - "id": 434, + "id": 462, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 433, + "id": 461, "name": "Series", "nodeType": "IdentifierPath", "referencedDeclaration": 17, - "src": "7320:6:0" + "src": "8091:6:0" }, "referencedDeclaration": 17, - "src": "7320:6:0", + "src": "8091:6:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_storage_ptr", "typeString": "struct Series" @@ -19777,16 +21154,16 @@ "visibility": "internal" } ], - "id": 440, + "id": 468, "initialValue": { "arguments": [ { - "id": 438, + "id": 466, "name": "seriesId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "7360:8:0", + "referencedDeclaration": 450, + "src": "8131:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -19801,18 +21178,18 @@ } ], "expression": { - "id": 436, + "id": 464, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "7344:8:0", + "src": "8115:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 437, + "id": 465, "isConstant": false, "isLValue": false, "isPure": false, @@ -19820,13 +21197,13 @@ "memberName": "series", "nodeType": "MemberAccess", "referencedDeclaration": 207, - "src": "7344:15:0", + "src": "8115:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes6_$returns$_t_struct$_Series_$17_memory_ptr_$", "typeString": "function (bytes6) view external returns (struct Series memory)" } }, - "id": 439, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, @@ -19834,7 +21211,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7344:25:0", + "src": "8115:25:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_memory_ptr", @@ -19842,7 +21219,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7320:49:0" + "src": "8091:49:0" }, { "expression": { @@ -19852,25 +21229,25 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 446, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 442, + "id": 470, "name": "vault_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "7509:6:0", + "referencedDeclaration": 455, + "src": "8284:6:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 443, + "id": 471, "isConstant": false, "isLValue": true, "isPure": false, @@ -19878,7 +21255,7 @@ "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 3, - "src": "7509:12:0", + "src": "8284:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19888,31 +21265,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 444, + "id": 472, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7525:3:0", + "src": "8300:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 445, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7525:10:0", + "src": "8300:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7509:26:0", + "src": "8284:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19926,18 +21303,18 @@ "typeString": "bool" } ], - "id": 441, + "id": 469, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [4294967278, 4294967278], "referencedDeclaration": 4294967278, - "src": "7501:7:0", + "src": "8276:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 447, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -19945,27 +21322,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7501:35:0", + "src": "8276:35:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 448, + "id": 476, "nodeType": "ExpressionStatement", - "src": "7501:35:0" + "src": "8276:35:0" }, { "expression": { "arguments": [ { - "id": 452, + "id": 480, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7595:7:0", + "referencedDeclaration": 440, + "src": "8373:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -19974,14 +21351,14 @@ { "arguments": [ { - "id": 455, + "id": 483, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "7612:4:0", + "src": "8390:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -19989,30 +21366,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 454, + "id": 482, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7604:7:0", + "src": "8382:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 453, + "id": 481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7604:7:0", + "src": "8382:7:0", "typeDescriptions": {} } }, - "id": 456, + "id": 484, "isConstant": false, "isLValue": false, "isPure": false, @@ -20020,7 +21397,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7604:13:0", + "src": "8382:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -20040,18 +21417,18 @@ } ], "expression": { - "id": 449, + "id": 477, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "7581:8:0", + "src": "8359:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 451, + "id": 479, "isConstant": false, "isLValue": false, "isPure": false, @@ -20059,13 +21436,13 @@ "memberName": "give", "nodeType": "MemberAccess", "referencedDeclaration": 242, - "src": "7581:13:0", + "src": "8359:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes12_$_t_address_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12,address) external returns (struct Vault memory)" } }, - "id": 457, + "id": 485, "isConstant": false, "isLValue": false, "isPure": false, @@ -20073,16 +21450,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7581:37:0", + "src": "8359:37:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 458, + "id": 486, "nodeType": "ExpressionStatement", - "src": "7581:37:0" + "src": "8359:37:0" }, { "condition": { @@ -20090,7 +21467,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 466, + "id": 494, "isConstant": false, "isLValue": false, "isPure": false, @@ -20099,25 +21476,25 @@ "arguments": [ { "expression": { - "id": 461, + "id": 489, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "7638:5:0", + "src": "8418:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 462, + "id": 490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "7638:15:0", + "src": "8418:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20131,26 +21508,26 @@ "typeString": "uint256" } ], - "id": 460, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7631:6:0", + "src": "8411:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 459, + "id": 487, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7631:6:0", + "src": "8411:6:0", "typeDescriptions": {} } }, - "id": 463, + "id": 491, "isConstant": false, "isLValue": false, "isPure": false, @@ -20158,7 +21535,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7631:23:0", + "src": "8411:23:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -20169,18 +21546,18 @@ "operator": "<", "rightExpression": { "expression": { - "id": 464, + "id": 492, "name": "series_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "7657:7:0", + "referencedDeclaration": 463, + "src": "8437:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_memory_ptr", "typeString": "struct Series memory" } }, - "id": 465, + "id": 493, "isConstant": false, "isLValue": true, "isPure": false, @@ -20188,35 +21565,35 @@ "memberName": "maturity", "nodeType": "MemberAccess", "referencedDeclaration": 16, - "src": "7657:16:0", + "src": "8437:16:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "7631:42:0", + "src": "8411:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 519, + "id": 547, "nodeType": "Block", - "src": "7998:364:0", + "src": "8788:374:0", "statements": [ { - "assignments": [490], + "assignments": [518], "declarations": [ { "constant": false, - "id": 490, + "id": 518, "mutability": "mutable", "name": "base", - "nameLocation": "8092:4:0", + "nameLocation": "8884:4:0", "nodeType": "VariableDeclaration", - "scope": 519, - "src": "8084:12:0", + "scope": 547, + "src": "8876:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20224,10 +21601,10 @@ "typeString": "uint128" }, "typeName": { - "id": 489, + "id": 517, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "8084:7:0", + "src": "8876:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -20236,28 +21613,28 @@ "visibility": "internal" } ], - "id": 496, + "id": 524, "initialValue": { "arguments": [ { - "id": 493, + "id": 521, "name": "seriesId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "8119:8:0", + "referencedDeclaration": 450, + "src": "8911:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" } }, { - "id": 494, + "id": 522, "name": "art", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "8129:3:0", + "referencedDeclaration": 448, + "src": "8921:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -20276,18 +21653,18 @@ } ], "expression": { - "id": 491, + "id": 519, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "8099:8:0", + "src": "8891:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 492, + "id": 520, "isConstant": false, "isLValue": false, "isPure": false, @@ -20295,13 +21672,13 @@ "memberName": "debtToBase", "nodeType": "MemberAccess", "referencedDeclaration": 232, - "src": "8099:19:0", + "src": "8891:19:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes6_$_t_uint128_$returns$_t_uint128_$", "typeString": "function (bytes6,uint128) external returns (uint128)" } }, - "id": 495, + "id": 523, "isConstant": false, "isLValue": false, "isPure": false, @@ -20309,7 +21686,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8099:34:0", + "src": "8891:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -20317,30 +21694,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8084:49:0" + "src": "8876:49:0" }, { "expression": { "arguments": [ { - "id": 500, + "id": 528, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "8168:4:0", + "referencedDeclaration": 518, + "src": "8962:4:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 501, + "id": 529, "name": "usdcJoin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 273, - "src": "8182:8:0", + "src": "8977:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20349,14 +21726,14 @@ { "arguments": [ { - "id": 504, + "id": 532, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "8208:4:0", + "src": "9004:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -20364,30 +21741,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 503, + "id": 531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8200:7:0", + "src": "8996:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 502, + "id": 530, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8200:7:0", + "src": "8996:7:0", "typeDescriptions": {} } }, - "id": 505, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -20395,7 +21772,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8200:13:0", + "src": "8996:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -20404,14 +21781,14 @@ }, { "hexValue": "", - "id": 506, + "id": 534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8223:2:0", + "src": "9020:2:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -20422,14 +21799,14 @@ "arguments": [ { "hexValue": "646f436c6f736528616464726573732c627974657331322c75696e743132382c75696e743132382c75696e7431323829", - "id": 509, + "id": 537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8259:50:0", + "src": "9057:50:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6e6bf1f414ec0163a4dc56c7255a81d43898d85fe2872f717866f457729df53f", "typeString": "literal_string \"doClose(address,bytes12,uint128,uint128,uint128)\"" @@ -20438,73 +21815,73 @@ }, { "expression": { - "id": 510, + "id": 538, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8311:3:0", + "src": "9109:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 511, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8311:10:0", + "src": "9109:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 512, + "id": 540, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "8323:7:0", + "referencedDeclaration": 440, + "src": "9121:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" } }, { - "id": 513, + "id": 541, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "8332:4:0", + "referencedDeclaration": 518, + "src": "9130:4:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 514, + "id": 542, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "8338:3:0", + "referencedDeclaration": 446, + "src": "9136:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 515, + "id": 543, "name": "art", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "8343:3:0", + "referencedDeclaration": 448, + "src": "9141:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -20539,31 +21916,31 @@ } ], "expression": { - "id": 507, + "id": 535, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "8235:3:0", + "src": "9033:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 508, + "id": 536, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "8235:23:0", + "src": "9033:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 516, + "id": 544, "isConstant": false, "isLValue": false, "isPure": false, @@ -20571,7 +21948,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8235:112:0", + "src": "9033:112:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -20603,18 +21980,18 @@ } ], "expression": { - "id": 497, + "id": 525, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "8141:5:0", + "src": "8934:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" } }, - "id": 499, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -20622,13 +21999,13 @@ "memberName": "flashBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 198, - "src": "8141:17:0", + "src": "8934:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,address,address,string memory,bytes memory) payable external returns (bytes memory)" } }, - "id": 517, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -20636,49 +22013,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8141:214:0", + "src": "8934:220:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 518, + "id": 546, "nodeType": "ExpressionStatement", - "src": "8141:214:0" + "src": "8934:220:0" } ] }, - "id": 520, + "id": 548, "nodeType": "IfStatement", - "src": "7627:735:0", + "src": "8407:755:0", "trueBody": { - "id": 488, + "id": 516, "nodeType": "Block", - "src": "7675:317:0", + "src": "8455:327:0", "statements": [ { "expression": { "arguments": [ { - "id": 470, + "id": 498, "name": "maxAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "7805:9:0", + "referencedDeclaration": 442, + "src": "8589:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 471, + "id": 499, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "7824:4:0", + "referencedDeclaration": 444, + "src": "8609:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20687,14 +22064,14 @@ { "arguments": [ { - "id": 474, + "id": 502, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "7846:4:0", + "src": "8632:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -20702,30 +22079,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 473, + "id": 501, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7838:7:0", + "src": "8624:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 472, + "id": 500, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7838:7:0", + "src": "8624:7:0", "typeDescriptions": {} } }, - "id": 475, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, @@ -20733,7 +22110,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7838:13:0", + "src": "8624:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -20742,14 +22119,14 @@ }, { "hexValue": "", - "id": 476, + "id": 504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7861:2:0", + "src": "8648:2:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -20760,14 +22137,14 @@ "arguments": [ { "hexValue": "646f526570617928616464726573732c627974657331322c75696e743235362c75696e7431323829", - "id": 479, + "id": 507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7897:42:0", + "src": "8685:42:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_50bf94d73fcc33b85b59858c665e1bad2dd66f9efaa09d3e9592ec241319c0dd", "typeString": "literal_string \"doRepay(address,bytes12,uint256,uint128)\"" @@ -20776,61 +22153,61 @@ }, { "expression": { - "id": 480, + "id": 508, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7941:3:0", + "src": "8729:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 481, + "id": 509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7941:10:0", + "src": "8729:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 482, + "id": 510, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7953:7:0", + "referencedDeclaration": 440, + "src": "8741:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" } }, { - "id": 483, + "id": 511, "name": "maxAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "7962:9:0", + "referencedDeclaration": 442, + "src": "8750:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 484, + "id": 512, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "7973:3:0", + "referencedDeclaration": 446, + "src": "8761:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -20861,31 +22238,31 @@ } ], "expression": { - "id": 477, + "id": 505, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "7873:3:0", + "src": "8661:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 478, + "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "7873:23:0", + "src": "8661:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 485, + "id": 513, "isConstant": false, "isLValue": false, "isPure": false, @@ -20893,7 +22270,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7873:104:0", + "src": "8661:104:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -20925,18 +22302,18 @@ } ], "expression": { - "id": 467, + "id": 495, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "7778:5:0", + "src": "8561:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" } }, - "id": 469, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -20944,13 +22321,13 @@ "memberName": "flashBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 198, - "src": "7778:17:0", + "src": "8561:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,address,address,string memory,bytes memory) payable external returns (bytes memory)" } }, - "id": 486, + "id": 514, "isConstant": false, "isLValue": false, "isPure": false, @@ -20958,16 +22335,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7778:207:0", + "src": "8561:213:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 487, + "id": 515, "nodeType": "ExpressionStatement", - "src": "7778:207:0" + "src": "8561:213:0" } ] } @@ -20976,12 +22353,12 @@ "expression": { "arguments": [ { - "id": 524, + "id": 552, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "8460:7:0", + "referencedDeclaration": 440, + "src": "9263:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -20989,25 +22366,25 @@ }, { "expression": { - "id": 525, + "id": 553, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8469:3:0", + "src": "9272:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 526, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8469:10:0", + "src": "9272:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21026,18 +22403,18 @@ } ], "expression": { - "id": 521, + "id": 549, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "8446:8:0", + "src": "9249:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 523, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, @@ -21045,13 +22422,13 @@ "memberName": "give", "nodeType": "MemberAccess", "referencedDeclaration": 242, - "src": "8446:13:0", + "src": "9249:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes12_$_t_address_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12,address) external returns (struct Vault memory)" } }, - "id": 527, + "id": 555, "isConstant": false, "isLValue": false, "isPure": false, @@ -21059,46 +22436,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8446:34:0", + "src": "9249:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 528, + "id": 556, "nodeType": "ExpressionStatement", - "src": "8446:34:0" + "src": "9249:34:0" } ] }, "documentation": { - "id": 410, + "id": 438, "nodeType": "StructuredDocumentation", - "src": "6455:686:0", + "src": "7213:696:0", "text": "@notice Empty a vault.\n @param vaultId - The id of the vault that should be emptied.\n @param maxAmount - The maximum amount of USDC to borrow. If past\n maturity, this parameter is unused as the amount can be determined\n precisely.\n @param pool - The pool to deposit USDC into. This can be obtained via the\n seriesId, and calling `address pool = ladle.pools(seriesId);`\n @param ink - The amount of collateral in the vault. Together with art,\n this value can be obtained using `cauldron.balances(vaultId);`, which\n will return an object containing both `art` and `ink`.\n @param art - The amount of debt taken from the vault." }, "functionSelector": "d238b433", - "id": 530, + "id": 558, "implemented": true, "kind": "function", "modifiers": [], "name": "unwind", - "nameLocation": "7153:6:0", + "nameLocation": "7922:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 423, + "id": 451, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 412, + "id": 440, "mutability": "mutable", "name": "vaultId", - "nameLocation": "7168:7:0", + "nameLocation": "7937:7:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7160:15:0", + "scope": 558, + "src": "7929:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21106,10 +22483,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 411, + "id": 439, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "7160:7:0", + "src": "7929:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -21119,13 +22496,13 @@ }, { "constant": false, - "id": 414, + "id": 442, "mutability": "mutable", "name": "maxAmount", - "nameLocation": "7185:9:0", + "nameLocation": "7954:9:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7177:17:0", + "scope": 558, + "src": "7946:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21133,10 +22510,10 @@ "typeString": "uint256" }, "typeName": { - "id": 413, + "id": 441, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7177:7:0", + "src": "7946:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21146,13 +22523,13 @@ }, { "constant": false, - "id": 416, + "id": 444, "mutability": "mutable", "name": "pool", - "nameLocation": "7204:4:0", + "nameLocation": "7973:4:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7196:12:0", + "scope": 558, + "src": "7965:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21160,10 +22537,10 @@ "typeString": "address" }, "typeName": { - "id": 415, + "id": 443, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7196:7:0", + "src": "7965:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21174,13 +22551,13 @@ }, { "constant": false, - "id": 418, + "id": 446, "mutability": "mutable", "name": "ink", - "nameLocation": "7218:3:0", + "nameLocation": "7987:3:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7210:11:0", + "scope": 558, + "src": "7979:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21188,10 +22565,10 @@ "typeString": "uint128" }, "typeName": { - "id": 417, + "id": 445, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "7210:7:0", + "src": "7979:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -21201,13 +22578,13 @@ }, { "constant": false, - "id": 420, + "id": 448, "mutability": "mutable", "name": "art", - "nameLocation": "7231:3:0", + "nameLocation": "8000:3:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7223:11:0", + "scope": 558, + "src": "7992:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21215,10 +22592,10 @@ "typeString": "uint128" }, "typeName": { - "id": 419, + "id": 447, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "7223:7:0", + "src": "7992:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -21228,13 +22605,13 @@ }, { "constant": false, - "id": 422, + "id": 450, "mutability": "mutable", "name": "seriesId", - "nameLocation": "7243:8:0", + "nameLocation": "8012:8:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7236:15:0", + "scope": 558, + "src": "8005:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21242,10 +22619,10 @@ "typeString": "bytes6" }, "typeName": { - "id": 421, + "id": 449, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "7236:6:0", + "src": "8005:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -21254,36 +22631,36 @@ "visibility": "internal" } ], - "src": "7159:93:0" + "src": "7928:93:0" }, "returnParameters": { - "id": 424, + "id": 452, "nodeType": "ParameterList", "parameters": [], - "src": "7262:0:0" + "src": "8031:0:0" }, - "scope": 654, - "src": "7144:1341:0", + "scope": 682, + "src": "7913:1376:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 589, + "id": 617, "nodeType": "Block", - "src": "8998:356:0", + "src": "9965:366:0", "statements": [ { "expression": { "arguments": [ { - "id": 545, + "id": 573, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 535, - "src": "9051:7:0", + "referencedDeclaration": 563, + "src": "10020:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -21292,14 +22669,14 @@ { "arguments": [ { - "id": 548, + "id": 576, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9068:4:0", + "src": "10037:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -21307,30 +22684,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 547, + "id": 575, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9060:7:0", + "src": "10029:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 546, + "id": 574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9060:7:0", + "src": "10029:7:0", "typeDescriptions": {} } }, - "id": 549, + "id": 577, "isConstant": false, "isLValue": false, "isPure": false, @@ -21338,7 +22715,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9060:13:0", + "src": "10029:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21346,7 +22723,7 @@ } }, { - "id": 554, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, @@ -21354,16 +22731,16 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "9075:12:0", + "src": "10044:12:0", "subExpression": { "arguments": [ { - "id": 552, + "id": 580, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 539, - "src": "9083:3:0", + "referencedDeclaration": 567, + "src": "10052:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -21377,26 +22754,26 @@ "typeString": "uint128" } ], - "id": 551, + "id": 579, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9076:6:0", + "src": "10045:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_int128_$", "typeString": "type(int128)" }, "typeName": { - "id": 550, + "id": 578, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "9076:6:0", + "src": "10045:6:0", "typeDescriptions": {} } }, - "id": 553, + "id": 581, "isConstant": false, "isLValue": false, "isPure": false, @@ -21404,7 +22781,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9076:11:0", + "src": "10045:11:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int128", @@ -21419,12 +22796,12 @@ { "arguments": [ { - "id": 557, + "id": 585, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "9097:12:0", + "referencedDeclaration": 565, + "src": "10066:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21438,26 +22815,26 @@ "typeString": "uint256" } ], - "id": 556, + "id": 584, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9089:7:0", + "src": "10058:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 555, + "id": 583, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9089:7:0", + "src": "10058:7:0", "typeDescriptions": {} } }, - "id": 558, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -21465,7 +22842,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9089:21:0", + "src": "10058:21:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -21493,18 +22870,18 @@ } ], "expression": { - "id": 542, + "id": 570, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "9034:5:0", + "src": "10003:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 544, + "id": 572, "isConstant": false, "isLValue": false, "isPure": false, @@ -21512,13 +22889,13 @@ "memberName": "repayVault", "nodeType": "MemberAccess", "referencedDeclaration": 84, - "src": "9034:16:0", + "src": "10003:16:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes12_$_t_address_$_t_int128_$_t_uint128_$returns$_t_uint128_$", "typeString": "function (bytes12,address,int128,uint128) payable external returns (uint128)" } }, - "id": 559, + "id": 587, "isConstant": false, "isLValue": false, "isPure": false, @@ -21526,16 +22903,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9034:77:0", + "src": "10003:77:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 560, + "id": 588, "nodeType": "ExpressionStatement", - "src": "9034:77:0" + "src": "10003:77:0" }, { "expression": { @@ -21543,18 +22920,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 561, + "id": 589, "name": "yvUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 249, - "src": "9146:6:0", + "src": "10118:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" } }, - "id": 563, + "id": 591, "isConstant": false, "isLValue": false, "isPure": false, @@ -21562,13 +22939,13 @@ "memberName": "withdraw", "nodeType": "MemberAccess", "referencedDeclaration": 177, - "src": "9146:15:0", + "src": "10118:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 564, + "id": 592, "isConstant": false, "isLValue": false, "isPure": false, @@ -21576,16 +22953,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9146:17:0", + "src": "10118:17:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 565, + "id": 593, "nodeType": "ExpressionStatement", - "src": "9146:17:0" + "src": "10118:17:0" }, { "expression": { @@ -21593,12 +22970,12 @@ { "arguments": [ { - "id": 571, + "id": 599, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "9219:5:0", + "src": "10193:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -21612,26 +22989,26 @@ "typeString": "contract IToken" } ], - "id": 570, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9211:7:0", + "src": "10185:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 569, + "id": 597, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9211:7:0", + "src": "10185:7:0", "typeDescriptions": {} } }, - "id": 572, + "id": 600, "isConstant": false, "isLValue": false, "isPure": true, @@ -21639,7 +23016,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9211:14:0", + "src": "10185:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21647,12 +23024,12 @@ } }, { - "id": 573, + "id": 601, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "9227:12:0", + "referencedDeclaration": 565, + "src": "10201:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21671,18 +23048,18 @@ } ], "expression": { - "id": 566, + "id": 594, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9197:4:0", + "src": "10171:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 568, + "id": 596, "isConstant": false, "isLValue": false, "isPure": false, @@ -21690,13 +23067,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "9197:13:0", + "src": "10171:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 574, + "id": 602, "isConstant": false, "isLValue": false, "isPure": false, @@ -21704,27 +23081,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9197:43:0", + "src": "10171:43:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 575, + "id": 603, "nodeType": "ExpressionStatement", - "src": "9197:43:0" + "src": "10171:43:0" }, { "expression": { "arguments": [ { - "id": 579, + "id": 607, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 533, - "src": "9312:5:0", + "referencedDeclaration": 561, + "src": "10288:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21735,14 +23112,14 @@ { "arguments": [ { - "id": 584, + "id": 612, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9342:4:0", + "src": "10318:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -21750,30 +23127,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 583, + "id": 611, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9334:7:0", + "src": "10310:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 582, + "id": 610, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9334:7:0", + "src": "10310:7:0", "typeDescriptions": {} } }, - "id": 585, + "id": 613, "isConstant": false, "isLValue": false, "isPure": false, @@ -21781,7 +23158,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9334:13:0", + "src": "10310:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21797,18 +23174,18 @@ } ], "expression": { - "id": 580, + "id": 608, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9319:4:0", + "src": "10295:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 581, + "id": 609, "isConstant": false, "isLValue": false, "isPure": false, @@ -21816,13 +23193,13 @@ "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 131, - "src": "9319:14:0", + "src": "10295:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 586, + "id": 614, "isConstant": false, "isLValue": false, "isPure": false, @@ -21830,7 +23207,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9319:29:0", + "src": "10295:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21850,18 +23227,18 @@ } ], "expression": { - "id": 576, + "id": 604, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9298:4:0", + "src": "10274:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 578, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, @@ -21869,13 +23246,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "9298:13:0", + "src": "10274:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 587, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -21883,46 +23260,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9298:51:0", + "src": "10274:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 588, + "id": 616, "nodeType": "ExpressionStatement", - "src": "9298:51:0" + "src": "10274:51:0" } ] }, "documentation": { - "id": 531, + "id": 559, "nodeType": "StructuredDocumentation", - "src": "8489:413:0", - "text": "@notice Repay a vault after having borrowed a suitable amount using a\n flash loan. Will only succeed if the pool hasn't reached its expiration\n date yet.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay." + "src": "9295:573:0", + "text": "@notice Repay a vault after having borrowed a suitable amount using a\n flash loan. Will only succeed if the pool hasn't reached its expiration\n date yet.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay.\n @dev Calling this function outside a flash loan achieves nothing, since\n the contract needs to own the vault it's getting collateral from." }, "functionSelector": "50bf94d7", - "id": 590, + "id": 618, "implemented": true, "kind": "function", "modifiers": [], "name": "doRepay", - "nameLocation": "8914:7:0", + "nameLocation": "9881:7:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 540, + "id": 568, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 533, + "id": 561, "mutability": "mutable", "name": "owner", - "nameLocation": "8930:5:0", + "nameLocation": "9897:5:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8922:13:0", + "scope": 618, + "src": "9889:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21930,10 +23307,10 @@ "typeString": "address" }, "typeName": { - "id": 532, + "id": 560, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8922:7:0", + "src": "9889:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21944,13 +23321,13 @@ }, { "constant": false, - "id": 535, + "id": 563, "mutability": "mutable", "name": "vaultId", - "nameLocation": "8945:7:0", + "nameLocation": "9912:7:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8937:15:0", + "scope": 618, + "src": "9904:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21958,10 +23335,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 534, + "id": 562, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "8937:7:0", + "src": "9904:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -21971,13 +23348,13 @@ }, { "constant": false, - "id": 537, + "id": 565, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "8962:12:0", + "nameLocation": "9929:12:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8954:20:0", + "scope": 618, + "src": "9921:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21985,10 +23362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 536, + "id": 564, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8954:7:0", + "src": "9921:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21998,13 +23375,13 @@ }, { "constant": false, - "id": 539, + "id": 567, "mutability": "mutable", "name": "ink", - "nameLocation": "8984:3:0", + "nameLocation": "9951:3:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8976:11:0", + "scope": 618, + "src": "9943:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22012,10 +23389,10 @@ "typeString": "uint128" }, "typeName": { - "id": 538, + "id": 566, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "8976:7:0", + "src": "9943:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22024,36 +23401,36 @@ "visibility": "internal" } ], - "src": "8921:67:0" + "src": "9888:67:0" }, "returnParameters": { - "id": 541, + "id": 569, "nodeType": "ParameterList", "parameters": [], - "src": "8998:0:0" + "src": "9965:0:0" }, - "scope": 654, - "src": "8905:449:0", + "scope": 682, + "src": "9872:459:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 652, + "id": 680, "nodeType": "Block", - "src": "9822:305:0", + "src": "10961:315:0", "statements": [ { "expression": { "arguments": [ { - "id": 607, + "id": 635, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "9863:7:0", + "referencedDeclaration": 623, + "src": "11004:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -22062,14 +23439,14 @@ { "arguments": [ { - "id": 610, + "id": 638, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9880:4:0", + "src": "11021:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -22077,30 +23454,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 609, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9872:7:0", + "src": "11013:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 608, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9872:7:0", + "src": "11013:7:0", "typeDescriptions": {} } }, - "id": 611, + "id": 639, "isConstant": false, "isLValue": false, "isPure": false, @@ -22108,7 +23485,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9872:13:0", + "src": "11013:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22116,7 +23493,7 @@ } }, { - "id": 616, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -22124,16 +23501,16 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "9887:12:0", + "src": "11028:12:0", "subExpression": { "arguments": [ { - "id": 614, + "id": 642, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "9895:3:0", + "referencedDeclaration": 627, + "src": "11036:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22147,26 +23524,26 @@ "typeString": "uint128" } ], - "id": 613, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9888:6:0", + "src": "11029:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_int128_$", "typeString": "type(int128)" }, "typeName": { - "id": 612, + "id": 640, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "9888:6:0", + "src": "11029:6:0", "typeDescriptions": {} } }, - "id": 615, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -22174,7 +23551,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9888:11:0", + "src": "11029:11:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int128", @@ -22187,7 +23564,7 @@ } }, { - "id": 621, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -22195,16 +23572,16 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "9901:12:0", + "src": "11042:12:0", "subExpression": { "arguments": [ { - "id": 619, + "id": 647, "name": "art", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9909:3:0", + "referencedDeclaration": 629, + "src": "11050:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22218,26 +23595,26 @@ "typeString": "uint128" } ], - "id": 618, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9902:6:0", + "src": "11043:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_int128_$", "typeString": "type(int128)" }, "typeName": { - "id": 617, + "id": 645, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "9902:6:0", + "src": "11043:6:0", "typeDescriptions": {} } }, - "id": 620, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -22245,7 +23622,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9902:11:0", + "src": "11043:11:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int128", @@ -22278,18 +23655,18 @@ } ], "expression": { - "id": 604, + "id": 632, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "9851:5:0", + "src": "10992:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 606, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, @@ -22297,13 +23674,13 @@ "memberName": "close", "nodeType": "MemberAccess", "referencedDeclaration": 97, - "src": "9851:11:0", + "src": "10992:11:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes12_$_t_address_$_t_int128_$_t_int128_$returns$_t_uint128_$", "typeString": "function (bytes12,address,int128,int128) payable external returns (uint128)" } }, - "id": 622, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, @@ -22311,16 +23688,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9851:63:0", + "src": "10992:63:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 623, + "id": 651, "nodeType": "ExpressionStatement", - "src": "9851:63:0" + "src": "10992:63:0" }, { "expression": { @@ -22328,18 +23705,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 624, + "id": 652, "name": "yvUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 249, - "src": "9949:6:0", + "src": "11093:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" } }, - "id": 626, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -22347,13 +23724,13 @@ "memberName": "withdraw", "nodeType": "MemberAccess", "referencedDeclaration": 177, - "src": "9949:15:0", + "src": "11093:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 627, + "id": 655, "isConstant": false, "isLValue": false, "isPure": false, @@ -22361,16 +23738,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9949:17:0", + "src": "11093:17:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 628, + "id": 656, "nodeType": "ExpressionStatement", - "src": "9949:17:0" + "src": "11093:17:0" }, { "expression": { @@ -22378,12 +23755,12 @@ { "arguments": [ { - "id": 634, + "id": 662, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "10018:5:0", + "src": "11164:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -22397,26 +23774,26 @@ "typeString": "contract IToken" } ], - "id": 633, + "id": 661, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10010:7:0", + "src": "11156:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 632, + "id": 660, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10010:7:0", + "src": "11156:7:0", "typeDescriptions": {} } }, - "id": 635, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, @@ -22424,7 +23801,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10010:14:0", + "src": "11156:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22432,12 +23809,12 @@ } }, { - "id": 636, + "id": 664, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "10026:4:0", + "referencedDeclaration": 625, + "src": "11172:4:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22456,18 +23833,18 @@ } ], "expression": { - "id": 629, + "id": 657, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9996:4:0", + "src": "11142:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 631, + "id": 659, "isConstant": false, "isLValue": false, "isPure": false, @@ -22475,13 +23852,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "9996:13:0", + "src": "11142:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 637, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, @@ -22489,27 +23866,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9996:35:0", + "src": "11142:35:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 638, + "id": 666, "nodeType": "ExpressionStatement", - "src": "9996:35:0" + "src": "11142:35:0" }, { "expression": { "arguments": [ { - "id": 642, + "id": 670, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "10085:5:0", + "referencedDeclaration": 621, + "src": "11233:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22520,14 +23897,14 @@ { "arguments": [ { - "id": 647, + "id": 675, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "10115:4:0", + "src": "11263:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -22535,30 +23912,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 646, + "id": 674, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10107:7:0", + "src": "11255:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 645, + "id": 673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10107:7:0", + "src": "11255:7:0", "typeDescriptions": {} } }, - "id": 648, + "id": 676, "isConstant": false, "isLValue": false, "isPure": false, @@ -22566,7 +23943,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10107:13:0", + "src": "11255:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22582,18 +23959,18 @@ } ], "expression": { - "id": 643, + "id": 671, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "10092:4:0", + "src": "11240:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 644, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, @@ -22601,13 +23978,13 @@ "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 131, - "src": "10092:14:0", + "src": "11240:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 649, + "id": 677, "isConstant": false, "isLValue": false, "isPure": false, @@ -22615,7 +23992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10092:29:0", + "src": "11240:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22635,18 +24012,18 @@ } ], "expression": { - "id": 639, + "id": 667, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "10071:4:0", + "src": "11219:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 641, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -22654,13 +24031,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "10071:13:0", + "src": "11219:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 650, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -22668,46 +24045,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10071:51:0", + "src": "11219:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 651, + "id": 679, "nodeType": "ExpressionStatement", - "src": "10071:51:0" + "src": "11219:51:0" } ] }, "documentation": { - "id": 591, + "id": 619, "nodeType": "StructuredDocumentation", - "src": "9358:363:0", - "text": "@notice Close a vault that has already reached its expiration date.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay.\n @param base - The size of the debt in USDC." + "src": "10337:522:0", + "text": "@notice Close a vault that has already reached its expiration date.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay.\n @param base - The size of the debt in USDC.\n @dev Calling this function outside a flash loan achieves nothing, since\n the contract needs to own the vault it's getting collateral from." }, "functionSelector": "6e6bf1f4", - "id": 653, + "id": 681, "implemented": true, "kind": "function", "modifiers": [], "name": "doClose", - "nameLocation": "9733:7:0", + "nameLocation": "10872:7:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 602, + "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 593, + "id": 621, "mutability": "mutable", "name": "owner", - "nameLocation": "9749:5:0", + "nameLocation": "10888:5:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9741:13:0", + "scope": 681, + "src": "10880:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22715,10 +24092,10 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 620, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9741:7:0", + "src": "10880:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22729,13 +24106,13 @@ }, { "constant": false, - "id": 595, + "id": 623, "mutability": "mutable", "name": "vaultId", - "nameLocation": "9764:7:0", + "nameLocation": "10903:7:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9756:15:0", + "scope": 681, + "src": "10895:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22743,10 +24120,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 594, + "id": 622, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "9756:7:0", + "src": "10895:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -22756,13 +24133,13 @@ }, { "constant": false, - "id": 597, + "id": 625, "mutability": "mutable", "name": "base", - "nameLocation": "9781:4:0", + "nameLocation": "10920:4:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9773:12:0", + "scope": 681, + "src": "10912:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22770,10 +24147,10 @@ "typeString": "uint128" }, "typeName": { - "id": 596, + "id": 624, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9773:7:0", + "src": "10912:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22783,13 +24160,13 @@ }, { "constant": false, - "id": 599, + "id": 627, "mutability": "mutable", "name": "ink", - "nameLocation": "9795:3:0", + "nameLocation": "10934:3:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9787:11:0", + "scope": 681, + "src": "10926:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22797,10 +24174,10 @@ "typeString": "uint128" }, "typeName": { - "id": 598, + "id": 626, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9787:7:0", + "src": "10926:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22810,13 +24187,13 @@ }, { "constant": false, - "id": 601, + "id": 629, "mutability": "mutable", "name": "art", - "nameLocation": "9808:3:0", + "nameLocation": "10947:3:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9800:11:0", + "scope": 681, + "src": "10939:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22824,10 +24201,10 @@ "typeString": "uint128" }, "typeName": { - "id": 600, + "id": 628, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9800:7:0", + "src": "10939:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -22836,27 +24213,27 @@ "visibility": "internal" } ], - "src": "9740:72:0" + "src": "10879:72:0" }, "returnParameters": { - "id": 603, + "id": 631, "nodeType": "ParameterList", "parameters": [], - "src": "9822:0:0" + "src": "10961:0:0" }, - "scope": 654, - "src": "9724:403:0", + "scope": 682, + "src": "10863:413:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "3298:6831:0", + "scope": 683, + "src": "3390:7889:0", "usedErrors": [] } ], - "src": "509:9621:0" + "src": "519:10762:0" }, "legacyAST": { "absolutePath": "project:/contracts/YieldLever.sol", @@ -22869,10 +24246,10 @@ "Series": [17], "Vault": [8], "YieldLadle": [108], - "YieldLever": [654], + "YieldLever": [682], "yVault": [178] }, - "id": 655, + "id": 683, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -22880,7 +24257,7 @@ "id": 1, "literals": ["solidity", "^", "0.8", ".11"], "nodeType": "PragmaDirective", - "src": "509:24:0" + "src": "519:24:0" }, { "canonicalName": "Vault", @@ -22891,10 +24268,10 @@ "id": 3, "mutability": "mutable", "name": "owner", - "nameLocation": "562:5:0", + "nameLocation": "575:5:0", "nodeType": "VariableDeclaration", "scope": 8, - "src": "554:13:0", + "src": "567:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22905,7 +24282,7 @@ "id": 2, "name": "address", "nodeType": "ElementaryTypeName", - "src": "554:7:0", + "src": "567:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22919,10 +24296,10 @@ "id": 5, "mutability": "mutable", "name": "seriesId", - "nameLocation": "580:8:0", + "nameLocation": "594:8:0", "nodeType": "VariableDeclaration", "scope": 8, - "src": "573:15:0", + "src": "587:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22933,7 +24310,7 @@ "id": 4, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "573:6:0", + "src": "587:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -22946,10 +24323,10 @@ "id": 7, "mutability": "mutable", "name": "ilkId", - "nameLocation": "684:5:0", + "nameLocation": "699:5:0", "nodeType": "VariableDeclaration", "scope": 8, - "src": "677:12:0", + "src": "692:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22960,7 +24337,7 @@ "id": 6, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "677:6:0", + "src": "692:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -22970,10 +24347,10 @@ } ], "name": "Vault", - "nameLocation": "542:5:0", + "nameLocation": "554:5:0", "nodeType": "StructDefinition", - "scope": 655, - "src": "535:189:0", + "scope": 683, + "src": "547:193:0", "visibility": "public" }, { @@ -22986,11 +24363,11 @@ "id": 9, "linearizedBaseContracts": [9], "name": "IFYToken", - "nameLocation": "736:8:0", + "nameLocation": "754:8:0", "nodeType": "ContractDefinition", "nodes": [], - "scope": 655, - "src": "726:21:0", + "scope": 683, + "src": "744:21:0", "usedErrors": [] }, { @@ -23002,10 +24379,10 @@ "id": 12, "mutability": "mutable", "name": "fyToken", - "nameLocation": "778:7:0", + "nameLocation": "799:7:0", "nodeType": "VariableDeclaration", "scope": 17, - "src": "769:16:0", + "src": "790:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23020,10 +24397,10 @@ "name": "IFYToken", "nodeType": "IdentifierPath", "referencedDeclaration": 9, - "src": "769:8:0" + "src": "790:8:0" }, "referencedDeclaration": 9, - "src": "769:8:0", + "src": "790:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IFYToken_$9", "typeString": "contract IFYToken" @@ -23036,10 +24413,10 @@ "id": 14, "mutability": "mutable", "name": "baseId", - "nameLocation": "834:6:0", + "nameLocation": "856:6:0", "nodeType": "VariableDeclaration", "scope": 17, - "src": "827:13:0", + "src": "849:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23050,7 +24427,7 @@ "id": 13, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "827:6:0", + "src": "849:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -23063,10 +24440,10 @@ "id": 16, "mutability": "mutable", "name": "maturity", - "nameLocation": "886:8:0", + "nameLocation": "909:8:0", "nodeType": "VariableDeclaration", "scope": 17, - "src": "879:15:0", + "src": "902:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23077,7 +24454,7 @@ "id": 15, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "879:6:0", + "src": "902:6:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23087,10 +24464,10 @@ } ], "name": "Series", - "nameLocation": "756:6:0", + "nameLocation": "776:6:0", "nodeType": "StructDefinition", - "scope": 655, - "src": "749:199:0", + "scope": 683, + "src": "769:203:0", "visibility": "public" }, { @@ -23102,10 +24479,10 @@ "id": 19, "mutability": "mutable", "name": "art", - "nameLocation": "980:3:0", + "nameLocation": "1007:3:0", "nodeType": "VariableDeclaration", "scope": 22, - "src": "972:11:0", + "src": "999:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23116,7 +24493,7 @@ "id": 18, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "972:7:0", + "src": "999:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23129,10 +24506,10 @@ "id": 21, "mutability": "mutable", "name": "ink", - "nameLocation": "1012:3:0", + "nameLocation": "1040:3:0", "nodeType": "VariableDeclaration", "scope": 22, - "src": "1004:11:0", + "src": "1032:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23143,7 +24520,7 @@ "id": 20, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1004:7:0", + "src": "1032:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23153,10 +24530,10 @@ } ], "name": "Balances", - "nameLocation": "957:8:0", + "nameLocation": "983:8:0", "nodeType": "StructDefinition", - "scope": 655, - "src": "950:89:0", + "scope": 683, + "src": "976:92:0", "visibility": "public" }, { @@ -23169,7 +24546,7 @@ "id": 108, "linearizedBaseContracts": [108], "name": "YieldLadle", - "nameLocation": "1051:10:0", + "nameLocation": "1082:10:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -23179,7 +24556,7 @@ "kind": "function", "modifiers": [], "name": "pools", - "nameLocation": "1075:5:0", + "nameLocation": "1107:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 25, @@ -23190,10 +24567,10 @@ "id": 24, "mutability": "mutable", "name": "seriesId", - "nameLocation": "1088:8:0", + "nameLocation": "1120:8:0", "nodeType": "VariableDeclaration", "scope": 29, - "src": "1081:15:0", + "src": "1113:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23204,7 +24581,7 @@ "id": 23, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "1081:6:0", + "src": "1113:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -23213,7 +24590,7 @@ "visibility": "internal" } ], - "src": "1080:17:0" + "src": "1112:17:0" }, "returnParameters": { "id": 28, @@ -23227,7 +24604,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 29, - "src": "1121:7:0", + "src": "1153:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23238,7 +24615,7 @@ "id": 26, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1121:7:0", + "src": "1153:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23248,10 +24625,10 @@ "visibility": "internal" } ], - "src": "1120:9:0" + "src": "1152:9:0" }, "scope": 108, - "src": "1066:64:0", + "src": "1098:64:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -23263,7 +24640,7 @@ "kind": "function", "modifiers": [], "name": "build", - "nameLocation": "1142:5:0", + "nameLocation": "1175:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 36, @@ -23274,10 +24651,10 @@ "id": 31, "mutability": "mutable", "name": "seriesId", - "nameLocation": "1155:8:0", + "nameLocation": "1188:8:0", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1148:15:0", + "src": "1181:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23288,7 +24665,7 @@ "id": 30, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "1148:6:0", + "src": "1181:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -23301,10 +24678,10 @@ "id": 33, "mutability": "mutable", "name": "ilkId", - "nameLocation": "1172:5:0", + "nameLocation": "1205:5:0", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1165:12:0", + "src": "1198:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23315,7 +24692,7 @@ "id": 32, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "1165:6:0", + "src": "1198:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -23328,10 +24705,10 @@ "id": 35, "mutability": "mutable", "name": "salt", - "nameLocation": "1185:4:0", + "nameLocation": "1218:4:0", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1179:10:0", + "src": "1212:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23342,7 +24719,7 @@ "id": 34, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1179:5:0", + "src": "1212:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -23351,7 +24728,7 @@ "visibility": "internal" } ], - "src": "1147:43:0" + "src": "1180:43:0" }, "returnParameters": { "id": 42, @@ -23365,7 +24742,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1232:7:0", + "src": "1267:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23376,7 +24753,7 @@ "id": 37, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1232:7:0", + "src": "1267:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -23392,7 +24769,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 43, - "src": "1241:12:0", + "src": "1276:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -23407,10 +24784,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "1241:5:0" + "src": "1276:5:0" }, "referencedDeclaration": 8, - "src": "1241:5:0", + "src": "1276:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -23419,10 +24796,10 @@ "visibility": "internal" } ], - "src": "1231:23:0" + "src": "1266:23:0" }, "scope": 108, - "src": "1133:122:0", + "src": "1166:124:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -23434,7 +24811,7 @@ "kind": "function", "modifiers": [], "name": "serve", - "nameLocation": "1267:5:0", + "nameLocation": "1303:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 54, @@ -23445,10 +24822,10 @@ "id": 45, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1281:8:0", + "nameLocation": "1317:8:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1273:16:0", + "src": "1309:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23459,7 +24836,7 @@ "id": 44, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1273:7:0", + "src": "1309:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -23472,10 +24849,10 @@ "id": 47, "mutability": "mutable", "name": "to", - "nameLocation": "1299:2:0", + "nameLocation": "1335:2:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1291:10:0", + "src": "1327:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23486,7 +24863,7 @@ "id": 46, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1291:7:0", + "src": "1327:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23500,10 +24877,10 @@ "id": 49, "mutability": "mutable", "name": "ink", - "nameLocation": "1311:3:0", + "nameLocation": "1347:3:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1303:11:0", + "src": "1339:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23514,7 +24891,7 @@ "id": 48, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1303:7:0", + "src": "1339:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23527,10 +24904,10 @@ "id": 51, "mutability": "mutable", "name": "base", - "nameLocation": "1324:4:0", + "nameLocation": "1360:4:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1316:12:0", + "src": "1352:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23541,7 +24918,7 @@ "id": 50, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1316:7:0", + "src": "1352:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23554,10 +24931,10 @@ "id": 53, "mutability": "mutable", "name": "max", - "nameLocation": "1338:3:0", + "nameLocation": "1374:3:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1330:11:0", + "src": "1366:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23568,7 +24945,7 @@ "id": 52, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1330:7:0", + "src": "1366:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23577,7 +24954,7 @@ "visibility": "internal" } ], - "src": "1272:70:0" + "src": "1308:70:0" }, "returnParameters": { "id": 57, @@ -23588,10 +24965,10 @@ "id": 56, "mutability": "mutable", "name": "art", - "nameLocation": "1393:3:0", + "nameLocation": "1431:3:0", "nodeType": "VariableDeclaration", "scope": 58, - "src": "1385:11:0", + "src": "1423:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23602,7 +24979,7 @@ "id": 55, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1385:7:0", + "src": "1423:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23611,10 +24988,10 @@ "visibility": "internal" } ], - "src": "1384:13:0" + "src": "1422:13:0" }, "scope": 108, - "src": "1258:140:0", + "src": "1294:142:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -23626,7 +25003,7 @@ "kind": "function", "modifiers": [], "name": "repay", - "nameLocation": "1410:5:0", + "nameLocation": "1449:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 67, @@ -23637,10 +25014,10 @@ "id": 60, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1424:8:0", + "nameLocation": "1463:8:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1416:16:0", + "src": "1455:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23651,7 +25028,7 @@ "id": 59, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1416:7:0", + "src": "1455:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -23664,10 +25041,10 @@ "id": 62, "mutability": "mutable", "name": "to", - "nameLocation": "1442:2:0", + "nameLocation": "1481:2:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1434:10:0", + "src": "1473:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23678,7 +25055,7 @@ "id": 61, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1434:7:0", + "src": "1473:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23692,10 +25069,10 @@ "id": 64, "mutability": "mutable", "name": "ink", - "nameLocation": "1453:3:0", + "nameLocation": "1492:3:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1446:10:0", + "src": "1485:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23706,7 +25083,7 @@ "id": 63, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1446:6:0", + "src": "1485:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -23719,10 +25096,10 @@ "id": 66, "mutability": "mutable", "name": "min", - "nameLocation": "1466:3:0", + "nameLocation": "1505:3:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1458:11:0", + "src": "1497:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23733,7 +25110,7 @@ "id": 65, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1458:7:0", + "src": "1497:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23742,7 +25119,7 @@ "visibility": "internal" } ], - "src": "1415:55:0" + "src": "1454:55:0" }, "returnParameters": { "id": 70, @@ -23753,10 +25130,10 @@ "id": 69, "mutability": "mutable", "name": "art", - "nameLocation": "1521:3:0", + "nameLocation": "1562:3:0", "nodeType": "VariableDeclaration", "scope": 71, - "src": "1513:11:0", + "src": "1554:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23767,7 +25144,7 @@ "id": 68, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1513:7:0", + "src": "1554:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23776,10 +25153,10 @@ "visibility": "internal" } ], - "src": "1512:13:0" + "src": "1553:13:0" }, "scope": 108, - "src": "1401:125:0", + "src": "1440:127:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -23791,7 +25168,7 @@ "kind": "function", "modifiers": [], "name": "repayVault", - "nameLocation": "1538:10:0", + "nameLocation": "1580:10:0", "nodeType": "FunctionDefinition", "parameters": { "id": 80, @@ -23802,10 +25179,10 @@ "id": 73, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1557:8:0", + "nameLocation": "1599:8:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1549:16:0", + "src": "1591:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23816,7 +25193,7 @@ "id": 72, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1549:7:0", + "src": "1591:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -23829,10 +25206,10 @@ "id": 75, "mutability": "mutable", "name": "to", - "nameLocation": "1575:2:0", + "nameLocation": "1617:2:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1567:10:0", + "src": "1609:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23843,7 +25220,7 @@ "id": 74, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1567:7:0", + "src": "1609:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23857,10 +25234,10 @@ "id": 77, "mutability": "mutable", "name": "ink", - "nameLocation": "1586:3:0", + "nameLocation": "1628:3:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1579:10:0", + "src": "1621:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23871,7 +25248,7 @@ "id": 76, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1579:6:0", + "src": "1621:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -23884,10 +25261,10 @@ "id": 79, "mutability": "mutable", "name": "max", - "nameLocation": "1599:3:0", + "nameLocation": "1641:3:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1591:11:0", + "src": "1633:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23898,7 +25275,7 @@ "id": 78, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1591:7:0", + "src": "1633:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23907,7 +25284,7 @@ "visibility": "internal" } ], - "src": "1548:55:0" + "src": "1590:55:0" }, "returnParameters": { "id": 83, @@ -23918,10 +25295,10 @@ "id": 82, "mutability": "mutable", "name": "base", - "nameLocation": "1654:4:0", + "nameLocation": "1698:4:0", "nodeType": "VariableDeclaration", "scope": 84, - "src": "1646:12:0", + "src": "1690:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23932,7 +25309,7 @@ "id": 81, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1646:7:0", + "src": "1690:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -23941,10 +25318,10 @@ "visibility": "internal" } ], - "src": "1645:14:0" + "src": "1689:14:0" }, "scope": 108, - "src": "1529:131:0", + "src": "1571:133:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -23956,7 +25333,7 @@ "kind": "function", "modifiers": [], "name": "close", - "nameLocation": "1672:5:0", + "nameLocation": "1717:5:0", "nodeType": "FunctionDefinition", "parameters": { "id": 93, @@ -23967,10 +25344,10 @@ "id": 86, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1686:8:0", + "nameLocation": "1731:8:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1678:16:0", + "src": "1723:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23981,7 +25358,7 @@ "id": 85, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1678:7:0", + "src": "1723:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -23994,10 +25371,10 @@ "id": 88, "mutability": "mutable", "name": "to", - "nameLocation": "1704:2:0", + "nameLocation": "1749:2:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1696:10:0", + "src": "1741:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24008,7 +25385,7 @@ "id": 87, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1696:7:0", + "src": "1741:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24022,10 +25399,10 @@ "id": 90, "mutability": "mutable", "name": "ink", - "nameLocation": "1715:3:0", + "nameLocation": "1760:3:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1708:10:0", + "src": "1753:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24036,7 +25413,7 @@ "id": 89, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1708:6:0", + "src": "1753:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -24049,10 +25426,10 @@ "id": 92, "mutability": "mutable", "name": "art", - "nameLocation": "1727:3:0", + "nameLocation": "1772:3:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1720:10:0", + "src": "1765:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24063,7 +25440,7 @@ "id": 91, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "1720:6:0", + "src": "1765:6:0", "typeDescriptions": { "typeIdentifier": "t_int128", "typeString": "int128" @@ -24072,7 +25449,7 @@ "visibility": "internal" } ], - "src": "1677:54:0" + "src": "1722:54:0" }, "returnParameters": { "id": 96, @@ -24083,10 +25460,10 @@ "id": 95, "mutability": "mutable", "name": "base", - "nameLocation": "1782:4:0", + "nameLocation": "1829:4:0", "nodeType": "VariableDeclaration", "scope": 97, - "src": "1774:12:0", + "src": "1821:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24097,7 +25474,7 @@ "id": 94, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1774:7:0", + "src": "1821:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -24106,10 +25483,10 @@ "visibility": "internal" } ], - "src": "1773:14:0" + "src": "1820:14:0" }, "scope": 108, - "src": "1663:125:0", + "src": "1708:127:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -24121,7 +25498,7 @@ "kind": "function", "modifiers": [], "name": "give", - "nameLocation": "1800:4:0", + "nameLocation": "1848:4:0", "nodeType": "FunctionDefinition", "parameters": { "id": 102, @@ -24132,10 +25509,10 @@ "id": 99, "mutability": "mutable", "name": "vaultId_", - "nameLocation": "1813:8:0", + "nameLocation": "1861:8:0", "nodeType": "VariableDeclaration", "scope": 107, - "src": "1805:16:0", + "src": "1853:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24146,7 +25523,7 @@ "id": 98, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "1805:7:0", + "src": "1853:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -24159,10 +25536,10 @@ "id": 101, "mutability": "mutable", "name": "receiver", - "nameLocation": "1831:8:0", + "nameLocation": "1879:8:0", "nodeType": "VariableDeclaration", "scope": 107, - "src": "1823:16:0", + "src": "1871:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24173,7 +25550,7 @@ "id": 100, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1823:7:0", + "src": "1871:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24183,7 +25560,7 @@ "visibility": "internal" } ], - "src": "1804:36:0" + "src": "1852:36:0" }, "returnParameters": { "id": 106, @@ -24194,10 +25571,10 @@ "id": 105, "mutability": "mutable", "name": "vault", - "nameLocation": "1895:5:0", + "nameLocation": "1945:5:0", "nodeType": "VariableDeclaration", "scope": 107, - "src": "1882:18:0", + "src": "1932:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -24212,10 +25589,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "1882:5:0" + "src": "1932:5:0" }, "referencedDeclaration": 8, - "src": "1882:5:0", + "src": "1932:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -24224,17 +25601,17 @@ "visibility": "internal" } ], - "src": "1881:20:0" + "src": "1931:20:0" }, "scope": 108, - "src": "1791:111:0", + "src": "1839:113:0", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "1041:863:0", + "scope": 683, + "src": "1072:883:0", "usedErrors": [] }, { @@ -24247,14 +25624,14 @@ "id": 161, "linearizedBaseContracts": [161], "name": "IERC20", - "nameLocation": "1916:6:0", + "nameLocation": "1969:6:0", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 116, "name": "Approval", - "nameLocation": "1935:8:0", + "nameLocation": "1989:8:0", "nodeType": "EventDefinition", "parameters": { "id": 115, @@ -24266,10 +25643,10 @@ "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "1960:5:0", + "nameLocation": "2014:5:0", "nodeType": "VariableDeclaration", "scope": 116, - "src": "1944:21:0", + "src": "1998:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24280,7 +25657,7 @@ "id": 109, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1944:7:0", + "src": "1998:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24295,10 +25672,10 @@ "indexed": true, "mutability": "mutable", "name": "spender", - "nameLocation": "1983:7:0", + "nameLocation": "2037:7:0", "nodeType": "VariableDeclaration", "scope": 116, - "src": "1967:23:0", + "src": "2021:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24309,7 +25686,7 @@ "id": 111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1967:7:0", + "src": "2021:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24324,10 +25701,10 @@ "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "1997:5:0", + "nameLocation": "2051:5:0", "nodeType": "VariableDeclaration", "scope": 116, - "src": "1992:10:0", + "src": "2046:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24338,7 +25715,7 @@ "id": 113, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1992:4:0", + "src": "2046:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24347,15 +25724,15 @@ "visibility": "internal" } ], - "src": "1943:60:0" + "src": "1997:60:0" }, - "src": "1929:75:0" + "src": "1983:75:0" }, { "anonymous": false, "id": 124, "name": "Transfer", - "nameLocation": "2015:8:0", + "nameLocation": "2070:8:0", "nodeType": "EventDefinition", "parameters": { "id": 123, @@ -24367,10 +25744,10 @@ "indexed": true, "mutability": "mutable", "name": "from", - "nameLocation": "2040:4:0", + "nameLocation": "2095:4:0", "nodeType": "VariableDeclaration", "scope": 124, - "src": "2024:20:0", + "src": "2079:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24381,7 +25758,7 @@ "id": 117, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2024:7:0", + "src": "2079:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24396,10 +25773,10 @@ "indexed": true, "mutability": "mutable", "name": "to", - "nameLocation": "2062:2:0", + "nameLocation": "2117:2:0", "nodeType": "VariableDeclaration", "scope": 124, - "src": "2046:18:0", + "src": "2101:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24410,7 +25787,7 @@ "id": 119, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2046:7:0", + "src": "2101:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24425,10 +25802,10 @@ "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "2071:5:0", + "nameLocation": "2126:5:0", "nodeType": "VariableDeclaration", "scope": 124, - "src": "2066:10:0", + "src": "2121:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24439,7 +25816,7 @@ "id": 121, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2066:4:0", + "src": "2121:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24448,9 +25825,9 @@ "visibility": "internal" } ], - "src": "2023:54:0" + "src": "2078:54:0" }, - "src": "2009:69:0" + "src": "2064:69:0" }, { "functionSelector": "70a08231", @@ -24459,7 +25836,7 @@ "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "2093:9:0", + "nameLocation": "2150:9:0", "nodeType": "FunctionDefinition", "parameters": { "id": 127, @@ -24470,10 +25847,10 @@ "id": 126, "mutability": "mutable", "name": "owner", - "nameLocation": "2111:5:0", + "nameLocation": "2168:5:0", "nodeType": "VariableDeclaration", "scope": 131, - "src": "2103:13:0", + "src": "2160:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24484,7 +25861,7 @@ "id": 125, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2103:7:0", + "src": "2160:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24494,7 +25871,7 @@ "visibility": "internal" } ], - "src": "2102:15:0" + "src": "2159:15:0" }, "returnParameters": { "id": 130, @@ -24508,7 +25885,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 131, - "src": "2141:4:0", + "src": "2198:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24519,7 +25896,7 @@ "id": 128, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2141:4:0", + "src": "2198:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24528,10 +25905,10 @@ "visibility": "internal" } ], - "src": "2140:6:0" + "src": "2197:6:0" }, "scope": 161, - "src": "2084:63:0", + "src": "2141:63:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -24543,7 +25920,7 @@ "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "2164:7:0", + "nameLocation": "2223:7:0", "nodeType": "FunctionDefinition", "parameters": { "id": 136, @@ -24554,10 +25931,10 @@ "id": 133, "mutability": "mutable", "name": "spender", - "nameLocation": "2180:7:0", + "nameLocation": "2239:7:0", "nodeType": "VariableDeclaration", "scope": 140, - "src": "2172:15:0", + "src": "2231:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24568,7 +25945,7 @@ "id": 132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2172:7:0", + "src": "2231:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24582,10 +25959,10 @@ "id": 135, "mutability": "mutable", "name": "value", - "nameLocation": "2194:5:0", + "nameLocation": "2253:5:0", "nodeType": "VariableDeclaration", "scope": 140, - "src": "2189:10:0", + "src": "2248:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24596,7 +25973,7 @@ "id": 134, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2189:4:0", + "src": "2248:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24605,7 +25982,7 @@ "visibility": "internal" } ], - "src": "2171:29:0" + "src": "2230:29:0" }, "returnParameters": { "id": 139, @@ -24619,7 +25996,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 140, - "src": "2219:4:0", + "src": "2278:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24630,7 +26007,7 @@ "id": 137, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2219:4:0", + "src": "2278:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24639,10 +26016,10 @@ "visibility": "internal" } ], - "src": "2218:6:0" + "src": "2277:6:0" }, "scope": 161, - "src": "2155:70:0", + "src": "2214:70:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -24654,7 +26031,7 @@ "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "2239:8:0", + "nameLocation": "2299:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 145, @@ -24665,10 +26042,10 @@ "id": 142, "mutability": "mutable", "name": "to", - "nameLocation": "2256:2:0", + "nameLocation": "2316:2:0", "nodeType": "VariableDeclaration", "scope": 149, - "src": "2248:10:0", + "src": "2308:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24679,7 +26056,7 @@ "id": 141, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2248:7:0", + "src": "2308:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24693,10 +26070,10 @@ "id": 144, "mutability": "mutable", "name": "value", - "nameLocation": "2265:5:0", + "nameLocation": "2325:5:0", "nodeType": "VariableDeclaration", "scope": 149, - "src": "2260:10:0", + "src": "2320:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24707,7 +26084,7 @@ "id": 143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2260:4:0", + "src": "2320:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24716,7 +26093,7 @@ "visibility": "internal" } ], - "src": "2247:24:0" + "src": "2307:24:0" }, "returnParameters": { "id": 148, @@ -24730,7 +26107,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 149, - "src": "2290:4:0", + "src": "2350:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24741,7 +26118,7 @@ "id": 146, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2290:4:0", + "src": "2350:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24750,10 +26127,10 @@ "visibility": "internal" } ], - "src": "2289:6:0" + "src": "2349:6:0" }, "scope": 161, - "src": "2230:66:0", + "src": "2290:66:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -24765,7 +26142,7 @@ "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "2310:12:0", + "nameLocation": "2371:12:0", "nodeType": "FunctionDefinition", "parameters": { "id": 156, @@ -24776,10 +26153,10 @@ "id": 151, "mutability": "mutable", "name": "from", - "nameLocation": "2331:4:0", + "nameLocation": "2392:4:0", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2323:12:0", + "src": "2384:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24790,7 +26167,7 @@ "id": 150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2323:7:0", + "src": "2384:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24804,10 +26181,10 @@ "id": 153, "mutability": "mutable", "name": "to", - "nameLocation": "2345:2:0", + "nameLocation": "2406:2:0", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2337:10:0", + "src": "2398:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24818,7 +26195,7 @@ "id": 152, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2337:7:0", + "src": "2398:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24832,10 +26209,10 @@ "id": 155, "mutability": "mutable", "name": "value", - "nameLocation": "2354:5:0", + "nameLocation": "2415:5:0", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2349:10:0", + "src": "2410:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24846,7 +26223,7 @@ "id": 154, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2349:4:0", + "src": "2410:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24855,7 +26232,7 @@ "visibility": "internal" } ], - "src": "2322:38:0" + "src": "2383:38:0" }, "returnParameters": { "id": 159, @@ -24869,7 +26246,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 160, - "src": "2379:4:0", + "src": "2440:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24880,7 +26257,7 @@ "id": 157, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2379:4:0", + "src": "2440:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24889,17 +26266,17 @@ "visibility": "internal" } ], - "src": "2378:6:0" + "src": "2439:6:0" }, "scope": 161, - "src": "2301:84:0", + "src": "2362:84:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "1906:481:0", + "scope": 683, + "src": "1959:490:0", "usedErrors": [] }, { @@ -24911,11 +26288,11 @@ "name": "IERC20", "nodeType": "IdentifierPath", "referencedDeclaration": 161, - "src": "2409:6:0" + "src": "2473:6:0" }, "id": 163, "nodeType": "InheritanceSpecifier", - "src": "2409:6:0" + "src": "2473:6:0" } ], "canonicalName": "yVault", @@ -24925,7 +26302,7 @@ "id": 178, "linearizedBaseContracts": [178, 161], "name": "yVault", - "nameLocation": "2399:6:0", + "nameLocation": "2463:6:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -24935,7 +26312,7 @@ "kind": "function", "modifiers": [], "name": "deposit", - "nameLocation": "2429:7:0", + "nameLocation": "2494:7:0", "nodeType": "FunctionDefinition", "parameters": { "id": 168, @@ -24946,10 +26323,10 @@ "id": 165, "mutability": "mutable", "name": "amount", - "nameLocation": "2442:6:0", + "nameLocation": "2507:6:0", "nodeType": "VariableDeclaration", "scope": 172, - "src": "2437:11:0", + "src": "2502:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24960,7 +26337,7 @@ "id": 164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2437:4:0", + "src": "2502:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24973,10 +26350,10 @@ "id": 167, "mutability": "mutable", "name": "to", - "nameLocation": "2458:2:0", + "nameLocation": "2523:2:0", "nodeType": "VariableDeclaration", "scope": 172, - "src": "2450:10:0", + "src": "2515:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24987,7 +26364,7 @@ "id": 166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2450:7:0", + "src": "2515:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24997,7 +26374,7 @@ "visibility": "internal" } ], - "src": "2436:25:0" + "src": "2501:25:0" }, "returnParameters": { "id": 171, @@ -25011,7 +26388,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 172, - "src": "2480:7:0", + "src": "2545:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25022,7 +26399,7 @@ "id": 169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2480:7:0", + "src": "2545:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25031,10 +26408,10 @@ "visibility": "internal" } ], - "src": "2479:9:0" + "src": "2544:9:0" }, "scope": 178, - "src": "2420:69:0", + "src": "2485:69:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -25046,13 +26423,13 @@ "kind": "function", "modifiers": [], "name": "withdraw", - "nameLocation": "2501:8:0", + "nameLocation": "2567:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 173, "nodeType": "ParameterList", "parameters": [], - "src": "2509:2:0" + "src": "2575:2:0" }, "returnParameters": { "id": 176, @@ -25066,7 +26443,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 177, - "src": "2530:4:0", + "src": "2596:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25077,7 +26454,7 @@ "id": 174, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2530:4:0", + "src": "2596:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25086,17 +26463,17 @@ "visibility": "internal" } ], - "src": "2529:6:0" + "src": "2595:6:0" }, "scope": 178, - "src": "2492:44:0", + "src": "2558:44:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "2389:149:0", + "scope": 683, + "src": "2453:152:0", "usedErrors": [] }, { @@ -25109,7 +26486,7 @@ "id": 199, "linearizedBaseContracts": [199], "name": "IToken", - "nameLocation": "2550:6:0", + "nameLocation": "2619:6:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -25119,13 +26496,13 @@ "kind": "function", "modifiers": [], "name": "loanTokenAddress", - "nameLocation": "2572:16:0", + "nameLocation": "2642:16:0", "nodeType": "FunctionDefinition", "parameters": { "id": 179, "nodeType": "ParameterList", "parameters": [], - "src": "2588:2:0" + "src": "2658:2:0" }, "returnParameters": { "id": 182, @@ -25139,7 +26516,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 183, - "src": "2614:7:0", + "src": "2684:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25150,7 +26527,7 @@ "id": 180, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2614:7:0", + "src": "2684:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25160,10 +26537,10 @@ "visibility": "internal" } ], - "src": "2613:9:0" + "src": "2683:9:0" }, "scope": 199, - "src": "2563:60:0", + "src": "2633:60:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -25175,7 +26552,7 @@ "kind": "function", "modifiers": [], "name": "flashBorrow", - "nameLocation": "2637:11:0", + "nameLocation": "2708:11:0", "nodeType": "FunctionDefinition", "parameters": { "id": 194, @@ -25186,10 +26563,10 @@ "id": 185, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "2666:12:0", + "nameLocation": "2738:12:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2658:20:0", + "src": "2730:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25200,7 +26577,7 @@ "id": 184, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2658:7:0", + "src": "2730:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25213,10 +26590,10 @@ "id": 187, "mutability": "mutable", "name": "borrower", - "nameLocation": "2696:8:0", + "nameLocation": "2769:8:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2688:16:0", + "src": "2761:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25227,7 +26604,7 @@ "id": 186, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2688:7:0", + "src": "2761:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25241,10 +26618,10 @@ "id": 189, "mutability": "mutable", "name": "target", - "nameLocation": "2722:6:0", + "nameLocation": "2796:6:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2714:14:0", + "src": "2788:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25255,7 +26632,7 @@ "id": 188, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2714:7:0", + "src": "2788:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25269,10 +26646,10 @@ "id": 191, "mutability": "mutable", "name": "signature", - "nameLocation": "2754:9:0", + "nameLocation": "2829:9:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2738:25:0", + "src": "2813:25:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -25283,7 +26660,7 @@ "id": 190, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2738:6:0", + "src": "2813:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -25296,10 +26673,10 @@ "id": 193, "mutability": "mutable", "name": "data", - "nameLocation": "2788:4:0", + "nameLocation": "2864:4:0", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2773:19:0", + "src": "2849:19:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -25310,7 +26687,7 @@ "id": 192, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2773:5:0", + "src": "2849:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -25319,7 +26696,7 @@ "visibility": "internal" } ], - "src": "2648:150:0" + "src": "2719:156:0" }, "returnParameters": { "id": 197, @@ -25333,7 +26710,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 198, - "src": "2825:12:0", + "src": "2902:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -25344,7 +26721,7 @@ "id": 195, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2825:5:0", + "src": "2902:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -25353,17 +26730,17 @@ "visibility": "internal" } ], - "src": "2824:14:0" + "src": "2901:14:0" }, "scope": 199, - "src": "2628:211:0", + "src": "2699:217:0", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "2540:301:0", + "scope": 683, + "src": "2609:310:0", "usedErrors": [] }, { @@ -25376,7 +26753,7 @@ "id": 243, "linearizedBaseContracts": [243], "name": "Cauldron", - "nameLocation": "2853:8:0", + "nameLocation": "2933:8:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -25386,7 +26763,7 @@ "kind": "function", "modifiers": [], "name": "series", - "nameLocation": "2875:6:0", + "nameLocation": "2956:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 202, @@ -25397,10 +26774,10 @@ "id": 201, "mutability": "mutable", "name": "seriesId", - "nameLocation": "2889:8:0", + "nameLocation": "2970:8:0", "nodeType": "VariableDeclaration", "scope": 207, - "src": "2882:15:0", + "src": "2963:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25411,7 +26788,7 @@ "id": 200, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "2882:6:0", + "src": "2963:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -25420,7 +26797,7 @@ "visibility": "internal" } ], - "src": "2881:17:0" + "src": "2962:17:0" }, "returnParameters": { "id": 206, @@ -25434,7 +26811,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 207, - "src": "2922:13:0", + "src": "3003:13:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -25449,10 +26826,10 @@ "name": "Series", "nodeType": "IdentifierPath", "referencedDeclaration": 17, - "src": "2922:6:0" + "src": "3003:6:0" }, "referencedDeclaration": 17, - "src": "2922:6:0", + "src": "3003:6:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_storage_ptr", "typeString": "struct Series" @@ -25461,10 +26838,10 @@ "visibility": "internal" } ], - "src": "2921:15:0" + "src": "3002:15:0" }, "scope": 243, - "src": "2866:71:0", + "src": "2947:71:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -25476,7 +26853,7 @@ "kind": "function", "modifiers": [], "name": "vaults", - "nameLocation": "2949:6:0", + "nameLocation": "3031:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 210, @@ -25487,10 +26864,10 @@ "id": 209, "mutability": "mutable", "name": "vaultId", - "nameLocation": "2964:7:0", + "nameLocation": "3046:7:0", "nodeType": "VariableDeclaration", "scope": 215, - "src": "2956:15:0", + "src": "3038:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25501,7 +26878,7 @@ "id": 208, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "2956:7:0", + "src": "3038:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -25510,7 +26887,7 @@ "visibility": "internal" } ], - "src": "2955:17:0" + "src": "3037:17:0" }, "returnParameters": { "id": 214, @@ -25524,7 +26901,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 215, - "src": "2996:12:0", + "src": "3078:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -25539,10 +26916,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "2996:5:0" + "src": "3078:5:0" }, "referencedDeclaration": 8, - "src": "2996:5:0", + "src": "3078:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -25551,10 +26928,10 @@ "visibility": "internal" } ], - "src": "2995:14:0" + "src": "3077:14:0" }, "scope": 243, - "src": "2940:70:0", + "src": "3022:70:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -25566,7 +26943,7 @@ "kind": "function", "modifiers": [], "name": "balances", - "nameLocation": "3022:8:0", + "nameLocation": "3105:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 218, @@ -25577,10 +26954,10 @@ "id": 217, "mutability": "mutable", "name": "vaultId", - "nameLocation": "3039:7:0", + "nameLocation": "3122:7:0", "nodeType": "VariableDeclaration", "scope": 223, - "src": "3031:15:0", + "src": "3114:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25591,7 +26968,7 @@ "id": 216, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "3031:7:0", + "src": "3114:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -25600,7 +26977,7 @@ "visibility": "internal" } ], - "src": "3030:17:0" + "src": "3113:17:0" }, "returnParameters": { "id": 222, @@ -25614,7 +26991,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 223, - "src": "3071:15:0", + "src": "3154:15:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -25629,10 +27006,10 @@ "name": "Balances", "nodeType": "IdentifierPath", "referencedDeclaration": 22, - "src": "3071:8:0" + "src": "3154:8:0" }, "referencedDeclaration": 22, - "src": "3071:8:0", + "src": "3154:8:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Balances_$22_storage_ptr", "typeString": "struct Balances" @@ -25641,10 +27018,10 @@ "visibility": "internal" } ], - "src": "3070:17:0" + "src": "3153:17:0" }, "scope": 243, - "src": "3013:75:0", + "src": "3096:75:0", "stateMutability": "view", "virtual": false, "visibility": "external" @@ -25656,7 +27033,7 @@ "kind": "function", "modifiers": [], "name": "debtToBase", - "nameLocation": "3100:10:0", + "nameLocation": "3184:10:0", "nodeType": "FunctionDefinition", "parameters": { "id": 228, @@ -25667,10 +27044,10 @@ "id": 225, "mutability": "mutable", "name": "seriesId", - "nameLocation": "3118:8:0", + "nameLocation": "3202:8:0", "nodeType": "VariableDeclaration", "scope": 232, - "src": "3111:15:0", + "src": "3195:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25681,7 +27058,7 @@ "id": 224, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "3111:6:0", + "src": "3195:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -25694,10 +27071,10 @@ "id": 227, "mutability": "mutable", "name": "art", - "nameLocation": "3136:3:0", + "nameLocation": "3220:3:0", "nodeType": "VariableDeclaration", "scope": 232, - "src": "3128:11:0", + "src": "3212:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25708,7 +27085,7 @@ "id": 226, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "3128:7:0", + "src": "3212:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -25717,7 +27094,7 @@ "visibility": "internal" } ], - "src": "3110:30:0" + "src": "3194:30:0" }, "returnParameters": { "id": 231, @@ -25728,10 +27105,10 @@ "id": 230, "mutability": "mutable", "name": "base", - "nameLocation": "3183:4:0", + "nameLocation": "3269:4:0", "nodeType": "VariableDeclaration", "scope": 232, - "src": "3175:12:0", + "src": "3261:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25742,7 +27119,7 @@ "id": 229, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "3175:7:0", + "src": "3261:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -25751,10 +27128,10 @@ "visibility": "internal" } ], - "src": "3174:14:0" + "src": "3260:14:0" }, "scope": 243, - "src": "3091:98:0", + "src": "3175:100:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -25766,7 +27143,7 @@ "kind": "function", "modifiers": [], "name": "give", - "nameLocation": "3201:4:0", + "nameLocation": "3288:4:0", "nodeType": "FunctionDefinition", "parameters": { "id": 237, @@ -25777,10 +27154,10 @@ "id": 234, "mutability": "mutable", "name": "vaultId", - "nameLocation": "3214:7:0", + "nameLocation": "3301:7:0", "nodeType": "VariableDeclaration", "scope": 242, - "src": "3206:15:0", + "src": "3293:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25791,7 +27168,7 @@ "id": 233, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "3206:7:0", + "src": "3293:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -25804,10 +27181,10 @@ "id": 236, "mutability": "mutable", "name": "receiver", - "nameLocation": "3231:8:0", + "nameLocation": "3318:8:0", "nodeType": "VariableDeclaration", "scope": 242, - "src": "3223:16:0", + "src": "3310:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25818,7 +27195,7 @@ "id": 235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3223:7:0", + "src": "3310:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25828,7 +27205,7 @@ "visibility": "internal" } ], - "src": "3205:35:0" + "src": "3292:35:0" }, "returnParameters": { "id": 241, @@ -25839,10 +27216,10 @@ "id": 240, "mutability": "mutable", "name": "vault", - "nameLocation": "3287:5:0", + "nameLocation": "3376:5:0", "nodeType": "VariableDeclaration", "scope": 242, - "src": "3274:18:0", + "src": "3363:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -25857,10 +27234,10 @@ "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "3274:5:0" + "src": "3363:5:0" }, "referencedDeclaration": 8, - "src": "3274:5:0", + "src": "3363:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -25869,17 +27246,17 @@ "visibility": "internal" } ], - "src": "3273:20:0" + "src": "3362:20:0" }, "scope": 243, - "src": "3192:102:0", + "src": "3279:104:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "2843:453:0", + "scope": 683, + "src": "2923:463:0", "usedErrors": [] }, { @@ -25889,10 +27266,10 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 654, - "linearizedBaseContracts": [654], + "id": 682, + "linearizedBaseContracts": [682], "name": "YieldLever", - "nameLocation": "3307:10:0", + "nameLocation": "3399:10:0", "nodeType": "ContractDefinition", "nodes": [ { @@ -25900,10 +27277,10 @@ "id": 249, "mutability": "constant", "name": "yvUSDC", - "nameLocation": "3338:6:0", + "nameLocation": "3431:6:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3322:75:0", + "scope": 682, + "src": "3415:75:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25918,10 +27295,10 @@ "name": "yVault", "nodeType": "IdentifierPath", "referencedDeclaration": 178, - "src": "3322:6:0" + "src": "3415:6:0" }, "referencedDeclaration": 178, - "src": "3322:6:0", + "src": "3415:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" @@ -25938,7 +27315,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3354:42:0", + "src": "3447:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25958,7 +27335,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 178, - "src": "3347:6:0", + "src": "3440:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_yVault_$178_$", "typeString": "type(contract yVault)" @@ -25972,7 +27349,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3347:50:0", + "src": "3440:50:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", @@ -25986,10 +27363,10 @@ "id": 255, "mutability": "constant", "name": "ilkId", - "nameLocation": "3417:5:0", + "nameLocation": "3511:5:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3401:46:0", + "scope": 682, + "src": "3495:46:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26000,7 +27377,7 @@ "id": 250, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "3401:6:0", + "src": "3495:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -26017,7 +27394,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3432:14:0", + "src": "3526:14:0", "typeDescriptions": { "typeIdentifier": "t_rational_53021371269120_by_1", "typeString": "int_const 53021371269120" @@ -26038,7 +27415,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3425:6:0", + "src": "3519:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes6_$", "typeString": "type(bytes6)" @@ -26047,7 +27424,7 @@ "id": 251, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "3425:6:0", + "src": "3519:6:0", "typeDescriptions": {} } }, @@ -26059,7 +27436,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3425:22:0", + "src": "3519:22:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes6", @@ -26073,10 +27450,10 @@ "id": 261, "mutability": "constant", "name": "iUSDC", - "nameLocation": "3481:5:0", + "nameLocation": "3576:5:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3465:74:0", + "scope": 682, + "src": "3560:74:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26091,10 +27468,10 @@ "name": "IToken", "nodeType": "IdentifierPath", "referencedDeclaration": 199, - "src": "3465:6:0" + "src": "3560:6:0" }, "referencedDeclaration": 199, - "src": "3465:6:0", + "src": "3560:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -26111,7 +27488,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3496:42:0", + "src": "3591:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26131,7 +27508,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, - "src": "3489:6:0", + "src": "3584:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IToken_$199_$", "typeString": "type(contract IToken)" @@ -26145,7 +27522,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3489:50:0", + "src": "3584:50:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", @@ -26159,10 +27536,10 @@ "id": 267, "mutability": "constant", "name": "usdc", - "nameLocation": "3560:4:0", + "nameLocation": "3656:4:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3544:73:0", + "scope": 682, + "src": "3640:73:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26177,10 +27554,10 @@ "name": "IERC20", "nodeType": "IdentifierPath", "referencedDeclaration": 161, - "src": "3544:6:0" + "src": "3640:6:0" }, "referencedDeclaration": 161, - "src": "3544:6:0", + "src": "3640:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" @@ -26197,7 +27574,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3574:42:0", + "src": "3670:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26217,7 +27594,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 161, - "src": "3567:6:0", + "src": "3663:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$161_$", "typeString": "type(contract IERC20)" @@ -26231,7 +27608,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3567:50:0", + "src": "3663:50:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", @@ -26245,10 +27622,10 @@ "id": 273, "mutability": "constant", "name": "usdcJoin", - "nameLocation": "3638:8:0", + "nameLocation": "3735:8:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3621:79:0", + "scope": 682, + "src": "3718:79:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26259,7 +27636,7 @@ "id": 268, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3621:7:0", + "src": "3718:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26277,7 +27654,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3657:42:0", + "src": "3754:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26298,7 +27675,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3649:7:0", + "src": "3746:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -26307,7 +27684,7 @@ "id": 269, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3649:7:0", + "src": "3746:7:0", "typeDescriptions": {} } }, @@ -26319,7 +27696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3649:51:0", + "src": "3746:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26333,10 +27710,10 @@ "id": 279, "mutability": "constant", "name": "ladle", - "nameLocation": "3724:5:0", + "nameLocation": "3822:5:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3704:82:0", + "scope": 682, + "src": "3802:82:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26351,10 +27728,10 @@ "name": "YieldLadle", "nodeType": "IdentifierPath", "referencedDeclaration": 108, - "src": "3704:10:0" + "src": "3802:10:0" }, "referencedDeclaration": 108, - "src": "3704:10:0", + "src": "3802:10:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" @@ -26371,7 +27748,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3743:42:0", + "src": "3841:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26391,7 +27768,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 108, - "src": "3732:10:0", + "src": "3830:10:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_YieldLadle_$108_$", "typeString": "type(contract YieldLadle)" @@ -26405,7 +27782,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3732:54:0", + "src": "3830:54:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", @@ -26419,10 +27796,10 @@ "id": 285, "mutability": "constant", "name": "yvUSDCJoin", - "nameLocation": "3807:10:0", + "nameLocation": "3906:10:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3790:81:0", + "scope": 682, + "src": "3889:81:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26433,7 +27810,7 @@ "id": 280, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3790:7:0", + "src": "3889:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26451,7 +27828,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3828:42:0", + "src": "3927:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26472,7 +27849,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3820:7:0", + "src": "3919:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -26481,7 +27858,7 @@ "id": 281, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3820:7:0", + "src": "3919:7:0", "typeDescriptions": {} } }, @@ -26493,7 +27870,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3820:51:0", + "src": "3919:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26507,10 +27884,10 @@ "id": 291, "mutability": "constant", "name": "cauldron", - "nameLocation": "3893:8:0", + "nameLocation": "3993:8:0", "nodeType": "VariableDeclaration", - "scope": 654, - "src": "3875:81:0", + "scope": 682, + "src": "3975:81:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26525,10 +27902,10 @@ "name": "Cauldron", "nodeType": "IdentifierPath", "referencedDeclaration": 243, - "src": "3875:8:0" + "src": "3975:8:0" }, "referencedDeclaration": 243, - "src": "3875:8:0", + "src": "3975:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" @@ -26545,7 +27922,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3913:42:0", + "src": "4013:42:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26565,13 +27942,144 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 243, - "src": "3904:8:0", + "src": "4004:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Cauldron_$243_$", + "typeString": "type(contract Cauldron)" + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4004:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Cauldron_$243", + "typeString": "contract Cauldron" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 300, + "mutability": "constant", + "name": "usdcId", + "nameLocation": "4079:6:0", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "4063:46:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + }, + "typeName": { + "id": 292, + "name": "bytes6", + "nodeType": "ElementaryTypeName", + "src": "4063:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "value": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "3032", + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4103:4:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c810d4a7471a2c9f9fdc62a2715a1c7f2c7102d52841c11e2cbc662de9cc030e", + "typeString": "literal_string \"02\"" + }, + "value": "02" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c810d4a7471a2c9f9fdc62a2715a1c7f2c7102d52841c11e2cbc662de9cc030e", + "typeString": "literal_string \"02\"" + } + ], + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 295, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4095:7:0", + "typeDescriptions": {} + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4088:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Cauldron_$243_$", - "typeString": "type(contract Cauldron)" + "typeIdentifier": "t_type$_t_bytes6_$", + "typeString": "type(bytes6)" + }, + "typeName": { + "id": 293, + "name": "bytes6", + "nodeType": "ElementaryTypeName", + "src": "4088:6:0", + "typeDescriptions": {} } }, - "id": 290, + "id": 299, "isConstant": false, "isLValue": false, "isPure": true, @@ -26579,45 +28087,419 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3904:52:0", + "src": "4088:21:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Cauldron_$243", - "typeString": "contract Cauldron" + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" } }, "visibility": "internal" }, { "body": { - "id": 371, + "id": 318, + "nodeType": "Block", + "src": "4186:61:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 309, + "name": "yvUSDC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "4214:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_yVault_$178", + "typeString": "contract yVault" + } + ], + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4206:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4206:7:0", + "typeDescriptions": {} + } + }, + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4206:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4228:7:0", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 311, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "4223:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4223:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4223:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 304, + "name": "usdc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 267, + "src": "4193:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$161", + "typeString": "contract IERC20" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 140, + "src": "4193:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4193:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 317, + "nodeType": "ExpressionStatement", + "src": "4193:48:0" + } + ] + }, + "documentation": { + "id": 301, + "nodeType": "StructuredDocumentation", + "src": "4116:52:0", + "text": "@dev YieldLever is not expected to hold any USDC" + }, + "id": 319, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [], + "src": "4183:2:0" + }, + "returnParameters": { + "id": 303, + "nodeType": "ParameterList", + "parameters": [], + "src": "4186:0:0" + }, + "scope": 682, + "src": "4172:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 399, "nodeType": "Block", - "src": "4851:707:0", + "src": "5160:971:0", "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + }, + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 334, + "name": "seriesId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "5231:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + ], + "expression": { + "id": 332, + "name": "cauldron", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 291, + "src": "5215:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Cauldron_$243", + "typeString": "contract Cauldron" + } + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "series", + "nodeType": "MemberAccess", + "referencedDeclaration": 207, + "src": "5215:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes6_$returns$_t_struct$_Series_$17_memory_ptr_$", + "typeString": "function (bytes6) view external returns (struct Series memory)" + } + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5215:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Series_$17_memory_ptr", + "typeString": "struct Series memory" + } + }, + "id": 336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "baseId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14, + "src": "5215:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 337, + "name": "usdcId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 300, + "src": "5251:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes6", + "typeString": "bytes6" + } + }, + "src": "5215:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 331, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5207:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 340, + "nodeType": "ExpressionStatement", + "src": "5207:51:0" + }, { "expression": { "arguments": [ { "expression": { - "id": 306, + "id": 344, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4912:3:0", + "src": "5511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 307, + "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4912:10:0", + "src": "5511:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26626,14 +28508,14 @@ { "arguments": [ { - "id": 310, + "id": 348, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "4932:4:0", + "src": "5531:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -26641,30 +28523,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 309, + "id": 347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4924:7:0", + "src": "5523:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 308, + "id": 346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4924:7:0", + "src": "5523:7:0", "typeDescriptions": {} } }, - "id": 311, + "id": 349, "isConstant": false, "isLValue": false, "isPure": false, @@ -26672,7 +28554,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4924:13:0", + "src": "5523:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26680,12 +28562,12 @@ } }, { - "id": 312, + "id": 350, "name": "baseAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "4939:10:0", + "referencedDeclaration": 322, + "src": "5538:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26708,18 +28590,18 @@ } ], "expression": { - "id": 303, + "id": 341, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "4894:4:0", + "src": "5493:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 305, + "id": 343, "isConstant": false, "isLValue": false, "isPure": false, @@ -26727,13 +28609,13 @@ "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 160, - "src": "4894:17:0", + "src": "5493:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 313, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -26741,29 +28623,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4894:56:0", + "src": "5493:56:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 314, + "id": 352, "nodeType": "ExpressionStatement", - "src": "4894:56:0" + "src": "5493:56:0" }, { - "assignments": [316, null], + "assignments": [354, null], "declarations": [ { "constant": false, - "id": 316, + "id": 354, "mutability": "mutable", "name": "vaultId", - "nameLocation": "4992:7:0", + "nameLocation": "5593:7:0", "nodeType": "VariableDeclaration", - "scope": 371, - "src": "4984:15:0", + "scope": 399, + "src": "5585:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26771,10 +28653,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 315, + "id": 353, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "4984:7:0", + "src": "5585:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -26784,28 +28666,28 @@ }, null ], - "id": 323, + "id": 361, "initialValue": { "arguments": [ { - "id": 319, + "id": 357, "name": "seriesId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "5017:8:0", + "referencedDeclaration": 328, + "src": "5618:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" } }, { - "id": 320, + "id": 358, "name": "ilkId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "5027:5:0", + "src": "5628:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -26813,14 +28695,14 @@ }, { "hexValue": "30", - "id": 321, + "id": 359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5034:1:0", + "src": "5635:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -26844,18 +28726,18 @@ } ], "expression": { - "id": 317, + "id": 355, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "5005:5:0", + "src": "5606:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 318, + "id": 356, "isConstant": false, "isLValue": false, "isPure": false, @@ -26863,13 +28745,13 @@ "memberName": "build", "nodeType": "MemberAccess", "referencedDeclaration": 43, - "src": "5005:11:0", + "src": "5606:11:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes6_$_t_bytes6_$_t_uint8_$returns$_t_bytes12_$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes6,bytes6,uint8) payable external returns (bytes12,struct Vault memory)" } }, - "id": 322, + "id": 360, "isConstant": false, "isLValue": false, "isPure": false, @@ -26877,7 +28759,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5005:31:0", + "src": "5606:31:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes12_$_t_struct$_Vault_$8_memory_ptr_$", @@ -26885,20 +28767,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4983:53:0" + "src": "5584:53:0" }, { - "assignments": [325], + "assignments": [363], "declarations": [ { "constant": false, - "id": 325, + "id": 363, "mutability": "mutable", "name": "investAmount", - "nameLocation": "5051:12:0", + "nameLocation": "5654:12:0", "nodeType": "VariableDeclaration", - "scope": 371, - "src": "5043:20:0", + "scope": 399, + "src": "5646:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26906,10 +28788,10 @@ "typeString": "uint256" }, "typeName": { - "id": 324, + "id": 362, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5043:7:0", + "src": "5646:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26918,24 +28800,24 @@ "visibility": "internal" } ], - "id": 329, + "id": 367, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 328, + "id": 366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 326, + "id": 364, "name": "baseAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "5066:10:0", + "referencedDeclaration": 322, + "src": "5669:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26944,164 +28826,36 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 327, + "id": 365, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 296, - "src": "5079:12:0", + "referencedDeclaration": 324, + "src": "5682:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "5066:25:0", + "src": "5669:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5043:48:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 335, - "name": "yvUSDC", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "5118:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_yVault_$178", - "typeString": "contract yVault" - } - ], - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5110:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5110:7:0", - "typeDescriptions": {} - } - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5110:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 337, - "name": "investAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "5127:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 330, - "name": "usdc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 267, - "src": "5097:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$161", - "typeString": "contract IERC20" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 140, - "src": "5097:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5097:43:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 339, - "nodeType": "ExpressionStatement", - "src": "5097:43:0" + "src": "5646:48:0" }, { "expression": { "arguments": [ { - "id": 343, + "id": 371, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 296, - "src": "5199:12:0", + "referencedDeclaration": 324, + "src": "5757:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -27110,14 +28864,14 @@ { "arguments": [ { - "id": 346, + "id": 374, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "5229:4:0", + "src": "5788:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -27125,30 +28879,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 345, + "id": 373, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5221:7:0", + "src": "5780:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 344, + "id": 372, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:0", + "src": "5780:7:0", "typeDescriptions": {} } }, - "id": 347, + "id": 375, "isConstant": false, "isLValue": false, "isPure": false, @@ -27156,7 +28910,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5221:13:0", + "src": "5780:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27166,14 +28920,14 @@ { "arguments": [ { - "id": 350, + "id": 378, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "5252:4:0", + "src": "5812:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -27181,30 +28935,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 349, + "id": 377, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5244:7:0", + "src": "5804:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 348, + "id": 376, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5244:7:0", + "src": "5804:7:0", "typeDescriptions": {} } }, - "id": 351, + "id": 379, "isConstant": false, "isLValue": false, "isPure": false, @@ -27212,7 +28966,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5244:13:0", + "src": "5804:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27221,14 +28975,14 @@ }, { "hexValue": "", - "id": 352, + "id": 380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5267:2:0", + "src": "5828:2:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -27239,14 +28993,14 @@ "arguments": [ { "hexValue": "646f496e766573742875696e743235362c75696e743132382c75696e743132382c6279746573313229", - "id": 355, + "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5314:43:0", + "src": "5877:43:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_47b34845029d274e25eda635cf8939b29bcf4a4002e0c275b9c8cce466366569", "typeString": "literal_string \"doInvest(uint256,uint128,uint128,bytes12)\"" @@ -27254,48 +29008,48 @@ "value": "doInvest(uint256,uint128,uint128,bytes12)" }, { - "id": 356, + "id": 384, "name": "investAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "5369:12:0", + "referencedDeclaration": 363, + "src": "5933:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 357, + "id": 385, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 296, - "src": "5393:12:0", + "referencedDeclaration": 324, + "src": "5958:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 358, + "id": 386, "name": "maxFyAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "5417:11:0", + "referencedDeclaration": 326, + "src": "5983:11:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 359, + "id": 387, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5440:7:0", + "referencedDeclaration": 354, + "src": "6007:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -27326,31 +29080,31 @@ } ], "expression": { - "id": 353, + "id": 381, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "5279:3:0", + "src": "5841:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 354, + "id": 382, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "5279:23:0", + "src": "5841:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 360, + "id": 388, "isConstant": false, "isLValue": false, "isPure": false, @@ -27358,7 +29112,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5279:178:0", + "src": "5841:184:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -27390,18 +29144,18 @@ } ], "expression": { - "id": 340, + "id": 368, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "5172:5:0", + "src": "5729:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" } }, - "id": 342, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, @@ -27409,13 +29163,13 @@ "memberName": "flashBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 198, - "src": "5172:17:0", + "src": "5729:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,address,address,string memory,bytes memory) payable external returns (bytes memory)" } }, - "id": 361, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, @@ -27423,27 +29177,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5172:291:0", + "src": "5729:303:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 362, + "id": 390, "nodeType": "ExpressionStatement", - "src": "5172:291:0" + "src": "5729:303:0" }, { "expression": { "arguments": [ { - "id": 366, + "id": 394, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5533:7:0", + "referencedDeclaration": 354, + "src": "6105:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -27451,25 +29205,25 @@ }, { "expression": { - "id": 367, + "id": 395, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "5542:3:0", + "src": "6114:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 368, + "id": 396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "5542:10:0", + "src": "6114:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27488,18 +29242,18 @@ } ], "expression": { - "id": 363, + "id": 391, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "5519:8:0", + "src": "6091:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 365, + "id": 393, "isConstant": false, "isLValue": false, "isPure": false, @@ -27507,13 +29261,13 @@ "memberName": "give", "nodeType": "MemberAccess", "referencedDeclaration": 242, - "src": "5519:13:0", + "src": "6091:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes12_$_t_address_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12,address) external returns (struct Vault memory)" } }, - "id": 369, + "id": 397, "isConstant": false, "isLValue": false, "isPure": false, @@ -27521,46 +29275,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5519:34:0", + "src": "6091:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 370, + "id": 398, "nodeType": "ExpressionStatement", - "src": "5519:34:0" + "src": "6091:34:0" } ] }, "documentation": { - "id": 292, + "id": 320, "nodeType": "StructuredDocumentation", - "src": "3961:761:0", + "src": "4253:772:0", "text": "@notice Invest `baseAmount` and borrow an additional `borrowAmount`.\n Use this to obtain a maximum of `maxFyAmount` to repay the flash loan.\n The end goal is to have a debt of `borrowAmount`, but earn interest on\n the entire collateral, including the borrowed part.\n @param baseAmount - The amount to invest from your own funds.\n @param borrowAmount - The extra amount to borrow. This is immediately\n repaid, so setting this to 3 times baseAmount will incur a debt of 75%\n of the collateral.\n @param maxFyAmount - The maximum amount of fyTokens to sell. Should be\n enough to cover the flash loan.\n @param seriesId - The series Id to invest in. For example, 0x303230360000\n for FYUSDC06LP." }, "functionSelector": "fcd064cf", - "id": 372, + "id": 400, "implemented": true, "kind": "function", "modifiers": [], "name": "invest", - "nameLocation": "4735:6:0", + "nameLocation": "5039:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 301, + "id": 329, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 294, + "id": 322, "mutability": "mutable", "name": "baseAmount", - "nameLocation": "4755:10:0", + "nameLocation": "5060:10:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4747:18:0", + "scope": 400, + "src": "5052:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27568,10 +29322,10 @@ "typeString": "uint256" }, "typeName": { - "id": 293, + "id": 321, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4747:7:0", + "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27581,13 +29335,13 @@ }, { "constant": false, - "id": 296, + "id": 324, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "4779:12:0", + "nameLocation": "5085:12:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4771:20:0", + "scope": 400, + "src": "5077:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27595,10 +29349,10 @@ "typeString": "uint128" }, "typeName": { - "id": 295, + "id": 323, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "4771:7:0", + "src": "5077:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -27608,13 +29362,13 @@ }, { "constant": false, - "id": 298, + "id": 326, "mutability": "mutable", "name": "maxFyAmount", - "nameLocation": "4805:11:0", + "nameLocation": "5112:11:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4797:19:0", + "scope": 400, + "src": "5104:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27622,10 +29376,10 @@ "typeString": "uint128" }, "typeName": { - "id": 297, + "id": 325, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "4797:7:0", + "src": "5104:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -27635,13 +29389,13 @@ }, { "constant": false, - "id": 300, + "id": 328, "mutability": "mutable", "name": "seriesId", - "nameLocation": "4829:8:0", + "nameLocation": "5137:8:0", "nodeType": "VariableDeclaration", - "scope": 372, - "src": "4822:15:0", + "scope": 400, + "src": "5130:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27649,10 +29403,10 @@ "typeString": "bytes6" }, "typeName": { - "id": 299, + "id": 327, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "4822:6:0", + "src": "5130:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -27661,38 +29415,38 @@ "visibility": "internal" } ], - "src": "4741:100:0" + "src": "5045:105:0" }, "returnParameters": { - "id": 302, + "id": 330, "nodeType": "ParameterList", "parameters": [], - "src": "4851:0:0" + "src": "5160:0:0" }, - "scope": 654, - "src": "4726:832:0", + "scope": 682, + "src": "5030:1101:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 408, + "id": 436, "nodeType": "Block", - "src": "5979:472:0", + "src": "6725:482:0", "statements": [ { - "assignments": [385], + "assignments": [413], "declarations": [ { "constant": false, - "id": 385, + "id": 413, "mutability": "mutable", "name": "yvUSDCBalance", - "nameLocation": "6150:13:0", + "nameLocation": "6900:13:0", "nodeType": "VariableDeclaration", - "scope": 408, - "src": "6142:21:0", + "scope": 436, + "src": "6892:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27700,10 +29454,10 @@ "typeString": "uint128" }, "typeName": { - "id": 384, + "id": 412, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "6142:7:0", + "src": "6892:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -27712,30 +29466,30 @@ "visibility": "internal" } ], - "id": 394, + "id": 422, "initialValue": { "arguments": [ { "arguments": [ { - "id": 390, + "id": 418, "name": "investAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 375, - "src": "6189:12:0", + "referencedDeclaration": 403, + "src": "6939:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 391, + "id": 419, "name": "yvUSDCJoin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 285, - "src": "6203:10:0", + "src": "6953:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27754,18 +29508,18 @@ } ], "expression": { - "id": 388, + "id": 416, "name": "yvUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 249, - "src": "6174:6:0", + "src": "6924:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" } }, - "id": 389, + "id": 417, "isConstant": false, "isLValue": false, "isPure": false, @@ -27773,13 +29527,13 @@ "memberName": "deposit", "nodeType": "MemberAccess", "referencedDeclaration": 172, - "src": "6174:14:0", + "src": "6924:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$", "typeString": "function (uint256,address) external returns (uint256)" } }, - "id": 392, + "id": 420, "isConstant": false, "isLValue": false, "isPure": false, @@ -27787,7 +29541,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6174:40:0", + "src": "6924:40:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -27802,26 +29556,26 @@ "typeString": "uint256" } ], - "id": 387, + "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6166:7:0", + "src": "6916:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 386, + "id": 414, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "6166:7:0", + "src": "6916:7:0", "typeDescriptions": {} } }, - "id": 393, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, @@ -27829,7 +29583,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6166:49:0", + "src": "6916:49:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -27837,18 +29591,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6142:73:0" + "src": "6892:73:0" }, { "expression": { "arguments": [ { - "id": 398, + "id": 426, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "6380:7:0", + "referencedDeclaration": 409, + "src": "7135:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -27857,12 +29611,12 @@ { "arguments": [ { - "id": 401, + "id": 429, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "6397:5:0", + "src": "7152:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -27876,26 +29630,26 @@ "typeString": "contract IToken" } ], - "id": 400, + "id": 428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6389:7:0", + "src": "7144:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 399, + "id": 427, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6389:7:0", + "src": "7144:7:0", "typeDescriptions": {} } }, - "id": 402, + "id": 430, "isConstant": false, "isLValue": false, "isPure": true, @@ -27903,7 +29657,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6389:14:0", + "src": "7144:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27911,36 +29665,36 @@ } }, { - "id": 403, + "id": 431, "name": "yvUSDCBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "6405:13:0", + "referencedDeclaration": 413, + "src": "7160:13:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 404, + "id": 432, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "6420:12:0", + "referencedDeclaration": 405, + "src": "7175:12:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 405, + "id": 433, "name": "maxFyAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 379, - "src": "6434:11:0", + "referencedDeclaration": 407, + "src": "7189:11:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -27971,18 +29725,18 @@ } ], "expression": { - "id": 395, + "id": 423, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "6368:5:0", + "src": "7123:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 397, + "id": 425, "isConstant": false, "isLValue": false, "isPure": false, @@ -27990,13 +29744,13 @@ "memberName": "serve", "nodeType": "MemberAccess", "referencedDeclaration": 58, - "src": "6368:11:0", + "src": "7123:11:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes12_$_t_address_$_t_uint128_$_t_uint128_$_t_uint128_$returns$_t_uint128_$", "typeString": "function (bytes12,address,uint128,uint128,uint128) payable external returns (uint128)" } }, - "id": 406, + "id": 434, "isConstant": false, "isLValue": false, "isPure": false, @@ -28004,46 +29758,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6368:78:0", + "src": "7123:78:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 407, + "id": 435, "nodeType": "ExpressionStatement", - "src": "6368:78:0" + "src": "7123:78:0" } ] }, "documentation": { - "id": 373, + "id": 401, "nodeType": "StructuredDocumentation", - "src": "5562:285:0", - "text": "@notice This function is called inside the flash loan and handles the\n actual investment.\n @param borrowAmount - The amount borrowed using a flash loan.\n @param maxFyAmount - The maximum amount of fyTokens to sell.\n @param vaultId - The vault id to invest in." + "src": "6137:450:0", + "text": "@notice This function is called inside the flash loan and handles the\n actual investment.\n @param borrowAmount - The amount borrowed using a flash loan.\n @param maxFyAmount - The maximum amount of fyTokens to sell.\n @param vaultId - The vault id to invest in.\n @dev Calling this function outside a flash loan achieves nothing,\n since the contract needs to have assets and own the vault it's borrowing from." }, "functionSelector": "47b34845", - "id": 409, + "id": 437, "implemented": true, "kind": "function", "modifiers": [], "name": "doInvest", - "nameLocation": "5859:8:0", + "nameLocation": "6600:8:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 382, + "id": 410, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 375, + "id": 403, "mutability": "mutable", "name": "investAmount", - "nameLocation": "5881:12:0", + "nameLocation": "6623:12:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5873:20:0", + "scope": 437, + "src": "6615:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28051,10 +29805,10 @@ "typeString": "uint256" }, "typeName": { - "id": 374, + "id": 402, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:0", + "src": "6615:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28064,13 +29818,13 @@ }, { "constant": false, - "id": 377, + "id": 405, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "5907:12:0", + "nameLocation": "6650:12:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5899:20:0", + "scope": 437, + "src": "6642:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28078,10 +29832,10 @@ "typeString": "uint128" }, "typeName": { - "id": 376, + "id": 404, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "5899:7:0", + "src": "6642:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -28091,13 +29845,13 @@ }, { "constant": false, - "id": 379, + "id": 407, "mutability": "mutable", "name": "maxFyAmount", - "nameLocation": "5933:11:0", + "nameLocation": "6677:11:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5925:19:0", + "scope": 437, + "src": "6669:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28105,10 +29859,10 @@ "typeString": "uint128" }, "typeName": { - "id": 378, + "id": 406, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "5925:7:0", + "src": "6669:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -28118,13 +29872,13 @@ }, { "constant": false, - "id": 381, + "id": 409, "mutability": "mutable", "name": "vaultId", - "nameLocation": "5958:7:0", + "nameLocation": "6703:7:0", "nodeType": "VariableDeclaration", - "scope": 409, - "src": "5950:15:0", + "scope": 437, + "src": "6695:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28132,10 +29886,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 380, + "id": 408, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "5950:7:0", + "src": "6695:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -28144,38 +29898,38 @@ "visibility": "internal" } ], - "src": "5867:102:0" + "src": "6608:107:0" }, "returnParameters": { - "id": 383, + "id": 411, "nodeType": "ParameterList", "parameters": [], - "src": "5979:0:0" + "src": "6725:0:0" }, - "scope": 654, - "src": "5850:601:0", + "scope": 682, + "src": "6591:616:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 529, + "id": 557, "nodeType": "Block", - "src": "7262:1223:0", + "src": "8031:1258:0", "statements": [ { - "assignments": [427], + "assignments": [455], "declarations": [ { "constant": false, - "id": 427, + "id": 455, "mutability": "mutable", "name": "vault_", - "nameLocation": "7281:6:0", + "nameLocation": "8051:6:0", "nodeType": "VariableDeclaration", - "scope": 529, - "src": "7268:19:0", + "scope": 557, + "src": "8038:19:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -28183,17 +29937,17 @@ "typeString": "struct Vault" }, "typeName": { - "id": 426, + "id": 454, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 425, + "id": 453, "name": "Vault", "nodeType": "IdentifierPath", "referencedDeclaration": 8, - "src": "7268:5:0" + "src": "8038:5:0" }, "referencedDeclaration": 8, - "src": "7268:5:0", + "src": "8038:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_storage_ptr", "typeString": "struct Vault" @@ -28202,16 +29956,16 @@ "visibility": "internal" } ], - "id": 432, + "id": 460, "initialValue": { "arguments": [ { - "id": 430, + "id": 458, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7306:7:0", + "referencedDeclaration": 440, + "src": "8076:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -28226,18 +29980,18 @@ } ], "expression": { - "id": 428, + "id": 456, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "7290:8:0", + "src": "8060:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 429, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -28245,13 +29999,13 @@ "memberName": "vaults", "nodeType": "MemberAccess", "referencedDeclaration": 215, - "src": "7290:15:0", + "src": "8060:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes12_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12) view external returns (struct Vault memory)" } }, - "id": 431, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, @@ -28259,7 +30013,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7290:24:0", + "src": "8060:24:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", @@ -28267,20 +30021,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7268:46:0" + "src": "8038:46:0" }, { - "assignments": [435], + "assignments": [463], "declarations": [ { "constant": false, - "id": 435, + "id": 463, "mutability": "mutable", "name": "series_", - "nameLocation": "7334:7:0", + "nameLocation": "8105:7:0", "nodeType": "VariableDeclaration", - "scope": 529, - "src": "7320:21:0", + "scope": 557, + "src": "8091:21:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -28288,17 +30042,17 @@ "typeString": "struct Series" }, "typeName": { - "id": 434, + "id": 462, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 433, + "id": 461, "name": "Series", "nodeType": "IdentifierPath", "referencedDeclaration": 17, - "src": "7320:6:0" + "src": "8091:6:0" }, "referencedDeclaration": 17, - "src": "7320:6:0", + "src": "8091:6:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_storage_ptr", "typeString": "struct Series" @@ -28307,16 +30061,16 @@ "visibility": "internal" } ], - "id": 440, + "id": 468, "initialValue": { "arguments": [ { - "id": 438, + "id": 466, "name": "seriesId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "7360:8:0", + "referencedDeclaration": 450, + "src": "8131:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -28331,18 +30085,18 @@ } ], "expression": { - "id": 436, + "id": 464, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "7344:8:0", + "src": "8115:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 437, + "id": 465, "isConstant": false, "isLValue": false, "isPure": false, @@ -28350,13 +30104,13 @@ "memberName": "series", "nodeType": "MemberAccess", "referencedDeclaration": 207, - "src": "7344:15:0", + "src": "8115:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes6_$returns$_t_struct$_Series_$17_memory_ptr_$", "typeString": "function (bytes6) view external returns (struct Series memory)" } }, - "id": 439, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, @@ -28364,7 +30118,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7344:25:0", + "src": "8115:25:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_memory_ptr", @@ -28372,7 +30126,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7320:49:0" + "src": "8091:49:0" }, { "expression": { @@ -28382,25 +30136,25 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 446, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 442, + "id": 470, "name": "vault_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "7509:6:0", + "referencedDeclaration": 455, + "src": "8284:6:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 443, + "id": 471, "isConstant": false, "isLValue": true, "isPure": false, @@ -28408,7 +30162,7 @@ "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 3, - "src": "7509:12:0", + "src": "8284:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28418,31 +30172,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 444, + "id": 472, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7525:3:0", + "src": "8300:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 445, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7525:10:0", + "src": "8300:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7509:26:0", + "src": "8284:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28456,18 +30210,18 @@ "typeString": "bool" } ], - "id": 441, + "id": 469, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [4294967278, 4294967278], "referencedDeclaration": 4294967278, - "src": "7501:7:0", + "src": "8276:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 447, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -28475,27 +30229,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7501:35:0", + "src": "8276:35:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 448, + "id": 476, "nodeType": "ExpressionStatement", - "src": "7501:35:0" + "src": "8276:35:0" }, { "expression": { "arguments": [ { - "id": 452, + "id": 480, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7595:7:0", + "referencedDeclaration": 440, + "src": "8373:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -28504,14 +30258,14 @@ { "arguments": [ { - "id": 455, + "id": 483, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "7612:4:0", + "src": "8390:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -28519,30 +30273,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 454, + "id": 482, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7604:7:0", + "src": "8382:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 453, + "id": 481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7604:7:0", + "src": "8382:7:0", "typeDescriptions": {} } }, - "id": 456, + "id": 484, "isConstant": false, "isLValue": false, "isPure": false, @@ -28550,7 +30304,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7604:13:0", + "src": "8382:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28570,18 +30324,18 @@ } ], "expression": { - "id": 449, + "id": 477, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "7581:8:0", + "src": "8359:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 451, + "id": 479, "isConstant": false, "isLValue": false, "isPure": false, @@ -28589,13 +30343,13 @@ "memberName": "give", "nodeType": "MemberAccess", "referencedDeclaration": 242, - "src": "7581:13:0", + "src": "8359:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes12_$_t_address_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12,address) external returns (struct Vault memory)" } }, - "id": 457, + "id": 485, "isConstant": false, "isLValue": false, "isPure": false, @@ -28603,16 +30357,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7581:37:0", + "src": "8359:37:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 458, + "id": 486, "nodeType": "ExpressionStatement", - "src": "7581:37:0" + "src": "8359:37:0" }, { "condition": { @@ -28620,7 +30374,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 466, + "id": 494, "isConstant": false, "isLValue": false, "isPure": false, @@ -28629,25 +30383,25 @@ "arguments": [ { "expression": { - "id": 461, + "id": 489, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "7638:5:0", + "src": "8418:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 462, + "id": 490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "7638:15:0", + "src": "8418:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28661,26 +30415,26 @@ "typeString": "uint256" } ], - "id": 460, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7631:6:0", + "src": "8411:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 459, + "id": 487, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7631:6:0", + "src": "8411:6:0", "typeDescriptions": {} } }, - "id": 463, + "id": 491, "isConstant": false, "isLValue": false, "isPure": false, @@ -28688,7 +30442,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7631:23:0", + "src": "8411:23:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -28699,18 +30453,18 @@ "operator": "<", "rightExpression": { "expression": { - "id": 464, + "id": 492, "name": "series_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "7657:7:0", + "referencedDeclaration": 463, + "src": "8437:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Series_$17_memory_ptr", "typeString": "struct Series memory" } }, - "id": 465, + "id": 493, "isConstant": false, "isLValue": true, "isPure": false, @@ -28718,35 +30472,35 @@ "memberName": "maturity", "nodeType": "MemberAccess", "referencedDeclaration": 16, - "src": "7657:16:0", + "src": "8437:16:0", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "7631:42:0", + "src": "8411:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 519, + "id": 547, "nodeType": "Block", - "src": "7998:364:0", + "src": "8788:374:0", "statements": [ { - "assignments": [490], + "assignments": [518], "declarations": [ { "constant": false, - "id": 490, + "id": 518, "mutability": "mutable", "name": "base", - "nameLocation": "8092:4:0", + "nameLocation": "8884:4:0", "nodeType": "VariableDeclaration", - "scope": 519, - "src": "8084:12:0", + "scope": 547, + "src": "8876:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28754,10 +30508,10 @@ "typeString": "uint128" }, "typeName": { - "id": 489, + "id": 517, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "8084:7:0", + "src": "8876:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -28766,28 +30520,28 @@ "visibility": "internal" } ], - "id": 496, + "id": 524, "initialValue": { "arguments": [ { - "id": 493, + "id": 521, "name": "seriesId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "8119:8:0", + "referencedDeclaration": 450, + "src": "8911:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" } }, { - "id": 494, + "id": 522, "name": "art", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "8129:3:0", + "referencedDeclaration": 448, + "src": "8921:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -28806,18 +30560,18 @@ } ], "expression": { - "id": 491, + "id": 519, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "8099:8:0", + "src": "8891:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 492, + "id": 520, "isConstant": false, "isLValue": false, "isPure": false, @@ -28825,13 +30579,13 @@ "memberName": "debtToBase", "nodeType": "MemberAccess", "referencedDeclaration": 232, - "src": "8099:19:0", + "src": "8891:19:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes6_$_t_uint128_$returns$_t_uint128_$", "typeString": "function (bytes6,uint128) external returns (uint128)" } }, - "id": 495, + "id": 523, "isConstant": false, "isLValue": false, "isPure": false, @@ -28839,7 +30593,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8099:34:0", + "src": "8891:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -28847,30 +30601,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8084:49:0" + "src": "8876:49:0" }, { "expression": { "arguments": [ { - "id": 500, + "id": 528, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "8168:4:0", + "referencedDeclaration": 518, + "src": "8962:4:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 501, + "id": 529, "name": "usdcJoin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 273, - "src": "8182:8:0", + "src": "8977:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28879,14 +30633,14 @@ { "arguments": [ { - "id": 504, + "id": 532, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "8208:4:0", + "src": "9004:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -28894,30 +30648,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 503, + "id": 531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8200:7:0", + "src": "8996:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 502, + "id": 530, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8200:7:0", + "src": "8996:7:0", "typeDescriptions": {} } }, - "id": 505, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -28925,7 +30679,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8200:13:0", + "src": "8996:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28934,14 +30688,14 @@ }, { "hexValue": "", - "id": 506, + "id": 534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8223:2:0", + "src": "9020:2:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -28952,14 +30706,14 @@ "arguments": [ { "hexValue": "646f436c6f736528616464726573732c627974657331322c75696e743132382c75696e743132382c75696e7431323829", - "id": 509, + "id": 537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8259:50:0", + "src": "9057:50:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6e6bf1f414ec0163a4dc56c7255a81d43898d85fe2872f717866f457729df53f", "typeString": "literal_string \"doClose(address,bytes12,uint128,uint128,uint128)\"" @@ -28968,73 +30722,73 @@ }, { "expression": { - "id": 510, + "id": 538, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8311:3:0", + "src": "9109:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 511, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8311:10:0", + "src": "9109:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 512, + "id": 540, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "8323:7:0", + "referencedDeclaration": 440, + "src": "9121:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" } }, { - "id": 513, + "id": 541, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "8332:4:0", + "referencedDeclaration": 518, + "src": "9130:4:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 514, + "id": 542, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "8338:3:0", + "referencedDeclaration": 446, + "src": "9136:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 515, + "id": 543, "name": "art", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "8343:3:0", + "referencedDeclaration": 448, + "src": "9141:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -29069,31 +30823,31 @@ } ], "expression": { - "id": 507, + "id": 535, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "8235:3:0", + "src": "9033:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 508, + "id": 536, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "8235:23:0", + "src": "9033:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 516, + "id": 544, "isConstant": false, "isLValue": false, "isPure": false, @@ -29101,7 +30855,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8235:112:0", + "src": "9033:112:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -29133,18 +30887,18 @@ } ], "expression": { - "id": 497, + "id": 525, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "8141:5:0", + "src": "8934:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" } }, - "id": 499, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -29152,13 +30906,13 @@ "memberName": "flashBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 198, - "src": "8141:17:0", + "src": "8934:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,address,address,string memory,bytes memory) payable external returns (bytes memory)" } }, - "id": 517, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -29166,49 +30920,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8141:214:0", + "src": "8934:220:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 518, + "id": 546, "nodeType": "ExpressionStatement", - "src": "8141:214:0" + "src": "8934:220:0" } ] }, - "id": 520, + "id": 548, "nodeType": "IfStatement", - "src": "7627:735:0", + "src": "8407:755:0", "trueBody": { - "id": 488, + "id": 516, "nodeType": "Block", - "src": "7675:317:0", + "src": "8455:327:0", "statements": [ { "expression": { "arguments": [ { - "id": 470, + "id": 498, "name": "maxAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "7805:9:0", + "referencedDeclaration": 442, + "src": "8589:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 471, + "id": 499, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "7824:4:0", + "referencedDeclaration": 444, + "src": "8609:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -29217,14 +30971,14 @@ { "arguments": [ { - "id": 474, + "id": 502, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "7846:4:0", + "src": "8632:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -29232,30 +30986,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 473, + "id": 501, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7838:7:0", + "src": "8624:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 472, + "id": 500, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7838:7:0", + "src": "8624:7:0", "typeDescriptions": {} } }, - "id": 475, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, @@ -29263,7 +31017,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7838:13:0", + "src": "8624:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29272,14 +31026,14 @@ }, { "hexValue": "", - "id": 476, + "id": 504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7861:2:0", + "src": "8648:2:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -29290,14 +31044,14 @@ "arguments": [ { "hexValue": "646f526570617928616464726573732c627974657331322c75696e743235362c75696e7431323829", - "id": 479, + "id": 507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7897:42:0", + "src": "8685:42:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_50bf94d73fcc33b85b59858c665e1bad2dd66f9efaa09d3e9592ec241319c0dd", "typeString": "literal_string \"doRepay(address,bytes12,uint256,uint128)\"" @@ -29306,61 +31060,61 @@ }, { "expression": { - "id": 480, + "id": 508, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7941:3:0", + "src": "8729:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 481, + "id": 509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7941:10:0", + "src": "8729:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 482, + "id": 510, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7953:7:0", + "referencedDeclaration": 440, + "src": "8741:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" } }, { - "id": 483, + "id": 511, "name": "maxAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "7962:9:0", + "referencedDeclaration": 442, + "src": "8750:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 484, + "id": 512, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "7973:3:0", + "referencedDeclaration": 446, + "src": "8761:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -29391,31 +31145,31 @@ } ], "expression": { - "id": 477, + "id": 505, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "7873:3:0", + "src": "8661:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 478, + "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "7873:23:0", + "src": "8661:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 485, + "id": 513, "isConstant": false, "isLValue": false, "isPure": false, @@ -29423,7 +31177,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7873:104:0", + "src": "8661:104:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -29455,18 +31209,18 @@ } ], "expression": { - "id": 467, + "id": 495, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "7778:5:0", + "src": "8561:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" } }, - "id": 469, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -29474,13 +31228,13 @@ "memberName": "flashBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 198, - "src": "7778:17:0", + "src": "8561:17:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,address,address,string memory,bytes memory) payable external returns (bytes memory)" } }, - "id": 486, + "id": 514, "isConstant": false, "isLValue": false, "isPure": false, @@ -29488,16 +31242,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7778:207:0", + "src": "8561:213:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 487, + "id": 515, "nodeType": "ExpressionStatement", - "src": "7778:207:0" + "src": "8561:213:0" } ] } @@ -29506,12 +31260,12 @@ "expression": { "arguments": [ { - "id": 524, + "id": 552, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "8460:7:0", + "referencedDeclaration": 440, + "src": "9263:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -29519,25 +31273,25 @@ }, { "expression": { - "id": 525, + "id": 553, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8469:3:0", + "src": "9272:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 526, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8469:10:0", + "src": "9272:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -29556,18 +31310,18 @@ } ], "expression": { - "id": 521, + "id": 549, "name": "cauldron", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, - "src": "8446:8:0", + "src": "9249:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Cauldron_$243", "typeString": "contract Cauldron" } }, - "id": 523, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, @@ -29575,13 +31329,13 @@ "memberName": "give", "nodeType": "MemberAccess", "referencedDeclaration": 242, - "src": "8446:13:0", + "src": "9249:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes12_$_t_address_$returns$_t_struct$_Vault_$8_memory_ptr_$", "typeString": "function (bytes12,address) external returns (struct Vault memory)" } }, - "id": 527, + "id": 555, "isConstant": false, "isLValue": false, "isPure": false, @@ -29589,46 +31343,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8446:34:0", + "src": "9249:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Vault_$8_memory_ptr", "typeString": "struct Vault memory" } }, - "id": 528, + "id": 556, "nodeType": "ExpressionStatement", - "src": "8446:34:0" + "src": "9249:34:0" } ] }, "documentation": { - "id": 410, + "id": 438, "nodeType": "StructuredDocumentation", - "src": "6455:686:0", + "src": "7213:696:0", "text": "@notice Empty a vault.\n @param vaultId - The id of the vault that should be emptied.\n @param maxAmount - The maximum amount of USDC to borrow. If past\n maturity, this parameter is unused as the amount can be determined\n precisely.\n @param pool - The pool to deposit USDC into. This can be obtained via the\n seriesId, and calling `address pool = ladle.pools(seriesId);`\n @param ink - The amount of collateral in the vault. Together with art,\n this value can be obtained using `cauldron.balances(vaultId);`, which\n will return an object containing both `art` and `ink`.\n @param art - The amount of debt taken from the vault." }, "functionSelector": "d238b433", - "id": 530, + "id": 558, "implemented": true, "kind": "function", "modifiers": [], "name": "unwind", - "nameLocation": "7153:6:0", + "nameLocation": "7922:6:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 423, + "id": 451, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 412, + "id": 440, "mutability": "mutable", "name": "vaultId", - "nameLocation": "7168:7:0", + "nameLocation": "7937:7:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7160:15:0", + "scope": 558, + "src": "7929:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29636,10 +31390,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 411, + "id": 439, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "7160:7:0", + "src": "7929:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -29649,13 +31403,13 @@ }, { "constant": false, - "id": 414, + "id": 442, "mutability": "mutable", "name": "maxAmount", - "nameLocation": "7185:9:0", + "nameLocation": "7954:9:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7177:17:0", + "scope": 558, + "src": "7946:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29663,10 +31417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 413, + "id": 441, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7177:7:0", + "src": "7946:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29676,13 +31430,13 @@ }, { "constant": false, - "id": 416, + "id": 444, "mutability": "mutable", "name": "pool", - "nameLocation": "7204:4:0", + "nameLocation": "7973:4:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7196:12:0", + "scope": 558, + "src": "7965:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29690,10 +31444,10 @@ "typeString": "address" }, "typeName": { - "id": 415, + "id": 443, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7196:7:0", + "src": "7965:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -29704,13 +31458,13 @@ }, { "constant": false, - "id": 418, + "id": 446, "mutability": "mutable", "name": "ink", - "nameLocation": "7218:3:0", + "nameLocation": "7987:3:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7210:11:0", + "scope": 558, + "src": "7979:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29718,10 +31472,10 @@ "typeString": "uint128" }, "typeName": { - "id": 417, + "id": 445, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "7210:7:0", + "src": "7979:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -29731,13 +31485,13 @@ }, { "constant": false, - "id": 420, + "id": 448, "mutability": "mutable", "name": "art", - "nameLocation": "7231:3:0", + "nameLocation": "8000:3:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7223:11:0", + "scope": 558, + "src": "7992:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29745,10 +31499,10 @@ "typeString": "uint128" }, "typeName": { - "id": 419, + "id": 447, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "7223:7:0", + "src": "7992:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -29758,13 +31512,13 @@ }, { "constant": false, - "id": 422, + "id": 450, "mutability": "mutable", "name": "seriesId", - "nameLocation": "7243:8:0", + "nameLocation": "8012:8:0", "nodeType": "VariableDeclaration", - "scope": 530, - "src": "7236:15:0", + "scope": 558, + "src": "8005:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29772,10 +31526,10 @@ "typeString": "bytes6" }, "typeName": { - "id": 421, + "id": 449, "name": "bytes6", "nodeType": "ElementaryTypeName", - "src": "7236:6:0", + "src": "8005:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes6", "typeString": "bytes6" @@ -29784,36 +31538,36 @@ "visibility": "internal" } ], - "src": "7159:93:0" + "src": "7928:93:0" }, "returnParameters": { - "id": 424, + "id": 452, "nodeType": "ParameterList", "parameters": [], - "src": "7262:0:0" + "src": "8031:0:0" }, - "scope": 654, - "src": "7144:1341:0", + "scope": 682, + "src": "7913:1376:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 589, + "id": 617, "nodeType": "Block", - "src": "8998:356:0", + "src": "9965:366:0", "statements": [ { "expression": { "arguments": [ { - "id": 545, + "id": 573, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 535, - "src": "9051:7:0", + "referencedDeclaration": 563, + "src": "10020:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -29822,14 +31576,14 @@ { "arguments": [ { - "id": 548, + "id": 576, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9068:4:0", + "src": "10037:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -29837,30 +31591,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 547, + "id": 575, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9060:7:0", + "src": "10029:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 546, + "id": 574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9060:7:0", + "src": "10029:7:0", "typeDescriptions": {} } }, - "id": 549, + "id": 577, "isConstant": false, "isLValue": false, "isPure": false, @@ -29868,7 +31622,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9060:13:0", + "src": "10029:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29876,7 +31630,7 @@ } }, { - "id": 554, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, @@ -29884,16 +31638,16 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "9075:12:0", + "src": "10044:12:0", "subExpression": { "arguments": [ { - "id": 552, + "id": 580, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 539, - "src": "9083:3:0", + "referencedDeclaration": 567, + "src": "10052:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -29907,26 +31661,26 @@ "typeString": "uint128" } ], - "id": 551, + "id": 579, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9076:6:0", + "src": "10045:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_int128_$", "typeString": "type(int128)" }, "typeName": { - "id": 550, + "id": 578, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "9076:6:0", + "src": "10045:6:0", "typeDescriptions": {} } }, - "id": 553, + "id": 581, "isConstant": false, "isLValue": false, "isPure": false, @@ -29934,7 +31688,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9076:11:0", + "src": "10045:11:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int128", @@ -29949,12 +31703,12 @@ { "arguments": [ { - "id": 557, + "id": 585, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "9097:12:0", + "referencedDeclaration": 565, + "src": "10066:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29968,26 +31722,26 @@ "typeString": "uint256" } ], - "id": 556, + "id": 584, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9089:7:0", + "src": "10058:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 555, + "id": 583, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9089:7:0", + "src": "10058:7:0", "typeDescriptions": {} } }, - "id": 558, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -29995,7 +31749,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9089:21:0", + "src": "10058:21:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -30023,18 +31777,18 @@ } ], "expression": { - "id": 542, + "id": 570, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "9034:5:0", + "src": "10003:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 544, + "id": 572, "isConstant": false, "isLValue": false, "isPure": false, @@ -30042,13 +31796,13 @@ "memberName": "repayVault", "nodeType": "MemberAccess", "referencedDeclaration": 84, - "src": "9034:16:0", + "src": "10003:16:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes12_$_t_address_$_t_int128_$_t_uint128_$returns$_t_uint128_$", "typeString": "function (bytes12,address,int128,uint128) payable external returns (uint128)" } }, - "id": 559, + "id": 587, "isConstant": false, "isLValue": false, "isPure": false, @@ -30056,16 +31810,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9034:77:0", + "src": "10003:77:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 560, + "id": 588, "nodeType": "ExpressionStatement", - "src": "9034:77:0" + "src": "10003:77:0" }, { "expression": { @@ -30073,18 +31827,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 561, + "id": 589, "name": "yvUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 249, - "src": "9146:6:0", + "src": "10118:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" } }, - "id": 563, + "id": 591, "isConstant": false, "isLValue": false, "isPure": false, @@ -30092,13 +31846,13 @@ "memberName": "withdraw", "nodeType": "MemberAccess", "referencedDeclaration": 177, - "src": "9146:15:0", + "src": "10118:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 564, + "id": 592, "isConstant": false, "isLValue": false, "isPure": false, @@ -30106,16 +31860,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9146:17:0", + "src": "10118:17:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 565, + "id": 593, "nodeType": "ExpressionStatement", - "src": "9146:17:0" + "src": "10118:17:0" }, { "expression": { @@ -30123,12 +31877,12 @@ { "arguments": [ { - "id": 571, + "id": 599, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "9219:5:0", + "src": "10193:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -30142,26 +31896,26 @@ "typeString": "contract IToken" } ], - "id": 570, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9211:7:0", + "src": "10185:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 569, + "id": 597, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9211:7:0", + "src": "10185:7:0", "typeDescriptions": {} } }, - "id": 572, + "id": 600, "isConstant": false, "isLValue": false, "isPure": true, @@ -30169,7 +31923,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9211:14:0", + "src": "10185:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30177,12 +31931,12 @@ } }, { - "id": 573, + "id": 601, "name": "borrowAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "9227:12:0", + "referencedDeclaration": 565, + "src": "10201:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30201,18 +31955,18 @@ } ], "expression": { - "id": 566, + "id": 594, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9197:4:0", + "src": "10171:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 568, + "id": 596, "isConstant": false, "isLValue": false, "isPure": false, @@ -30220,13 +31974,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "9197:13:0", + "src": "10171:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 574, + "id": 602, "isConstant": false, "isLValue": false, "isPure": false, @@ -30234,27 +31988,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9197:43:0", + "src": "10171:43:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 575, + "id": 603, "nodeType": "ExpressionStatement", - "src": "9197:43:0" + "src": "10171:43:0" }, { "expression": { "arguments": [ { - "id": 579, + "id": 607, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 533, - "src": "9312:5:0", + "referencedDeclaration": 561, + "src": "10288:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30265,14 +32019,14 @@ { "arguments": [ { - "id": 584, + "id": 612, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9342:4:0", + "src": "10318:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -30280,30 +32034,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 583, + "id": 611, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9334:7:0", + "src": "10310:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 582, + "id": 610, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9334:7:0", + "src": "10310:7:0", "typeDescriptions": {} } }, - "id": 585, + "id": 613, "isConstant": false, "isLValue": false, "isPure": false, @@ -30311,7 +32065,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9334:13:0", + "src": "10310:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30327,18 +32081,18 @@ } ], "expression": { - "id": 580, + "id": 608, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9319:4:0", + "src": "10295:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 581, + "id": 609, "isConstant": false, "isLValue": false, "isPure": false, @@ -30346,13 +32100,13 @@ "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 131, - "src": "9319:14:0", + "src": "10295:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 586, + "id": 614, "isConstant": false, "isLValue": false, "isPure": false, @@ -30360,7 +32114,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9319:29:0", + "src": "10295:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -30380,18 +32134,18 @@ } ], "expression": { - "id": 576, + "id": 604, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9298:4:0", + "src": "10274:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 578, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, @@ -30399,13 +32153,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "9298:13:0", + "src": "10274:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 587, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -30413,46 +32167,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9298:51:0", + "src": "10274:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 588, + "id": 616, "nodeType": "ExpressionStatement", - "src": "9298:51:0" + "src": "10274:51:0" } ] }, "documentation": { - "id": 531, + "id": 559, "nodeType": "StructuredDocumentation", - "src": "8489:413:0", - "text": "@notice Repay a vault after having borrowed a suitable amount using a\n flash loan. Will only succeed if the pool hasn't reached its expiration\n date yet.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay." + "src": "9295:573:0", + "text": "@notice Repay a vault after having borrowed a suitable amount using a\n flash loan. Will only succeed if the pool hasn't reached its expiration\n date yet.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay.\n @dev Calling this function outside a flash loan achieves nothing, since\n the contract needs to own the vault it's getting collateral from." }, "functionSelector": "50bf94d7", - "id": 590, + "id": 618, "implemented": true, "kind": "function", "modifiers": [], "name": "doRepay", - "nameLocation": "8914:7:0", + "nameLocation": "9881:7:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 540, + "id": 568, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 533, + "id": 561, "mutability": "mutable", "name": "owner", - "nameLocation": "8930:5:0", + "nameLocation": "9897:5:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8922:13:0", + "scope": 618, + "src": "9889:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30460,10 +32214,10 @@ "typeString": "address" }, "typeName": { - "id": 532, + "id": 560, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8922:7:0", + "src": "9889:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -30474,13 +32228,13 @@ }, { "constant": false, - "id": 535, + "id": 563, "mutability": "mutable", "name": "vaultId", - "nameLocation": "8945:7:0", + "nameLocation": "9912:7:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8937:15:0", + "scope": 618, + "src": "9904:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30488,10 +32242,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 534, + "id": 562, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "8937:7:0", + "src": "9904:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -30501,13 +32255,13 @@ }, { "constant": false, - "id": 537, + "id": 565, "mutability": "mutable", "name": "borrowAmount", - "nameLocation": "8962:12:0", + "nameLocation": "9929:12:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8954:20:0", + "scope": 618, + "src": "9921:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30515,10 +32269,10 @@ "typeString": "uint256" }, "typeName": { - "id": 536, + "id": 564, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8954:7:0", + "src": "9921:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30528,13 +32282,13 @@ }, { "constant": false, - "id": 539, + "id": 567, "mutability": "mutable", "name": "ink", - "nameLocation": "8984:3:0", + "nameLocation": "9951:3:0", "nodeType": "VariableDeclaration", - "scope": 590, - "src": "8976:11:0", + "scope": 618, + "src": "9943:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30542,10 +32296,10 @@ "typeString": "uint128" }, "typeName": { - "id": 538, + "id": 566, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "8976:7:0", + "src": "9943:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -30554,36 +32308,36 @@ "visibility": "internal" } ], - "src": "8921:67:0" + "src": "9888:67:0" }, "returnParameters": { - "id": 541, + "id": 569, "nodeType": "ParameterList", "parameters": [], - "src": "8998:0:0" + "src": "9965:0:0" }, - "scope": 654, - "src": "8905:449:0", + "scope": 682, + "src": "9872:459:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 652, + "id": 680, "nodeType": "Block", - "src": "9822:305:0", + "src": "10961:315:0", "statements": [ { "expression": { "arguments": [ { - "id": 607, + "id": 635, "name": "vaultId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "9863:7:0", + "referencedDeclaration": 623, + "src": "11004:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -30592,14 +32346,14 @@ { "arguments": [ { - "id": 610, + "id": 638, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9880:4:0", + "src": "11021:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -30607,30 +32361,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 609, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9872:7:0", + "src": "11013:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 608, + "id": 636, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9872:7:0", + "src": "11013:7:0", "typeDescriptions": {} } }, - "id": 611, + "id": 639, "isConstant": false, "isLValue": false, "isPure": false, @@ -30638,7 +32392,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9872:13:0", + "src": "11013:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30646,7 +32400,7 @@ } }, { - "id": 616, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -30654,16 +32408,16 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "9887:12:0", + "src": "11028:12:0", "subExpression": { "arguments": [ { - "id": 614, + "id": 642, "name": "ink", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "9895:3:0", + "referencedDeclaration": 627, + "src": "11036:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -30677,26 +32431,26 @@ "typeString": "uint128" } ], - "id": 613, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9888:6:0", + "src": "11029:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_int128_$", "typeString": "type(int128)" }, "typeName": { - "id": 612, + "id": 640, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "9888:6:0", + "src": "11029:6:0", "typeDescriptions": {} } }, - "id": 615, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -30704,7 +32458,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9888:11:0", + "src": "11029:11:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int128", @@ -30717,7 +32471,7 @@ } }, { - "id": 621, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -30725,16 +32479,16 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "9901:12:0", + "src": "11042:12:0", "subExpression": { "arguments": [ { - "id": 619, + "id": 647, "name": "art", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "9909:3:0", + "referencedDeclaration": 629, + "src": "11050:3:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -30748,26 +32502,26 @@ "typeString": "uint128" } ], - "id": 618, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9902:6:0", + "src": "11043:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_int128_$", "typeString": "type(int128)" }, "typeName": { - "id": 617, + "id": 645, "name": "int128", "nodeType": "ElementaryTypeName", - "src": "9902:6:0", + "src": "11043:6:0", "typeDescriptions": {} } }, - "id": 620, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -30775,7 +32529,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9902:11:0", + "src": "11043:11:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int128", @@ -30808,18 +32562,18 @@ } ], "expression": { - "id": 604, + "id": 632, "name": "ladle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "9851:5:0", + "src": "10992:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_YieldLadle_$108", "typeString": "contract YieldLadle" } }, - "id": 606, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, @@ -30827,13 +32581,13 @@ "memberName": "close", "nodeType": "MemberAccess", "referencedDeclaration": 97, - "src": "9851:11:0", + "src": "10992:11:0", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_bytes12_$_t_address_$_t_int128_$_t_int128_$returns$_t_uint128_$", "typeString": "function (bytes12,address,int128,int128) payable external returns (uint128)" } }, - "id": 622, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, @@ -30841,16 +32595,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9851:63:0", + "src": "10992:63:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 623, + "id": 651, "nodeType": "ExpressionStatement", - "src": "9851:63:0" + "src": "10992:63:0" }, { "expression": { @@ -30858,18 +32612,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 624, + "id": 652, "name": "yvUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 249, - "src": "9949:6:0", + "src": "11093:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_yVault_$178", "typeString": "contract yVault" } }, - "id": 626, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -30877,13 +32631,13 @@ "memberName": "withdraw", "nodeType": "MemberAccess", "referencedDeclaration": 177, - "src": "9949:15:0", + "src": "11093:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 627, + "id": 655, "isConstant": false, "isLValue": false, "isPure": false, @@ -30891,16 +32645,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9949:17:0", + "src": "11093:17:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 628, + "id": 656, "nodeType": "ExpressionStatement", - "src": "9949:17:0" + "src": "11093:17:0" }, { "expression": { @@ -30908,12 +32662,12 @@ { "arguments": [ { - "id": 634, + "id": 662, "name": "iUSDC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "10018:5:0", + "src": "11164:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IToken_$199", "typeString": "contract IToken" @@ -30927,26 +32681,26 @@ "typeString": "contract IToken" } ], - "id": 633, + "id": 661, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10010:7:0", + "src": "11156:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 632, + "id": 660, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10010:7:0", + "src": "11156:7:0", "typeDescriptions": {} } }, - "id": 635, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, @@ -30954,7 +32708,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10010:14:0", + "src": "11156:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30962,12 +32716,12 @@ } }, { - "id": 636, + "id": 664, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "10026:4:0", + "referencedDeclaration": 625, + "src": "11172:4:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -30986,18 +32740,18 @@ } ], "expression": { - "id": 629, + "id": 657, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "9996:4:0", + "src": "11142:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 631, + "id": 659, "isConstant": false, "isLValue": false, "isPure": false, @@ -31005,13 +32759,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "9996:13:0", + "src": "11142:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 637, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, @@ -31019,27 +32773,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9996:35:0", + "src": "11142:35:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 638, + "id": 666, "nodeType": "ExpressionStatement", - "src": "9996:35:0" + "src": "11142:35:0" }, { "expression": { "arguments": [ { - "id": 642, + "id": 670, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "10085:5:0", + "referencedDeclaration": 621, + "src": "11233:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -31050,14 +32804,14 @@ { "arguments": [ { - "id": 647, + "id": 675, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "10115:4:0", + "src": "11263:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } } @@ -31065,30 +32819,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_YieldLever_$654", + "typeIdentifier": "t_contract$_YieldLever_$682", "typeString": "contract YieldLever" } ], - "id": 646, + "id": 674, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10107:7:0", + "src": "11255:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 645, + "id": 673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10107:7:0", + "src": "11255:7:0", "typeDescriptions": {} } }, - "id": 648, + "id": 676, "isConstant": false, "isLValue": false, "isPure": false, @@ -31096,7 +32850,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10107:13:0", + "src": "11255:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -31112,18 +32866,18 @@ } ], "expression": { - "id": 643, + "id": 671, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "10092:4:0", + "src": "11240:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 644, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, @@ -31131,13 +32885,13 @@ "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 131, - "src": "10092:14:0", + "src": "11240:14:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 649, + "id": 677, "isConstant": false, "isLValue": false, "isPure": false, @@ -31145,7 +32899,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10092:29:0", + "src": "11240:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -31165,18 +32919,18 @@ } ], "expression": { - "id": 639, + "id": 667, "name": "usdc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 267, - "src": "10071:4:0", + "src": "11219:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$161", "typeString": "contract IERC20" } }, - "id": 641, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -31184,13 +32938,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 149, - "src": "10071:13:0", + "src": "11219:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 650, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -31198,46 +32952,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10071:51:0", + "src": "11219:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 651, + "id": 679, "nodeType": "ExpressionStatement", - "src": "10071:51:0" + "src": "11219:51:0" } ] }, "documentation": { - "id": 591, + "id": 619, "nodeType": "StructuredDocumentation", - "src": "9358:363:0", - "text": "@notice Close a vault that has already reached its expiration date.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay.\n @param base - The size of the debt in USDC." + "src": "10337:522:0", + "text": "@notice Close a vault that has already reached its expiration date.\n @param owner - The address of the owner. This is the address that will be\n used to obtain certain parameters, and it is also the destination for\n the profit that was obtained.\n @param vaultId - The vault id to repay.\n @param base - The size of the debt in USDC.\n @dev Calling this function outside a flash loan achieves nothing, since\n the contract needs to own the vault it's getting collateral from." }, "functionSelector": "6e6bf1f4", - "id": 653, + "id": 681, "implemented": true, "kind": "function", "modifiers": [], "name": "doClose", - "nameLocation": "9733:7:0", + "nameLocation": "10872:7:0", "nodeType": "FunctionDefinition", "parameters": { - "id": 602, + "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 593, + "id": 621, "mutability": "mutable", "name": "owner", - "nameLocation": "9749:5:0", + "nameLocation": "10888:5:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9741:13:0", + "scope": 681, + "src": "10880:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31245,10 +32999,10 @@ "typeString": "address" }, "typeName": { - "id": 592, + "id": 620, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9741:7:0", + "src": "10880:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -31259,13 +33013,13 @@ }, { "constant": false, - "id": 595, + "id": 623, "mutability": "mutable", "name": "vaultId", - "nameLocation": "9764:7:0", + "nameLocation": "10903:7:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9756:15:0", + "scope": 681, + "src": "10895:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31273,10 +33027,10 @@ "typeString": "bytes12" }, "typeName": { - "id": 594, + "id": 622, "name": "bytes12", "nodeType": "ElementaryTypeName", - "src": "9756:7:0", + "src": "10895:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" @@ -31286,13 +33040,13 @@ }, { "constant": false, - "id": 597, + "id": 625, "mutability": "mutable", "name": "base", - "nameLocation": "9781:4:0", + "nameLocation": "10920:4:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9773:12:0", + "scope": 681, + "src": "10912:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31300,10 +33054,10 @@ "typeString": "uint128" }, "typeName": { - "id": 596, + "id": 624, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9773:7:0", + "src": "10912:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -31313,13 +33067,13 @@ }, { "constant": false, - "id": 599, + "id": 627, "mutability": "mutable", "name": "ink", - "nameLocation": "9795:3:0", + "nameLocation": "10934:3:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9787:11:0", + "scope": 681, + "src": "10926:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31327,10 +33081,10 @@ "typeString": "uint128" }, "typeName": { - "id": 598, + "id": 626, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9787:7:0", + "src": "10926:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -31340,13 +33094,13 @@ }, { "constant": false, - "id": 601, + "id": 629, "mutability": "mutable", "name": "art", - "nameLocation": "9808:3:0", + "nameLocation": "10947:3:0", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "9800:11:0", + "scope": 681, + "src": "10939:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31354,10 +33108,10 @@ "typeString": "uint128" }, "typeName": { - "id": 600, + "id": 628, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "9800:7:0", + "src": "10939:7:0", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -31366,27 +33120,27 @@ "visibility": "internal" } ], - "src": "9740:72:0" + "src": "10879:72:0" }, "returnParameters": { - "id": 603, + "id": 631, "nodeType": "ParameterList", "parameters": [], - "src": "9822:0:0" + "src": "10961:0:0" }, - "scope": 654, - "src": "9724:403:0", + "scope": 682, + "src": "10863:413:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 655, - "src": "3298:6831:0", + "scope": 683, + "src": "3390:7889:0", "usedErrors": [] } ], - "src": "509:9621:0" + "src": "519:10762:0" }, "compiler": { "name": "solc", @@ -31397,16 +33151,20 @@ "events": {}, "links": {}, "address": "0xe4e6A1CE0B36CcF0b920b6b57Df0f922915450Ee", - "transactionHash": "0x618bc91f0c0b62d3b3f118d7e1a2eb39dc88fbc6e8b719fe821de6709867677a" + "transactionHash": "0x382ac0f96a10f0dbe7faac7c209dbd5412d1d2fbe2617981df8fbd071bf7e1ac" } }, "schemaVersion": "3.4.5", - "updatedAt": "2022-03-22T10:45:55.333Z", + "updatedAt": "2022-04-19T09:07:26.661Z", "networkType": "ethereum", "devdoc": { "kind": "dev", "methods": { + "constructor": { + "details": "YieldLever is not expected to hold any USDC" + }, "doClose(address,bytes12,uint128,uint128,uint128)": { + "details": "Calling this function outside a flash loan achieves nothing, since the contract needs to own the vault it's getting collateral from.", "params": { "base": "- The size of the debt in USDC.", "owner": "- The address of the owner. This is the address that will be used to obtain certain parameters, and it is also the destination for the profit that was obtained.", @@ -31414,6 +33172,7 @@ } }, "doInvest(uint256,uint128,uint128,bytes12)": { + "details": "Calling this function outside a flash loan achieves nothing, since the contract needs to have assets and own the vault it's borrowing from.", "params": { "borrowAmount": "- The amount borrowed using a flash loan.", "maxFyAmount": "- The maximum amount of fyTokens to sell.", @@ -31421,6 +33180,7 @@ } }, "doRepay(address,bytes12,uint256,uint128)": { + "details": "Calling this function outside a flash loan achieves nothing, since the contract needs to own the vault it's getting collateral from.", "params": { "owner": "- The address of the owner. This is the address that will be used to obtain certain parameters, and it is also the destination for the profit that was obtained.", "vaultId": "- The vault id to repay." diff --git a/frontend/src/abi/YieldLever.ts b/frontend/src/abi/YieldLever.ts index 9fa9778..87b5ddf 100644 --- a/frontend/src/abi/YieldLever.ts +++ b/frontend/src/abi/YieldLever.ts @@ -4,8 +4,8 @@ import { BytesLike as Arrayish, BigNumber, BigNumberish, -} from 'ethers'; -import { EthersContractContextV5 } from 'ethereum-abi-types-generator'; +} from "ethers"; +import { EthersContractContextV5 } from "ethereum-abi-types-generator"; export type ContractContext = EthersContractContextV5< YieldLever, @@ -57,12 +57,20 @@ export interface ContractCallOverrides { export type YieldLeverEvents = undefined; export interface YieldLeverEventsContext {} export type YieldLeverMethodNames = - | 'invest' - | 'doInvest' - | 'unwind' - | 'doRepay' - | 'doClose'; + | "new" + | "invest" + | "doInvest" + | "unwind" + | "doRepay" + | "doClose"; export interface YieldLever { + /** + * Payable: false + * Constant: false + * StateMutability: nonpayable + * Type: constructor + */ + "new"(overrides?: ContractTransactionOverrides): Promise; /** * Payable: false * Constant: false diff --git a/frontend/src/components/Invest.tsx b/frontend/src/components/Invest.tsx index 5665630..2cbdec9 100644 --- a/frontend/src/components/Invest.tsx +++ b/frontend/src/components/Invest.tsx @@ -5,7 +5,11 @@ import "./Invest.scss"; import Slippage from "./Slippage"; import UsdcInput from "./UsdcInput"; import ValueDisplay, { ValueType } from "./ValueDisplay"; -import { DebtResponse as Debt, SeriesResponse as Series, ContractContext as Cauldron } from "../abi/Cauldron"; +import { + DebtResponse as Debt, + SeriesResponse as Series, + ContractContext as Cauldron, +} from "../abi/Cauldron"; const UNITS_USDC: number = 6; const UNITS_LEVERAGE: number = 2; @@ -21,7 +25,7 @@ enum ApprovalState { Loading, ApprovalRequired, Transactable, - DebtTooLow + DebtTooLow, } interface State { @@ -181,8 +185,13 @@ export default class Invest extends React.Component { this.account, this.contracts.yieldLeverContract.address ); - const cauldronDebt = await this.cauldronDebt(this.contracts.cauldronContract, series.baseId); - const minDebt = BigNumber.from(cauldronDebt.min).mul(BigNumber.from(10).pow(cauldronDebt.dec)); + const cauldronDebt = await this.cauldronDebt( + this.contracts.cauldronContract, + series.baseId + ); + const minDebt = BigNumber.from(cauldronDebt.min).mul( + BigNumber.from(10).pow(cauldronDebt.dec) + ); console.log(cauldronDebt); console.log( @@ -191,7 +200,7 @@ export default class Invest extends React.Component { ". To spend: " + utils.formatUnits(this.state.usdcToInvest, UNITS_USDC) ); - + // Compute the amount of Fytokens const fyTokens = await this.fyTokens(); this.setState({ @@ -203,14 +212,20 @@ export default class Invest extends React.Component { } else { const interest = await this.computeInterest(); if (allowance.lt(this.state.usdcToInvest)) { - this.setState({ approvalState: ApprovalState.ApprovalRequired, interest }); + this.setState({ + approvalState: ApprovalState.ApprovalRequired, + interest, + }); } else { this.setState({ approvalState: ApprovalState.Transactable, interest }); } } } - private async cauldronDebt(cauldronContract: Cauldron, baseId: string): Promise { + private async cauldronDebt( + cauldronContract: Cauldron, + baseId: string + ): Promise { return await cauldronContract.debt(baseId, ILK_ID); } @@ -225,7 +240,7 @@ export default class Invest extends React.Component { /** * Compute the amount of fyTokens that would be drawn with the current settings. - * @returns + * @returns */ private async fyTokens(): Promise { if (this.totalToInvest().eq(0)) return BigNumber.from(0); @@ -255,7 +270,9 @@ export default class Invest extends React.Component { private async loadSeries(): Promise { if (this.series === undefined) - this.series = this.contracts.cauldronContract.series(SERIES_ID) as Promise; + this.series = this.contracts.cauldronContract.series( + SERIES_ID + ) as Promise; return this.series; } diff --git a/frontend/src/components/Vault.tsx b/frontend/src/components/Vault.tsx index 74555bb..1e5eda7 100644 --- a/frontend/src/components/Vault.tsx +++ b/frontend/src/components/Vault.tsx @@ -84,10 +84,14 @@ export default class Vault extends React.Component { } private async computeToBorrow(): Promise { - const balance = await this.props.contracts.cauldronContract.balances(this.props.vaultId); + const balance = await this.props.contracts.cauldronContract.balances( + this.props.vaultId + ); if (balance.art.eq(0)) return BigNumber.from(0); try { - return (await this.props.contracts.poolContract.buyFYTokenPreview(balance.art)) + return ( + await this.props.contracts.poolContract.buyFYTokenPreview(balance.art) + ) .mul(1000 + this.state.slippage) .div(1000); } catch (e) {