UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 134 kB
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"1008:507:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1008:507:34;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"1008:507:34:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Config.sol\":\"ForkUtils\"},\"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":"ForkUtils"},"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"},"devdoc":{"version":1,"kind":"dev"},"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:3