ETH Price: $3,223.47 (-2.94%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SPBEAMHaltSpell

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
london EvmVersion
// SPDX-FileCopyrightText: © 2024 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.8.16;

import {DssEmergencySpell} from "../DssEmergencySpell.sol";

interface SPBEAMMomLike {
    function halt(address) external;
}

interface SPBEAMLike {
    function wards(address) external view returns (uint256);
    function bad() external view returns (uint256);
}

/// @title SP-BEAM Halt Emergency Spell
/// @notice Will disable the SPBEAM (Stability Parameter Bounded External Access Module)
contract SPBEAMHaltSpell is DssEmergencySpell {
    string public constant override description = "Emergency Spell | Halt SPBEAM";

    SPBEAMMomLike public immutable spbeamMom = SPBEAMMomLike(_log.getAddress("SPBEAM_MOM"));
    SPBEAMLike public immutable spbeam = SPBEAMLike(_log.getAddress("MCD_SPBEAM"));

    event Halt();

    /**
     * @notice Disables SPBEAM
     */
    function _emergencyActions() internal override {
        spbeamMom.halt(address(spbeam));
        emit Halt();
    }

    /**
     * @notice Returns whether the spell is done or not.
     * @dev Checks if `spbeam.bad() == 1` (disabled).
     *      The spell would revert if any of the following conditions holds:
     *          1. SPBEAMMom is not a ward of SPBEAM
     *          2. Call to SPBEAM `bad()` reverts (likely not a SPBEAM)
     *      In both cases, it returns `true`, meaning no further action can be taken at the moment.
     */
    function done() external view returns (bool) {
        try spbeam.wards(address(spbeamMom)) returns (uint256 ward) {
            // Ignore SPBEAM instances that have not relied on SPBEAMMom.
            if (ward == 0) {
                return true;
            }
        } catch {
            // If the call failed, it means the contract is most likely not a SPBEAM instance.
            return true;
        }

        try spbeam.bad() returns (uint256 bad) {
            return bad == 1;
        } catch {
            // If the call failed, it means the contract is most likely not a SPBEAM instance.
            return true;
        }
    }
}

// SPDX-FileCopyrightText: © 2024 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.8.16;

interface ChainlogLike {
    function getAddress(bytes32 key) external view returns (address);
}

interface DssExec {
    function action() external view returns (address);
    function cast() external;
    function description() external view returns (string memory);
    function done() external view returns (bool);
    function eta() external view returns (uint256);
    function expiration() external view returns (uint256);
    function log() external view returns (address);
    function nextCastTime() external view returns (uint256);
    function officeHours() external view returns (bool);
    function pause() external view returns (address);
    function schedule() external;
    function sig() external view returns (bytes memory);
    function tag() external view returns (bytes32);
}

interface DssAction {
    function actions() external;
    function description() external view returns (string memory);
    function execute() external;
    function nextCastTime(uint256 eta) external view returns (uint256);
    function officeHours() external view returns (bool);
}

interface DssEmergencySpellLike is DssExec, DssAction {
    function description() external view override(DssExec, DssAction) returns (string memory);
    function officeHours() external view override(DssExec, DssAction) returns (bool);
}

abstract contract DssEmergencySpell is DssEmergencySpellLike {
    /// @dev The chainlog contract reference.
    ChainlogLike internal constant _log = ChainlogLike(0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F);

    /// @dev The reference to the `pause` contract.
    address public immutable pause = _log.getAddress("MCD_PAUSE");
    /// @dev The chainlog address.
    address public constant log = address(_log);
    /// @dev In regular spells, `eta` is used to enforce the GSM delay.
    ///      For emergency spells, the GSM delay is not applicable.
    uint256 public constant eta = 0;
    /// @dev Keeping the same value as regular spells.
    bytes public constant sig = abi.encodeWithSelector(DssAction.execute.selector);
    /// @dev Emergency spells should not expire.
    uint256 public constant expiration = type(uint256).max;
    /// @dev An emergency spell does not need to be cast, as all actions happen during the schedule phase.
    ///      Notice that cast is usually not supposed to revert, so it is implemented as a no-op.
    uint256 internal immutable _nextCastTime = type(uint256).max;
    /// @dev Office Hours is always `false` for emergency spells.
    bool public constant officeHours = false;
    /// @dev `action` is expected to return a valid address.
    ///      We also implement the `DssAction` interface in this contract.
    address public immutable action = address(this);

    /// @dev In regular spells, `tag` is an immutable variable with the code hash of the spell action.
    ///      It specifically uses a separate contract for spell action because `tag` is immutable and the code hash of
    ///      the contract being initialized is not accessible in the constructor.
    ///      Since we do not have a separate contract for actions in Emergency Spells, `tag` has to be turned into a
    ///      getter function instead of an immutable variable.
    /// @return The contract codehash.
    function tag() external view returns (bytes32) {
        return address(this).codehash;
    }

    /// @notice Triggers the emergency actions of the spell.
    /// @dev Emergency spells are triggered when scheduled.
    ///      This function maintains the name for compatibility with regular spells, however nothing is actually being
    ///      scheduled. Emergency spells take effect immediately, so there is no need to call `pause.plot()`.
    function schedule() external {
        _emergencyActions();
    }

    /// @notice Implements the emergency actions to be triggered by the spell.
    function _emergencyActions() internal virtual;

    /// @notice Returns `_nextCastTime`.
    /// @dev This function exists only to keep interface compatibility with regular spells.
    function nextCastTime() external view returns (uint256 castTime) {
        return _nextCastTime;
    }

    /// @notice No-op.
    /// @dev This function exists only to keep interface compatibility with regular spells.
    function cast() external {}

    /// @notice No-op.
    /// @dev This function exists only to keep interface compatibility with regular spells.
    function execute() external {}

    /// @notice No-op.
    /// @dev This function exists only to keep interface compatibility with regular spells.
    function actions() external {}

    /// @notice Returns `nextCastTime`, regardless of the input parameter.
    /// @dev This function exists only to keep interface compatibility with regular spells.
    function nextCastTime(uint256) external view returns (uint256 castTime) {
        return _nextCastTime;
    }
}

Settings
{
  "remappings": [
    "dss-interfaces/=lib/dss-test/lib/dss-interfaces/src/",
    "dss-test/=lib/dss-test/src/",
    "forge-std/=lib/dss-test/lib/forge-std/src/"
  ],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[],"name":"Halt","type":"event"},{"inputs":[],"name":"action","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"done","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expiration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"log","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nextCastTime","outputs":[{"internalType":"uint256","name":"castTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextCastTime","outputs":[{"internalType":"uint256","name":"castTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"officeHours","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spbeam","outputs":[{"internalType":"contract SPBEAMLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spbeamMom","outputs":[{"internalType":"contract SPBEAMMomLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]

61012060405273da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b81526004016200005290620002e3565b602060405180830381865afa15801562000070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000096919062000368565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a0908152503073ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff1681525073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b81526004016200016f90620003c0565b602060405180830381865afa1580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b3919062000368565b73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1681525073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b8152600401620002329062000401565b602060405180830381865afa15801562000250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000276919062000368565b73ffffffffffffffffffffffffffffffffffffffff166101009073ffffffffffffffffffffffffffffffffffffffff16815250348015620002b657600080fd5b506200041c565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620002f960008301620002bd565b919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003308262000303565b9050919050565b620003428162000323565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b600060208284031215620003815762000380620002fe565b5b6000620003918482850162000351565b91505092915050565b7f53504245414d5f4d4f4d00000000000000000000000000000000000000000000815250565b6000602082019050620003d6600083016200039a565b919050565b7f4d43445f53504245414d00000000000000000000000000000000000000000000815250565b60006020820190506200041760008301620003db565b919050565b60805160a05160c05160e05161010051610af36200048b60003960008181610473015281816105460152818161061a01526106a90152600081816103e7015281816104af015261066d015260006103680152600081816105f201526106470152600061044b0152610af36000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80638456cb59116100a2578063bf0fbcec11610071578063bf0fbcec14610264578063f53b63a714610294578063f7992d85146102b2578063f99e36bc146102d0578063fe7d47bb146102da57610115565b80638456cb591461021457806396d373e514610232578063ae8421e11461023c578063b0604a261461025a57610115565b806351f91066116100e957806351f910661461019257806353fc3915146101b057806361461954146101ce5780636e832f07146101d85780637284e416146101f657610115565b8062a7029b1461011a5780630a7a1c4d146101385780634665096d1461015657806351973ec914610174575b600080fd5b6101226102f8565b60405161012f91906107d4565b60405180910390f35b610140610366565b60405161014d9190610837565b60405180910390f35b61015e61038a565b60405161016b919061086b565b60405180910390f35b61017c6103ae565b6040516101899190610837565b60405180910390f35b61019a6103c6565b6040516101a7919061089f565b60405180910390f35b6101b86103e5565b6040516101c59190610919565b60405180910390f35b6101d6610409565b005b6101e061040b565b6040516101ed919061094f565b60405180910390f35b6101fe610410565b60405161020b91906109bf565b60405180910390f35b61021c610449565b6040516102299190610837565b60405180910390f35b61023a61046d565b005b61024461046f565b604051610251919061094f565b60405180910390f35b6102626105e4565b005b61027e60048036038101906102799190610a12565b6105ee565b60405161028b919061086b565b60405180910390f35b61029c610618565b6040516102a99190610a60565b60405180910390f35b6102ba61063c565b6040516102c7919061086b565b60405180910390f35b6102d8610641565b005b6102e2610643565b6040516102ef919061086b565b60405180910390f35b636146195460e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b60003073ffffffffffffffffffffffffffffffffffffffff163f905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b565b600081565b6040518060400160405280601d81526020017f456d657267656e6379205370656c6c207c2048616c742053504245414d00000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf353dbb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016104ea9190610837565b602060405180830381865afa92505050801561052457506040513d601f19601f820116820180604052508101906105219190610a90565b60015b61053157600190506105e1565b600081036105435760019150506105e1565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639c3674fc6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156105cc57506040513d601f19601f820116820180604052508101906105c99190610a90565b60015b6105d957600190506105e1565b600181149150505b90565b6105ec61066b565b565b60007f00000000000000000000000000000000000000000000000000000000000000009050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081565b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663364db0fc7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106e49190610837565b600060405180830381600087803b1580156106fe57600080fd5b505af1158015610712573d6000803e3d6000fd5b505050507fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5660405160405180910390a1565b600081519050919050565b600082825260208201905092915050565b60005b8381101561077e578082015181840152602081019050610763565b60008484015250505050565b6000601f19601f8301169050919050565b60006107a682610744565b6107b0818561074f565b93506107c0818560208601610760565b6107c98161078a565b840191505092915050565b600060208201905081810360008301526107ee818461079b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610821826107f6565b9050919050565b61083181610816565b82525050565b600060208201905061084c6000830184610828565b92915050565b6000819050919050565b61086581610852565b82525050565b6000602082019050610880600083018461085c565b92915050565b6000819050919050565b61089981610886565b82525050565b60006020820190506108b46000830184610890565b92915050565b6000819050919050565b60006108df6108da6108d5846107f6565b6108ba565b6107f6565b9050919050565b60006108f1826108c4565b9050919050565b6000610903826108e6565b9050919050565b610913816108f8565b82525050565b600060208201905061092e600083018461090a565b92915050565b60008115159050919050565b61094981610934565b82525050565b60006020820190506109646000830184610940565b92915050565b600081519050919050565b600082825260208201905092915050565b60006109918261096a565b61099b8185610975565b93506109ab818560208601610760565b6109b48161078a565b840191505092915050565b600060208201905081810360008301526109d98184610986565b905092915050565b600080fd5b6109ef81610852565b81146109fa57600080fd5b50565b600081359050610a0c816109e6565b92915050565b600060208284031215610a2857610a276109e1565b5b6000610a36848285016109fd565b91505092915050565b6000610a4a826108e6565b9050919050565b610a5a81610a3f565b82525050565b6000602082019050610a756000830184610a51565b92915050565b600081519050610a8a816109e6565b92915050565b600060208284031215610aa657610aa56109e1565b5b6000610ab484828501610a7b565b9150509291505056fea2646970667358221220b35c4e3276b378c66490d38659199e353e99bc79293e6b5a43fe8976eb6fdd1f64736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101155760003560e01c80638456cb59116100a2578063bf0fbcec11610071578063bf0fbcec14610264578063f53b63a714610294578063f7992d85146102b2578063f99e36bc146102d0578063fe7d47bb146102da57610115565b80638456cb591461021457806396d373e514610232578063ae8421e11461023c578063b0604a261461025a57610115565b806351f91066116100e957806351f910661461019257806353fc3915146101b057806361461954146101ce5780636e832f07146101d85780637284e416146101f657610115565b8062a7029b1461011a5780630a7a1c4d146101385780634665096d1461015657806351973ec914610174575b600080fd5b6101226102f8565b60405161012f91906107d4565b60405180910390f35b610140610366565b60405161014d9190610837565b60405180910390f35b61015e61038a565b60405161016b919061086b565b60405180910390f35b61017c6103ae565b6040516101899190610837565b60405180910390f35b61019a6103c6565b6040516101a7919061089f565b60405180910390f35b6101b86103e5565b6040516101c59190610919565b60405180910390f35b6101d6610409565b005b6101e061040b565b6040516101ed919061094f565b60405180910390f35b6101fe610410565b60405161020b91906109bf565b60405180910390f35b61021c610449565b6040516102299190610837565b60405180910390f35b61023a61046d565b005b61024461046f565b604051610251919061094f565b60405180910390f35b6102626105e4565b005b61027e60048036038101906102799190610a12565b6105ee565b60405161028b919061086b565b60405180910390f35b61029c610618565b6040516102a99190610a60565b60405180910390f35b6102ba61063c565b6040516102c7919061086b565b60405180910390f35b6102d8610641565b005b6102e2610643565b6040516102ef919061086b565b60405180910390f35b636146195460e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b7f000000000000000000000000decf4a7e4b9caa3c3751d163866941a888618ac081565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b60003073ffffffffffffffffffffffffffffffffffffffff163f905090565b7f000000000000000000000000f0c6e6ec8b367cc483a411e595d3ba0a816d37d081565b565b600081565b6040518060400160405280601d81526020017f456d657267656e6379205370656c6c207c2048616c742053504245414d00000081525081565b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f381565b565b60007f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b2273ffffffffffffffffffffffffffffffffffffffff1663bf353dbb7f000000000000000000000000f0c6e6ec8b367cc483a411e595d3ba0a816d37d06040518263ffffffff1660e01b81526004016104ea9190610837565b602060405180830381865afa92505050801561052457506040513d601f19601f820116820180604052508101906105219190610a90565b60015b61053157600190506105e1565b600081036105435760019150506105e1565b507f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b2273ffffffffffffffffffffffffffffffffffffffff16639c3674fc6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156105cc57506040513d601f19601f820116820180604052508101906105c99190610a90565b60015b6105d957600190506105e1565b600181149150505b90565b6105ec61066b565b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b7f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b2281565b600081565b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b7f000000000000000000000000f0c6e6ec8b367cc483a411e595d3ba0a816d37d073ffffffffffffffffffffffffffffffffffffffff1663364db0fc7f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b226040518263ffffffff1660e01b81526004016106e49190610837565b600060405180830381600087803b1580156106fe57600080fd5b505af1158015610712573d6000803e3d6000fd5b505050507fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5660405160405180910390a1565b600081519050919050565b600082825260208201905092915050565b60005b8381101561077e578082015181840152602081019050610763565b60008484015250505050565b6000601f19601f8301169050919050565b60006107a682610744565b6107b0818561074f565b93506107c0818560208601610760565b6107c98161078a565b840191505092915050565b600060208201905081810360008301526107ee818461079b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610821826107f6565b9050919050565b61083181610816565b82525050565b600060208201905061084c6000830184610828565b92915050565b6000819050919050565b61086581610852565b82525050565b6000602082019050610880600083018461085c565b92915050565b6000819050919050565b61089981610886565b82525050565b60006020820190506108b46000830184610890565b92915050565b6000819050919050565b60006108df6108da6108d5846107f6565b6108ba565b6107f6565b9050919050565b60006108f1826108c4565b9050919050565b6000610903826108e6565b9050919050565b610913816108f8565b82525050565b600060208201905061092e600083018461090a565b92915050565b60008115159050919050565b61094981610934565b82525050565b60006020820190506109646000830184610940565b92915050565b600081519050919050565b600082825260208201905092915050565b60006109918261096a565b61099b8185610975565b93506109ab818560208601610760565b6109b48161078a565b840191505092915050565b600060208201905081810360008301526109d98184610986565b905092915050565b600080fd5b6109ef81610852565b81146109fa57600080fd5b50565b600081359050610a0c816109e6565b92915050565b600060208284031215610a2857610a276109e1565b5b6000610a36848285016109fd565b91505092915050565b6000610a4a826108e6565b9050919050565b610a5a81610a3f565b82525050565b6000602082019050610a756000830184610a51565b92915050565b600081519050610a8a816109e6565b92915050565b600060208284031215610aa657610aa56109e1565b5b6000610ab484828501610a7b565b9150509291505056fea2646970667358221220b35c4e3276b378c66490d38659199e353e99bc79293e6b5a43fe8976eb6fdd1f64736f6c63430008100033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

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.