{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"1683:4963:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1683:4963:34;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"1683:4963:34:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"cancun\",\"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.26+commit.8a97fa7a"},"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":"cancun","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":50918,"exportedSymbols":{"Config":[50917],"Fork":[50452],"ForkUtils":[50510],"LATEST_FORK":[50457],"OutputMode":[50408],"OutputModeUtils":[50445],"Vm":[15857],"VmSafe":[15270]},"nodeType":"SourceUnit","src":"32:6615:34","nodes":[{"id":50400,"nodeType":"PragmaDirective","src":"32:23:34","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50403,"nodeType":"ImportDirective","src":"57:46:34","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":50918,"sourceUnit":15858,"symbolAliases":[{"foreign":{"id":50401,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"66:2:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50402,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15270,"src":"70:6:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50408,"nodeType":"EnumDefinition","src":"371:49:34","nodes":[],"canonicalName":"OutputMode","documentation":{"id":50404,"nodeType":"StructuredDocumentation","src":"105:266:34","text":"@notice Enum representing different ways of outputting genesis allocs.\n @custom:value NONE    No output, used in internal tests.\n @custom:value LATEST  Output allocs only for latest fork.\n @custom:value ALL     Output allocs for all intermediary forks."},"members":[{"id":50405,"name":"NONE","nameLocation":"393:4:34","nodeType":"EnumValue","src":"393:4:34"},{"id":50406,"name":"LATEST","nameLocation":"403:6:34","nodeType":"EnumValue","src":"403:6:34"},{"id":50407,"name":"ALL","nameLocation":"415:3:34","nodeType":"EnumValue","src":"415:3:34"}],"name":"OutputMode","nameLocation":"376:10:34"},{"id":50445,"nodeType":"ContractDefinition","src":"422:387:34","nodes":[{"id":50444,"nodeType":"FunctionDefinition","src":"452:355:34","nodes":[],"body":{"id":50443,"nodeType":"Block","src":"526:281:34","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"},"id":50419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50416,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50411,"src":"540:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50417,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50408,"src":"549:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$50408_$","typeString":"type(enum OutputMode)"}},"id":50418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"560:4:34","memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":50405,"src":"549:15:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"src":"540:24:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"},"id":50426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50423,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50411,"src":"614:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50424,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50408,"src":"623:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$50408_$","typeString":"type(enum OutputMode)"}},"id":50425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"634:6:34","memberName":"LATEST","nodeType":"MemberAccess","referencedDeclaration":50406,"src":"623:17:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"src":"614:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"},"id":50433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50430,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50411,"src":"692:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50431,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50408,"src":"701:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$50408_$","typeString":"type(enum OutputMode)"}},"id":50432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"712:3:34","memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":50407,"src":"701:14:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"src":"692:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50439,"nodeType":"Block","src":"760:41:34","statements":[{"expression":{"hexValue":"756e6b6e6f776e","id":50437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"781:9:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_24695ee963d29f0f52edfdea1e830d2fcfc9052d5ba70b194bddd0afbbc89765","typeString":"literal_string \"unknown\""},"value":"unknown"},"functionReturnParameters":50415,"id":50438,"nodeType":"Return","src":"774:16:34"}]},"id":50440,"nodeType":"IfStatement","src":"688:113:34","trueBody":{"id":50436,"nodeType":"Block","src":"717:37:34","statements":[{"expression":{"hexValue":"616c6c","id":50434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"738:5:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""},"value":"all"},"functionReturnParameters":50415,"id":50435,"nodeType":"Return","src":"731:12:34"}]}},"id":50441,"nodeType":"IfStatement","src":"610:191:34","trueBody":{"id":50429,"nodeType":"Block","src":"642:40:34","statements":[{"expression":{"hexValue":"6c6174657374","id":50427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"663:8:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"},"functionReturnParameters":50415,"id":50428,"nodeType":"Return","src":"656:15:34"}]}},"id":50442,"nodeType":"IfStatement","src":"536:265:34","trueBody":{"id":50422,"nodeType":"Block","src":"566:38:34","statements":[{"expression":{"hexValue":"6e6f6e65","id":50420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"587:6:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"},"functionReturnParameters":50415,"id":50421,"nodeType":"Return","src":"580:13:34"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"461:8:34","parameters":{"id":50412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50411,"mutability":"mutable","name":"_mode","nameLocation":"481:5:34","nodeType":"VariableDeclaration","scope":50444,"src":"470:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"},"typeName":{"id":50410,"nodeType":"UserDefinedTypeName","pathNode":{"id":50409,"name":"OutputMode","nameLocations":["470:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":50408,"src":"470:10:34"},"referencedDeclaration":50408,"src":"470:10:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"visibility":"internal"}],"src":"469:18:34"},"returnParameters":{"id":50415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50444,"src":"511:13:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50413,"name":"string","nodeType":"ElementaryTypeName","src":"511:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"510:15:34"},"scope":50445,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"OutputModeUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[50445],"name":"OutputModeUtils","nameLocation":"430:15:34","scope":50918,"usedErrors":[],"usedEvents":[]},{"id":50452,"nodeType":"EnumDefinition","src":"893:70:34","nodes":[],"canonicalName":"Fork","documentation":{"id":50446,"nodeType":"StructuredDocumentation","src":"811:82:34","text":"@notice Enum of forks available for selection when generating genesis allocs."},"members":[{"id":50447,"name":"NONE","nameLocation":"909:4:34","nodeType":"EnumValue","src":"909:4:34"},{"id":50448,"name":"DELTA","nameLocation":"919:5:34","nodeType":"EnumValue","src":"919:5:34"},{"id":50449,"name":"ECOTONE","nameLocation":"930:7:34","nodeType":"EnumValue","src":"930:7:34"},{"id":50450,"name":"FJORD","nameLocation":"943:5:34","nodeType":"EnumValue","src":"943:5:34"},{"id":50451,"name":"GRANITE","nameLocation":"954:7:34","nodeType":"EnumValue","src":"954:7:34"}],"name":"Fork","nameLocation":"898:4:34"},{"id":50457,"nodeType":"VariableDeclaration","src":"965:40:34","nodes":[],"constant":true,"mutability":"constant","name":"LATEST_FORK","nameLocation":"979:11:34","scope":50918,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"typeName":{"id":50454,"nodeType":"UserDefinedTypeName","pathNode":{"id":50453,"name":"Fork","nameLocations":["965:4:34"],"nodeType":"IdentifierPath","referencedDeclaration":50452,"src":"965:4:34"},"referencedDeclaration":50452,"src":"965:4:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"value":{"expression":{"id":50455,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"993:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"998:7:34","memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":50451,"src":"993:12:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"visibility":"internal"},{"id":50510,"nodeType":"ContractDefinition","src":"1008:507:34","nodes":[{"id":50509,"nodeType":"FunctionDefinition","src":"1032:481:34","nodes":[],"body":{"id":50508,"nodeType":"Block","src":"1100:413:34","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"id":50468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50465,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50460,"src":"1114:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50466,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"1123:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1128:4:34","memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":50447,"src":"1123:9:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"src":"1114:18:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"id":50475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50472,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50460,"src":"1182:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50473,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"1191:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1196:5:34","memberName":"DELTA","nodeType":"MemberAccess","referencedDeclaration":50448,"src":"1191:10:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"src":"1182:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"id":50482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50479,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50460,"src":"1252:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50480,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"1261:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1266:7:34","memberName":"ECOTONE","nodeType":"MemberAccess","referencedDeclaration":50449,"src":"1261:12:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"src":"1252:21:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"id":50489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50486,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50460,"src":"1326:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50487,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"1335:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1340:5:34","memberName":"FJORD","nodeType":"MemberAccess","referencedDeclaration":50450,"src":"1335:10:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"src":"1326:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"id":50496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50493,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50460,"src":"1396:5:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50494,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"1405:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1410:7:34","memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":50451,"src":"1405:12:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"src":"1396:21:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50502,"nodeType":"Block","src":"1466:41:34","statements":[{"expression":{"hexValue":"756e6b6e6f776e","id":50500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1487:9:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_24695ee963d29f0f52edfdea1e830d2fcfc9052d5ba70b194bddd0afbbc89765","typeString":"literal_string \"unknown\""},"value":"unknown"},"functionReturnParameters":50464,"id":50501,"nodeType":"Return","src":"1480:16:34"}]},"id":50503,"nodeType":"IfStatement","src":"1392:115:34","trueBody":{"id":50499,"nodeType":"Block","src":"1419:41:34","statements":[{"expression":{"hexValue":"6772616e697465","id":50497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1440:9:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""},"value":"granite"},"functionReturnParameters":50464,"id":50498,"nodeType":"Return","src":"1433:16:34"}]}},"id":50504,"nodeType":"IfStatement","src":"1322:185:34","trueBody":{"id":50492,"nodeType":"Block","src":"1347:39:34","statements":[{"expression":{"hexValue":"666a6f7264","id":50490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1368:7:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""},"value":"fjord"},"functionReturnParameters":50464,"id":50491,"nodeType":"Return","src":"1361:14:34"}]}},"id":50505,"nodeType":"IfStatement","src":"1248:259:34","trueBody":{"id":50485,"nodeType":"Block","src":"1275:41:34","statements":[{"expression":{"hexValue":"65636f746f6e65","id":50483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1296:9:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""},"value":"ecotone"},"functionReturnParameters":50464,"id":50484,"nodeType":"Return","src":"1289:16:34"}]}},"id":50506,"nodeType":"IfStatement","src":"1178:329:34","trueBody":{"id":50478,"nodeType":"Block","src":"1203:39:34","statements":[{"expression":{"hexValue":"64656c7461","id":50476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1224:7:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""},"value":"delta"},"functionReturnParameters":50464,"id":50477,"nodeType":"Return","src":"1217:14:34"}]}},"id":50507,"nodeType":"IfStatement","src":"1110:397:34","trueBody":{"id":50471,"nodeType":"Block","src":"1134:38:34","statements":[{"expression":{"hexValue":"6e6f6e65","id":50469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1155:6:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"},"functionReturnParameters":50464,"id":50470,"nodeType":"Return","src":"1148:13:34"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1041:8:34","parameters":{"id":50461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50460,"mutability":"mutable","name":"_fork","nameLocation":"1055:5:34","nodeType":"VariableDeclaration","scope":50509,"src":"1050:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"typeName":{"id":50459,"nodeType":"UserDefinedTypeName","pathNode":{"id":50458,"name":"Fork","nameLocations":["1050:4:34"],"nodeType":"IdentifierPath","referencedDeclaration":50452,"src":"1050:4:34"},"referencedDeclaration":50452,"src":"1050:4:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"visibility":"internal"}],"src":"1049:12:34"},"returnParameters":{"id":50464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50509,"src":"1085:13:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50462,"name":"string","nodeType":"ElementaryTypeName","src":"1085:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1084:15:34"},"scope":50510,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ForkUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[50510],"name":"ForkUtils","nameLocation":"1016:9:34","scope":50918,"usedErrors":[],"usedEvents":[]},{"id":50917,"nodeType":"ContractDefinition","src":"1683:4963:34","nodes":[{"id":50529,"nodeType":"VariableDeclaration","src":"1742:84:34","nodes":[],"constant":true,"documentation":{"id":50512,"nodeType":"StructuredDocumentation","src":"1704:33:34","text":"@notice Foundry cheatcode VM."},"mutability":"constant","name":"vm","nameLocation":"1762:2:34","scope":50917,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"},"typeName":{"id":50514,"nodeType":"UserDefinedTypeName","pathNode":{"id":50513,"name":"Vm","nameLocations":["1742:2:34"],"nodeType":"IdentifierPath","referencedDeclaration":15857,"src":"1742:2:34"},"referencedDeclaration":15857,"src":"1742:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":50523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1804:17:34","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":50522,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1794:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1794:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":50521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1786:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":50520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1786:7:34","typeDescriptions":{}}},"id":50525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1786:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1778:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":50518,"name":"uint160","nodeType":"ElementaryTypeName","src":"1778:7:34","typeDescriptions":{}}},"id":50526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1778:46:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":50517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1770:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50516,"name":"address","nodeType":"ElementaryTypeName","src":"1770:7:34","typeDescriptions":{}}},"id":50527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1770:55:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50515,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"1767:2:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15857_$","typeString":"type(contract Vm)"}},"id":50528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1767:59:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"visibility":"private"},{"id":50557,"nodeType":"FunctionDefinition","src":"1981:254:34","nodes":[],"body":{"id":50556,"nodeType":"Block","src":"2053:182:34","nodes":[],"statements":[{"expression":{"id":50554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50535,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50533,"src":"2063:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f594d454e545f4f555446494c45","id":50538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2092:20:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb8da858f0078df8c8c6d7d8cc3c881655d67933c80f467a8fe3a98b9223e30e","typeString":"literal_string \"DEPLOYMENT_OUTFILE\""},"value":"DEPLOYMENT_OUTFILE"},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50542,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2140:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:11:34","memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":12883,"src":"2140:14:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":50544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2140:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6465706c6f796d656e74732f","id":50545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2158:15:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b849f40317fba7d532c0bb5a0048fc588a330868a6212ac1ddf9bd048284b1c","typeString":"literal_string \"/deployments/\""},"value":"/deployments/"},{"arguments":[{"expression":{"id":50548,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2187:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":50549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2193:7:34","memberName":"chainid","nodeType":"MemberAccess","src":"2187:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50546,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2175:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2178:8:34","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13613,"src":"2175:11:34","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":50550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d6465706c6f792e6a736f6e","id":50551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2203:14:34","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":50540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2126:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50539,"name":"string","nodeType":"ElementaryTypeName","src":"2126:6:34","typeDescriptions":{}}},"id":50541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2133:6:34","memberName":"concat","nodeType":"MemberAccess","src":"2126:13:34","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":50552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:92:34","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":50536,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2070:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2073:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"2070:8:34","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":50553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:158:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2063:165:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50555,"nodeType":"ExpressionStatement","src":"2063:165:34"}]},"documentation":{"id":50530,"nodeType":"StructuredDocumentation","src":"1833:143:34","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:34","parameters":{"id":50531,"nodeType":"ParameterList","parameters":[],"src":"2007:2:34"},"returnParameters":{"id":50534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50533,"mutability":"mutable","name":"_env","nameLocation":"2047:4:34","nodeType":"VariableDeclaration","scope":50557,"src":"2033:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50532,"name":"string","nodeType":"ElementaryTypeName","src":"2033:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2032:20:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50606,"nodeType":"FunctionDefinition","src":"2325:430:34","nodes":[],"body":{"id":50605,"nodeType":"Block","src":"2396:359:34","nodes":[],"statements":[{"condition":{"arguments":[{"expression":{"expression":{"id":50565,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15270,"src":"2423:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15270_$","typeString":"type(contract VmSafe)"}},"id":50566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2430:12:34","memberName":"ForgeContext","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"2423:19:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ForgeContext_$12101_$","typeString":"type(enum VmSafe.ForgeContext)"}},"id":50567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2443:9:34","memberName":"TestGroup","nodeType":"MemberAccess","referencedDeclaration":12092,"src":"2423:29:34","typeDescriptions":{"typeIdentifier":"t_enum$_ForgeContext_$12101","typeString":"enum VmSafe.ForgeContext"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ForgeContext_$12101","typeString":"enum VmSafe.ForgeContext"}],"expression":{"id":50563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2410:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2413:9:34","memberName":"isContext","nodeType":"MemberAccess","referencedDeclaration":12565,"src":"2410:12:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ForgeContext_$12101_$returns$_t_bool_$","typeString":"function (enum VmSafe.ForgeContext) view external returns (bool)"}},"id":50568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2410:43:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50603,"nodeType":"Block","src":"2555:194:34","statements":[{"expression":{"id":50590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50581,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50561,"src":"2569:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f595f434f4e4649475f50415448","id":50584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2585:20:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8f7d5ecf37cb3ce1a42903da3523de1298d2921aa5cdd2ec7a2febbd139c0c4","typeString":"literal_string \"DEPLOY_CONFIG_PATH\""},"value":"DEPLOY_CONFIG_PATH"},{"arguments":[{"hexValue":"","id":50587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2614:2:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":50586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50585,"name":"string","nodeType":"ElementaryTypeName","src":"2607:6:34","typeDescriptions":{}}},"id":50588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:10:34","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":50582,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2576:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2579:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"2576:8:34","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":50589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2576:42:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2569:49:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50591,"nodeType":"ExpressionStatement","src":"2569:49:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":50595,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50561,"src":"2646:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2640:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50593,"name":"bytes","nodeType":"ElementaryTypeName","src":"2640:5:34","typeDescriptions":{}}},"id":50596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2640:11:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":50597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2652:6:34","memberName":"length","nodeType":"MemberAccess","src":"2640:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":50598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2640:22:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e6669673a206d75737420736574204445504c4f595f434f4e4649475f5041544820746f2066696c6573797374656d2070617468206f66206465706c6f7920636f6e666967","id":50600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2664:73:34","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":50592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2632:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2632:106:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50602,"nodeType":"ExpressionStatement","src":"2632:106:34"}]},"id":50604,"nodeType":"IfStatement","src":"2406:343:34","trueBody":{"id":50580,"nodeType":"Block","src":"2455:94:34","statements":[{"expression":{"id":50578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50569,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50561,"src":"2469:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50573,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2490:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2493:11:34","memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":12883,"src":"2490:14:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":50575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6465706c6f792d636f6e6669672f686172646861742e6a736f6e","id":50576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2508:29:34","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":50571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50570,"name":"string","nodeType":"ElementaryTypeName","src":"2476:6:34","typeDescriptions":{}}},"id":50572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2483:6:34","memberName":"concat","nodeType":"MemberAccess","src":"2476:13:34","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":50577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:62:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2469:69:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50579,"nodeType":"ExpressionStatement","src":"2469:69:34"}]}}]},"documentation":{"id":50558,"nodeType":"StructuredDocumentation","src":"2241:79:34","text":"@notice Returns the path on the local filesystem where the deploy config is"},"implemented":true,"kind":"function","modifiers":[],"name":"deployConfigPath","nameLocation":"2334:16:34","parameters":{"id":50559,"nodeType":"ParameterList","parameters":[],"src":"2350:2:34"},"returnParameters":{"id":50562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50561,"mutability":"mutable","name":"_env","nameLocation":"2390:4:34","nodeType":"VariableDeclaration","scope":50606,"src":"2376:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50560,"name":"string","nodeType":"ElementaryTypeName","src":"2376:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2375:20:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50622,"nodeType":"FunctionDefinition","src":"2887:115:34","nodes":[],"body":{"id":50621,"nodeType":"Block","src":"2943:59:34","nodes":[],"statements":[{"expression":{"id":50619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50612,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50610,"src":"2953:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"434841494e5f4944","id":50615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2969:10:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f6c545710aa26d6b85aa0df95bc44a46f785270ac4a2e2fab1a42ebc27511ca","typeString":"literal_string \"CHAIN_ID\""},"value":"CHAIN_ID"},{"expression":{"id":50616,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2981:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":50617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2987:7:34","memberName":"chainid","nodeType":"MemberAccess","src":"2981:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f6c545710aa26d6b85aa0df95bc44a46f785270ac4a2e2fab1a42ebc27511ca","typeString":"literal_string \"CHAIN_ID\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50613,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"2960:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2963:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12370,"src":"2960:8:34","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":50618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:35:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2953:42:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50620,"nodeType":"ExpressionStatement","src":"2953:42:34"}]},"documentation":{"id":50607,"nodeType":"StructuredDocumentation","src":"2761:121:34","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:34","parameters":{"id":50608,"nodeType":"ParameterList","parameters":[],"src":"2903:2:34"},"returnParameters":{"id":50611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50610,"mutability":"mutable","name":"_env","nameLocation":"2937:4:34","nodeType":"VariableDeclaration","scope":50622,"src":"2929:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50609,"name":"uint256","nodeType":"ElementaryTypeName","src":"2929:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2928:14:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50640,"nodeType":"FunctionDefinition","src":"3267:147:34","nodes":[],"body":{"id":50639,"nodeType":"Block","src":"3343:71:34","nodes":[],"statements":[{"expression":{"id":50637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50628,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50626,"src":"3353:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"434f4e54524143545f4144445245535345535f50415448","id":50631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:25:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc8ff2e2ad9d464fc101d48edf0bfa651571d5030281606f2e6cf93bf74d7e29","typeString":"literal_string \"CONTRACT_ADDRESSES_PATH\""},"value":"CONTRACT_ADDRESSES_PATH"},{"arguments":[{"hexValue":"","id":50634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3403:2:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":50633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50632,"name":"string","nodeType":"ElementaryTypeName","src":"3396:6:34","typeDescriptions":{}}},"id":50635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3396:10:34","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":50629,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"3360:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3363:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"3360:8:34","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":50636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:47:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3353:54:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50638,"nodeType":"ExpressionStatement","src":"3353:54:34"}]},"documentation":{"id":50623,"nodeType":"StructuredDocumentation","src":"3008:254:34","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:34","parameters":{"id":50624,"nodeType":"ParameterList","parameters":[],"src":"3297:2:34"},"returnParameters":{"id":50627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50626,"mutability":"mutable","name":"_env","nameLocation":"3337:4:34","nodeType":"VariableDeclaration","scope":50640,"src":"3323:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50625,"name":"string","nodeType":"ElementaryTypeName","src":"3323:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3322:20:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50658,"nodeType":"FunctionDefinition","src":"3500:134:34","nodes":[],"body":{"id":50657,"nodeType":"Block","src":"3563:71:34","nodes":[],"statements":[{"expression":{"id":50655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50646,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50644,"src":"3573:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"494d504c5f53414c54","id":50649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3589:11:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_312a2a949f70d148b824f3efb0648c4d882a250b9c3f6d40e28d4884a920676b","typeString":"literal_string \"IMPL_SALT\""},"value":"IMPL_SALT"},{"arguments":[{"hexValue":"6574686572732070686f656e6978","id":50652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3609:16:34","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":50651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3602:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50650,"name":"string","nodeType":"ElementaryTypeName","src":"3602:6:34","typeDescriptions":{}}},"id":50653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3602:24:34","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":50647,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"3580:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3583:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"3580:8:34","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":50654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:47:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3573:54:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50656,"nodeType":"ExpressionStatement","src":"3573:54:34"}]},"documentation":{"id":50641,"nodeType":"StructuredDocumentation","src":"3420:75:34","text":"@notice The CREATE2 salt to be used when deploying the implementations."},"implemented":true,"kind":"function","modifiers":[],"name":"implSalt","nameLocation":"3509:8:34","parameters":{"id":50642,"nodeType":"ParameterList","parameters":[],"src":"3517:2:34"},"returnParameters":{"id":50645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50644,"mutability":"mutable","name":"_env","nameLocation":"3557:4:34","nodeType":"VariableDeclaration","scope":50658,"src":"3543:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50643,"name":"string","nodeType":"ElementaryTypeName","src":"3543:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3542:20:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50689,"nodeType":"FunctionDefinition","src":"3773:269:34","nodes":[],"body":{"id":50688,"nodeType":"Block","src":"3862:180:34","nodes":[],"statements":[{"expression":{"id":50686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50666,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50664,"src":"3872:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"53544154455f44554d505f50415448","id":50669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3901:17:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_305965324619fe61c25c6323402ede87454dd53c82cb28e1bb0058e5b29e3b7a","typeString":"literal_string \"STATE_DUMP_PATH\""},"value":"STATE_DUMP_PATH"},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50673,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"3946:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3949:11:34","memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":12883,"src":"3946:14:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":50675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f73746174652d64756d702d","id":50676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3964:14:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_0efbf95bda2b1e2cbfebb9cdfab2bd64b579fbeace808ffd9c171629c2871b67","typeString":"literal_string \"/state-dump-\""},"value":"/state-dump-"},{"arguments":[{"expression":{"id":50679,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3992:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":50680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3998:7:34","memberName":"chainid","nodeType":"MemberAccess","src":"3992:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50677,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"3980:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3983:8:34","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13613,"src":"3980:11:34","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":50681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3980:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":50682,"name":"_suffix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50661,"src":"4008:7:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6a736f6e","id":50683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4017:7:34","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":50671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3932:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50670,"name":"string","nodeType":"ElementaryTypeName","src":"3932:6:34","typeDescriptions":{}}},"id":50672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3939:6:34","memberName":"concat","nodeType":"MemberAccess","src":"3932:13:34","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":50684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3932:93:34","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":50667,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"3879:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3882:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"3879:8:34","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":50685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3879:156:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3872:163:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50687,"nodeType":"ExpressionStatement","src":"3872:163:34"}]},"documentation":{"id":50659,"nodeType":"StructuredDocumentation","src":"3640:128:34","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:34","parameters":{"id":50662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50661,"mutability":"mutable","name":"_suffix","nameLocation":"3810:7:34","nodeType":"VariableDeclaration","scope":50689,"src":"3796:21:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50660,"name":"string","nodeType":"ElementaryTypeName","src":"3796:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3795:23:34"},"returnParameters":{"id":50665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50664,"mutability":"mutable","name":"_env","nameLocation":"3856:4:34","nodeType":"VariableDeclaration","scope":50689,"src":"3842:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50663,"name":"string","nodeType":"ElementaryTypeName","src":"3842:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3841:20:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50711,"nodeType":"FunctionDefinition","src":"4380:167:34","nodes":[],"body":{"id":50710,"nodeType":"Block","src":"4463:84:34","nodes":[],"statements":[{"expression":{"id":50708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50697,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50695,"src":"4473:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f595f46494c45","id":50700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4489:13:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_246fe99edb572fd7d23803d5870839fa17615eaa6375ae496bb4a5b9c285298a","typeString":"literal_string \"DEPLOY_FILE\""},"value":"DEPLOY_FILE"},{"arguments":[{"id":50704,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50692,"src":"4518:4:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d6c61746573742e6a736f6e","id":50705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4524:14:34","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":50702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4504:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50701,"name":"string","nodeType":"ElementaryTypeName","src":"4504:6:34","typeDescriptions":{}}},"id":50703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4511:6:34","memberName":"concat","nodeType":"MemberAccess","src":"4504:13:34","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":50706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4504:35:34","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":50698,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"4480:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4483:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"4480:8:34","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":50707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4480:60:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"4473:67:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50709,"nodeType":"ExpressionStatement","src":"4473:67:34"}]},"documentation":{"id":50690,"nodeType":"StructuredDocumentation","src":"4048:327:34","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:34","parameters":{"id":50693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50692,"mutability":"mutable","name":"_sig","nameLocation":"4414:4:34","nodeType":"VariableDeclaration","scope":50711,"src":"4400:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50691,"name":"string","nodeType":"ElementaryTypeName","src":"4400:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4399:20:34"},"returnParameters":{"id":50696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50695,"mutability":"mutable","name":"_env","nameLocation":"4457:4:34","nodeType":"VariableDeclaration","scope":50711,"src":"4443:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50694,"name":"string","nodeType":"ElementaryTypeName","src":"4443:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4442:20:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50725,"nodeType":"FunctionDefinition","src":"4628:134:34","nodes":[],"body":{"id":50724,"nodeType":"Block","src":"4699:63:34","nodes":[],"statements":[{"expression":{"id":50722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50717,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50715,"src":"4709:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"445249505049455f4f574e45525f505249564154455f4b4559","id":50720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4727:27:34","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":50718,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"4716:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4719:7:34","memberName":"envUint","nodeType":"MemberAccess","referencedDeclaration":12545,"src":"4716:10:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view external returns (uint256)"}},"id":50721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4716:39:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4709:46:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50723,"nodeType":"ExpressionStatement","src":"4709:46:34"}]},"documentation":{"id":50712,"nodeType":"StructuredDocumentation","src":"4553:70:34","text":"@notice Returns the private key that is used to configure drippie."},"implemented":true,"kind":"function","modifiers":[],"name":"drippieOwnerPrivateKey","nameLocation":"4637:22:34","parameters":{"id":50713,"nodeType":"ParameterList","parameters":[],"src":"4659:2:34"},"returnParameters":{"id":50716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50715,"mutability":"mutable","name":"_env","nameLocation":"4693:4:34","nodeType":"VariableDeclaration","scope":50725,"src":"4685:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50714,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4684:14:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50802,"nodeType":"FunctionDefinition","src":"4975:577:34","nodes":[],"body":{"id":50801,"nodeType":"Block","src":"5032:520:34","nodes":[],"statements":[{"assignments":[50733],"declarations":[{"constant":false,"id":50733,"mutability":"mutable","name":"modeStr","nameLocation":"5056:7:34","nodeType":"VariableDeclaration","scope":50801,"src":"5042:21:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50732,"name":"string","nodeType":"ElementaryTypeName","src":"5042:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":50742,"initialValue":{"arguments":[{"hexValue":"4f55545055545f4d4f4445","id":50736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5075:13:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4499ee56ed43ab120c683a5be60a92a87ffa6f61e048dcae1630c690d604279","typeString":"literal_string \"OUTPUT_MODE\""},"value":"OUTPUT_MODE"},{"arguments":[{"hexValue":"6c6174657374","id":50739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:8:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""}],"id":50738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5090:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50737,"name":"string","nodeType":"ElementaryTypeName","src":"5090:6:34","typeDescriptions":{}}},"id":50740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:16:34","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":50734,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"5066:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5069:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"5066:8:34","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":50741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:41:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"5042:65:34"},{"assignments":[50744],"declarations":[{"constant":false,"id":50744,"mutability":"mutable","name":"modeHash","nameLocation":"5125:8:34","nodeType":"VariableDeclaration","scope":50801,"src":"5117:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5117:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50751,"initialValue":{"arguments":[{"arguments":[{"id":50748,"name":"modeStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50733,"src":"5152:7:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5146:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50746,"name":"bytes","nodeType":"ElementaryTypeName","src":"5146:5:34","typeDescriptions":{}}},"id":50749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5146:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50745,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5136:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5136:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5117:44:34"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50752,"name":"modeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50744,"src":"5175:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6e6f6e65","id":50756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5203:6:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""}],"id":50755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5197:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50754,"name":"bytes","nodeType":"ElementaryTypeName","src":"5197:5:34","typeDescriptions":{}}},"id":50757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5197:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50753,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5187:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5187:24:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5175:36:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50764,"name":"modeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50744,"src":"5270:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6c6174657374","id":50768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5298:8:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""}],"id":50767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5292:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50766,"name":"bytes","nodeType":"ElementaryTypeName","src":"5292:5:34","typeDescriptions":{}}},"id":50769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5292:15:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5282:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5270:38:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50776,"name":"modeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50744,"src":"5369:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"616c6c","id":50780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5397:5:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""},"value":"all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""}],"id":50779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5391:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50778,"name":"bytes","nodeType":"ElementaryTypeName","src":"5391:5:34","typeDescriptions":{}}},"id":50781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5391:12:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50777,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5381:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5381:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5369:35:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50797,"nodeType":"Block","src":"5458:88:34","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6e6669673a20756e6b6e6f776e206f7574707574206d6f64653a20","id":50792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5493:31:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_912c43c7e8dc57ef18bc6019f0e71e23088e0eaba8eb736137b2cca122d0a9f9","typeString":"literal_string \"Config: unknown output mode: \""},"value":"Config: unknown output mode: "},{"id":50793,"name":"modeStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50733,"src":"5526:7:34","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":50790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5479:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50789,"name":"string","nodeType":"ElementaryTypeName","src":"5479:6:34","typeDescriptions":{}}},"id":50791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5486:6:34","memberName":"concat","nodeType":"MemberAccess","src":"5479:13:34","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":50794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5479:55:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50788,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5472:6:34","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":50795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5472:63:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50796,"nodeType":"ExpressionStatement","src":"5472:63:34"}]},"id":50798,"nodeType":"IfStatement","src":"5365:181:34","trueBody":{"id":50787,"nodeType":"Block","src":"5406:46:34","statements":[{"expression":{"expression":{"id":50784,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50408,"src":"5427:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$50408_$","typeString":"type(enum OutputMode)"}},"id":50785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5438:3:34","memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":50407,"src":"5427:14:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"functionReturnParameters":50731,"id":50786,"nodeType":"Return","src":"5420:21:34"}]}},"id":50799,"nodeType":"IfStatement","src":"5266:280:34","trueBody":{"id":50775,"nodeType":"Block","src":"5310:49:34","statements":[{"expression":{"expression":{"id":50772,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50408,"src":"5331:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$50408_$","typeString":"type(enum OutputMode)"}},"id":50773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5342:6:34","memberName":"LATEST","nodeType":"MemberAccess","referencedDeclaration":50406,"src":"5331:17:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"functionReturnParameters":50731,"id":50774,"nodeType":"Return","src":"5324:24:34"}]}},"id":50800,"nodeType":"IfStatement","src":"5171:375:34","trueBody":{"id":50763,"nodeType":"Block","src":"5213:47:34","statements":[{"expression":{"expression":{"id":50760,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50408,"src":"5234:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$50408_$","typeString":"type(enum OutputMode)"}},"id":50761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5245:4:34","memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":50405,"src":"5234:15:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"functionReturnParameters":50731,"id":50762,"nodeType":"Return","src":"5227:22:34"}]}}]},"documentation":{"id":50726,"nodeType":"StructuredDocumentation","src":"4768:202:34","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:34","parameters":{"id":50727,"nodeType":"ParameterList","parameters":[],"src":"4994:2:34"},"returnParameters":{"id":50731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50802,"src":"5020:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"},"typeName":{"id":50729,"nodeType":"UserDefinedTypeName","pathNode":{"id":50728,"name":"OutputMode","nameLocations":["5020:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":50408,"src":"5020:10:34"},"referencedDeclaration":50408,"src":"5020:10:34","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$50408","typeString":"enum OutputMode"}},"visibility":"internal"}],"src":"5019:12:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50916,"nodeType":"FunctionDefinition","src":"5839:805:34","nodes":[],"body":{"id":50915,"nodeType":"Block","src":"5884:760:34","nodes":[],"statements":[{"assignments":[50810],"declarations":[{"constant":false,"id":50810,"mutability":"mutable","name":"forkStr","nameLocation":"5908:7:34","nodeType":"VariableDeclaration","scope":50915,"src":"5894:21:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50809,"name":"string","nodeType":"ElementaryTypeName","src":"5894:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":50819,"initialValue":{"arguments":[{"hexValue":"464f524b","id":50813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5927:6:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_73a0e998ac3a1085d3a90213089d12b92f390374ef954b43f1649621540da003","typeString":"literal_string \"FORK\""},"value":"FORK"},{"arguments":[{"hexValue":"","id":50816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5942:2:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":50815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5935:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50814,"name":"string","nodeType":"ElementaryTypeName","src":"5935:6:34","typeDescriptions":{}}},"id":50817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5935:10:34","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":50811,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50529,"src":"5918:2:34","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15857","typeString":"contract Vm"}},"id":50812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5921:5:34","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12466,"src":"5918:8:34","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":50818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5918:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"5894:52:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":50822,"name":"forkStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50810,"src":"5966:7:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50820,"name":"bytes","nodeType":"ElementaryTypeName","src":"5960:5:34","typeDescriptions":{}}},"id":50823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":50824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5975:6:34","memberName":"length","nodeType":"MemberAccess","src":"5960:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5985:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5960:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50831,"nodeType":"IfStatement","src":"5956:73:34","trueBody":{"id":50830,"nodeType":"Block","src":"5988:41:34","statements":[{"expression":{"expression":{"id":50827,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"6009:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6014:4:34","memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":50447,"src":"6009:9:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"functionReturnParameters":50808,"id":50829,"nodeType":"Return","src":"6002:16:34"}]}},{"assignments":[50833],"declarations":[{"constant":false,"id":50833,"mutability":"mutable","name":"forkHash","nameLocation":"6046:8:34","nodeType":"VariableDeclaration","scope":50915,"src":"6038:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6038:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50840,"initialValue":{"arguments":[{"arguments":[{"id":50837,"name":"forkStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50810,"src":"6073:7:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6067:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50835,"name":"bytes","nodeType":"ElementaryTypeName","src":"6067:5:34","typeDescriptions":{}}},"id":50838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6067:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50834,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6057:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6057:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6038:44:34"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50841,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"6096:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6c6174657374","id":50845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6124:8:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""}],"id":50844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6118:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50843,"name":"bytes","nodeType":"ElementaryTypeName","src":"6118:5:34","typeDescriptions":{}}},"id":50846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6118:15:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50842,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6108:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6108:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6096:38:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50852,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"6189:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"64656c7461","id":50856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6217:7:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""},"value":"delta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""}],"id":50855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6211:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50854,"name":"bytes","nodeType":"ElementaryTypeName","src":"6211:5:34","typeDescriptions":{}}},"id":50857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6211:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50853,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6201:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6201:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6189:37:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50864,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"6280:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"65636f746f6e65","id":50868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:9:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""},"value":"ecotone"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""}],"id":50867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6302:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50866,"name":"bytes","nodeType":"ElementaryTypeName","src":"6302:5:34","typeDescriptions":{}}},"id":50869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6302:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50865,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6292:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6292:27:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6280:39:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50876,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"6375:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"666a6f7264","id":50880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6403:7:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""},"value":"fjord"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""}],"id":50879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6397:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50878,"name":"bytes","nodeType":"ElementaryTypeName","src":"6397:5:34","typeDescriptions":{}}},"id":50881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6397:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50877,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6387:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6387:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6375:37:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50888,"name":"forkHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"6466:8:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"6772616e697465","id":50892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6494:9:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""},"value":"granite"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""}],"id":50891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6488:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50890,"name":"bytes","nodeType":"ElementaryTypeName","src":"6488:5:34","typeDescriptions":{}}},"id":50893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6488:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50889,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6478:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6478:27:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6466:39:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50909,"nodeType":"Block","src":"6557:81:34","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6e6669673a20756e6b6e6f776e20666f726b3a20","id":50904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6592:24:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_0233c1f7c9fdcb7c6c0ae5f316adc84d0a4a1618d51c980fef1bdbb12e796a4b","typeString":"literal_string \"Config: unknown fork: \""},"value":"Config: unknown fork: "},{"id":50905,"name":"forkStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50810,"src":"6618:7:34","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":50902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6578:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":50901,"name":"string","nodeType":"ElementaryTypeName","src":"6578:6:34","typeDescriptions":{}}},"id":50903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6585:6:34","memberName":"concat","nodeType":"MemberAccess","src":"6578:13:34","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":50906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6578:48:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50900,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6571:6:34","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":50907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6571:56:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50908,"nodeType":"ExpressionStatement","src":"6571:56:34"}]},"id":50910,"nodeType":"IfStatement","src":"6462:176:34","trueBody":{"id":50899,"nodeType":"Block","src":"6507:44:34","statements":[{"expression":{"expression":{"id":50896,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"6528:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6533:7:34","memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":50451,"src":"6528:12:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"functionReturnParameters":50808,"id":50898,"nodeType":"Return","src":"6521:19:34"}]}},"id":50911,"nodeType":"IfStatement","src":"6371:267:34","trueBody":{"id":50887,"nodeType":"Block","src":"6414:42:34","statements":[{"expression":{"expression":{"id":50884,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"6435:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6440:5:34","memberName":"FJORD","nodeType":"MemberAccess","referencedDeclaration":50450,"src":"6435:10:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"functionReturnParameters":50808,"id":50886,"nodeType":"Return","src":"6428:17:34"}]}},"id":50912,"nodeType":"IfStatement","src":"6276:362:34","trueBody":{"id":50875,"nodeType":"Block","src":"6321:44:34","statements":[{"expression":{"expression":{"id":50872,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"6342:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6347:7:34","memberName":"ECOTONE","nodeType":"MemberAccess","referencedDeclaration":50449,"src":"6342:12:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"functionReturnParameters":50808,"id":50874,"nodeType":"Return","src":"6335:19:34"}]}},"id":50913,"nodeType":"IfStatement","src":"6185:453:34","trueBody":{"id":50863,"nodeType":"Block","src":"6228:42:34","statements":[{"expression":{"expression":{"id":50860,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50452,"src":"6249:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$50452_$","typeString":"type(enum Fork)"}},"id":50861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6254:5:34","memberName":"DELTA","nodeType":"MemberAccess","referencedDeclaration":50448,"src":"6249:10:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"functionReturnParameters":50808,"id":50862,"nodeType":"Return","src":"6242:17:34"}]}},"id":50914,"nodeType":"IfStatement","src":"6092:546:34","trueBody":{"id":50851,"nodeType":"Block","src":"6136:43:34","statements":[{"expression":{"id":50849,"name":"LATEST_FORK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50457,"src":"6157:11:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"functionReturnParameters":50808,"id":50850,"nodeType":"Return","src":"6150:18:34"}]}}]},"documentation":{"id":50803,"nodeType":"StructuredDocumentation","src":"5558:276:34","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:34","parameters":{"id":50804,"nodeType":"ParameterList","parameters":[],"src":"5852:2:34"},"returnParameters":{"id":50808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50916,"src":"5878:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"},"typeName":{"id":50806,"nodeType":"UserDefinedTypeName","pathNode":{"id":50805,"name":"Fork","nameLocations":["5878:4:34"],"nodeType":"IdentifierPath","referencedDeclaration":50452,"src":"5878:4:34"},"referencedDeclaration":50452,"src":"5878:4:34","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$50452","typeString":"enum Fork"}},"visibility":"internal"}],"src":"5877:6:34"},"scope":50917,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Config","contractDependencies":[],"contractKind":"library","documentation":{"id":50511,"nodeType":"StructuredDocumentation","src":"1517:166:34","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":[50917],"name":"Config","nameLocation":"1691:6:34","scope":50918,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":34}