{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1683:4963:117:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1683:4963:117;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1683:4963:117:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Config\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains all env var based config. Add any new env var parsing to this file         to ensure that all config is in a single place.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Config.sol\":\"Config\"},\"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/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"scripts/Config.sol\":{\"keccak256\":\"0x8ca0f72a6f788d56aa88d5854badab58eeb3a06d8324565e2fb532ec3fe213d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b60e6cd83217ff105667720366cd5562db5c88bf2e6b74e985ff34dea6e26b92\",\"dweb:/ipfs/QmZLZYwAtRUCZiizvQ9jsdt7HfBwAa6xmThJnqdNd89smP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"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":{"scripts/Config.sol":"Config"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"scripts/Config.sol":{"keccak256":"0x8ca0f72a6f788d56aa88d5854badab58eeb3a06d8324565e2fb532ec3fe213d3","urls":["bzz-raw://b60e6cd83217ff105667720366cd5562db5c88bf2e6b74e985ff34dea6e26b92","dweb:/ipfs/QmZLZYwAtRUCZiizvQ9jsdt7HfBwAa6xmThJnqdNd89smP"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains all env var based config. Add any new env var parsing to this file         to ensure that all config is in a single place."},"devdoc":{"version":1,"kind":"dev","title":"Config"},"ast":{"absolutePath":"scripts/Config.sol","id":70323,"exportedSymbols":{"Config":[70322],"Fork":[69857],"ForkUtils":[69915],"LATEST_FORK":[69862],"OutputMode":[69814],"OutputModeUtils":[69851],"Vm":[16311],"VmSafe":[15724]},"nodeType":"SourceUnit","src":"32:6615:117","nodes":[{"id":69807,"nodeType":"PragmaDirective","src":"32:23:117","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":69810,"nodeType":"ImportDirective","src":"57:46:117","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":70323,"sourceUnit":16312,"symbolAliases":[{"foreign":{"id":69808,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16311,"src":"66:2:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":69809,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"70:6:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69814,"nodeType":"EnumDefinition","src":"371:49:117","nodes":[],"canonicalName":"OutputMode","members":[{"id":69811,"name":"NONE","nameLocation":"393:4:117","nodeType":"EnumValue","src":"393:4:117"},{"id":69812,"name":"LATEST","nameLocation":"403:6:117","nodeType":"EnumValue","src":"403:6:117"},{"id":69813,"name":"ALL","nameLocation":"415:3:117","nodeType":"EnumValue","src":"415:3:117"}],"name":"OutputMode","nameLocation":"376:10:117"},{"id":69851,"nodeType":"ContractDefinition","src":"422:387:117","nodes":[{"id":69850,"nodeType":"FunctionDefinition","src":"452:355:117","nodes":[],"body":{"id":69849,"nodeType":"Block","src":"526:281:117","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"id":69825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69822,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69817,"src":"540:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69823,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"549:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":69824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":69811,"src":"549:15:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"src":"540:24:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"id":69832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69829,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69817,"src":"614:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69830,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"623:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":69831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"LATEST","nodeType":"MemberAccess","referencedDeclaration":69812,"src":"623:17:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"src":"614:26:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"id":69839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69836,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69817,"src":"692:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69837,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"701:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":69838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":69813,"src":"701:14:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"src":"692:23:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":69845,"nodeType":"Block","src":"760:41:117","statements":[{"expression":{"hexValue":"756e6b6e6f776e","id":69843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"781:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_24695ee963d29f0f52edfdea1e830d2fcfc9052d5ba70b194bddd0afbbc89765","typeString":"literal_string \"unknown\""},"value":"unknown"},"functionReturnParameters":69821,"id":69844,"nodeType":"Return","src":"774:16:117"}]},"id":69846,"nodeType":"IfStatement","src":"688:113:117","trueBody":{"id":69842,"nodeType":"Block","src":"717:37:117","statements":[{"expression":{"hexValue":"616c6c","id":69840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"738:5:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""},"value":"all"},"functionReturnParameters":69821,"id":69841,"nodeType":"Return","src":"731:12:117"}]}},"id":69847,"nodeType":"IfStatement","src":"610:191:117","trueBody":{"id":69835,"nodeType":"Block","src":"642:40:117","statements":[{"expression":{"hexValue":"6c6174657374","id":69833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"663:8:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"},"functionReturnParameters":69821,"id":69834,"nodeType":"Return","src":"656:15:117"}]}},"id":69848,"nodeType":"IfStatement","src":"536:265:117","trueBody":{"id":69828,"nodeType":"Block","src":"566:38:117","statements":[{"expression":{"hexValue":"6e6f6e65","id":69826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"587:6:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"},"functionReturnParameters":69821,"id":69827,"nodeType":"Return","src":"580:13:117"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"461:8:117","parameters":{"id":69818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69817,"mutability":"mutable","name":"_mode","nameLocation":"481:5:117","nodeType":"VariableDeclaration","scope":69850,"src":"470:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"typeName":{"id":69816,"nodeType":"UserDefinedTypeName","pathNode":{"id":69815,"name":"OutputMode","nodeType":"IdentifierPath","referencedDeclaration":69814,"src":"470:10:117"},"referencedDeclaration":69814,"src":"470:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"visibility":"internal"}],"src":"469:18:117"},"returnParameters":{"id":69821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69850,"src":"511:13:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69819,"name":"string","nodeType":"ElementaryTypeName","src":"511:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"510:15:117"},"scope":69851,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"OutputModeUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[69851],"name":"OutputModeUtils","nameLocation":"430:15:117","scope":70323,"usedErrors":[]},{"id":69857,"nodeType":"EnumDefinition","src":"893:70:117","nodes":[],"canonicalName":"Fork","members":[{"id":69852,"name":"NONE","nameLocation":"909:4:117","nodeType":"EnumValue","src":"909:4:117"},{"id":69853,"name":"DELTA","nameLocation":"919:5:117","nodeType":"EnumValue","src":"919:5:117"},{"id":69854,"name":"ECOTONE","nameLocation":"930:7:117","nodeType":"EnumValue","src":"930:7:117"},{"id":69855,"name":"FJORD","nameLocation":"943:5:117","nodeType":"EnumValue","src":"943:5:117"},{"id":69856,"name":"GRANITE","nameLocation":"954:7:117","nodeType":"EnumValue","src":"954:7:117"}],"name":"Fork","nameLocation":"898:4:117"},{"id":69862,"nodeType":"VariableDeclaration","src":"965:40:117","nodes":[],"constant":true,"mutability":"constant","name":"LATEST_FORK","nameLocation":"979:11:117","scope":70323,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"typeName":{"id":69859,"nodeType":"UserDefinedTypeName","pathNode":{"id":69858,"name":"Fork","nodeType":"IdentifierPath","referencedDeclaration":69857,"src":"965:4:117"},"referencedDeclaration":69857,"src":"965:4:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"value":{"expression":{"id":69860,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"993:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":69856,"src":"993:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"visibility":"internal"},{"id":69915,"nodeType":"ContractDefinition","src":"1008:507:117","nodes":[{"id":69914,"nodeType":"FunctionDefinition","src":"1032:481:117","nodes":[],"body":{"id":69913,"nodeType":"Block","src":"1100:413:117","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69870,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1114:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69871,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1123:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":69852,"src":"1123:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1114:18:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69877,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1182:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69878,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1191:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DELTA","nodeType":"MemberAccess","referencedDeclaration":69853,"src":"1191:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1182:19:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69884,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1252:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69885,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1261:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ECOTONE","nodeType":"MemberAccess","referencedDeclaration":69854,"src":"1261:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1252:21:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69891,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1326:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69892,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1335:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"FJORD","nodeType":"MemberAccess","referencedDeclaration":69855,"src":"1335:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1326:19:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69898,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1396:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69899,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1405:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":69856,"src":"1405:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1396:21:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":69907,"nodeType":"Block","src":"1466:41:117","statements":[{"expression":{"hexValue":"756e6b6e6f776e","id":69905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1487:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_24695ee963d29f0f52edfdea1e830d2fcfc9052d5ba70b194bddd0afbbc89765","typeString":"literal_string \"unknown\""},"value":"unknown"},"functionReturnParameters":69869,"id":69906,"nodeType":"Return","src":"1480:16:117"}]},"id":69908,"nodeType":"IfStatement","src":"1392:115:117","trueBody":{"id":69904,"nodeType":"Block","src":"1419:41:117","statements":[{"expression":{"hexValue":"6772616e697465","id":69902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1440:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""},"value":"granite"},"functionReturnParameters":69869,"id":69903,"nodeType":"Return","src":"1433:16:117"}]}},"id":69909,"nodeType":"IfStatement","src":"1322:185:117","trueBody":{"id":69897,"nodeType":"Block","src":"1347:39:117","statements":[{"expression":{"hexValue":"666a6f7264","id":69895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1368:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""},"value":"fjord"},"functionReturnParameters":69869,"id":69896,"nodeType":"Return","src":"1361:14:117"}]}},"id":69910,"nodeType":"IfStatement","src":"1248:259:117","trueBody":{"id":69890,"nodeType":"Block","src":"1275:41:117","statements":[{"expression":{"hexValue":"65636f746f6e65","id":69888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1296:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""},"value":"ecotone"},"functionReturnParameters":69869,"id":69889,"nodeType":"Return","src":"1289:16:117"}]}},"id":69911,"nodeType":"IfStatement","src":"1178:329:117","trueBody":{"id":69883,"nodeType":"Block","src":"1203:39:117","statements":[{"expression":{"hexValue":"64656c7461","id":69881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1224:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""},"value":"delta"},"functionReturnParameters":69869,"id":69882,"nodeType":"Return","src":"1217:14:117"}]}},"id":69912,"nodeType":"IfStatement","src":"1110:397:117","trueBody":{"id":69876,"nodeType":"Block","src":"1134:38:117","statements":[{"expression":{"hexValue":"6e6f6e65","id":69874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1155:6:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"},"functionReturnParameters":69869,"id":69875,"nodeType":"Return","src":"1148:13:117"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1041:8:117","parameters":{"id":69866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69865,"mutability":"mutable","name":"_fork","nameLocation":"1055:5:117","nodeType":"VariableDeclaration","scope":69914,"src":"1050:10:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"typeName":{"id":69864,"nodeType":"UserDefinedTypeName","pathNode":{"id":69863,"name":"Fork","nodeType":"IdentifierPath","referencedDeclaration":69857,"src":"1050:4:117"},"referencedDeclaration":69857,"src":"1050:4:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"visibility":"internal"}],"src":"1049:12:117"},"returnParameters":{"id":69869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69914,"src":"1085:13:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69867,"name":"string","nodeType":"ElementaryTypeName","src":"1085:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1084:15:117"},"scope":69915,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ForkUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[69915],"name":"ForkUtils","nameLocation":"1016:9:117","scope":70323,"usedErrors":[]},{"id":70322,"nodeType":"ContractDefinition","src":"1683:4963:117","nodes":[{"id":69934,"nodeType":"VariableDeclaration","src":"1742:84:117","nodes":[],"constant":true,"documentation":{"id":69917,"nodeType":"StructuredDocumentation","src":"1704:33:117","text":"@notice Foundry cheatcode VM."},"mutability":"constant","name":"vm","nameLocation":"1762:2:117","scope":70322,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"},"typeName":{"id":69919,"nodeType":"UserDefinedTypeName","pathNode":{"id":69918,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":16311,"src":"1742:2:117"},"referencedDeclaration":16311,"src":"1742:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":69928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1804:17:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":69927,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1794:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1794:28:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1786:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":69925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1786:7:117","typeDescriptions":{}}},"id":69930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1786:37:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1778:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":69923,"name":"uint160","nodeType":"ElementaryTypeName","src":"1778:7:117","typeDescriptions":{}}},"id":69931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1778:46:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":69922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1770:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":69921,"name":"address","nodeType":"ElementaryTypeName","src":"1770:7:117","typeDescriptions":{}}},"id":69932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:55:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69920,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16311,"src":"1767:2:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$16311_$","typeString":"type(contract Vm)"}},"id":69933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1767:59:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"visibility":"private"},{"id":69962,"nodeType":"FunctionDefinition","src":"1981:254:117","nodes":[],"body":{"id":69961,"nodeType":"Block","src":"2053:182:117","nodes":[],"statements":[{"expression":{"id":69959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69940,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69938,"src":"2063:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f594d454e545f4f555446494c45","id":69943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2092:20:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb8da858f0078df8c8c6d7d8cc3c881655d67933c80f467a8fe3a98b9223e30e","typeString":"literal_string \"DEPLOYMENT_OUTFILE\""},"value":"DEPLOYMENT_OUTFILE"},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":69947,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2140:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":13337,"src":"2140:14:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":69949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2140:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6465706c6f796d656e74732f","id":69950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2158:15:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b849f40317fba7d532c0bb5a0048fc588a330868a6212ac1ddf9bd048284b1c","typeString":"literal_string \"/deployments/\""},"value":"/deployments/"},{"arguments":[{"expression":{"id":69953,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2187:5:117","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":69954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2187:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":69951,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2175:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14067,"src":"2175:11:117","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":69955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2175:26:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d6465706c6f792e6a736f6e","id":69956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2203:14:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df2a94f209d9a856a7dbdba172a1c71509370f12a8d760191b1545ea920b021","typeString":"literal_string \"-deploy.json\""},"value":"-deploy.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9b849f40317fba7d532c0bb5a0048fc588a330868a6212ac1ddf9bd048284b1c","typeString":"literal_string \"/deployments/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_4df2a94f209d9a856a7dbdba172a1c71509370f12a8d760191b1545ea920b021","typeString":"literal_string \"-deploy.json\""}],"expression":{"id":69945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2126:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":69944,"name":"string","nodeType":"ElementaryTypeName","src":"2126:6:117","typeDescriptions":{}}},"id":69946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"2126:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":69957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2126:92:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb8da858f0078df8c8c6d7d8cc3c881655d67933c80f467a8fe3a98b9223e30e","typeString":"literal_string \"DEPLOYMENT_OUTFILE\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":69941,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2070:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"2070:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":69958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2070:158:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2063:165:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":69960,"nodeType":"ExpressionStatement","src":"2063:165:117"}]},"documentation":{"id":69935,"nodeType":"StructuredDocumentation","src":"1833:143:117","text":"@notice Returns the path on the local filesystem where the deployment artifact is\n         written to disk after doing a deployment."},"implemented":true,"kind":"function","modifiers":[],"name":"deploymentOutfile","nameLocation":"1990:17:117","parameters":{"id":69936,"nodeType":"ParameterList","parameters":[],"src":"2007:2:117"},"returnParameters":{"id":69939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69938,"mutability":"mutable","name":"_env","nameLocation":"2047:4:117","nodeType":"VariableDeclaration","scope":69962,"src":"2033:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69937,"name":"string","nodeType":"ElementaryTypeName","src":"2033:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2032:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70011,"nodeType":"FunctionDefinition","src":"2325:430:117","nodes":[],"body":{"id":70010,"nodeType":"Block","src":"2396:359:117","nodes":[],"statements":[{"condition":{"arguments":[{"expression":{"expression":{"id":69970,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"2423:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15724_$","typeString":"type(contract VmSafe)"}},"id":69971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ForgeContext","nodeType":"MemberAccess","referencedDeclaration":12566,"src":"2423:19:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ForgeContext_$12566_$","typeString":"type(enum VmSafe.ForgeContext)"}},"id":69972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"TestGroup","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"2423:29:117","typeDescriptions":{"typeIdentifier":"t_enum$_ForgeContext_$12566","typeString":"enum VmSafe.ForgeContext"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ForgeContext_$12566","typeString":"enum VmSafe.ForgeContext"}],"expression":{"id":69968,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2410:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContext","nodeType":"MemberAccess","referencedDeclaration":13019,"src":"2410:12:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ForgeContext_$12566_$returns$_t_bool_$","typeString":"function (enum VmSafe.ForgeContext) view external returns (bool)"}},"id":69973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2410:43:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":70008,"nodeType":"Block","src":"2555:194:117","statements":[{"expression":{"id":69995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69986,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69966,"src":"2569:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f595f434f4e4649475f50415448","id":69989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2585:20:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8f7d5ecf37cb3ce1a42903da3523de1298d2921aa5cdd2ec7a2febbd139c0c4","typeString":"literal_string \"DEPLOY_CONFIG_PATH\""},"value":"DEPLOY_CONFIG_PATH"},{"arguments":[{"hexValue":"","id":69992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2614:2:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":69991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":69990,"name":"string","nodeType":"ElementaryTypeName","src":"2607:6:117","typeDescriptions":{}}},"id":69993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2607:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c8f7d5ecf37cb3ce1a42903da3523de1298d2921aa5cdd2ec7a2febbd139c0c4","typeString":"literal_string \"DEPLOY_CONFIG_PATH\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":69987,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2576:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"2576:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":69994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:42:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2569:49:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":69996,"nodeType":"ExpressionStatement","src":"2569:49:117"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":70000,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69966,"src":"2646:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":69999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2640:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":69998,"name":"bytes","nodeType":"ElementaryTypeName","src":"2640:5:117","typeDescriptions":{}}},"id":70001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2640:11:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2640:18:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":70003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2640:22:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e6669673a206d75737420736574204445504c4f595f434f4e4649475f5041544820746f2066696c6573797374656d2070617468206f66206465706c6f7920636f6e666967","id":70005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2664:73:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_69e9f12bd9eafb0e757bf345b6a3830f2e7e19fb5c7be2420ea2d847028628da","typeString":"literal_string \"Config: must set DEPLOY_CONFIG_PATH to filesystem path of deploy config\""},"value":"Config: must set DEPLOY_CONFIG_PATH to filesystem path of deploy config"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69e9f12bd9eafb0e757bf345b6a3830f2e7e19fb5c7be2420ea2d847028628da","typeString":"literal_string \"Config: must set DEPLOY_CONFIG_PATH to filesystem path of deploy config\""}],"id":69997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2632:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":70006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2632:106:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":70007,"nodeType":"ExpressionStatement","src":"2632:106:117"}]},"id":70009,"nodeType":"IfStatement","src":"2406:343:117","trueBody":{"id":69985,"nodeType":"Block","src":"2455:94:117","statements":[{"expression":{"id":69983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69974,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69966,"src":"2469:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":69978,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2490:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":13337,"src":"2490:14:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":69980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2490:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6465706c6f792d636f6e6669672f686172646861742e6a736f6e","id":69981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2508:29:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_819cac9a37bd4afd57cf086750fbf2300d2511f05545c3509f534cd099bf7dee","typeString":"literal_string \"/deploy-config/hardhat.json\""},"value":"/deploy-config/hardhat.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_819cac9a37bd4afd57cf086750fbf2300d2511f05545c3509f534cd099bf7dee","typeString":"literal_string \"/deploy-config/hardhat.json\""}],"expression":{"id":69976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":69975,"name":"string","nodeType":"ElementaryTypeName","src":"2476:6:117","typeDescriptions":{}}},"id":69977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"2476:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":69982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2476:62:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2469:69:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":69984,"nodeType":"ExpressionStatement","src":"2469:69:117"}]}}]},"documentation":{"id":69963,"nodeType":"StructuredDocumentation","src":"2241:79:117","text":"@notice Returns the path on the local filesystem where the deploy config is"},"implemented":true,"kind":"function","modifiers":[],"name":"deployConfigPath","nameLocation":"2334:16:117","parameters":{"id":69964,"nodeType":"ParameterList","parameters":[],"src":"2350:2:117"},"returnParameters":{"id":69967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69966,"mutability":"mutable","name":"_env","nameLocation":"2390:4:117","nodeType":"VariableDeclaration","scope":70011,"src":"2376:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69965,"name":"string","nodeType":"ElementaryTypeName","src":"2376:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2375:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70027,"nodeType":"FunctionDefinition","src":"2887:115:117","nodes":[],"body":{"id":70026,"nodeType":"Block","src":"2943:59:117","nodes":[],"statements":[{"expression":{"id":70024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70017,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70015,"src":"2953:4:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"434841494e5f4944","id":70020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2969:10:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f6c545710aa26d6b85aa0df95bc44a46f785270ac4a2e2fab1a42ebc27511ca","typeString":"literal_string \"CHAIN_ID\""},"value":"CHAIN_ID"},{"expression":{"id":70021,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2981:5:117","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":70022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2981:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f6c545710aa26d6b85aa0df95bc44a46f785270ac4a2e2fab1a42ebc27511ca","typeString":"literal_string \"CHAIN_ID\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70018,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2960:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12824,"src":"2960:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,uint256) view external returns (uint256)"}},"id":70023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2960:35:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2953:42:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70025,"nodeType":"ExpressionStatement","src":"2953:42:117"}]},"documentation":{"id":70012,"nodeType":"StructuredDocumentation","src":"2761:121:117","text":"@notice Returns the chainid from the EVM context or the value of the CHAIN_ID env var as\n         an override."},"implemented":true,"kind":"function","modifiers":[],"name":"chainID","nameLocation":"2896:7:117","parameters":{"id":70013,"nodeType":"ParameterList","parameters":[],"src":"2903:2:117"},"returnParameters":{"id":70016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70015,"mutability":"mutable","name":"_env","nameLocation":"2937:4:117","nodeType":"VariableDeclaration","scope":70027,"src":"2929:12:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70014,"name":"uint256","nodeType":"ElementaryTypeName","src":"2929:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2928:14:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70045,"nodeType":"FunctionDefinition","src":"3267:147:117","nodes":[],"body":{"id":70044,"nodeType":"Block","src":"3343:71:117","nodes":[],"statements":[{"expression":{"id":70042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70033,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70031,"src":"3353:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"434f4e54524143545f4144445245535345535f50415448","id":70036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:25:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc8ff2e2ad9d464fc101d48edf0bfa651571d5030281606f2e6cf93bf74d7e29","typeString":"literal_string \"CONTRACT_ADDRESSES_PATH\""},"value":"CONTRACT_ADDRESSES_PATH"},{"arguments":[{"hexValue":"","id":70039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3403:2:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":70038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70037,"name":"string","nodeType":"ElementaryTypeName","src":"3396:6:117","typeDescriptions":{}}},"id":70040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3396:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc8ff2e2ad9d464fc101d48edf0bfa651571d5030281606f2e6cf93bf74d7e29","typeString":"literal_string \"CONTRACT_ADDRESSES_PATH\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70034,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"3360:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"3360:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":70041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3360:47:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3353:54:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":70043,"nodeType":"ExpressionStatement","src":"3353:54:117"}]},"documentation":{"id":70028,"nodeType":"StructuredDocumentation","src":"3008:254:117","text":"@notice Returns the value of the env var CONTRACT_ADDRESSES_PATH which is a JSON key/value\n         pair of contract names and their addresses. Each key/value pair is passed to `save`\n         which then backs the `getAddress` function."},"implemented":true,"kind":"function","modifiers":[],"name":"contractAddressesPath","nameLocation":"3276:21:117","parameters":{"id":70029,"nodeType":"ParameterList","parameters":[],"src":"3297:2:117"},"returnParameters":{"id":70032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70031,"mutability":"mutable","name":"_env","nameLocation":"3337:4:117","nodeType":"VariableDeclaration","scope":70045,"src":"3323:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70030,"name":"string","nodeType":"ElementaryTypeName","src":"3323:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3322:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70063,"nodeType":"FunctionDefinition","src":"3500:134:117","nodes":[],"body":{"id":70062,"nodeType":"Block","src":"3563:71:117","nodes":[],"statements":[{"expression":{"id":70060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70051,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70049,"src":"3573:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"494d504c5f53414c54","id":70054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3589:11:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_312a2a949f70d148b824f3efb0648c4d882a250b9c3f6d40e28d4884a920676b","typeString":"literal_string \"IMPL_SALT\""},"value":"IMPL_SALT"},{"arguments":[{"hexValue":"6574686572732070686f656e6978","id":70057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3609:16:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_638627e586f5e36fe67a77519503a7c6da22f92b150d3c6055fd40bdcfe9ffd1","typeString":"literal_string \"ethers phoenix\""},"value":"ethers phoenix"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_638627e586f5e36fe67a77519503a7c6da22f92b150d3c6055fd40bdcfe9ffd1","typeString":"literal_string \"ethers phoenix\""}],"id":70056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3602:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70055,"name":"string","nodeType":"ElementaryTypeName","src":"3602:6:117","typeDescriptions":{}}},"id":70058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3602:24:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_312a2a949f70d148b824f3efb0648c4d882a250b9c3f6d40e28d4884a920676b","typeString":"literal_string \"IMPL_SALT\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70052,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"3580:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"3580:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":70059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3580:47:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3573:54:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":70061,"nodeType":"ExpressionStatement","src":"3573:54:117"}]},"documentation":{"id":70046,"nodeType":"StructuredDocumentation","src":"3420:75:117","text":"@notice The CREATE2 salt to be used when deploying the implementations."},"implemented":true,"kind":"function","modifiers":[],"name":"implSalt","nameLocation":"3509:8:117","parameters":{"id":70047,"nodeType":"ParameterList","parameters":[],"src":"3517:2:117"},"returnParameters":{"id":70050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70049,"mutability":"mutable","name":"_env","nameLocation":"3557:4:117","nodeType":"VariableDeclaration","scope":70063,"src":"3543:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70048,"name":"string","nodeType":"ElementaryTypeName","src":"3543:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3542:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70094,"nodeType":"FunctionDefinition","src":"3773:269:117","nodes":[],"body":{"id":70093,"nodeType":"Block","src":"3862:180:117","nodes":[],"statements":[{"expression":{"id":70091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70071,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70069,"src":"3872:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"53544154455f44554d505f50415448","id":70074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3901:17:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_305965324619fe61c25c6323402ede87454dd53c82cb28e1bb0058e5b29e3b7a","typeString":"literal_string \"STATE_DUMP_PATH\""},"value":"STATE_DUMP_PATH"},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70078,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"3946:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":13337,"src":"3946:14:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":70080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f73746174652d64756d702d","id":70081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3964:14:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_0efbf95bda2b1e2cbfebb9cdfab2bd64b579fbeace808ffd9c171629c2871b67","typeString":"literal_string \"/state-dump-\""},"value":"/state-dump-"},{"arguments":[{"expression":{"id":70084,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3992:5:117","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":70085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3992:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70082,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"3980:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14067,"src":"3980:11:117","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":70086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3980:26:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":70087,"name":"_suffix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70066,"src":"4008:7:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6a736f6e","id":70088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4017:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0efbf95bda2b1e2cbfebb9cdfab2bd64b579fbeace808ffd9c171629c2871b67","typeString":"literal_string \"/state-dump-\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"expression":{"id":70076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3932:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70075,"name":"string","nodeType":"ElementaryTypeName","src":"3932:6:117","typeDescriptions":{}}},"id":70077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"3932:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":70089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3932:93:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_305965324619fe61c25c6323402ede87454dd53c82cb28e1bb0058e5b29e3b7a","typeString":"literal_string \"STATE_DUMP_PATH\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70072,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"3879:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"3879:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":70090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3879:156:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3872:163:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":70092,"nodeType":"ExpressionStatement","src":"3872:163:117"}]},"documentation":{"id":70064,"nodeType":"StructuredDocumentation","src":"3640:128:117","text":"@notice Returns the path that the state dump file should be written to or read from\n         on the local filesystem."},"implemented":true,"kind":"function","modifiers":[],"name":"stateDumpPath","nameLocation":"3782:13:117","parameters":{"id":70067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70066,"mutability":"mutable","name":"_suffix","nameLocation":"3810:7:117","nodeType":"VariableDeclaration","scope":70094,"src":"3796:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70065,"name":"string","nodeType":"ElementaryTypeName","src":"3796:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3795:23:117"},"returnParameters":{"id":70070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70069,"mutability":"mutable","name":"_env","nameLocation":"3856:4:117","nodeType":"VariableDeclaration","scope":70094,"src":"3842:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70068,"name":"string","nodeType":"ElementaryTypeName","src":"3842:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3841:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70116,"nodeType":"FunctionDefinition","src":"4380:167:117","nodes":[],"body":{"id":70115,"nodeType":"Block","src":"4463:84:117","nodes":[],"statements":[{"expression":{"id":70113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70102,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70100,"src":"4473:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f595f46494c45","id":70105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4489:13:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_246fe99edb572fd7d23803d5870839fa17615eaa6375ae496bb4a5b9c285298a","typeString":"literal_string \"DEPLOY_FILE\""},"value":"DEPLOY_FILE"},{"arguments":[{"id":70109,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70097,"src":"4518:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d6c61746573742e6a736f6e","id":70110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4524:14:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d57c0182b35acf5d5d2eff43980abd69f7815804b656a8e92a295cfd48eb28e","typeString":"literal_string \"-latest.json\""},"value":"-latest.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0d57c0182b35acf5d5d2eff43980abd69f7815804b656a8e92a295cfd48eb28e","typeString":"literal_string \"-latest.json\""}],"expression":{"id":70107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4504:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70106,"name":"string","nodeType":"ElementaryTypeName","src":"4504:6:117","typeDescriptions":{}}},"id":70108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"4504:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":70111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4504:35:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_246fe99edb572fd7d23803d5870839fa17615eaa6375ae496bb4a5b9c285298a","typeString":"literal_string \"DEPLOY_FILE\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70103,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"4480:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"4480:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":70112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4480:60:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"4473:67:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":70114,"nodeType":"ExpressionStatement","src":"4473:67:117"}]},"documentation":{"id":70095,"nodeType":"StructuredDocumentation","src":"4048:327:117","text":"@notice Returns the name of the file that the forge deployment artifact is written to on the local\n         filesystem. By default, it is the name of the deploy script with the suffix `-latest.json`.\n         This was useful for creating hardhat deploy style artifacts and will be removed in a future release."},"implemented":true,"kind":"function","modifiers":[],"name":"deployFile","nameLocation":"4389:10:117","parameters":{"id":70098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70097,"mutability":"mutable","name":"_sig","nameLocation":"4414:4:117","nodeType":"VariableDeclaration","scope":70116,"src":"4400:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70096,"name":"string","nodeType":"ElementaryTypeName","src":"4400:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4399:20:117"},"returnParameters":{"id":70101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70100,"mutability":"mutable","name":"_env","nameLocation":"4457:4:117","nodeType":"VariableDeclaration","scope":70116,"src":"4443:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70099,"name":"string","nodeType":"ElementaryTypeName","src":"4443:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4442:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70130,"nodeType":"FunctionDefinition","src":"4628:134:117","nodes":[],"body":{"id":70129,"nodeType":"Block","src":"4699:63:117","nodes":[],"statements":[{"expression":{"id":70127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70122,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70120,"src":"4709:4:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"445249505049455f4f574e45525f505249564154455f4b4559","id":70125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4727:27:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f85ade68394c19c27085748c0ebfb57d919c1eecadd78128294cd093d2f8b202","typeString":"literal_string \"DRIPPIE_OWNER_PRIVATE_KEY\""},"value":"DRIPPIE_OWNER_PRIVATE_KEY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f85ade68394c19c27085748c0ebfb57d919c1eecadd78128294cd093d2f8b202","typeString":"literal_string \"DRIPPIE_OWNER_PRIVATE_KEY\""}],"expression":{"id":70123,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"4716:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envUint","nodeType":"MemberAccess","referencedDeclaration":12999,"src":"4716:10:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view external returns (uint256)"}},"id":70126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4716:39:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4709:46:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70128,"nodeType":"ExpressionStatement","src":"4709:46:117"}]},"documentation":{"id":70117,"nodeType":"StructuredDocumentation","src":"4553:70:117","text":"@notice Returns the private key that is used to configure drippie."},"implemented":true,"kind":"function","modifiers":[],"name":"drippieOwnerPrivateKey","nameLocation":"4637:22:117","parameters":{"id":70118,"nodeType":"ParameterList","parameters":[],"src":"4659:2:117"},"returnParameters":{"id":70121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70120,"mutability":"mutable","name":"_env","nameLocation":"4693:4:117","nodeType":"VariableDeclaration","scope":70130,"src":"4685:12:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4684:14:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70207,"nodeType":"FunctionDefinition","src":"4975:577:117","nodes":[],"body":{"id":70206,"nodeType":"Block","src":"5032:520:117","nodes":[],"statements":[{"assignments":[70138],"declarations":[{"constant":false,"id":70138,"mutability":"mutable","name":"modeStr","nameLocation":"5056:7:117","nodeType":"VariableDeclaration","scope":70206,"src":"5042:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70137,"name":"string","nodeType":"ElementaryTypeName","src":"5042:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":70147,"initialValue":{"arguments":[{"hexValue":"4f55545055545f4d4f4445","id":70141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5075:13:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4499ee56ed43ab120c683a5be60a92a87ffa6f61e048dcae1630c690d604279","typeString":"literal_string \"OUTPUT_MODE\""},"value":"OUTPUT_MODE"},{"arguments":[{"hexValue":"6c6174657374","id":70144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:8:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""}],"id":70143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5090:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70142,"name":"string","nodeType":"ElementaryTypeName","src":"5090:6:117","typeDescriptions":{}}},"id":70145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5090:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4499ee56ed43ab120c683a5be60a92a87ffa6f61e048dcae1630c690d604279","typeString":"literal_string \"OUTPUT_MODE\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70139,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"5066:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"5066:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":70146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:41:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"5042:65:117"},{"assignments":[70149],"declarations":[{"constant":false,"id":70149,"mutability":"mutable","name":"modeHash","nameLocation":"5125:8:117","nodeType":"VariableDeclaration","scope":70206,"src":"5117:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":70148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5117:7:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":70156,"initialValue":{"arguments":[{"arguments":[{"id":70153,"name":"modeStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70138,"src":"5152:7:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":70152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5146:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70151,"name":"bytes","nodeType":"ElementaryTypeName","src":"5146:5:117","typeDescriptions":{}}},"id":70154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5146:14:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70150,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5136:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5136:25:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5117:44:117"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70157,"name":"modeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70149,"src":"5175:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6e6f6e65","id":70161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5203:6:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""}],"id":70160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5197:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70159,"name":"bytes","nodeType":"ElementaryTypeName","src":"5197:5:117","typeDescriptions":{}}},"id":70162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5197:13:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70158,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5187:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5187:24:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5175:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70169,"name":"modeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70149,"src":"5270:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6c6174657374","id":70173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5298:8:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""}],"id":70172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5292:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70171,"name":"bytes","nodeType":"ElementaryTypeName","src":"5292:5:117","typeDescriptions":{}}},"id":70174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:15:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70170,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5282:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5282:26:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5270:38:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70181,"name":"modeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70149,"src":"5369:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"616c6c","id":70185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5397:5:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""},"value":"all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""}],"id":70184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5391:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70183,"name":"bytes","nodeType":"ElementaryTypeName","src":"5391:5:117","typeDescriptions":{}}},"id":70186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5391:12:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70182,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5381:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5381:23:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5369:35:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":70202,"nodeType":"Block","src":"5458:88:117","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6e6669673a20756e6b6e6f776e206f7574707574206d6f64653a20","id":70197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5493:31:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_912c43c7e8dc57ef18bc6019f0e71e23088e0eaba8eb736137b2cca122d0a9f9","typeString":"literal_string \"Config: unknown output mode: \""},"value":"Config: unknown output mode: "},{"id":70198,"name":"modeStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70138,"src":"5526:7:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_912c43c7e8dc57ef18bc6019f0e71e23088e0eaba8eb736137b2cca122d0a9f9","typeString":"literal_string \"Config: unknown output mode: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5479:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70194,"name":"string","nodeType":"ElementaryTypeName","src":"5479:6:117","typeDescriptions":{}}},"id":70196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"5479:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":70199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5479:55:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":70193,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5472:6:117","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":70200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5472:63:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":70201,"nodeType":"ExpressionStatement","src":"5472:63:117"}]},"id":70203,"nodeType":"IfStatement","src":"5365:181:117","trueBody":{"id":70192,"nodeType":"Block","src":"5406:46:117","statements":[{"expression":{"expression":{"id":70189,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"5427:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":70190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":69813,"src":"5427:14:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"functionReturnParameters":70136,"id":70191,"nodeType":"Return","src":"5420:21:117"}]}},"id":70204,"nodeType":"IfStatement","src":"5266:280:117","trueBody":{"id":70180,"nodeType":"Block","src":"5310:49:117","statements":[{"expression":{"expression":{"id":70177,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"5331:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":70178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"LATEST","nodeType":"MemberAccess","referencedDeclaration":69812,"src":"5331:17:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"functionReturnParameters":70136,"id":70179,"nodeType":"Return","src":"5324:24:117"}]}},"id":70205,"nodeType":"IfStatement","src":"5171:375:117","trueBody":{"id":70168,"nodeType":"Block","src":"5213:47:117","statements":[{"expression":{"expression":{"id":70165,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"5234:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":70166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":69811,"src":"5234:15:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"functionReturnParameters":70136,"id":70167,"nodeType":"Return","src":"5227:22:117"}]}}]},"documentation":{"id":70131,"nodeType":"StructuredDocumentation","src":"4768:202:117","text":"@notice Returns the OutputMode for genesis allocs generation.\n         It reads the mode from the environment variable OUTPUT_MODE.\n         If it is unset, OutputMode.ALL is returned."},"implemented":true,"kind":"function","modifiers":[],"name":"outputMode","nameLocation":"4984:10:117","parameters":{"id":70132,"nodeType":"ParameterList","parameters":[],"src":"4994:2:117"},"returnParameters":{"id":70136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70207,"src":"5020:10:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"typeName":{"id":70134,"nodeType":"UserDefinedTypeName","pathNode":{"id":70133,"name":"OutputMode","nodeType":"IdentifierPath","referencedDeclaration":69814,"src":"5020:10:117"},"referencedDeclaration":69814,"src":"5020:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"visibility":"internal"}],"src":"5019:12:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70321,"nodeType":"FunctionDefinition","src":"5839:805:117","nodes":[],"body":{"id":70320,"nodeType":"Block","src":"5884:760:117","nodes":[],"statements":[{"assignments":[70215],"declarations":[{"constant":false,"id":70215,"mutability":"mutable","name":"forkStr","nameLocation":"5908:7:117","nodeType":"VariableDeclaration","scope":70320,"src":"5894:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":70214,"name":"string","nodeType":"ElementaryTypeName","src":"5894:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":70224,"initialValue":{"arguments":[{"hexValue":"464f524b","id":70218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5927:6:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_73a0e998ac3a1085d3a90213089d12b92f390374ef954b43f1649621540da003","typeString":"literal_string \"FORK\""},"value":"FORK"},{"arguments":[{"hexValue":"","id":70221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5942:2:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":70220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5935:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70219,"name":"string","nodeType":"ElementaryTypeName","src":"5935:6:117","typeDescriptions":{}}},"id":70222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5935:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73a0e998ac3a1085d3a90213089d12b92f390374ef954b43f1649621540da003","typeString":"literal_string \"FORK\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70216,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"5918:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":70217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"5918:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":70223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5918:28:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"5894:52:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":70227,"name":"forkStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70215,"src":"5966:7:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":70226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70225,"name":"bytes","nodeType":"ElementaryTypeName","src":"5960:5:117","typeDescriptions":{}}},"id":70228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5960:14:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5960:21:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":70230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5985:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5960:26:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70236,"nodeType":"IfStatement","src":"5956:73:117","trueBody":{"id":70235,"nodeType":"Block","src":"5988:41:117","statements":[{"expression":{"expression":{"id":70232,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"6009:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":70233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":69852,"src":"6009:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"functionReturnParameters":70213,"id":70234,"nodeType":"Return","src":"6002:16:117"}]}},{"assignments":[70238],"declarations":[{"constant":false,"id":70238,"mutability":"mutable","name":"forkHash","nameLocation":"6046:8:117","nodeType":"VariableDeclaration","scope":70320,"src":"6038:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":70237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6038:7:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":70245,"initialValue":{"arguments":[{"arguments":[{"id":70242,"name":"forkStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70215,"src":"6073:7:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":70241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6067:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70240,"name":"bytes","nodeType":"ElementaryTypeName","src":"6067:5:117","typeDescriptions":{}}},"id":70243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6067:14:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70239,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6057:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6057:25:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6038:44:117"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70246,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70238,"src":"6096:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6c6174657374","id":70250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6124:8:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""}],"id":70249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6118:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70248,"name":"bytes","nodeType":"ElementaryTypeName","src":"6118:5:117","typeDescriptions":{}}},"id":70251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6118:15:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70247,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6108:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6108:26:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6096:38:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70257,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70238,"src":"6189:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"64656c7461","id":70261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6217:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""},"value":"delta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""}],"id":70260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6211:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70259,"name":"bytes","nodeType":"ElementaryTypeName","src":"6211:5:117","typeDescriptions":{}}},"id":70262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6211:14:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70258,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6201:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6201:25:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6189:37:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70269,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70238,"src":"6280:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"65636f746f6e65","id":70273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""},"value":"ecotone"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""}],"id":70272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6302:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70271,"name":"bytes","nodeType":"ElementaryTypeName","src":"6302:5:117","typeDescriptions":{}}},"id":70274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6302:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70270,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6292:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6292:27:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6280:39:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70281,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70238,"src":"6375:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"666a6f7264","id":70285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6403:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""},"value":"fjord"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""}],"id":70284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6397:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70283,"name":"bytes","nodeType":"ElementaryTypeName","src":"6397:5:117","typeDescriptions":{}}},"id":70286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6397:14:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70282,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6387:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6387:25:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6375:37:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":70300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70293,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70238,"src":"6466:8:117","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6772616e697465","id":70297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6494:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""},"value":"granite"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""}],"id":70296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6488:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":70295,"name":"bytes","nodeType":"ElementaryTypeName","src":"6488:5:117","typeDescriptions":{}}},"id":70298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6488:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":70294,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6478:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":70299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6478:27:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6466:39:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":70314,"nodeType":"Block","src":"6557:81:117","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6e6669673a20756e6b6e6f776e20666f726b3a20","id":70309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6592:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_0233c1f7c9fdcb7c6c0ae5f316adc84d0a4a1618d51c980fef1bdbb12e796a4b","typeString":"literal_string \"Config: unknown fork: \""},"value":"Config: unknown fork: "},{"id":70310,"name":"forkStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70215,"src":"6618:7:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0233c1f7c9fdcb7c6c0ae5f316adc84d0a4a1618d51c980fef1bdbb12e796a4b","typeString":"literal_string \"Config: unknown fork: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":70307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6578:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":70306,"name":"string","nodeType":"ElementaryTypeName","src":"6578:6:117","typeDescriptions":{}}},"id":70308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"6578:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":70311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6578:48:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":70305,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6571:6:117","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":70312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6571:56:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":70313,"nodeType":"ExpressionStatement","src":"6571:56:117"}]},"id":70315,"nodeType":"IfStatement","src":"6462:176:117","trueBody":{"id":70304,"nodeType":"Block","src":"6507:44:117","statements":[{"expression":{"expression":{"id":70301,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"6528:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":70302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":69856,"src":"6528:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"functionReturnParameters":70213,"id":70303,"nodeType":"Return","src":"6521:19:117"}]}},"id":70316,"nodeType":"IfStatement","src":"6371:267:117","trueBody":{"id":70292,"nodeType":"Block","src":"6414:42:117","statements":[{"expression":{"expression":{"id":70289,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"6435:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":70290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"FJORD","nodeType":"MemberAccess","referencedDeclaration":69855,"src":"6435:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"functionReturnParameters":70213,"id":70291,"nodeType":"Return","src":"6428:17:117"}]}},"id":70317,"nodeType":"IfStatement","src":"6276:362:117","trueBody":{"id":70280,"nodeType":"Block","src":"6321:44:117","statements":[{"expression":{"expression":{"id":70277,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"6342:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":70278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ECOTONE","nodeType":"MemberAccess","referencedDeclaration":69854,"src":"6342:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"functionReturnParameters":70213,"id":70279,"nodeType":"Return","src":"6335:19:117"}]}},"id":70318,"nodeType":"IfStatement","src":"6185:453:117","trueBody":{"id":70268,"nodeType":"Block","src":"6228:42:117","statements":[{"expression":{"expression":{"id":70265,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"6249:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":70266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DELTA","nodeType":"MemberAccess","referencedDeclaration":69853,"src":"6249:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"functionReturnParameters":70213,"id":70267,"nodeType":"Return","src":"6242:17:117"}]}},"id":70319,"nodeType":"IfStatement","src":"6092:546:117","trueBody":{"id":70256,"nodeType":"Block","src":"6136:43:117","statements":[{"expression":{"id":70254,"name":"LATEST_FORK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69862,"src":"6157:11:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"functionReturnParameters":70213,"id":70255,"nodeType":"Return","src":"6150:18:117"}]}}]},"documentation":{"id":70208,"nodeType":"StructuredDocumentation","src":"5558:276:117","text":"@notice Returns the latest fork to use for genesis allocs generation.\n         It reads the fork from the environment variable FORK. If it is\n         unset, NONE is returned.\n         If set to the special value \"latest\", the latest fork is returned."},"implemented":true,"kind":"function","modifiers":[],"name":"fork","nameLocation":"5848:4:117","parameters":{"id":70209,"nodeType":"ParameterList","parameters":[],"src":"5852:2:117"},"returnParameters":{"id":70213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70321,"src":"5878:4:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"typeName":{"id":70211,"nodeType":"UserDefinedTypeName","pathNode":{"id":70210,"name":"Fork","nodeType":"IdentifierPath","referencedDeclaration":69857,"src":"5878:4:117"},"referencedDeclaration":69857,"src":"5878:4:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"visibility":"internal"}],"src":"5877:6:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Config","contractDependencies":[],"contractKind":"library","documentation":{"id":69916,"nodeType":"StructuredDocumentation","src":"1517:166:117","text":"@title Config\n @notice Contains all env var based config. Add any new env var parsing to this file\n         to ensure that all config is in a single place."},"fullyImplemented":true,"linearizedBaseContracts":[70322],"name":"Config","nameLocation":"1691:6:117","scope":70323,"usedErrors":[]}],"license":"MIT"},"id":117}