@tokamak-network/thanos-contracts
Version:
1 lines • 131 kB
JSON
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"422:387:117:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;422:387:117;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"422:387:117:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Config.sol\":\"OutputModeUtils\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"scripts/Config.sol\":{\"keccak256\":\"0x8ca0f72a6f788d56aa88d5854badab58eeb3a06d8324565e2fb532ec3fe213d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b60e6cd83217ff105667720366cd5562db5c88bf2e6b74e985ff34dea6e26b92\",\"dweb:/ipfs/QmZLZYwAtRUCZiizvQ9jsdt7HfBwAa6xmThJnqdNd89smP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Config.sol":"OutputModeUtils"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"scripts/Config.sol":{"keccak256":"0x8ca0f72a6f788d56aa88d5854badab58eeb3a06d8324565e2fb532ec3fe213d3","urls":["bzz-raw://b60e6cd83217ff105667720366cd5562db5c88bf2e6b74e985ff34dea6e26b92","dweb:/ipfs/QmZLZYwAtRUCZiizvQ9jsdt7HfBwAa6xmThJnqdNd89smP"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"scripts/Config.sol","id":70323,"exportedSymbols":{"Config":[70322],"Fork":[69857],"ForkUtils":[69915],"LATEST_FORK":[69862],"OutputMode":[69814],"OutputModeUtils":[69851],"Vm":[16311],"VmSafe":[15724]},"nodeType":"SourceUnit","src":"32:6615:117","nodes":[{"id":69807,"nodeType":"PragmaDirective","src":"32:23:117","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":69810,"nodeType":"ImportDirective","src":"57:46:117","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":70323,"sourceUnit":16312,"symbolAliases":[{"foreign":{"id":69808,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16311,"src":"66:2:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":69809,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"70:6:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69814,"nodeType":"EnumDefinition","src":"371:49:117","nodes":[],"canonicalName":"OutputMode","members":[{"id":69811,"name":"NONE","nameLocation":"393:4:117","nodeType":"EnumValue","src":"393:4:117"},{"id":69812,"name":"LATEST","nameLocation":"403:6:117","nodeType":"EnumValue","src":"403:6:117"},{"id":69813,"name":"ALL","nameLocation":"415:3:117","nodeType":"EnumValue","src":"415:3:117"}],"name":"OutputMode","nameLocation":"376:10:117"},{"id":69851,"nodeType":"ContractDefinition","src":"422:387:117","nodes":[{"id":69850,"nodeType":"FunctionDefinition","src":"452:355:117","nodes":[],"body":{"id":69849,"nodeType":"Block","src":"526:281:117","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"id":69825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69822,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69817,"src":"540:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69823,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"549:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":69824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":69811,"src":"549:15:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"src":"540:24:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"id":69832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69829,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69817,"src":"614:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69830,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"623:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":69831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"LATEST","nodeType":"MemberAccess","referencedDeclaration":69812,"src":"623:17:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"src":"614:26:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"id":69839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69836,"name":"_mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69817,"src":"692:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69837,"name":"OutputMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69814,"src":"701:10:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OutputMode_$69814_$","typeString":"type(enum OutputMode)"}},"id":69838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":69813,"src":"701:14:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"src":"692:23:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":69845,"nodeType":"Block","src":"760:41:117","statements":[{"expression":{"hexValue":"756e6b6e6f776e","id":69843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"781:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_24695ee963d29f0f52edfdea1e830d2fcfc9052d5ba70b194bddd0afbbc89765","typeString":"literal_string \"unknown\""},"value":"unknown"},"functionReturnParameters":69821,"id":69844,"nodeType":"Return","src":"774:16:117"}]},"id":69846,"nodeType":"IfStatement","src":"688:113:117","trueBody":{"id":69842,"nodeType":"Block","src":"717:37:117","statements":[{"expression":{"hexValue":"616c6c","id":69840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"738:5:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1a5369c14e1a2a7ed7f81063c064723f30055377ba9544e263f7483a48749c","typeString":"literal_string \"all\""},"value":"all"},"functionReturnParameters":69821,"id":69841,"nodeType":"Return","src":"731:12:117"}]}},"id":69847,"nodeType":"IfStatement","src":"610:191:117","trueBody":{"id":69835,"nodeType":"Block","src":"642:40:117","statements":[{"expression":{"hexValue":"6c6174657374","id":69833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"663:8:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7c83ff6d08efb2f110018d8b6814a4719a93273a3ea09ced5cfe0d5db1d001","typeString":"literal_string \"latest\""},"value":"latest"},"functionReturnParameters":69821,"id":69834,"nodeType":"Return","src":"656:15:117"}]}},"id":69848,"nodeType":"IfStatement","src":"536:265:117","trueBody":{"id":69828,"nodeType":"Block","src":"566:38:117","statements":[{"expression":{"hexValue":"6e6f6e65","id":69826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"587:6:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"},"functionReturnParameters":69821,"id":69827,"nodeType":"Return","src":"580:13:117"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"461:8:117","parameters":{"id":69818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69817,"mutability":"mutable","name":"_mode","nameLocation":"481:5:117","nodeType":"VariableDeclaration","scope":69850,"src":"470:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"},"typeName":{"id":69816,"nodeType":"UserDefinedTypeName","pathNode":{"id":69815,"name":"OutputMode","nodeType":"IdentifierPath","referencedDeclaration":69814,"src":"470:10:117"},"referencedDeclaration":69814,"src":"470:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_OutputMode_$69814","typeString":"enum OutputMode"}},"visibility":"internal"}],"src":"469:18:117"},"returnParameters":{"id":69821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69850,"src":"511:13:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69819,"name":"string","nodeType":"ElementaryTypeName","src":"511:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"510:15:117"},"scope":69851,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"OutputModeUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[69851],"name":"OutputModeUtils","nameLocation":"430:15:117","scope":70323,"usedErrors":[]},{"id":69857,"nodeType":"EnumDefinition","src":"893:70:117","nodes":[],"canonicalName":"Fork","members":[{"id":69852,"name":"NONE","nameLocation":"909:4:117","nodeType":"EnumValue","src":"909:4:117"},{"id":69853,"name":"DELTA","nameLocation":"919:5:117","nodeType":"EnumValue","src":"919:5:117"},{"id":69854,"name":"ECOTONE","nameLocation":"930:7:117","nodeType":"EnumValue","src":"930:7:117"},{"id":69855,"name":"FJORD","nameLocation":"943:5:117","nodeType":"EnumValue","src":"943:5:117"},{"id":69856,"name":"GRANITE","nameLocation":"954:7:117","nodeType":"EnumValue","src":"954:7:117"}],"name":"Fork","nameLocation":"898:4:117"},{"id":69862,"nodeType":"VariableDeclaration","src":"965:40:117","nodes":[],"constant":true,"mutability":"constant","name":"LATEST_FORK","nameLocation":"979:11:117","scope":70323,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"typeName":{"id":69859,"nodeType":"UserDefinedTypeName","pathNode":{"id":69858,"name":"Fork","nodeType":"IdentifierPath","referencedDeclaration":69857,"src":"965:4:117"},"referencedDeclaration":69857,"src":"965:4:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"value":{"expression":{"id":69860,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"993:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":69856,"src":"993:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"visibility":"internal"},{"id":69915,"nodeType":"ContractDefinition","src":"1008:507:117","nodes":[{"id":69914,"nodeType":"FunctionDefinition","src":"1032:481:117","nodes":[],"body":{"id":69913,"nodeType":"Block","src":"1100:413:117","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69870,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1114:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69871,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1123:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NONE","nodeType":"MemberAccess","referencedDeclaration":69852,"src":"1123:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1114:18:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69877,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1182:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69878,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1191:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DELTA","nodeType":"MemberAccess","referencedDeclaration":69853,"src":"1191:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1182:19:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69884,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1252:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69885,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1261:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ECOTONE","nodeType":"MemberAccess","referencedDeclaration":69854,"src":"1261:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1252:21:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69891,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1326:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69892,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1335:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"FJORD","nodeType":"MemberAccess","referencedDeclaration":69855,"src":"1335:10:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1326:19:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"id":69901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69898,"name":"_fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69865,"src":"1396:5:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69899,"name":"Fork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69857,"src":"1405:4:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Fork_$69857_$","typeString":"type(enum Fork)"}},"id":69900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"GRANITE","nodeType":"MemberAccess","referencedDeclaration":69856,"src":"1405:12:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"src":"1396:21:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":69907,"nodeType":"Block","src":"1466:41:117","statements":[{"expression":{"hexValue":"756e6b6e6f776e","id":69905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1487:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_24695ee963d29f0f52edfdea1e830d2fcfc9052d5ba70b194bddd0afbbc89765","typeString":"literal_string \"unknown\""},"value":"unknown"},"functionReturnParameters":69869,"id":69906,"nodeType":"Return","src":"1480:16:117"}]},"id":69908,"nodeType":"IfStatement","src":"1392:115:117","trueBody":{"id":69904,"nodeType":"Block","src":"1419:41:117","statements":[{"expression":{"hexValue":"6772616e697465","id":69902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1440:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_62b09927b4f79e9c938002f8540a0c7a4e2efd69d4c4de742f71b0438aab7ba3","typeString":"literal_string \"granite\""},"value":"granite"},"functionReturnParameters":69869,"id":69903,"nodeType":"Return","src":"1433:16:117"}]}},"id":69909,"nodeType":"IfStatement","src":"1322:185:117","trueBody":{"id":69897,"nodeType":"Block","src":"1347:39:117","statements":[{"expression":{"hexValue":"666a6f7264","id":69895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1368:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_9725d3772f1ae3298e1e9b79af3c623373d1da1ce3dfa8cbbec431d865d88b13","typeString":"literal_string \"fjord\""},"value":"fjord"},"functionReturnParameters":69869,"id":69896,"nodeType":"Return","src":"1361:14:117"}]}},"id":69910,"nodeType":"IfStatement","src":"1248:259:117","trueBody":{"id":69890,"nodeType":"Block","src":"1275:41:117","statements":[{"expression":{"hexValue":"65636f746f6e65","id":69888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1296:9:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_cebd1290a85fe4eb4e8c02449c1c646d8068a281f40c1d28250a446179751011","typeString":"literal_string \"ecotone\""},"value":"ecotone"},"functionReturnParameters":69869,"id":69889,"nodeType":"Return","src":"1289:16:117"}]}},"id":69911,"nodeType":"IfStatement","src":"1178:329:117","trueBody":{"id":69883,"nodeType":"Block","src":"1203:39:117","statements":[{"expression":{"hexValue":"64656c7461","id":69881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1224:7:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0d399e873cde9f1130182a2b70db45e021df5a2f404fa14e8b2f7481c10f1d3","typeString":"literal_string \"delta\""},"value":"delta"},"functionReturnParameters":69869,"id":69882,"nodeType":"Return","src":"1217:14:117"}]}},"id":69912,"nodeType":"IfStatement","src":"1110:397:117","trueBody":{"id":69876,"nodeType":"Block","src":"1134:38:117","statements":[{"expression":{"hexValue":"6e6f6e65","id":69874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1155:6:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4915122cc2b3d2dae9e7d77a78c2eb0cef7b55de5c725eea56e2027332489e1","typeString":"literal_string \"none\""},"value":"none"},"functionReturnParameters":69869,"id":69875,"nodeType":"Return","src":"1148:13:117"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1041:8:117","parameters":{"id":69866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69865,"mutability":"mutable","name":"_fork","nameLocation":"1055:5:117","nodeType":"VariableDeclaration","scope":69914,"src":"1050:10:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"},"typeName":{"id":69864,"nodeType":"UserDefinedTypeName","pathNode":{"id":69863,"name":"Fork","nodeType":"IdentifierPath","referencedDeclaration":69857,"src":"1050:4:117"},"referencedDeclaration":69857,"src":"1050:4:117","typeDescriptions":{"typeIdentifier":"t_enum$_Fork_$69857","typeString":"enum Fork"}},"visibility":"internal"}],"src":"1049:12:117"},"returnParameters":{"id":69869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69914,"src":"1085:13:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69867,"name":"string","nodeType":"ElementaryTypeName","src":"1085:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1084:15:117"},"scope":69915,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ForkUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[69915],"name":"ForkUtils","nameLocation":"1016:9:117","scope":70323,"usedErrors":[]},{"id":70322,"nodeType":"ContractDefinition","src":"1683:4963:117","nodes":[{"id":69934,"nodeType":"VariableDeclaration","src":"1742:84:117","nodes":[],"constant":true,"documentation":{"id":69917,"nodeType":"StructuredDocumentation","src":"1704:33:117","text":"@notice Foundry cheatcode VM."},"mutability":"constant","name":"vm","nameLocation":"1762:2:117","scope":70322,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"},"typeName":{"id":69919,"nodeType":"UserDefinedTypeName","pathNode":{"id":69918,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":16311,"src":"1742:2:117"},"referencedDeclaration":16311,"src":"1742:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":69928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1804:17:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":69927,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1794:9:117","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1794:28:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1786:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":69925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1786:7:117","typeDescriptions":{}}},"id":69930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1786:37:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1778:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":69923,"name":"uint160","nodeType":"ElementaryTypeName","src":"1778:7:117","typeDescriptions":{}}},"id":69931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1778:46:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":69922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1770:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":69921,"name":"address","nodeType":"ElementaryTypeName","src":"1770:7:117","typeDescriptions":{}}},"id":69932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:55:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69920,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16311,"src":"1767:2:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$16311_$","typeString":"type(contract Vm)"}},"id":69933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1767:59:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"visibility":"private"},{"id":69962,"nodeType":"FunctionDefinition","src":"1981:254:117","nodes":[],"body":{"id":69961,"nodeType":"Block","src":"2053:182:117","nodes":[],"statements":[{"expression":{"id":69959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69940,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69938,"src":"2063:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f594d454e545f4f555446494c45","id":69943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2092:20:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb8da858f0078df8c8c6d7d8cc3c881655d67933c80f467a8fe3a98b9223e30e","typeString":"literal_string \"DEPLOYMENT_OUTFILE\""},"value":"DEPLOYMENT_OUTFILE"},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":69947,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2140:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":13337,"src":"2140:14:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":69949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2140:16:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f6465706c6f796d656e74732f","id":69950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2158:15:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b849f40317fba7d532c0bb5a0048fc588a330868a6212ac1ddf9bd048284b1c","typeString":"literal_string \"/deployments/\""},"value":"/deployments/"},{"arguments":[{"expression":{"id":69953,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2187:5:117","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":69954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2187:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":69951,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2175:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14067,"src":"2175:11:117","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":69955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2175:26:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d6465706c6f792e6a736f6e","id":69956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2203:14:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df2a94f209d9a856a7dbdba172a1c71509370f12a8d760191b1545ea920b021","typeString":"literal_string \"-deploy.json\""},"value":"-deploy.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9b849f40317fba7d532c0bb5a0048fc588a330868a6212ac1ddf9bd048284b1c","typeString":"literal_string \"/deployments/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_4df2a94f209d9a856a7dbdba172a1c71509370f12a8d760191b1545ea920b021","typeString":"literal_string \"-deploy.json\""}],"expression":{"id":69945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2126:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":69944,"name":"string","nodeType":"ElementaryTypeName","src":"2126:6:117","typeDescriptions":{}}},"id":69946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"2126:13:117","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":69957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2126:92:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb8da858f0078df8c8c6d7d8cc3c881655d67933c80f467a8fe3a98b9223e30e","typeString":"literal_string \"DEPLOYMENT_OUTFILE\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":69941,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2070:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"2070:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":69958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2070:158:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2063:165:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":69960,"nodeType":"ExpressionStatement","src":"2063:165:117"}]},"documentation":{"id":69935,"nodeType":"StructuredDocumentation","src":"1833:143:117","text":"@notice Returns the path on the local filesystem where the deployment artifact is\n written to disk after doing a deployment."},"implemented":true,"kind":"function","modifiers":[],"name":"deploymentOutfile","nameLocation":"1990:17:117","parameters":{"id":69936,"nodeType":"ParameterList","parameters":[],"src":"2007:2:117"},"returnParameters":{"id":69939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69938,"mutability":"mutable","name":"_env","nameLocation":"2047:4:117","nodeType":"VariableDeclaration","scope":69962,"src":"2033:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69937,"name":"string","nodeType":"ElementaryTypeName","src":"2033:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2032:20:117"},"scope":70322,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70011,"nodeType":"FunctionDefinition","src":"2325:430:117","nodes":[],"body":{"id":70010,"nodeType":"Block","src":"2396:359:117","nodes":[],"statements":[{"condition":{"arguments":[{"expression":{"expression":{"id":69970,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"2423:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15724_$","typeString":"type(contract VmSafe)"}},"id":69971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ForgeContext","nodeType":"MemberAccess","referencedDeclaration":12566,"src":"2423:19:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ForgeContext_$12566_$","typeString":"type(enum VmSafe.ForgeContext)"}},"id":69972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"TestGroup","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"2423:29:117","typeDescriptions":{"typeIdentifier":"t_enum$_ForgeContext_$12566","typeString":"enum VmSafe.ForgeContext"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ForgeContext_$12566","typeString":"enum VmSafe.ForgeContext"}],"expression":{"id":69968,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2410:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContext","nodeType":"MemberAccess","referencedDeclaration":13019,"src":"2410:12:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ForgeContext_$12566_$returns$_t_bool_$","typeString":"function (enum VmSafe.ForgeContext) view external returns (bool)"}},"id":69973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2410:43:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":70008,"nodeType":"Block","src":"2555:194:117","statements":[{"expression":{"id":69995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69986,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69966,"src":"2569:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4445504c4f595f434f4e4649475f50415448","id":69989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2585:20:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8f7d5ecf37cb3ce1a42903da3523de1298d2921aa5cdd2ec7a2febbd139c0c4","typeString":"literal_string \"DEPLOY_CONFIG_PATH\""},"value":"DEPLOY_CONFIG_PATH"},{"arguments":[{"hexValue":"","id":69992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2614:2:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":69991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:6:117","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":69990,"name":"string","nodeType":"ElementaryTypeName","src":"2607:6:117","typeDescriptions":{}}},"id":69993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2607:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c8f7d5ecf37cb3ce1a42903da3523de1298d2921aa5cdd2ec7a2febbd139c0c4","typeString":"literal_string \"DEPLOY_CONFIG_PATH\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":69987,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2576:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12920,"src":"2576:8:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":69994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:42:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2569:49:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":69996,"nodeType":"ExpressionStatement","src":"2569:49:117"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":70000,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69966,"src":"2646:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":69999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2640:5:117","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":69998,"name":"bytes","nodeType":"ElementaryTypeName","src":"2640:5:117","typeDescriptions":{}}},"id":70001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2640:11:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2640:18:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":70003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2640:22:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e6669673a206d75737420736574204445504c4f595f434f4e4649475f5041544820746f2066696c6573797374656d2070617468206f66206465706c6f7920636f6e666967","id":70005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2664:73:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_69e9f12bd9eafb0e757bf345b6a3830f2e7e19fb5c7be2420ea2d847028628da","typeString":"literal_string \"Config: must set DEPLOY_CONFIG_PATH to filesystem path of deploy config\""},"value":"Config: must set DEPLOY_CONFIG_PATH to filesystem path of deploy config"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69e9f12bd9eafb0e757bf345b6a3830f2e7e19fb5c7be2420ea2d847028628da","typeString":"literal_string \"Config: must set DEPLOY_CONFIG_PATH to filesystem path of deploy config\""}],"id":69997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2632:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":70006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2632:106:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":70007,"nodeType":"ExpressionStatement","src":"2632:106:117"}]},"id":70009,"nodeType":"IfStatement","src":"2406:343:117","trueBody":{"id":69985,"nodeType":"Block","src":"2455:94:117","statements":[{"expression":{"id":69983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69974,"name":"_env","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69966,"src":"2469:4:117","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":69978,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69934,"src":"2490:2:117","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$16311","typeString":"contract Vm"}},"id":69979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":13337,"src":"2490:14:117","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":69980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionC