Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
75c37742
Unverified
Commit
75c37742
authored
Jan 02, 2024
by
clabby
Committed by
GitHub
Jan 03, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete legacy code (#8810)
parent
390150d5
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
2 additions
and
871 deletions
+2
-871
mips_more.go
op-bindings/bindings/mips_more.go
+1
-1
preimageoracle_more.go
op-bindings/bindings/preimageoracle_more.go
+1
-1
semver-lock.json
packages/contracts-bedrock/semver-lock.json
+0
-8
slither-report.json
packages/contracts-bedrock/slither-report.json
+0
-144
BlockOracle.sol
packages/contracts-bedrock/src/legacy/BlockOracle.sol
+0
-51
FaultDisputeGame.sol
packages/contracts-bedrock/src/legacy/FaultDisputeGame.sol
+0
-559
IFaultDisputeGame.sol
...racts-bedrock/src/legacy/interfaces/IFaultDisputeGame.sol
+0
-96
DisputeErrors.sol
packages/contracts-bedrock/src/libraries/DisputeErrors.sol
+0
-11
No files found.
op-bindings/bindings/mips_more.go
View file @
75c37742
This diff is collapsed.
Click to expand it.
op-bindings/bindings/preimageoracle_more.go
View file @
75c37742
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/semver-lock.json
View file @
75c37742
...
@@ -95,18 +95,10 @@
...
@@ -95,18 +95,10 @@
"initCodeHash"
:
"0x86328a03426488472fea8ff7eca00e46c6601d5d0adab9f07ee1bc5f98605d48"
,
"initCodeHash"
:
"0x86328a03426488472fea8ff7eca00e46c6601d5d0adab9f07ee1bc5f98605d48"
,
"sourceCodeHash"
:
"0x52dd7c52bbb57fa0bdf80cc1993a5e3fc4ff6638cec13eeba59a4a17ac0570f0"
"sourceCodeHash"
:
"0x52dd7c52bbb57fa0bdf80cc1993a5e3fc4ff6638cec13eeba59a4a17ac0570f0"
},
},
"src/legacy/BlockOracle.sol"
:
{
"initCodeHash"
:
"0x183ce41fb2842c9853f08955ddd91e345126028fad64e07ed14f593cbf9c88bc"
,
"sourceCodeHash"
:
"0xabbfe0def64318b467e098bb518100a4cbf7ad4e803d13fbb187f25df35de8dd"
},
"src/legacy/DeployerWhitelist.sol"
:
{
"src/legacy/DeployerWhitelist.sol"
:
{
"initCodeHash"
:
"0x8de80fb23b26dd9d849f6328e56ea7c173cd9e9ce1f05c9beea559d1720deb3d"
,
"initCodeHash"
:
"0x8de80fb23b26dd9d849f6328e56ea7c173cd9e9ce1f05c9beea559d1720deb3d"
,
"sourceCodeHash"
:
"0xb518a9f56136a910f2450098b4823c9982f93883fe4a9ef6f6b0a89355965d38"
"sourceCodeHash"
:
"0xb518a9f56136a910f2450098b4823c9982f93883fe4a9ef6f6b0a89355965d38"
},
},
"src/legacy/FaultDisputeGame.sol"
:
{
"initCodeHash"
:
"0x86328a03426488472fea8ff7eca00e46c6601d5d0adab9f07ee1bc5f98605d48"
,
"sourceCodeHash"
:
"0x16c1020857324372169e66c57c1927c19f7763bbaa69dc9c51ae4750d9e6c7a4"
},
"src/legacy/L1BlockNumber.sol"
:
{
"src/legacy/L1BlockNumber.sol"
:
{
"initCodeHash"
:
"0xd586c4f93caf1753e53fcdc05eb547c1f3a69afda2904ae9f9d851b73e1c9c1d"
,
"initCodeHash"
:
"0xd586c4f93caf1753e53fcdc05eb547c1f3a69afda2904ae9f9d851b73e1c9c1d"
,
"sourceCodeHash"
:
"0x2a42b124a918a987da60934d9059a72d4fe13dba2609b9f80146f9c8a3fc8293"
"sourceCodeHash"
:
"0x2a42b124a918a987da60934d9059a72d4fe13dba2609b9f80146f9c8a3fc8293"
...
...
packages/contracts-bedrock/slither-report.json
View file @
75c37742
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/src/legacy/BlockOracle.sol
deleted
100644 → 0
View file @
390150d5
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import "src/libraries/DisputeTypes.sol";
import "src/libraries/DisputeErrors.sol";
import { ISemver } from "src/universal/ISemver.sol";
/// @title BlockOracle
/// @notice Stores a map of block numbers => block hashes for use in dispute resolution
contract BlockOracle is ISemver {
/// @notice The BlockInfo struct contains a block's hash and child timestamp.
struct BlockInfo {
Hash hash;
Timestamp childTimestamp;
}
/// @notice Emitted when a block is checkpointed.
event Checkpoint(uint256 indexed blockNumber, Hash indexed blockHash, Timestamp indexed childTimestamp);
/// @notice Maps block numbers to block hashes and timestamps
mapping(uint256 => BlockInfo) internal blocks;
/// @notice Semantic version.
/// @custom:semver 0.0.1
string public constant version = "0.0.1";
/// @notice Loads a block hash for a given block number, assuming that the block number
/// has been stored in the oracle.
/// @param _blockNumber The block number to load the block hash and timestamp for.
/// @return blockInfo_ The block hash and timestamp for the given block number.
function load(uint256 _blockNumber) external view returns (BlockInfo memory blockInfo_) {
blockInfo_ = blocks[_blockNumber];
if (Hash.unwrap(blockInfo_.hash) == 0) revert BlockHashNotPresent();
}
/// @notice Stores a block hash for the previous block number.
/// @return blockNumber_ The block number that was checkpointed, which is always
/// `block.number - 1`.
function checkpoint() external returns (uint256 blockNumber_) {
// SAFETY: This block hash will always be accessible by the `BLOCKHASH` opcode,
// and in the case of `block.number = 0`, we'll underflow.
// Persist the block information.
blockNumber_ = block.number - 1;
Hash blockHash = Hash.wrap(blockhash(blockNumber_));
Timestamp childTimestamp = Timestamp.wrap(uint64(block.timestamp));
blocks[blockNumber_] = BlockInfo({ hash: blockHash, childTimestamp: childTimestamp });
emit Checkpoint(blockNumber_, blockHash, childTimestamp);
}
}
packages/contracts-bedrock/src/legacy/FaultDisputeGame.sol
deleted
100644 → 0
View file @
390150d5
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/src/legacy/interfaces/IFaultDisputeGame.sol
deleted
100644 → 0
View file @
390150d5
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
import { IDisputeGame } from "src/dispute/interfaces/IDisputeGame.sol";
import "src/libraries/DisputeTypes.sol";
/// @title ILegacyFaultDisputeGame
/// @notice The interface for a fault proof backed dispute game.
interface ILegacyFaultDisputeGame is IDisputeGame {
/// @notice The `ClaimData` struct represents the data associated with a Claim.
/// @dev TODO(clabby): Add bond ID information.
struct ClaimData {
uint32 parentIndex;
bool countered;
Claim claim;
Position position;
Clock clock;
}
/// @notice The `OutputProposal` struct contains information about an output proposal in
/// the `L2OutputOracle` at a given index.
struct OutputProposal {
uint128 index;
uint128 l2BlockNumber;
Hash outputRoot;
}
/// @notice A container for two consecutive `OutputProposal`s, used to store the starting
/// and disputed output proposals for a given dispute game. The starting output
/// proposal will be used to determine where the off chain agents should begin
/// running their fault proof program, and the disputed output proposal will be
/// fed into the program and treated as disputed state. The program's exit code
/// expresses its opinion on the validity of the state transition from the starting,
/// trusted output proposal to the disputed output proposal, and ultimately resolves
/// the dispute.
struct OutputProposals {
OutputProposal starting;
OutputProposal disputed;
}
/// @notice Emitted when a new claim is added to the DAG by `claimant`
/// @param parentIndex The index within the `claimData` array of the parent claim
/// @param claim The claim being added
/// @param claimant The address of the claimant
event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant);
/// @notice Attack a disagreed upon `Claim`.
/// @param _parentIndex Index of the `Claim` to attack in the `claimData` array.
/// @param _claim The `Claim` at the relative attack position.
function attack(uint256 _parentIndex, Claim _claim) external payable;
/// @notice Defend an agreed upon `Claim`.
/// @param _parentIndex Index of the claim to defend in the `claimData` array.
/// @param _claim The `Claim` at the relative defense position.
function defend(uint256 _parentIndex, Claim _claim) external payable;
/// @notice Perform an instruction step via an on-chain fault proof processor.
/// @dev This function should point to a fault proof processor in order to execute
/// a step in the fault proof program on-chain. The interface of the fault proof
/// processor contract should adhere to the `IBigStepper` interface.
/// @param _claimIndex The index of the challenged claim within `claimData`.
/// @param _isAttack Whether or not the step is an attack or a defense.
/// @param _stateData The stateData of the step is the preimage of the claim at the given
/// prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if
/// the move is a defense. If the step is an attack on the first instruction, it is
/// the absolute prestate of the fault proof VM.
/// @param _proof Proof to access memory nodes in the VM's merkle state tree.
function step(uint256 _claimIndex, bool _isAttack, bytes calldata _stateData, bytes calldata _proof) external;
/// @notice Posts the requested local data to the VM's `PreimageOralce`.
/// @param _ident The local identifier of the data to post.
/// @param _localContext The local context for the `PreimageOracle` key.
/// @param _partOffset The offset of the data to post.
function addLocalData(uint256 _ident, bytes32 _localContext, uint256 _partOffset) external;
/// @notice Resolves the subgame rooted at the given claim index.
/// @dev This function must be called bottom-up in the DAG
/// A subgame is a tree of claims that has a maximum depth of 1.
/// A subgame root claims is valid if, and only if, all of its child claims are invalid.
/// At the deepest level in the DAG, a claim is invalid if there's a successful step against it.
/// @param _claimIndex The index of the subgame root claim to resolve.
function resolveClaim(uint256 _claimIndex) external payable;
/// @notice An L1 block hash that contains the disputed output root, fetched from the
/// `BlockOracle` and verified by referencing the timestamp associated with the
/// first L2 Output Proposal in the `L2OutputOracle` that contains the disputed
/// L2 block number.
function l1Head() external view returns (Hash l1Head_);
/// @notice The l2BlockNumber of the disputed output root in the `L2OutputOracle`.
function l2BlockNumber() external view returns (uint256 l2BlockNumber_);
/// @notice The l1BlockNumber that Cannon was ran from to generate the root claim.
function l1BlockNumber() external view returns (uint256 l1BlockNumber_);
}
packages/contracts-bedrock/src/libraries/DisputeErrors.sol
View file @
75c37742
...
@@ -85,14 +85,3 @@ error ClaimAboveSplit();
...
@@ -85,14 +85,3 @@ error ClaimAboveSplit();
/// @notice Thrown on deployment if the split depth is greater than or equal to the max
/// @notice Thrown on deployment if the split depth is greater than or equal to the max
/// depth of the game.
/// depth of the game.
error InvalidSplitDepth();
error InvalidSplitDepth();
////////////////////////////////////////////////////////////////
// `BlockOracle` Errors (Legacy) //
////////////////////////////////////////////////////////////////
/// @notice Thrown when a block that is out of the range of the `BLOCKHASH` opcode
/// is attempted to be loaded.
error BlockNumberOOB();
/// @notice Thrown when a block hash is attempted to be loaded that has not been stored.
error BlockHashNotPresent();
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment