UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 41.3 kB
{"abi":[{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameCreator","inputs":[],"outputs":[{"name":"creator_","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"l1Head","inputs":[],"outputs":[{"name":"l1Head_","type":"bytes32","internalType":"Hash"}],"stateMutability":"pure"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createdAt()":"cf09e0d0","extraData()":"609d3334","gameCreator()":"37b1b229","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","l1Head()":"6361506d","resolve()":"2810e1d6","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","status()":"200d2ed2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"creator_\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Resolved(uint8)\":{\"params\":{\"status\":\"The status of the game after resolution.\"}}},\"kind\":\"dev\",\"methods\":{\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #4\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameCreator()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"creator_\":\"The creator of the dispute game.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"l1Head()\":{\"details\":\"`clones-with-immutable-args` argument #3\",\"returns\":{\"l1Head_\":\"The parent hash of the L1 block when the dispute game was created.\"}},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}}},\"title\":\"IDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameCreator()\":{\"notice\":\"Getter for the creator of the dispute game.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"Getter for the parent hash of the L1 block when the dispute game was created.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"}},\"notice\":\"The generic interface for a DisputeGame contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IDisputeGame.sol\":\"IDisputeGame\"},\"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\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xa4d3617892dfee02890ea135e778ed0207aa8545c97cb2a421bae7c1a659baa0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e31653e3463dbc3f3b572ca4a1198d9aadc7d8606a2b690a58e2c082a0d0090\",\"dweb:/ipfs/QmdbxJK4T5Hu652cSkxpAjYPxrK1i5ZM62oyopzmAzRn6M\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"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.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"gameCreator","outputs":[{"internalType":"address","name":"creator_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"pure","type":"function","name":"l1Head","outputs":[{"internalType":"Hash","name":"l1Head_","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"version":1},"userdoc":{"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"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/interfaces/IDisputeGame.sol":"IDisputeGame"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xa4d3617892dfee02890ea135e778ed0207aa8545c97cb2a421bae7c1a659baa0","urls":["bzz-raw://0e31653e3463dbc3f3b572ca4a1198d9aadc7d8606a2b690a58e2c082a0d0090","dweb:/ipfs/QmdbxJK4T5Hu652cSkxpAjYPxrK1i5ZM62oyopzmAzRn6M"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"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","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"events":{"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The generic interface for a DisputeGame contract."},"devdoc":{"version":1,"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"events":{"Resolved(uint8)":{"params":{"status":"The status of the game after resolution."}}},"title":"IDisputeGame"},"ast":{"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","id":53848,"exportedSymbols":{"Claim":[54755],"Clock":[54663],"Duration":[54787],"GameId":[54717],"GameStatus":[54868],"GameType":[54847],"GameTypes":[54917],"Hash":[54802],"IDisputeGame":[53847],"IInitializable":[54165],"LibClaim":[54785],"LibClock":[54715],"LibDuration":[54800],"LibGameId":[54753],"LibGameType":[54860],"LibHash":[54815],"LibPosition":[54626],"LibTimestamp":[54830],"LibVMStatus":[54845],"LocalPreimageKey":[54973],"OutputRoot":[54875],"Position":[54413],"Timestamp":[54817],"VMStatus":[54832],"VMStatuses":[54951]},"nodeType":"SourceUnit","src":"32:3650:52","nodes":[{"id":53761,"nodeType":"PragmaDirective","src":"32:23:52","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53763,"nodeType":"ImportDirective","src":"57:75:52","nodes":[],"absolutePath":"src/dispute/interfaces/IInitializable.sol","file":"src/dispute/interfaces/IInitializable.sol","nameLocation":"-1:-1:-1","scope":53848,"sourceUnit":54166,"symbolAliases":[{"foreign":{"id":53762,"name":"IInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54165,"src":"66:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":53764,"nodeType":"ImportDirective","src":"134:35:52","nodes":[],"absolutePath":"src/dispute/lib/Types.sol","file":"src/dispute/lib/Types.sol","nameLocation":"-1:-1:-1","scope":53848,"sourceUnit":54974,"symbolAliases":[],"unitAlias":""},{"id":53847,"nodeType":"ContractDefinition","src":"257:3424:52","nodes":[{"id":53773,"nodeType":"EventDefinition","src":"418:42:52","nodes":[],"anonymous":false,"documentation":{"id":53768,"nodeType":"StructuredDocumentation","src":"304:109:52","text":"@notice Emitted when the game is resolved.\n @param status The status of the game after resolution."},"eventSelector":"5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60","name":"Resolved","nameLocation":"424:8:52","parameters":{"id":53772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53771,"indexed":true,"mutability":"mutable","name":"status","nameLocation":"452:6:52","nodeType":"VariableDeclaration","scope":53773,"src":"433:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$54868","typeString":"enum GameStatus"},"typeName":{"id":53770,"nodeType":"UserDefinedTypeName","pathNode":{"id":53769,"name":"GameStatus","nameLocations":["433:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":54868,"src":"433:10:52"},"referencedDeclaration":54868,"src":"433:10:52","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$54868","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"432:27:52"}},{"id":53780,"nodeType":"FunctionDefinition","src":"637:66:52","nodes":[],"documentation":{"id":53774,"nodeType":"StructuredDocumentation","src":"466:166:52","text":"@notice Returns the timestamp that the DisputeGame contract was created at.\n @return createdAt_ The timestamp that the DisputeGame contract was created at."},"functionSelector":"cf09e0d0","implemented":false,"kind":"function","modifiers":[],"name":"createdAt","nameLocation":"646:9:52","parameters":{"id":53775,"nodeType":"ParameterList","parameters":[],"src":"655:2:52"},"returnParameters":{"id":53779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53778,"mutability":"mutable","name":"createdAt_","nameLocation":"691:10:52","nodeType":"VariableDeclaration","scope":53780,"src":"681:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$54817","typeString":"Timestamp"},"typeName":{"id":53777,"nodeType":"UserDefinedTypeName","pathNode":{"id":53776,"name":"Timestamp","nameLocations":["681:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":54817,"src":"681:9:52"},"referencedDeclaration":54817,"src":"681:9:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$54817","typeString":"Timestamp"}},"visibility":"internal"}],"src":"680:22:52"},"scope":53847,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53787,"nodeType":"FunctionDefinition","src":"883:68:52","nodes":[],"documentation":{"id":53781,"nodeType":"StructuredDocumentation","src":"709:169:52","text":"@notice Returns the timestamp that the DisputeGame contract was resolved at.\n @return resolvedAt_ The timestamp that the DisputeGame contract was resolved at."},"functionSelector":"19effeb4","implemented":false,"kind":"function","modifiers":[],"name":"resolvedAt","nameLocation":"892:10:52","parameters":{"id":53782,"nodeType":"ParameterList","parameters":[],"src":"902:2:52"},"returnParameters":{"id":53786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53785,"mutability":"mutable","name":"resolvedAt_","nameLocation":"938:11:52","nodeType":"VariableDeclaration","scope":53787,"src":"928:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$54817","typeString":"Timestamp"},"typeName":{"id":53784,"nodeType":"UserDefinedTypeName","pathNode":{"id":53783,"name":"Timestamp","nameLocations":["928:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":54817,"src":"928:9:52"},"referencedDeclaration":54817,"src":"928:9:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$54817","typeString":"Timestamp"}},"visibility":"internal"}],"src":"927:23:52"},"scope":53847,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53794,"nodeType":"FunctionDefinition","src":"1069:61:52","nodes":[],"documentation":{"id":53788,"nodeType":"StructuredDocumentation","src":"957:107:52","text":"@notice Returns the current status of the game.\n @return status_ The current status of the game."},"functionSelector":"200d2ed2","implemented":false,"kind":"function","modifiers":[],"name":"status","nameLocation":"1078:6:52","parameters":{"id":53789,"nodeType":"ParameterList","parameters":[],"src":"1084:2:52"},"returnParameters":{"id":53793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53792,"mutability":"mutable","name":"status_","nameLocation":"1121:7:52","nodeType":"VariableDeclaration","scope":53794,"src":"1110:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$54868","typeString":"enum GameStatus"},"typeName":{"id":53791,"nodeType":"UserDefinedTypeName","pathNode":{"id":53790,"name":"GameStatus","nameLocations":["1110:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":54868,"src":"1110:10:52"},"referencedDeclaration":54868,"src":"1110:10:52","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$54868","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"1109:20:52"},"scope":53847,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53801,"nodeType":"FunctionDefinition","src":"1410:63:52","nodes":[],"documentation":{"id":53795,"nodeType":"StructuredDocumentation","src":"1136:269:52","text":"@notice Getter for the game type.\n @dev The reference impl should be entirely different depending on the type (fault, validity)\n i.e. The game type should indicate the security model.\n @return gameType_ The type of proof system being used."},"functionSelector":"bbdc02db","implemented":false,"kind":"function","modifiers":[],"name":"gameType","nameLocation":"1419:8:52","parameters":{"id":53796,"nodeType":"ParameterList","parameters":[],"src":"1427:2:52"},"returnParameters":{"id":53800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53799,"mutability":"mutable","name":"gameType_","nameLocation":"1462:9:52","nodeType":"VariableDeclaration","scope":53801,"src":"1453:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$54847","typeString":"GameType"},"typeName":{"id":53798,"nodeType":"UserDefinedTypeName","pathNode":{"id":53797,"name":"GameType","nameLocations":["1453:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":54847,"src":"1453:8:52"},"referencedDeclaration":54847,"src":"1453:8:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$54847","typeString":"GameType"}},"visibility":"internal"}],"src":"1452:20:52"},"scope":53847,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53807,"nodeType":"FunctionDefinition","src":"1651:64:52","nodes":[],"documentation":{"id":53802,"nodeType":"StructuredDocumentation","src":"1479:167:52","text":"@notice Getter for the creator of the dispute game.\n @dev `clones-with-immutable-args` argument #1\n @return creator_ The creator of the dispute game."},"functionSelector":"37b1b229","implemented":false,"kind":"function","modifiers":[],"name":"gameCreator","nameLocation":"1660:11:52","parameters":{"id":53803,"nodeType":"ParameterList","parameters":[],"src":"1671:2:52"},"returnParameters":{"id":53806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53805,"mutability":"mutable","name":"creator_","nameLocation":"1705:8:52","nodeType":"VariableDeclaration","scope":53807,"src":"1697:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53804,"name":"address","nodeType":"ElementaryTypeName","src":"1697:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1696:18:52"},"scope":53847,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":53814,"nodeType":"FunctionDefinition","src":"1880:62:52","nodes":[],"documentation":{"id":53808,"nodeType":"StructuredDocumentation","src":"1721:154:52","text":"@notice Getter for the root claim.\n @dev `clones-with-immutable-args` argument #2\n @return rootClaim_ The root claim of the DisputeGame."},"functionSelector":"bcef3b55","implemented":false,"kind":"function","modifiers":[],"name":"rootClaim","nameLocation":"1889:9:52","parameters":{"id":53809,"nodeType":"ParameterList","parameters":[],"src":"1898:2:52"},"returnParameters":{"id":53813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53812,"mutability":"mutable","name":"rootClaim_","nameLocation":"1930:10:52","nodeType":"VariableDeclaration","scope":53814,"src":"1924:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$54755","typeString":"Claim"},"typeName":{"id":53811,"nodeType":"UserDefinedTypeName","pathNode":{"id":53810,"name":"Claim","nameLocations":["1924:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":54755,"src":"1924:5:52"},"referencedDeclaration":54755,"src":"1924:5:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$54755","typeString":"Claim"}},"visibility":"internal"}],"src":"1923:18:52"},"scope":53847,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":53821,"nodeType":"FunctionDefinition","src":"2187:55:52","nodes":[],"documentation":{"id":53815,"nodeType":"StructuredDocumentation","src":"1948:234:52","text":"@notice Getter for the parent hash of the L1 block when the dispute game was created.\n @dev `clones-with-immutable-args` argument #3\n @return l1Head_ The parent hash of the L1 block when the dispute game was created."},"functionSelector":"6361506d","implemented":false,"kind":"function","modifiers":[],"name":"l1Head","nameLocation":"2196:6:52","parameters":{"id":53816,"nodeType":"ParameterList","parameters":[],"src":"2202:2:52"},"returnParameters":{"id":53820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53819,"mutability":"mutable","name":"l1Head_","nameLocation":"2233:7:52","nodeType":"VariableDeclaration","scope":53821,"src":"2228:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$54802","typeString":"Hash"},"typeName":{"id":53818,"nodeType":"UserDefinedTypeName","pathNode":{"id":53817,"name":"Hash","nameLocations":["2228:4:52"],"nodeType":"IdentifierPath","referencedDeclaration":54802,"src":"2228:4:52"},"referencedDeclaration":54802,"src":"2228:4:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$54802","typeString":"Hash"}},"visibility":"internal"}],"src":"2227:14:52"},"scope":53847,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":53827,"nodeType":"FunctionDefinition","src":"2441:69:52","nodes":[],"documentation":{"id":53822,"nodeType":"StructuredDocumentation","src":"2248:188:52","text":"@notice Getter for the extra data.\n @dev `clones-with-immutable-args` argument #4\n @return extraData_ Any extra data supplied to the dispute game contract by the creator."},"functionSelector":"609d3334","implemented":false,"kind":"function","modifiers":[],"name":"extraData","nameLocation":"2450:9:52","parameters":{"id":53823,"nodeType":"ParameterList","parameters":[],"src":"2459:2:52"},"returnParameters":{"id":53826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53825,"mutability":"mutable","name":"extraData_","nameLocation":"2498:10:52","nodeType":"VariableDeclaration","scope":53827,"src":"2485:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53824,"name":"bytes","nodeType":"ElementaryTypeName","src":"2485:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2484:25:52"},"scope":53847,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":53834,"nodeType":"FunctionDefinition","src":"2971:57:52","nodes":[],"documentation":{"id":53828,"nodeType":"StructuredDocumentation","src":"2516:450:52","text":"@notice If all necessary information has been gathered, this function should mark the game\n status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of\n the resolved game. It is at this stage that the bonds should be awarded to the\n necessary parties.\n @dev May only be called if the `status` is `IN_PROGRESS`.\n @return status_ The status of the game after resolution."},"functionSelector":"2810e1d6","implemented":false,"kind":"function","modifiers":[],"name":"resolve","nameLocation":"2980:7:52","parameters":{"id":53829,"nodeType":"ParameterList","parameters":[],"src":"2987:2:52"},"returnParameters":{"id":53833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53832,"mutability":"mutable","name":"status_","nameLocation":"3019:7:52","nodeType":"VariableDeclaration","scope":53834,"src":"3008:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$54868","typeString":"enum GameStatus"},"typeName":{"id":53831,"nodeType":"UserDefinedTypeName","pathNode":{"id":53830,"name":"GameStatus","nameLocations":["3008:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":54868,"src":"3008:10:52"},"referencedDeclaration":54868,"src":"3008:10:52","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$54868","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"3007:20:52"},"scope":53847,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53846,"nodeType":"FunctionDefinition","src":"3573:106:52","nodes":[],"documentation":{"id":53835,"nodeType":"StructuredDocumentation","src":"3034:534:52","text":"@notice A compliant implementation of this interface should return the components of the\n game UUID's preimage provided in the cwia payload. The preimage of the UUID is\n constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes\n concatenation.\n @return gameType_ The type of proof system being used.\n @return rootClaim_ The root claim of the DisputeGame.\n @return extraData_ Any extra data supplied to the dispute game contract by the creator."},"functionSelector":"fa24f743","implemented":false,"kind":"function","modifiers":[],"name":"gameData","nameLocation":"3582:8:52","parameters":{"id":53836,"nodeType":"ParameterList","parameters":[],"src":"3590:2:52"},"returnParameters":{"id":53845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53839,"mutability":"mutable","name":"gameType_","nameLocation":"3625:9:52","nodeType":"VariableDeclaration","scope":53846,"src":"3616:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$54847","typeString":"GameType"},"typeName":{"id":53838,"nodeType":"UserDefinedTypeName","pathNode":{"id":53837,"name":"GameType","nameLocations":["3616:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":54847,"src":"3616:8:52"},"referencedDeclaration":54847,"src":"3616:8:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$54847","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":53842,"mutability":"mutable","name":"rootClaim_","nameLocation":"3642:10:52","nodeType":"VariableDeclaration","scope":53846,"src":"3636:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$54755","typeString":"Claim"},"typeName":{"id":53841,"nodeType":"UserDefinedTypeName","pathNode":{"id":53840,"name":"Claim","nameLocations":["3636:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":54755,"src":"3636:5:52"},"referencedDeclaration":54755,"src":"3636:5:52","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$54755","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":53844,"mutability":"mutable","name":"extraData_","nameLocation":"3667:10:52","nodeType":"VariableDeclaration","scope":53846,"src":"3654:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53843,"name":"bytes","nodeType":"ElementaryTypeName","src":"3654:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3615:63:52"},"scope":53847,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":53766,"name":"IInitializable","nameLocations":["283:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":54165,"src":"283:14:52"},"id":53767,"nodeType":"InheritanceSpecifier","src":"283:14:52"}],"canonicalName":"IDisputeGame","contractDependencies":[],"contractKind":"interface","documentation":{"id":53765,"nodeType":"StructuredDocumentation","src":"171:86:52","text":"@title IDisputeGame\n @notice The generic interface for a DisputeGame contract."},"fullyImplemented":false,"linearizedBaseContracts":[53847,54165],"name":"IDisputeGame","nameLocation":"267:12:52","scope":53848,"usedErrors":[],"usedEvents":[53773]}],"license":"MIT"},"id":52}