UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 35.3 kB
{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000814000a","sourceMap":"1693:503:71:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1693:503:71;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000814000a","sourceMap":"1693:503:71:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"VMStatuses\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Named type aliases for the various valid VM status bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/Types.sol\":\"VMStatuses\"},\"evmVersion\":\"shanghai\",\"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\":{\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]},\"src/dispute/lib/Types.sol\":{\"keccak256\":\"0x227948243b4be041de133e1adc4b1dd49e9c1f519e4b5ab7f18c5bc9740539b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae2584956303586801a4c721ad39db90b8929101594f5bed10d77b28e66b3c11\",\"dweb:/ipfs/QmdoKT3UiTfBY3nBLjKRGJkngS7vq6exVQbuPqo5GwDCM1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"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":{"src/dispute/lib/Types.sol":"VMStatuses"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"},"src/dispute/lib/Types.sol":{"keccak256":"0x227948243b4be041de133e1adc4b1dd49e9c1f519e4b5ab7f18c5bc9740539b9","urls":["bzz-raw://ae2584956303586801a4c721ad39db90b8929101594f5bed10d77b28e66b3c11","dweb:/ipfs/QmdoKT3UiTfBY3nBLjKRGJkngS7vq6exVQbuPqo5GwDCM1"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Named type aliases for the various valid VM status bytes."},"devdoc":{"version":1,"kind":"dev","title":"VMStatuses"},"ast":{"absolutePath":"src/dispute/lib/Types.sol","id":53905,"exportedSymbols":{"Claim":[53686],"Clock":[53594],"Duration":[53718],"GameId":[53648],"GameStatus":[53799],"GameType":[53778],"GameTypes":[53848],"Hash":[53733],"LibClaim":[53716],"LibClock":[53646],"LibDuration":[53731],"LibGameId":[53684],"LibGameType":[53791],"LibHash":[53746],"LibPosition":[53557],"LibTimestamp":[53761],"LibVMStatus":[53776],"LocalPreimageKey":[53904],"OutputRoot":[53806],"Position":[53344],"Timestamp":[53748],"VMStatus":[53763],"VMStatuses":[53882]},"nodeType":"SourceUnit","src":"32:2870:71","nodes":[{"id":53793,"nodeType":"PragmaDirective","src":"32:24:71","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":53794,"nodeType":"ImportDirective","src":"58:36:71","nodes":[],"absolutePath":"src/dispute/lib/LibUDT.sol","file":"src/dispute/lib/LibUDT.sol","nameLocation":"-1:-1:-1","scope":53905,"sourceUnit":53792,"symbolAliases":[],"unitAlias":""},{"id":53799,"nodeType":"EnumDefinition","src":"148:299:71","nodes":[],"canonicalName":"GameStatus","documentation":{"id":53795,"nodeType":"StructuredDocumentation","src":"96:52:71","text":"@notice The current status of the dispute game."},"members":[{"id":53796,"name":"IN_PROGRESS","nameLocation":"239:11:71","nodeType":"EnumValue","src":"239:11:71"},{"id":53797,"name":"CHALLENGER_WINS","nameLocation":"336:15:71","nodeType":"EnumValue","src":"336:15:71"},{"id":53798,"name":"DEFENDER_WINS","nameLocation":"432:13:71","nodeType":"EnumValue","src":"432:13:71"}],"name":"GameStatus","nameLocation":"153:10:71"},{"id":53806,"nodeType":"StructDefinition","src":"673:63:71","nodes":[],"canonicalName":"OutputRoot","documentation":{"id":53800,"nodeType":"StructuredDocumentation","src":"449:224:71","text":"@notice Represents an L2 output root and the L2 block number at which it was generated.\n @custom:field root The output root.\n @custom:field l2BlockNumber The L2 block number at which the output root was generated."},"members":[{"constant":false,"id":53803,"mutability":"mutable","name":"root","nameLocation":"702:4:71","nodeType":"VariableDeclaration","scope":53806,"src":"697:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$53733","typeString":"Hash"},"typeName":{"id":53802,"nodeType":"UserDefinedTypeName","pathNode":{"id":53801,"name":"Hash","nameLocations":["697:4:71"],"nodeType":"IdentifierPath","referencedDeclaration":53733,"src":"697:4:71"},"referencedDeclaration":53733,"src":"697:4:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$53733","typeString":"Hash"}},"visibility":"internal"},{"constant":false,"id":53805,"mutability":"mutable","name":"l2BlockNumber","nameLocation":"720:13:71","nodeType":"VariableDeclaration","scope":53806,"src":"712:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53804,"name":"uint256","nodeType":"ElementaryTypeName","src":"712:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"OutputRoot","nameLocation":"680:10:71","scope":53905,"visibility":"public"},{"id":53848,"nodeType":"ContractDefinition","src":"831:768:71","nodes":[{"id":53815,"nodeType":"VariableDeclaration","src":"912:52:71","nodes":[],"constant":true,"documentation":{"id":53808,"nodeType":"StructuredDocumentation","src":"855:52:71","text":"@dev A dispute game type the uses the cannon vm."},"mutability":"constant","name":"CANNON","nameLocation":"939:6:71","scope":53848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"},"typeName":{"id":53810,"nodeType":"UserDefinedTypeName","pathNode":{"id":53809,"name":"GameType","nameLocations":["912:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53778,"src":"912:8:71"},"referencedDeclaration":53778,"src":"912:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"30","id":53813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"962:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53811,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53778,"src":"948:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$53778_$","typeString":"type(GameType)"}},"id":53812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"957:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"948:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$53778_$","typeString":"function (uint32) pure returns (GameType)"}},"id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"visibility":"internal"},{"id":53823,"nodeType":"VariableDeclaration","src":"1041:65:71","nodes":[],"constant":true,"documentation":{"id":53816,"nodeType":"StructuredDocumentation","src":"971:65:71","text":"@dev A permissioned dispute game type the uses the cannon vm."},"mutability":"constant","name":"PERMISSIONED_CANNON","nameLocation":"1068:19:71","scope":53848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"},"typeName":{"id":53818,"nodeType":"UserDefinedTypeName","pathNode":{"id":53817,"name":"GameType","nameLocations":["1041:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53778,"src":"1041:8:71"},"referencedDeclaration":53778,"src":"1041:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"31","id":53821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1104:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53819,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53778,"src":"1090:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$53778_$","typeString":"type(GameType)"}},"id":53820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1099:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"1090:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$53778_$","typeString":"function (uint32) pure returns (GameType)"}},"id":53822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"visibility":"internal"},{"id":53831,"nodeType":"VariableDeclaration","src":"1174:54:71","nodes":[],"constant":true,"documentation":{"id":53824,"nodeType":"StructuredDocumentation","src":"1113:56:71","text":"@notice A dispute game type the uses the asterisc VM"},"mutability":"constant","name":"ASTERISC","nameLocation":"1201:8:71","scope":53848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"},"typeName":{"id":53826,"nodeType":"UserDefinedTypeName","pathNode":{"id":53825,"name":"GameType","nameLocations":["1174:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53778,"src":"1174:8:71"},"referencedDeclaration":53778,"src":"1174:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"32","id":53829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1226:1:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":53827,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53778,"src":"1212:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$53778_$","typeString":"type(GameType)"}},"id":53828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1221:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"1212:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$53778_$","typeString":"function (uint32) pure returns (GameType)"}},"id":53830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"visibility":"internal"},{"id":53839,"nodeType":"VariableDeclaration","src":"1370:52:71","nodes":[],"constant":true,"documentation":{"id":53832,"nodeType":"StructuredDocumentation","src":"1235:130:71","text":"@notice A dispute game type with short game duration for testing withdrawals.\n Not intended for production use."},"mutability":"constant","name":"FAST","nameLocation":"1397:4:71","scope":53848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"},"typeName":{"id":53834,"nodeType":"UserDefinedTypeName","pathNode":{"id":53833,"name":"GameType","nameLocations":["1370:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53778,"src":"1370:8:71"},"referencedDeclaration":53778,"src":"1370:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"323534","id":53837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1418:3:71","typeDescriptions":{"typeIdentifier":"t_rational_254_by_1","typeString":"int_const 254"},"value":"254"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_254_by_1","typeString":"int_const 254"}],"expression":{"id":53835,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53778,"src":"1404:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$53778_$","typeString":"type(GameType)"}},"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1413:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"1404:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$53778_$","typeString":"function (uint32) pure returns (GameType)"}},"id":53838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1404:18:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"visibility":"internal"},{"id":53847,"nodeType":"VariableDeclaration","src":"1540:56:71","nodes":[],"constant":true,"documentation":{"id":53840,"nodeType":"StructuredDocumentation","src":"1429:106:71","text":"@notice A dispute game type that uses an alphabet vm.\n Not intended for production use."},"mutability":"constant","name":"ALPHABET","nameLocation":"1567:8:71","scope":53848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"},"typeName":{"id":53842,"nodeType":"UserDefinedTypeName","pathNode":{"id":53841,"name":"GameType","nameLocations":["1540:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53778,"src":"1540:8:71"},"referencedDeclaration":53778,"src":"1540:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"323535","id":53845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:3:71","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"expression":{"id":53843,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53778,"src":"1578:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$53778_$","typeString":"type(GameType)"}},"id":53844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1587:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"1578:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$53778_$","typeString":"function (uint32) pure returns (GameType)"}},"id":53846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:18:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$53778","typeString":"GameType"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GameTypes","contractDependencies":[],"contractKind":"library","documentation":{"id":53807,"nodeType":"StructuredDocumentation","src":"738:93:71","text":"@title GameTypes\n @notice A library that defines the IDs of games that can be played."},"fullyImplemented":true,"linearizedBaseContracts":[53848],"name":"GameTypes","nameLocation":"839:9:71","scope":53905,"usedErrors":[],"usedEvents":[]},{"id":53882,"nodeType":"ContractDefinition","src":"1693:503:71","nodes":[{"id":53857,"nodeType":"VariableDeclaration","src":"1793:51:71","nodes":[],"constant":true,"documentation":{"id":53850,"nodeType":"StructuredDocumentation","src":"1718:70:71","text":"@notice The VM has executed successfully and the outcome is valid."},"mutability":"constant","name":"VALID","nameLocation":"1820:5:71","scope":53882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"},"typeName":{"id":53852,"nodeType":"UserDefinedTypeName","pathNode":{"id":53851,"name":"VMStatus","nameLocations":["1793:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53763,"src":"1793:8:71"},"referencedDeclaration":53763,"src":"1793:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"30","id":53855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1842:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53853,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53763,"src":"1828:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"type(VMStatus)"}},"id":53854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1837:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"1828:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":53856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"visibility":"internal"},{"id":53865,"nodeType":"VariableDeclaration","src":"1928:53:71","nodes":[],"constant":true,"documentation":{"id":53858,"nodeType":"StructuredDocumentation","src":"1851:72:71","text":"@notice The VM has executed successfully and the outcome is invalid."},"mutability":"constant","name":"INVALID","nameLocation":"1955:7:71","scope":53882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"},"typeName":{"id":53860,"nodeType":"UserDefinedTypeName","pathNode":{"id":53859,"name":"VMStatus","nameLocations":["1928:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53763,"src":"1928:8:71"},"referencedDeclaration":53763,"src":"1928:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"31","id":53863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53861,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53763,"src":"1965:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"type(VMStatus)"}},"id":53862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1974:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"1965:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":53864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1965:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"visibility":"internal"},{"id":53873,"nodeType":"VariableDeclaration","src":"2024:51:71","nodes":[],"constant":true,"documentation":{"id":53866,"nodeType":"StructuredDocumentation","src":"1988:31:71","text":"@notice The VM has paniced."},"mutability":"constant","name":"PANIC","nameLocation":"2051:5:71","scope":53882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"},"typeName":{"id":53868,"nodeType":"UserDefinedTypeName","pathNode":{"id":53867,"name":"VMStatus","nameLocations":["2024:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53763,"src":"2024:8:71"},"referencedDeclaration":53763,"src":"2024:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"32","id":53871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2073:1:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":53869,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53763,"src":"2059:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"type(VMStatus)"}},"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2068:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"2059:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":53872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2059:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"visibility":"internal"},{"id":53881,"nodeType":"VariableDeclaration","src":"2137:56:71","nodes":[],"constant":true,"documentation":{"id":53874,"nodeType":"StructuredDocumentation","src":"2082:50:71","text":"@notice The VM execution is still in progress."},"mutability":"constant","name":"UNFINISHED","nameLocation":"2164:10:71","scope":53882,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"},"typeName":{"id":53876,"nodeType":"UserDefinedTypeName","pathNode":{"id":53875,"name":"VMStatus","nameLocations":["2137:8:71"],"nodeType":"IdentifierPath","referencedDeclaration":53763,"src":"2137:8:71"},"referencedDeclaration":53763,"src":"2137:8:71","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"33","id":53879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2191:1:71","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":53877,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53763,"src":"2177:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"type(VMStatus)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2186:4:71","memberName":"wrap","nodeType":"MemberAccess","src":"2177:13:71","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$53763_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":53880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$53763","typeString":"VMStatus"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"VMStatuses","contractDependencies":[],"contractKind":"library","documentation":{"id":53849,"nodeType":"StructuredDocumentation","src":"1601:92:71","text":"@title VMStatuses\n @notice Named type aliases for the various valid VM status bytes."},"fullyImplemented":true,"linearizedBaseContracts":[53882],"name":"VMStatuses","nameLocation":"1701:10:71","scope":53905,"usedErrors":[],"usedEvents":[]},{"id":53904,"nodeType":"ContractDefinition","src":"2301:600:71","nodes":[{"id":53887,"nodeType":"VariableDeclaration","src":"2385:45:71","nodes":[],"constant":true,"documentation":{"id":53884,"nodeType":"StructuredDocumentation","src":"2332:48:71","text":"@notice The identifier for the L1 head hash."},"mutability":"constant","name":"L1_HEAD_HASH","nameLocation":"2411:12:71","scope":53904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53885,"name":"uint256","nodeType":"ElementaryTypeName","src":"2385:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":53886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2426:4:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"id":53891,"nodeType":"VariableDeclaration","src":"2498:53:71","nodes":[],"constant":true,"documentation":{"id":53888,"nodeType":"StructuredDocumentation","src":"2437:56:71","text":"@notice The identifier for the starting output root."},"mutability":"constant","name":"STARTING_OUTPUT_ROOT","nameLocation":"2524:20:71","scope":53904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783032","id":53890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2547:4:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"id":53895,"nodeType":"VariableDeclaration","src":"2619:53:71","nodes":[],"constant":true,"documentation":{"id":53892,"nodeType":"StructuredDocumentation","src":"2558:56:71","text":"@notice The identifier for the disputed output root."},"mutability":"constant","name":"DISPUTED_OUTPUT_ROOT","nameLocation":"2645:20:71","scope":53904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53893,"name":"uint256","nodeType":"ElementaryTypeName","src":"2619:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783033","id":53894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2668:4:71","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"visibility":"internal"},{"id":53899,"nodeType":"VariableDeclaration","src":"2744:57:71","nodes":[],"constant":true,"documentation":{"id":53896,"nodeType":"StructuredDocumentation","src":"2679:60:71","text":"@notice The identifier for the disputed L2 block number."},"mutability":"constant","name":"DISPUTED_L2_BLOCK_NUMBER","nameLocation":"2770:24:71","scope":53904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53897,"name":"uint256","nodeType":"ElementaryTypeName","src":"2744:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783034","id":53898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2797:4:71","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"visibility":"internal"},{"id":53903,"nodeType":"VariableDeclaration","src":"2857:41:71","nodes":[],"constant":true,"documentation":{"id":53900,"nodeType":"StructuredDocumentation","src":"2808:44:71","text":"@notice The identifier for the chain ID."},"mutability":"constant","name":"CHAIN_ID","nameLocation":"2883:8:71","scope":53904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53901,"name":"uint256","nodeType":"ElementaryTypeName","src":"2857:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783035","id":53902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2894:4:71","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"0x05"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LocalPreimageKey","contractDependencies":[],"contractKind":"library","documentation":{"id":53883,"nodeType":"StructuredDocumentation","src":"2198:103:71","text":"@title LocalPreimageKey\n @notice Named type aliases for local `PreimageOracle` key identifiers."},"fullyImplemented":true,"linearizedBaseContracts":[53904],"name":"LocalPreimageKey","nameLocation":"2309:16:71","scope":53905,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":71}