UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 98.9 kB
{"abi":[{"type":"function","name":"params","inputs":[],"outputs":[{"name":"prevBaseFee","type":"uint128","internalType":"uint128"},{"name":"prevBoughtGas","type":"uint64","internalType":"uint64"},{"name":"prevBlockNum","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"OutOfGas","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"params()":"cff0ab96"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OutOfGas\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"prevBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"prevBoughtGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNum\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:upgradeable\":\"@title ResourceMetering\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"OutOfGas()\":[{\"notice\":\"Error returned when too much gas resource is consumed.\"}]},\"kind\":\"user\",\"methods\":{\"params()\":{\"notice\":\"EIP-1559 style gas parameters.\"}},\"notice\":\"ResourceMetering implements an EIP-1559 style resource metering system where pricing updates automatically based on current demand.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/ResourceMetering.sol\":\"ResourceMetering\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x8676782233b8ee5735e9f09225a40acb8d9bdcb6b223ef356fda91058c24ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53956d4ade06cd8c76b81c71a35a5d3f139c4f992753deac68edb3232bfe5265\",\"dweb:/ipfs/QmX9H6eVXpUNDEXcGDYgTAksR2quinGXDds275svLRt2fd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"OutOfGas"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"params","outputs":[{"internalType":"uint128","name":"prevBaseFee","type":"uint128"},{"internalType":"uint64","name":"prevBoughtGas","type":"uint64"},{"internalType":"uint64","name":"prevBlockNum","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"params()":{"notice":"EIP-1559 style gas parameters."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/ResourceMetering.sol":"ResourceMetering"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x8676782233b8ee5735e9f09225a40acb8d9bdcb6b223ef356fda91058c24ed14","urls":["bzz-raw://53956d4ade06cd8c76b81c71a35a5d3f139c4f992753deac68edb3232bfe5265","dweb:/ipfs/QmX9H6eVXpUNDEXcGDYgTAksR2quinGXDds275svLRt2fd"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":50145,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":50148,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":94323,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"params","offset":0,"slot":"1","type":"t_struct(ResourceParams)94306_storage"},{"astId":94328,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"__gap","offset":0,"slot":"2","type":"t_array(t_uint256)48_storage"}],"types":{"t_array(t_uint256)48_storage":{"encoding":"inplace","label":"uint256[48]","numberOfBytes":"1536","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_struct(ResourceParams)94306_storage":{"encoding":"inplace","label":"struct ResourceMetering.ResourceParams","numberOfBytes":"32","members":[{"astId":94301,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"prevBaseFee","offset":0,"slot":"0","type":"t_uint128"},{"astId":94303,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"prevBoughtGas","offset":16,"slot":"0","type":"t_uint64"},{"astId":94305,"contract":"src/L1/ResourceMetering.sol:ResourceMetering","label":"prevBlockNum","offset":24,"slot":"0","type":"t_uint64"}]},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"params()":{"notice":"EIP-1559 style gas parameters."}},"errors":{"OutOfGas()":[{"notice":"Error returned when too much gas resource is consumed."}]},"notice":"ResourceMetering implements an EIP-1559 style resource metering system where pricing updates automatically based on current demand."},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/L1/ResourceMetering.sol","id":94659,"exportedSymbols":{"Arithmetic":[112586],"Burn":[112631],"Initializable":[50289],"Math":[55561],"ResourceMetering":[94658]},"nodeType":"SourceUnit","src":"32:8885:151","nodes":[{"id":94285,"nodeType":"PragmaDirective","src":"32:23:151","nodes":[],"literals":["solidity","0.8",".15"]},{"id":94287,"nodeType":"ImportDirective","src":"57:86:151","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":94659,"sourceUnit":50290,"symbolAliases":[{"foreign":{"id":94286,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50289,"src":"66:13:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":94289,"nodeType":"ImportDirective","src":"144:67:151","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":94659,"sourceUnit":55562,"symbolAliases":[{"foreign":{"id":94288,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"153:4:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":94291,"nodeType":"ImportDirective","src":"212:46:151","nodes":[],"absolutePath":"src/libraries/Burn.sol","file":"src/libraries/Burn.sol","nameLocation":"-1:-1:-1","scope":94659,"sourceUnit":112648,"symbolAliases":[{"foreign":{"id":94290,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112631,"src":"221:4:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":94293,"nodeType":"ImportDirective","src":"259:58:151","nodes":[],"absolutePath":"src/libraries/Arithmetic.sol","file":"src/libraries/Arithmetic.sol","nameLocation":"-1:-1:-1","scope":94659,"sourceUnit":112587,"symbolAliases":[{"foreign":{"id":94292,"name":"Arithmetic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112586,"src":"268:10:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":94658,"nodeType":"ContractDefinition","src":"527:8389:151","nodes":[{"id":94299,"nodeType":"ErrorDefinition","src":"656:17:151","nodes":[],"documentation":{"id":94297,"nodeType":"StructuredDocumentation","src":"585:66:151","text":"@notice Error returned when too much gas resource is consumed."},"errorSelector":"77ebef4d","name":"OutOfGas","nameLocation":"662:8:151","parameters":{"id":94298,"nodeType":"ParameterList","parameters":[],"src":"670:2:151"}},{"id":94306,"nodeType":"StructDefinition","src":"1096:117:151","nodes":[],"canonicalName":"ResourceMetering.ResourceParams","members":[{"constant":false,"id":94301,"mutability":"mutable","name":"prevBaseFee","nameLocation":"1136:11:151","nodeType":"VariableDeclaration","scope":94306,"src":"1128:19:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":94300,"name":"uint128","nodeType":"ElementaryTypeName","src":"1128:7:151","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":94303,"mutability":"mutable","name":"prevBoughtGas","nameLocation":"1164:13:151","nodeType":"VariableDeclaration","scope":94306,"src":"1157:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":94302,"name":"uint64","nodeType":"ElementaryTypeName","src":"1157:6:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":94305,"mutability":"mutable","name":"prevBlockNum","nameLocation":"1194:12:151","nodeType":"VariableDeclaration","scope":94306,"src":"1187:19:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":94304,"name":"uint64","nodeType":"ElementaryTypeName","src":"1187:6:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"ResourceParams","nameLocation":"1103:14:151","scope":94658,"visibility":"public"},{"id":94319,"nodeType":"StructDefinition","src":"2805:235:151","nodes":[],"canonicalName":"ResourceMetering.ResourceConfig","members":[{"constant":false,"id":94308,"mutability":"mutable","name":"maxResourceLimit","nameLocation":"2844:16:151","nodeType":"VariableDeclaration","scope":94319,"src":"2837:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":94307,"name":"uint32","nodeType":"ElementaryTypeName","src":"2837:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":94310,"mutability":"mutable","name":"elasticityMultiplier","nameLocation":"2876:20:151","nodeType":"VariableDeclaration","scope":94319,"src":"2870:26:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":94309,"name":"uint8","nodeType":"ElementaryTypeName","src":"2870:5:151","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":94312,"mutability":"mutable","name":"baseFeeMaxChangeDenominator","nameLocation":"2912:27:151","nodeType":"VariableDeclaration","scope":94319,"src":"2906:33:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":94311,"name":"uint8","nodeType":"ElementaryTypeName","src":"2906:5:151","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":94314,"mutability":"mutable","name":"minimumBaseFee","nameLocation":"2956:14:151","nodeType":"VariableDeclaration","scope":94319,"src":"2949:21:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":94313,"name":"uint32","nodeType":"ElementaryTypeName","src":"2949:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":94316,"mutability":"mutable","name":"systemTxMaxGas","nameLocation":"2987:14:151","nodeType":"VariableDeclaration","scope":94319,"src":"2980:21:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":94315,"name":"uint32","nodeType":"ElementaryTypeName","src":"2980:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":94318,"mutability":"mutable","name":"maximumBaseFee","nameLocation":"3019:14:151","nodeType":"VariableDeclaration","scope":94319,"src":"3011:22:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":94317,"name":"uint128","nodeType":"ElementaryTypeName","src":"3011:7:151","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ResourceConfig","nameLocation":"2812:14:151","scope":94658,"visibility":"public"},{"id":94323,"nodeType":"VariableDeclaration","src":"3093:28:151","nodes":[],"constant":false,"documentation":{"id":94320,"nodeType":"StructuredDocumentation","src":"3046:42:151","text":"@notice EIP-1559 style gas parameters."},"functionSelector":"cff0ab96","mutability":"mutable","name":"params","nameLocation":"3115:6:151","scope":94658,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceParams_$94306_storage","typeString":"struct ResourceMetering.ResourceParams"},"typeName":{"id":94322,"nodeType":"UserDefinedTypeName","pathNode":{"id":94321,"name":"ResourceParams","nodeType":"IdentifierPath","referencedDeclaration":94306,"src":"3093:14:151"},"referencedDeclaration":94306,"src":"3093:14:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceParams_$94306_storage_ptr","typeString":"struct ResourceMetering.ResourceParams"}},"visibility":"public"},{"id":94328,"nodeType":"VariableDeclaration","src":"3226:25:151","nodes":[],"constant":false,"documentation":{"id":94324,"nodeType":"StructuredDocumentation","src":"3128:93:151","text":"@notice Reserve extra slots (to a total of 50) in the storage layout for future upgrades."},"mutability":"mutable","name":"__gap","nameLocation":"3246:5:151","scope":94658,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$48_storage","typeString":"uint256[48]"},"typeName":{"baseType":{"id":94325,"name":"uint256","nodeType":"ElementaryTypeName","src":"3226:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":94327,"length":{"hexValue":"3438","id":94326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3234:2:151","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"ArrayTypeName","src":"3226:11:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$48_storage_ptr","typeString":"uint256[48]"}},"visibility":"private"},{"id":94345,"nodeType":"ModifierDefinition","src":"3400:278:151","nodes":[],"body":{"id":94344,"nodeType":"Block","src":"3433:245:151","nodes":[],"statements":[{"assignments":[94334],"declarations":[{"constant":false,"id":94334,"mutability":"mutable","name":"initialGas","nameLocation":"3519:10:151","nodeType":"VariableDeclaration","scope":94344,"src":"3511:18:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94333,"name":"uint256","nodeType":"ElementaryTypeName","src":"3511:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":94337,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":94335,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"3532:7:151","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":94336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3532:9:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3511:30:151"},{"id":94338,"nodeType":"PlaceholderStatement","src":"3592:1:151"},{"expression":{"arguments":[{"id":94340,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94331,"src":"3651:7:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":94341,"name":"initialGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94334,"src":"3660:10:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94339,"name":"_metered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94609,"src":"3642:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$_t_uint256_$returns$__$","typeString":"function (uint64,uint256)"}},"id":94342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3642:29:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":94343,"nodeType":"ExpressionStatement","src":"3642:29:151"}]},"documentation":{"id":94329,"nodeType":"StructuredDocumentation","src":"3258:137:151","text":"@notice Meters access to a function based an amount of a requested resource.\n @param _amount Amount of the resource requested."},"name":"metered","nameLocation":"3409:7:151","parameters":{"id":94332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94331,"mutability":"mutable","name":"_amount","nameLocation":"3424:7:151","nodeType":"VariableDeclaration","scope":94345,"src":"3417:14:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":94330,"name":"uint64","nodeType":"ElementaryTypeName","src":"3417:6:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3416:16:151"},"virtual":false,"visibility":"internal"},{"id":94609,"nodeType":"FunctionDefinition","src":"3911:3974:151","nodes":[],"body":{"id":94608,"nodeType":"Block","src":"3975:3910:151","nodes":[],"statements":[{"assignments":[94354],"declarations":[{"constant":false,"id":94354,"mutability":"mutable","name":"blockDiff","nameLocation":"4051:9:151","nodeType":"VariableDeclaration","scope":94608,"src":"4043:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94353,"name":"uint256","nodeType":"ElementaryTypeName","src":"4043:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":94360,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":94359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":94355,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4063:5:151","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":94356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"4063:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":94357,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94323,"src":"4078:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceParams_$94306_storage","typeString":"struct ResourceMetering.ResourceParams storage ref"}},"id":94358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"prevBlockNum","nodeType":"MemberAccess","referencedDeclaration":94305,"src":"4078:19:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4063:34:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4043:54:151"},{"assignments":[94363],"declarations":[{"constant":false,"id":94363,"mutability":"mutable","name":"config","nameLocation":"4130:6:151","nodeType":"VariableDeclaration","scope":94608,"src":"4108:28:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":94362,"nodeType":"UserDefinedTypeName","pathNode":{"id":94361,"name":"ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":94319,"src":"4108:14:151"},"referencedDeclaration":94319,"src":"4108:14:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"id":94366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":94364,"name":"_resourceConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94632,"src":"4139:15:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_struct$_ResourceConfig_$94319_memory_ptr_$","typeString":"function () returns (struct ResourceMetering.ResourceConfig memory)"}},"id":94365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4139:17:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"nodeType":"VariableDeclarationStatement","src":"4108:48:151"},{"assignments":[94368],"declarations":[{"constant":false,"id":94368,"mutability":"mutable","name":"targetResourceLimit","nameLocation":"4173:19:151","nodeType":"VariableDeclaration","scope":94608,"src":"4166:26:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":94367,"name":"int256","nodeType":"ElementaryTypeName","src":"4166:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":94386,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":94385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":94373,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94363,"src":"4222:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"id":94374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxResourceLimit","nodeType":"MemberAccess","referencedDeclaration":94308,"src":"4222:23:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":94372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4214:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94371,"name":"uint256","nodeType":"ElementaryTypeName","src":"4214:7:151","typeDescriptions":{}}},"id":94375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4207:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94369,"name":"int256","nodeType":"ElementaryTypeName","src":"4207:6:151","typeDescriptions":{}}},"id":94376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4207:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":94381,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94363,"src":"4265:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"id":94382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"elasticityMultiplier","nodeType":"MemberAccess","referencedDeclaration":94310,"src":"4265:27:151","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":94380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4257:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94379,"name":"uint256","nodeType":"ElementaryTypeName","src":"4257:7:151","typeDescriptions":{}}},"id":94383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4257:36:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4250:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94377,"name":"int256","nodeType":"ElementaryTypeName","src":"4250:6:151","typeDescriptions":{}}},"id":94384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4250:44:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4207:87:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4166:128:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":94389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":94387,"name":"blockDiff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94354,"src":"4309:9:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":94388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4321:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4309:13:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":94535,"nodeType":"IfStatement","src":"4305:2229:151","trueBody":{"id":94534,"nodeType":"Block","src":"4324:2210:151","statements":[{"assignments":[94391],"declarations":[{"constant":false,"id":94391,"mutability":"mutable","name":"gasUsedDelta","nameLocation":"4636:12:151","nodeType":"VariableDeclaration","scope":94534,"src":"4629:19:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":94390,"name":"int256","nodeType":"ElementaryTypeName","src":"4629:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":94402,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":94401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":94396,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94323,"src":"4666:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceParams_$94306_storage","typeString":"struct ResourceMetering.ResourceParams storage ref"}},"id":94397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"prevBoughtGas","nodeType":"MemberAccess","referencedDeclaration":94303,"src":"4666:20:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":94395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4658:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94394,"name":"uint256","nodeType":"ElementaryTypeName","src":"4658:7:151","typeDescriptions":{}}},"id":94398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4658:29:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4651:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94392,"name":"int256","nodeType":"ElementaryTypeName","src":"4651:6:151","typeDescriptions":{}}},"id":94399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4651:37:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":94400,"name":"targetResourceLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94368,"src":"4691:19:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4651:59:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4629:81:151"},{"assignments":[94404],"declarations":[{"constant":false,"id":94404,"mutability":"mutable","name":"baseFeeDelta","nameLocation":"4731:12:151","nodeType":"VariableDeclaration","scope":94534,"src":"4724:19:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":94403,"name":"int256","nodeType":"ElementaryTypeName","src":"4724:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":94428,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":94427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":94414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":94409,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94323,"src":"4762:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceParams_$94306_storage","typeString":"struct ResourceMetering.ResourceParams storage ref"}},"id":94410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"prevBaseFee","nodeType":"MemberAccess","referencedDeclaration":94301,"src":"4762:18:151","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":94408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4754:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94407,"name":"uint256","nodeType":"ElementaryTypeName","src":"4754:7:151","typeDescriptions":{}}},"id":94411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4754:27:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4747:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94405,"name":"int256","nodeType":"ElementaryTypeName","src":"4747:6:151","typeDescriptions":{}}},"id":94412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4747:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":94413,"name":"gasUsedDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94391,"src":"4785:12:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4747:50:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":94415,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4746:52:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":94425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":94416,"name":"targetResourceLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94368,"src":"4818:19:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":94421,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94363,"src":"4855:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"id":94422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseFeeMaxChangeDenominator","nodeType":"MemberAccess","referencedDeclaration":94312,"src":"4855:34:151","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":94420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4847:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94419,"name":"uint256","nodeType":"ElementaryTypeName","src":"4847:7:151","typeDescriptions":{}}},"id":94423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4847:43:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4840:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94417,"name":"int256","nodeType":"ElementaryTypeName","src":"4840:6:151","typeDescriptions":{}}},"id":94424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4840:51:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4818:73:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":94426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4817:75:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4746:146:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4724:168:151"},{"assignments":[94430],"declarations":[{"constant":false,"id":94430,"mutability":"mutable","name":"newBaseFee","nameLocation":"5040:10:151","nodeType":"VariableDeclaration","scope":94534,"src":"5033:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":94429,"name":"int256","nodeType":"ElementaryTypeName","src":"5033:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":94460,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":94442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":94437,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94323,"src":"5111:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceParams_$94306_storage","typeString":"struct ResourceMetering.ResourceParams storage ref"}},"id":94438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"prevBaseFee","nodeType":"MemberAccess","referencedDeclaration":94301,"src":"5111:18:151","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":94436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5103:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94435,"name":"uint256","nodeType":"ElementaryTypeName","src":"5103:7:151","typeDescriptions":{}}},"id":94439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5103:27:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5096:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94433,"name":"int256","nodeType":"ElementaryTypeName","src":"5096:6:151","typeDescriptions":{}}},"id":94440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5096:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":94441,"name":"baseFeeDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94404,"src":"5134:12:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5096:50:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"arguments":[{"expression":{"id":94447,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94363,"src":"5185:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$94319_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"id":94448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minimumBaseFee","nodeType":"MemberAccess","referencedDeclaration":94314,"src":"5185:21:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":94446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5177:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":94445,"name":"uint256","nodeType":"ElementaryTypeName","src":"5177:7:151","typeDescriptions":{}}},"id":94449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5177:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5170:6:151","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":94443,"name":"int256","nodeType":"ElementaryTypeName","src":"5170:6:151","typeDescriptions":{}}},"id":94450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5170:38:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"arguments":[{"expression":{"id":94455,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94363,"src":"5247:6:151","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceCon