Overview
ETH Balance
0.1 ETH
Eth Value
$226.32 (@ $2,263.17/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,073 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Confirm Next Nod... | 21946843 | 8 hrs ago | IN | 0 ETH | 0.00007385 | ||||
Stake On New Nod... | 21945949 | 11 hrs ago | IN | 0 ETH | 0.00055316 | ||||
Confirm Next Nod... | 21943266 | 20 hrs ago | IN | 0 ETH | 0.00020308 | ||||
Stake On New Nod... | 21942363 | 23 hrs ago | IN | 0 ETH | 0.00155881 | ||||
Confirm Next Nod... | 21939682 | 32 hrs ago | IN | 0 ETH | 0.00006973 | ||||
Stake On New Nod... | 21938776 | 35 hrs ago | IN | 0 ETH | 0.00025472 | ||||
Confirm Next Nod... | 21936099 | 44 hrs ago | IN | 0 ETH | 0.00005819 | ||||
Stake On New Nod... | 21935191 | 47 hrs ago | IN | 0 ETH | 0.00021125 | ||||
Confirm Next Nod... | 21932513 | 2 days ago | IN | 0 ETH | 0.00053879 | ||||
Stake On New Nod... | 21931609 | 2 days ago | IN | 0 ETH | 0.0004774 | ||||
Confirm Next Nod... | 21928938 | 2 days ago | IN | 0 ETH | 0.00006016 | ||||
Stake On New Nod... | 21928021 | 2 days ago | IN | 0 ETH | 0.00020282 | ||||
Confirm Next Nod... | 21925365 | 3 days ago | IN | 0 ETH | 0.00007842 | ||||
Stake On New Nod... | 21924438 | 3 days ago | IN | 0 ETH | 0.00145521 | ||||
Confirm Next Nod... | 21921780 | 3 days ago | IN | 0 ETH | 0.00039549 | ||||
Stake On New Nod... | 21920854 | 3 days ago | IN | 0 ETH | 0.00025381 | ||||
Confirm Next Nod... | 21918193 | 4 days ago | IN | 0 ETH | 0.00006335 | ||||
Stake On New Nod... | 21917270 | 4 days ago | IN | 0 ETH | 0.00074291 | ||||
Confirm Next Nod... | 21914614 | 4 days ago | IN | 0 ETH | 0.00006012 | ||||
Stake On New Nod... | 21913689 | 4 days ago | IN | 0 ETH | 0.00026202 | ||||
Confirm Next Nod... | 21911032 | 5 days ago | IN | 0 ETH | 0.0000916 | ||||
Stake On New Nod... | 21910101 | 5 days ago | IN | 0 ETH | 0.0002288 | ||||
Confirm Next Nod... | 21907446 | 5 days ago | IN | 0 ETH | 0.00006416 | ||||
Stake On New Nod... | 21906518 | 5 days ago | IN | 0 ETH | 0.00023279 | ||||
Confirm Next Nod... | 21903876 | 6 days ago | IN | 0 ETH | 0.00011278 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
19934834 | 281 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x5073dA9c...C3f522e11 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
RollupProxy
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 100 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../libraries/AdminFallbackProxy.sol";import "./IRollupAdmin.sol";import "./Config.sol";contract RollupProxy is AdminFallbackProxy {function initializeProxy(Config memory config, ContractDependencies memory connectedContracts)external{if (_getAdmin() == address(0) &&_getImplementation() == address(0) &&_getSecondaryImplementation() == address(0)) {_initialize(address(connectedContracts.rollupAdminLogic),abi.encodeWithSelector(IRollupAdmin.initialize.selector,config,connectedContracts),
1234567891011121314151617181920// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)pragma solidity ^0.8.0;/*** @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified* proxy whose upgrades are fully controlled by the current implementation.*/interface IERC1822Proxiable {/*** @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation* address.** IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks* bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this* function revert if invoked through a proxy.*/function proxiableUUID() external view returns (bytes32);}
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)pragma solidity ^0.8.0;/*** @dev This is the interface that {BeaconProxy} expects of its beacon.*/interface IBeacon {/*** @dev Must return an address that can be used as a delegate call target.** {BeaconProxy} will check that this address is a contract.*/function implementation() external view returns (address);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (proxy/ERC1967/ERC1967Upgrade.sol)pragma solidity ^0.8.2;import "../beacon/IBeacon.sol";import "../../interfaces/draft-IERC1822.sol";import "../../utils/Address.sol";import "../../utils/StorageSlot.sol";/*** @dev This abstract contract provides getters and event emitting update functions for* https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.** _Available since v4.1._** @custom:oz-upgrades-unsafe-allow delegatecall*/abstract contract ERC1967Upgrade {// This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;/*** @dev Storage slot with the address of the current implementation.* This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is* validated in the constructor.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (proxy/Proxy.sol)pragma solidity ^0.8.0;/*** @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM* instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to* be specified by overriding the virtual {_implementation} function.** Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a* different contract through the {_delegate} function.** The success and return data of the delegated call will be returned back to the caller of the proxy.*/abstract contract Proxy {/*** @dev Delegates the current call to `implementation`.** This function does not return to its internal call site, it will return directly to the external caller.*/function _delegate(address implementation) internal virtual {assembly {// Copy msg.data. We take full control of memory in this inline assembly// block because it will not return to Solidity code. We overwrite the// Solidity scratch pad at memory position 0.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)pragma solidity ^0.8.0;/*** @dev Library for reading and writing primitive types to specific storage slots.** Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.* This library helps with reading and writing to such slots without the need for inline assembly.** The functions in this library return Slot structs that contain a `value` member that can be used to read or write.** Example usage to set ERC1967 implementation slot:* ```* contract ERC1967 {* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;** function _getImplementation() internal view returns (address) {* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;* }** function _setImplementation(address newImplementation) internal {* require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;* }
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.6.9 <0.9.0;import "./IOwnable.sol";interface IBridge {event MessageDelivered(uint256 indexed messageIndex,bytes32 indexed beforeInboxAcc,address inbox,uint8 kind,address sender,bytes32 messageDataHash,uint256 baseFeeL1,uint64 timestamp);event BridgeCallTriggered(address indexed outbox,address indexed to,uint256 value,bytes data
123456789101112131415// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.6.9 <0.9.0;interface IDelayedMessageProvider {/// @dev event emitted when a inbox message is added to the Bridge's delayed accumulatorevent InboxMessageDelivered(uint256 indexed messageNum, bytes data);/// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator/// same as InboxMessageDelivered but the batch data is available in tx.inputevent InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);}
12345678910111213141516171819202122232425// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.6.9 <0.9.0;import "./IBridge.sol";import "./IDelayedMessageProvider.sol";import "./ISequencerInbox.sol";interface IInboxBase is IDelayedMessageProvider {function bridge() external view returns (IBridge);function sequencerInbox() external view returns (ISequencerInbox);function maxDataSize() external view returns (uint256);/*** @notice Send a generic L2 message to the chain* @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to beable to parse the data from the transaction's input* @param messageData Data of the message being sent*/function sendL2MessageFromOrigin(bytes calldata messageData) external returns (uint256);
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.6.9 <0.9.0;import "./IBridge.sol";interface IOutbox {event SendRootUpdated(bytes32 indexed outputRoot, bytes32 indexed l2BlockHash);event OutBoxTransactionExecuted(address indexed to,address indexed l2Sender,uint256 indexed zero,uint256 transactionIndex);function initialize(IBridge _bridge) external;function rollup() external view returns (address); // the rollup contractfunction bridge() external view returns (IBridge); // the bridge contractfunction spent(uint256) external view returns (bytes32); // packed spent bitmap
12345678910// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.4.21 <0.9.0;interface IOwnable {function owner() external view returns (address);}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.6.9 <0.9.0;pragma experimental ABIEncoderV2;import "../libraries/IGasRefunder.sol";import "./IDelayedMessageProvider.sol";import "./IBridge.sol";interface ISequencerInbox is IDelayedMessageProvider {struct MaxTimeVariation {uint256 delayBlocks;uint256 futureBlocks;uint256 delaySeconds;uint256 futureSeconds;}struct TimeBounds {uint64 minTimestamp;uint64 maxTimestamp;uint64 minBlockNumber;uint64 maxBlockNumber;}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../state/Machine.sol";import "../state/GlobalState.sol";library ChallengeLib {using MachineLib for Machine;using ChallengeLib for Challenge;/// @dev It's assumed that that uninitialzed challenges have mode NONEenum ChallengeMode {NONE,BLOCK,EXECUTION}struct Participant {address addr;uint256 timeLeft;}struct Challenge {
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../state/Machine.sol";import "../bridge/IBridge.sol";import "../bridge/ISequencerInbox.sol";import "../osp/IOneStepProofEntry.sol";import "./IChallengeResultReceiver.sol";import "./ChallengeLib.sol";interface IChallengeManager {enum ChallengeTerminationType {TIMEOUT,BLOCK_PROOF,EXECUTION_PROOF,CLEARED}event InitiatedChallenge(uint64 indexed challengeIndex,GlobalState startState,
12345678910111213// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;interface IChallengeResultReceiver {function completeChallenge(uint256 challengeIndex,address winner,address loser) external;}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "@openzeppelin/contracts/proxy/Proxy.sol";import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol";import "@openzeppelin/contracts/utils/Address.sol";import "@openzeppelin/contracts/utils/StorageSlot.sol";/// @notice An extension to OZ's ERC1967Upgrade implementation to support two logic contractsabstract contract DoubleLogicERC1967Upgrade is ERC1967Upgrade {// This is the keccak-256 hash of "eip1967.proxy.implementation.secondary" subtracted by 1bytes32 internal constant _IMPLEMENTATION_SECONDARY_SLOT =0x2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d;// This is the keccak-256 hash of "eip1967.proxy.rollback.secondary" subtracted by 1bytes32 private constant _ROLLBACK_SECONDARY_SLOT =0x49bd798cd84788856140a4cd5030756b4d08a9e4d55db725ec195f232d262a89;/*** @dev Emitted when the secondary implementation is upgraded.*/event UpgradedSecondary(address indexed implementation);
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1// solhint-disable-next-line compiler-versionpragma solidity >=0.6.9 <0.9.0;interface IGasRefunder {function onGasSpent(address payable spender,uint256 gasUsed,uint256 calldataSize) external returns (bool success);}abstract contract GasRefundEnabled {/// @dev this refunds the sender for execution costs of the tx/// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging/// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refundedmodifier refundsGas(IGasRefunder gasRefunder) {uint256 startGasLeft = gasleft();_;if (address(gasRefunder) != address(0)) {uint256 calldataSize = msg.data.length;uint256 calldataWords = (calldataSize + 31) / 32;// account for the CALLDATACOPY cost of the proxy contract, including the memory expansion cost
1234567891011121314151617181920// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./IOneStepProver.sol";library OneStepProofEntryLib {uint256 internal constant MAX_STEPS = 1 << 43;}interface IOneStepProofEntry {function proveOneStep(ExecutionContext calldata execCtx,uint256 machineStep,bytes32 beforeHash,bytes calldata proof) external view returns (bytes32 afterHash);}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../state/Machine.sol";import "../state/Module.sol";import "../state/Instructions.sol";import "../state/GlobalState.sol";import "../bridge/ISequencerInbox.sol";import "../bridge/IBridge.sol";struct ExecutionContext {uint256 maxInboxMessagesRead;IBridge bridge;}abstract contract IOneStepProver {function executeOneStep(ExecutionContext memory execCtx,Machine calldata mach,Module calldata mod,Instruction calldata instruction,bytes calldata proof) external view virtual returns (Machine memory result, Module memory resultMod);
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../state/GlobalState.sol";import "../state/Machine.sol";import "../bridge/ISequencerInbox.sol";import "../bridge/IBridge.sol";import "../bridge/IOutbox.sol";import "../bridge/IInboxBase.sol";import "./IRollupEventInbox.sol";import "./IRollupLogic.sol";import "../challenge/IChallengeManager.sol";struct Config {uint64 confirmPeriodBlocks;uint64 extraChallengeTimeBlocks;address stakeToken;uint256 baseStake;bytes32 wasmModuleRoot;address owner;address loserStakeEscrow;uint256 chainId;string chainConfig;
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./IRollupCore.sol";import "../bridge/ISequencerInbox.sol";import "../bridge/IOutbox.sol";import "../bridge/IOwnable.sol";import "./Config.sol";interface IRollupAdmin {event OwnerFunctionCalled(uint256 indexed id);function initialize(Config calldata config, ContractDependencies calldata connectedContracts)external;/*** @notice Add a contract authorized to put messages into this rollup's inbox* @param _outbox Outbox contract to add*/function setOutbox(IOutbox _outbox) external;/*** @notice Disable an old outbox from interacting with the bridge
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./Node.sol";import "../bridge/IBridge.sol";import "../bridge/IOutbox.sol";import "../bridge/IInboxBase.sol";import "./IRollupEventInbox.sol";import "../challenge/IChallengeManager.sol";interface IRollupCore {struct Staker {uint256 amountStaked;uint64 index;uint64 latestStakedNode;// currentChallenge is 0 if staker is not in a challengeuint64 currentChallenge;bool isStaked;}event RollupInitialized(bytes32 machineHash, uint256 chainId);event NodeCreated(
12345678910111213141516171819// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../bridge/IBridge.sol";interface IRollupEventInbox {function bridge() external view returns (IBridge);function initialize(IBridge _bridge) external;function rollup() external view returns (address);function updateRollupAddress() external;function rollupInitialized(uint256 chainId, string calldata chainConfig) external;}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./IRollupCore.sol";import "../bridge/ISequencerInbox.sol";import "../bridge/IOutbox.sol";import "../bridge/IOwnable.sol";interface IRollupUserAbs is IRollupCore, IOwnable {/// @dev the user logic just validated configuration and shouldn't write to state during init/// this allows the admin logic to ensure consistency on parameters.function initialize(address stakeToken) external view;function removeWhitelistAfterFork() external;function removeWhitelistAfterValidatorAfk() external;function isERC20Enabled() external view returns (bool);function rejectNextNode(address stakerAddress) external;function confirmNextNode(bytes32 blockHash, bytes32 sendRoot) external;
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "../state/GlobalState.sol";import "../state/Machine.sol";struct ExecutionState {GlobalState globalState;MachineStatus machineStatus;}struct Assertion {ExecutionState beforeState;ExecutionState afterState;uint64 numBlocks;}struct Node {// Hash of the state of the chain as of this nodebytes32 stateHash;// Hash of the data that can be challengedbytes32 challengeHash;// Hash of the data that will be committed if this node is confirmed
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;struct GlobalState {bytes32[2] bytes32Vals;uint64[2] u64Vals;}library GlobalStateLib {uint16 internal constant BYTES32_VALS_NUM = 2;uint16 internal constant U64_VALS_NUM = 2;function hash(GlobalState memory state) internal pure returns (bytes32) {returnkeccak256(abi.encodePacked("Global state:",state.bytes32Vals[0],state.bytes32Vals[1],state.u64Vals[0],state.u64Vals[1]));
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;struct Instruction {uint16 opcode;uint256 argumentData;}library Instructions {uint16 internal constant UNREACHABLE = 0x00;uint16 internal constant NOP = 0x01;uint16 internal constant RETURN = 0x0F;uint16 internal constant CALL = 0x10;uint16 internal constant CALL_INDIRECT = 0x11;uint16 internal constant LOCAL_GET = 0x20;uint16 internal constant LOCAL_SET = 0x21;uint16 internal constant GLOBAL_GET = 0x23;uint16 internal constant GLOBAL_SET = 0x24;uint16 internal constant I32_LOAD = 0x28;uint16 internal constant I64_LOAD = 0x29;uint16 internal constant F32_LOAD = 0x2A;uint16 internal constant F64_LOAD = 0x2B;
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./ValueStack.sol";import "./Instructions.sol";import "./StackFrame.sol";enum MachineStatus {RUNNING,FINISHED,ERRORED,TOO_FAR}struct Machine {MachineStatus status;ValueStack valueStack;ValueStack internalStack;StackFrameWindow frameStack;bytes32 globalStateHash;uint32 moduleIdx;uint32 functionIdx;uint32 functionPc;
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./ModuleMemoryCompact.sol";struct Module {bytes32 globalsMerkleRoot;ModuleMemory moduleMemory;bytes32 tablesMerkleRoot;bytes32 functionsMerkleRoot;uint32 internalsOffset;}library ModuleLib {using ModuleMemoryCompactLib for ModuleMemory;function hash(Module memory mod) internal pure returns (bytes32) {returnkeccak256(abi.encodePacked("Module:",mod.globalsMerkleRoot,mod.moduleMemory.hash(),
1234567891011121314151617// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;struct ModuleMemory {uint64 size;uint64 maxSize;bytes32 merkleRoot;}library ModuleMemoryCompactLib {function hash(ModuleMemory memory mem) internal pure returns (bytes32) {return keccak256(abi.encodePacked("Memory:", mem.size, mem.maxSize, mem.merkleRoot));}}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./Value.sol";struct StackFrame {Value returnPc;bytes32 localsMerkleRoot;uint32 callerModule;uint32 callerModuleInternals;}struct StackFrameWindow {StackFrame[] proved;bytes32 remainingHash;}library StackFrameLib {using ValueLib for Value;function hash(StackFrame memory frame) internal pure returns (bytes32) {returnkeccak256(
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;enum ValueType {I32,I64,F32,F64,REF_NULL,FUNC_REF,INTERNAL_REF}struct Value {ValueType valueType;uint256 contents;}library ValueLib {function hash(Value memory val) internal pure returns (bytes32) {return keccak256(abi.encodePacked("Value:", val.valueType, val.contents));}
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./Value.sol";struct ValueArray {Value[] inner;}library ValueArrayLib {function get(ValueArray memory arr, uint256 index) internal pure returns (Value memory) {return arr.inner[index];}function set(ValueArray memory arr,uint256 index,Value memory val) internal pure {arr.inner[index] = val;}function length(ValueArray memory arr) internal pure returns (uint256) {
1234567891011121314151617181920212223242526// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.0;import "./Value.sol";import "./ValueArray.sol";struct ValueStack {ValueArray proved;bytes32 remainingHash;}library ValueStackLib {using ValueLib for Value;using ValueArrayLib for ValueArray;function hash(ValueStack memory stack) internal pure returns (bytes32 h) {h = stack.remainingHash;uint256 len = stack.proved.length();for (uint256 i = 0; i < len; i++) {h = keccak256(abi.encodePacked("Value stack:", stack.proved.get(i).hash(), h));}}
12345678910111213141516171819202122{"optimizer": {"enabled": true,"runs": 100},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"metadata": {"useLiteralContent": true},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"UpgradedSecondary","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"components":[{"internalType":"uint64","name":"confirmPeriodBlocks","type":"uint64"},{"internalType":"uint64","name":"extraChallengeTimeBlocks","type":"uint64"},{"internalType":"address","name":"stakeToken","type":"address"},{"internalType":"uint256","name":"baseStake","type":"uint256"},{"internalType":"bytes32","name":"wasmModuleRoot","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"loserStakeEscrow","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"string","name":"chainConfig","type":"string"},{"internalType":"uint64","name":"genesisBlockNum","type":"uint64"},{"components":[{"internalType":"uint256","name":"delayBlocks","type":"uint256"},{"internalType":"uint256","name":"futureBlocks","type":"uint256"},{"internalType":"uint256","name":"delaySeconds","type":"uint256"},{"internalType":"uint256","name":"futureSeconds","type":"uint256"}],"internalType":"struct ISequencerInbox.MaxTimeVariation","name":"sequencerInboxMaxTimeVariation","type":"tuple"}],"internalType":"struct Config","name":"config","type":"tuple"},{"components":[{"internalType":"contract IBridge","name":"bridge","type":"address"},{"internalType":"contract ISequencerInbox","name":"sequencerInbox","type":"address"},{"internalType":"contract IInboxBase","name":"inbox","type":"address"},{"internalType":"contract IOutbox","name":"outbox","type":"address"},{"internalType":"contract IRollupEventInbox","name":"rollupEventInbox","type":"address"},{"internalType":"contract IChallengeManager","name":"challengeManager","type":"address"},{"internalType":"address","name":"rollupAdminLogic","type":"address"},{"internalType":"contract IRollupUser","name":"rollupUserLogic","type":"address"},{"internalType":"address","name":"validatorUtils","type":"address"},{"internalType":"address","name":"validatorWalletCreator","type":"address"}],"internalType":"struct ContractDependencies","name":"connectedContracts","type":"tuple"}],"name":"initializeProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x6080604052600436106100225760003560e01c80636e24369e1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046109fa565b61006b565b610069610064610182565b61024b565b565b6000610075610274565b6001600160a01b031614801561009b57506000610090610295565b6001600160a01b0316145b80156100b7575060006100ac6102ab565b6001600160a01b0316145b1561017a576101768160c001516328ff127a60e01b84846040516024016100df929190610c37565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260e08501518683015192516001600160a01b039093166024840152909163189acdbd60e31b9060440160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260a08701516102c1565b5050565b610176610059565b600060043610156101c85760405162461bcd60e51b815260206004820152600b60248201526a4e4f5f46554e435f53494760a81b60448201526064015b60405180910390fd5b6000336101d3610274565b6001600160a01b031614156101ef576101ea610295565b6101f7565b6101f76102ab565b90506001600160a01b0381163b6102465760405162461bcd60e51b815260206004820152601360248201527215105491d15517d393d517d0d3d395149050d5606a1b60448201526064016101bf565b919050565b3660008037600080366000845af43d6000803e80801561026a573d6000f35b3d6000fd5b505050565b6000600080516020610db18339815191525b546001600160a01b0316919050565b6000600080516020610dd1833981519152610286565b6000600080516020610e18833981519152610286565b6102ec60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104610d46565b600080516020610db18339815191521461030857610308610d6b565b61033360017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610d46565b600080516020610dd18339815191521461034f5761034f610d6b565b61037a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e610d46565b600080516020610e188339815191521461039657610396610d6b565b61039f816103be565b6103ab85856000610415565b6103b783836000610440565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e7610274565b604080516001600160a01b03928316815291841660208301520160405180910390a161041281610449565b50565b61041e836104e0565b60008251118061042b5750805b1561026f5761043a8383610520565b50505050565b61041e8361054c565b6001600160a01b0381166104ae5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016101bf565b80600080516020610db18339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6104e98161058c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105458383604051806060016040528060278152602001610df16027913961060e565b9392505050565b610555816106eb565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b6105f95760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101bf565b80600080516020610dd18339815191526104bf565b60606001600160a01b0384163b6106765760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101bf565b600080856001600160a01b0316856040516106919190610d81565b600060405180830381855af49150503d80600081146106cc576040519150601f19603f3d011682016040523d82523d6000602084013e6106d1565b606091505b50915091506106e1828286610777565b9695505050505050565b6001600160a01b0381163b6107625760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e74604482015276185d1a5bdb881a5cc81b9bdd08184818dbdb9d1c9858dd604a1b60648201526084016101bf565b80600080516020610e188339815191526104bf565b60608315610786575081610545565b8251156107965782518084602001fd5b8160405162461bcd60e51b81526004016101bf9190610d9d565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156107e9576107e96107b0565b60405290565b60405161016081016001600160401b03811182821017156107e9576107e96107b0565b80356001600160401b038116811461024657600080fd5b80356001600160a01b038116811461024657600080fd5b600082601f83011261085157600080fd5b81356001600160401b038082111561086b5761086b6107b0565b604051601f8301601f19908116603f01168101908282118183101715610893576108936107b0565b816040528381528660208588010111156108ac57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000608082840312156108de57600080fd5b604051608081018181106001600160401b0382111715610900576109006107b0565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b6000610140828403121561094457600080fd5b61094c6107c6565b905061095782610829565b815261096560208301610829565b602082015261097660408301610829565b604082015261098760608301610829565b606082015261099860808301610829565b60808201526109a960a08301610829565b60a08201526109ba60c08301610829565b60c08201526109cb60e08301610829565b60e08201526101006109de818401610829565b908201526101206109f0838201610829565b9082015292915050565b6000806101608385031215610a0e57600080fd5b82356001600160401b0380821115610a2557600080fd5b908401906101c08287031215610a3a57600080fd5b610a426107ef565b610a4b83610812565b8152610a5960208401610812565b6020820152610a6a60408401610829565b60408201526060830135606082015260808301356080820152610a8f60a08401610829565b60a0820152610aa060c08401610829565b60c082015260e083013560e08201526101008084013583811115610ac357600080fd5b610acf89828701610840565b8284015250506101209150610ae5828401610812565b828201526101409150610afa878385016108cc565b82820152809450505050610b118460208501610931565b90509250929050565b6001600160a01b03169052565b60005b83811015610b42578181015183820152602001610b2a565b8381111561043a5750506000910152565b60008151808452610b6b816020860160208601610b27565b601f01601f19169290920160200192915050565b610b8a828251610b1a565b6020810151610b9c6020840182610b1a565b506040810151610baf6040840182610b1a565b506060810151610bc26060840182610b1a565b506080810151610bd56080840182610b1a565b5060a0810151610be860a0840182610b1a565b5060c0810151610bfb60c0840182610b1a565b5060e0810151610c0e60e0840182610b1a565b5061010080820151610c2282850182610b1a565b50506101208082015161043a82850182610b1a565b6000610160808352610c5481840186516001600160401b03169052565b5060208401516001600160401b03166101808301526040840151610c7c6101a0840182610b1a565b5060608401516101c0818185015260808601516101e085015260a08601519150610caa610200850183610b1a565b60c08601519150610cbf610220850183610b1a565b60e086015161024085015261010086015191508061026085015250610ce8610320840182610b53565b9050610120850151610d066102808501826001600160401b03169052565b5061014085015180516102a085015260208101516102c085015260408101516102e085015260608101516103008501525090506105456020830184610b7f565b600082821015610d6657634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b60008251610d93818460208701610b27565b9190910192915050565b6020815260006105456020830184610b5356feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65642b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546da264697066735822122045d1669737d3f66bbfc5cb21688cdbc2decfc09897811ac43760f60bfdc1438064736f6c63430008090033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,259.78 | 0.1 | $225.98 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.