ETH Price: $3,562.42 (+1.87%)
Gas: 50 Gwei

Contract

0x3ee0C26aE7aa8cCc759e4Ee4f1E6F2C16220e5f6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Cast116062352021-01-07 7:36:011176 days ago1610004961IN
0x3ee0C26a...16220e5f6
0 ETH0.0104539490.75
Schedule115931932021-01-05 7:35:391178 days ago1609832139IN
0x3ee0C26a...16220e5f6
0 ETH0.0071379186
0x61010060115898562021-01-04 19:18:471178 days ago1609787927IN
 Create: DssSpell
0 ETH0.0854695890

Latest 1 internal transaction

Advanced mode:
Parent Txn Hash Block From To Value
115898562021-01-04 19:18:471178 days ago1609787927
0x3ee0C26a...16220e5f6
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DssSpell

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-04
*/

// hevm: flattened sources of src/DssSpell.sol
pragma solidity =0.6.11 >=0.5.12;

////// lib/dss-interfaces/src/dapp/DSPauseAbstract.sol
/* pragma solidity >=0.5.12; */

// https://github.com/dapphub/ds-pause
interface DSPauseAbstract {
    function owner() external view returns (address);
    function authority() external view returns (address);
    function setOwner(address) external;
    function setAuthority(address) external;
    function setDelay(uint256) external;
    function plans(bytes32) external view returns (bool);
    function proxy() external view returns (address);
    function delay() external view returns (uint256);
    function plot(address, bytes32, bytes calldata, uint256) external;
    function drop(address, bytes32, bytes calldata, uint256) external;
    function exec(address, bytes32, bytes calldata, uint256) external returns (bytes memory);
}

////// lib/dss-interfaces/src/dss/ChainlogAbstract.sol
/* pragma solidity >=0.5.12; */

// https://github.com/makerdao/dss-chain-log
interface ChainlogAbstract {
    function wards(address) external view returns (uint256);
    function rely(address) external;
    function deny(address) external;
    function keys() external view returns (bytes32[] memory);
    function version() external view returns (string memory);
    function ipfs() external view returns (string memory);
    function setVersion(string calldata) external;
    function setSha256sum(string calldata) external;
    function setIPFS(string calldata) external;
    function setAddress(bytes32,address) external;
    function removeAddress(bytes32) external;
    function count() external view returns (uint256);
    function get(uint256) external view returns (bytes32,address);
    function list() external view returns (bytes32[] memory);
    function getAddress(bytes32) external view returns (address);
}

// Helper function for returning address or abstract of Chainlog
//  Valid on Mainnet, Kovan, Rinkeby, Ropsten, and Goerli
contract ChainlogHelper {
    address          public constant ADDRESS  = 0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F;
    ChainlogAbstract public constant ABSTRACT = ChainlogAbstract(ADDRESS);
}

////// lib/dss-interfaces/src/dss/VatAbstract.sol
/* pragma solidity >=0.5.12; */

// https://github.com/makerdao/dss/blob/master/src/vat.sol
interface VatAbstract {
    function wards(address) external view returns (uint256);
    function rely(address) external;
    function deny(address) external;
    function can(address, address) external view returns (uint256);
    function hope(address) external;
    function nope(address) external;
    function ilks(bytes32) external view returns (uint256, uint256, uint256, uint256, uint256);
    function urns(bytes32, address) external view returns (uint256, uint256);
    function gem(bytes32, address) external view returns (uint256);
    function dai(address) external view returns (uint256);
    function sin(address) external view returns (uint256);
    function debt() external view returns (uint256);
    function vice() external view returns (uint256);
    function Line() external view returns (uint256);
    function live() external view returns (uint256);
    function init(bytes32) external;
    function file(bytes32, uint256) external;
    function file(bytes32, bytes32, uint256) external;
    function cage() external;
    function slip(bytes32, address, int256) external;
    function flux(bytes32, address, address, uint256) external;
    function move(address, address, uint256) external;
    function frob(bytes32, address, address, address, int256, int256) external;
    function fork(bytes32, address, address, int256, int256) external;
    function grab(bytes32, address, address, address, int256, int256) external;
    function heal(uint256) external;
    function suck(address, address, uint256) external;
    function fold(bytes32, address, int256) external;
}

////// src/DssSpell.sol
// SPDX-License-Identifier: GPL-3.0-or-later
// Copyright (C) 2021 Maker Ecosystem Growth Holdings, INC.
//
// 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.6.11; */

/* import "lib/dss-interfaces/src/dapp/DSPauseAbstract.sol"; */
/* import "lib/dss-interfaces/src/dss/ChainlogAbstract.sol"; */
/* import "lib/dss-interfaces/src/dss/VatAbstract.sol"; */

contract SpellAction {
    // Office hours enabled if true
    bool constant public officeHours = false;

    // MAINNET ADDRESSES
    //
    // The contracts in this list should correspond to MCD core contracts, verify
    //  against the current release list at:
    //     https://changelog.makerdao.com/releases/mainnet/active/contracts.json
    ChainlogAbstract constant CHANGELOG =
        ChainlogAbstract(0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F);

    // Ilks
    bytes32 constant ILK_ETH_A          = "ETH-A";
    bytes32 constant ILK_USDC_A         = "USDC-A";
    bytes32 constant ILK_PSM_USDC_A     = "PSM-USDC-A";

    // decimals & precision
    uint256 constant THOUSAND = 10 ** 3;
    uint256 constant MILLION  = 10 ** 6;
    uint256 constant WAD      = 10 ** 18;
    uint256 constant RAY      = 10 ** 27;
    uint256 constant RAD      = 10 ** 45;

    // Many of the settings that change weekly rely on the rate accumulator
    // described at https://docs.makerdao.com/smart-contract-modules/rates-module
    // To check this yourself, use the following rate calculation (example 8%):
    //
    // $ bc -l <<< 'scale=27; e( l(1.08)/(60 * 60 * 24 * 365) )'
    //
    // A table of rates can be found at
    //    https://ipfs.io/ipfs/QmefQMseb3AiTapiAKKexdKHig8wroKuZbmLtPLv4u2YwW
    //

    modifier limited {
        if (officeHours) {
            uint day = (block.timestamp / 1 days + 3) % 7;
            require(day < 5, "Can only be cast on a weekday");
            uint hour = block.timestamp / 1 hours % 24;
            require(hour >= 14 && hour < 21, "Outside office hours");
        }
        _;
    }

    function execute() external limited {
        address MCD_VAT      = CHANGELOG.getAddress("MCD_VAT");

        // Set the global debt ceiling
        // + 150 M for ETH-A
        // + 70 M for USDC-A
        // + 27 M for PSM-USDC-A
        VatAbstract(MCD_VAT).file("Line",
            VatAbstract(MCD_VAT).Line()
            + 150 * MILLION * RAD
            + 70 * MILLION * RAD
            + 27 * MILLION * RAD
        );

        //
        // Update the Debt Ceilings
        //
        VatAbstract(MCD_VAT).file(ILK_ETH_A, "line", 740 * MILLION * RAD);
        VatAbstract(MCD_VAT).file(ILK_USDC_A, "line", 555 * MILLION * RAD);
        VatAbstract(MCD_VAT).file(ILK_PSM_USDC_A, "line", 30 * MILLION * RAD);
    }
}

contract DssSpell {
    ChainlogAbstract constant CHANGELOG =
        ChainlogAbstract(0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F);

    DSPauseAbstract immutable public pause;
    address         immutable public action;
    bytes32         immutable public tag;
    uint256         immutable public expiration;
    uint256         public eta;
    bytes           public sig;
    bool            public done;

    // Provides a descriptive tag for bot consumption
    // This should be modified weekly to provide a summary of the actions
    // Hash: seth keccak -- "$(wget https://raw.githubusercontent.com/makerdao/community/6973811787c72be261d319094f680f868b4f5650/governance/votes/Community%20Executive%20vote%20-%20January%204%2C%202021.md -q -O - 2>/dev/null)"
    string constant public description =
        "2021-01-04 MakerDAO Executive Spell | Hash: 0xa901faeb46a2940a723ed32017bbd1b8f1bc3749560c0911d102de4338ece3ef";

    function officeHours() external view returns (bool) {
        return SpellAction(action).officeHours();
    }

    constructor() public {
        pause = DSPauseAbstract(CHANGELOG.getAddress("MCD_PAUSE"));
        sig = abi.encodeWithSignature("execute()");
        bytes32 _tag;
        address _action = action = address(new SpellAction());
        assembly { _tag := extcodehash(_action) }
        tag = _tag;
        expiration = block.timestamp + 30 days;
    }

    function nextCastTime() external view returns (uint256 castTime) {
        require(eta != 0, "DSSSpell/spell-not-scheduled");
        castTime = block.timestamp > eta ? block.timestamp : eta; // Any day at XX:YY

        if (SpellAction(action).officeHours()) {
            uint256 day    = (castTime / 1 days + 3) % 7;
            uint256 hour   = castTime / 1 hours % 24;
            uint256 minute = castTime / 1 minutes % 60;
            uint256 second = castTime % 60;

            if (day >= 5) {
                castTime += (6 - day) * 1 days;                 // Go to Sunday XX:YY
                castTime += (24 - hour + 14) * 1 hours;         // Go to 14:YY UTC Monday
                castTime -= minute * 1 minutes + second;        // Go to 14:00 UTC
            } else {
                if (hour >= 21) {
                    if (day == 4) castTime += 2 days;           // If Friday, fast forward to Sunday XX:YY
                    castTime += (24 - hour + 14) * 1 hours;     // Go to 14:YY UTC next day
                    castTime -= minute * 1 minutes + second;    // Go to 14:00 UTC
                } else if (hour < 14) {
                    castTime += (14 - hour) * 1 hours;          // Go to 14:YY UTC same day
                    castTime -= minute * 1 minutes + second;    // Go to 14:00 UTC
                }
            }
        }
    }

    function schedule() external {
        require(block.timestamp <= expiration, "DSSSpell/spell-has-expired");
        require(eta == 0, "DSSSpell/spell-already-scheduled");
        eta = block.timestamp + DSPauseAbstract(pause).delay();
        pause.plot(action, tag, sig, eta);
    }

    function cast() external {
        require(!done, "DSSSpell/spell-already-cast");
        done = true;
        pause.exec(action, tag, sig, eta);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"action","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"expiration","outputs":[{"internalType":"uint256","name":"","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":"contract DSPauseAbstract","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":"tag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]

61010060405234801561001157600080fd5b50604080516321f8a72160e01b8152684d43445f504155534560b81b6004820152905173da0ab1e0017debcd72be8599041a2aa3ba7e740f916321f8a721916024808301926020929190829003018186803b15801561006f57600080fd5b505afa158015610083573d6000803e3d6000fd5b505050506040513d602081101561009957600080fd5b505160601b6001600160601b031916608052604080516004815260248101909152602081018051631851865560e21b6001600160e01b0390911617815290516100e491600191610140565b506000806040516100f4906101be565b604051809103906000f080158015610110573d6000803e3d6000fd5b506001600160601b0319606082901b1660a0526001600160a01b03163f60c052505062278d00420160e0526101e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061018157805160ff19168380011785556101ae565b828001600101855582156101ae579182015b828111156101ae578251825591602001919060010190610193565b506101ba9291506101cb565b5090565b61041e80610d7383390190565b6101e591905b808211156101ba57600081556001016101d1565b90565b60805160601c60a05160601c60c05160e051610b1e610255600039806102745280610624525080610298528061043152806107b752508061025052806102be52806103fe528061078c5280610941525080610365528061048352806106eb528061080c5250610b1e6000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8062a7029b146100a85780630a7a1c4d146101255780634665096d1461014957806351f91066146101635780636e832f071461016b5780637284e416146101875780638456cb591461018f57806396d373e514610197578063ae8421e1146101a1578063b0604a26146101a9578063f7992d85146101b1578063fe7d47bb146101b9575b600080fd5b6100b06101c1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ea5781810151838201526020016100d2565b50505050905090810190601f1680156101175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61012d61024e565b604080516001600160a01b039092168252519081900360200190f35b610151610272565b60408051918252519081900360200190f35b610151610296565b6101736102ba565b604080519115158252519081900360200190f35b6100b0610347565b61012d610363565b61019f610387565b005b610173610619565b61019f610622565b6101516108d0565b6101516108d6565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102465780601f1061021b57610100808354040283529160200191610246565b820191906000526020600020905b81548152906001019060200180831161022957829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b15801561031557600080fd5b505afa158015610329573d6000803e3d6000fd5b505050506040513d602081101561033f57600080fd5b505190505b90565b6040518060a00160405280606e8152602001610a7b606e913981565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025460ff16156103dd576040805162461bcd60e51b815260206004820152601b60248201527a1114d4d4dc195b1b0bdcdc195b1b0b585b1c9958591e4b58d85cdd602a1b604482015290519081900360640190fd5b6002805460ff19166001908117825560005460405163168ccd6760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116600484019081527f000000000000000000000000000000000000000000000000000000000000000060248501819052606485018690526080604486019081528754600019818a161561010002011698909804608486018190527f0000000000000000000000000000000000000000000000000000000000000000939093169763168ccd6797949691959193909160a40190859080156105085780601f106104dd57610100808354040283529160200191610508565b820191906000526020600020905b8154815290600101906020018083116104eb57829003601f168201915b505095505050505050600060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056857600080fd5b8101908080516040519392919084600160201b82111561058757600080fd5b90830190602082018581111561059c57600080fd5b8251600160201b8111828201881017156105b557600080fd5b82525081516020918201929091019080838360005b838110156105e25781810151838201526020016105ca565b50505050905090810190601f16801561060f5780820380516001836020036101000a031916815260200191505b5060405250505050565b60025460ff1681565b7f0000000000000000000000000000000000000000000000000000000000000000421115610694576040805162461bcd60e51b815260206004820152601a6024820152791114d4d4dc195b1b0bdcdc195b1b0b5a185ccb595e1c1a5c995960321b604482015290519081900360640190fd5b600054156106e9576040805162461bcd60e51b815260206004820181905260248201527f4453535370656c6c2f7370656c6c2d616c72656164792d7363686564756c6564604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d602081101561076c57600080fd5b5051420160008190556040516346d2fbbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000818116600484019081527f0000000000000000000000000000000000000000000000000000000000000000602485018190526064850186905260806044860190815260018054600281831615610100026000190190911604608488018190527f0000000000000000000000000000000000000000000000000000000000000000909616976346d2fbbb97959693959194909390929160a40190859080156108935780601f1061086857610100808354040283529160200191610893565b820191906000526020600020905b81548152906001019060200180831161087657829003601f168201915b505095505050505050600060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b50505050565b60005481565b6000805461092a576040805162461bcd60e51b815260206004820152601c60248201527b1114d4d4dc195b1b0bdcdc195b1b0b5b9bdd0b5cd8da19591d5b195960221b604482015290519081900360640190fd5b600054421161093b5760005461093d565b425b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b15801561099857600080fd5b505afa1580156109ac573d6000803e3d6000fd5b505050506040513d60208110156109c257600080fd5b505115610344576007620151808204600301066018610e10830406603c80840481900690840660058410610a1b578360060362015180028501945082601803600e01610e1002850194508082603c020185039450610a73565b60158310610a53578360041415610a35576202a300850194505b82601803600e01610e1002850194508082603c020185039450610a73565b600e831015610a735782600e03610e1002850194508082603c0201850394505b505050509056fe323032312d30312d3034204d616b657244414f20457865637574697665205370656c6c207c20486173683a20307861393031666165623436613239343061373233656433323031376262643162386631626333373439353630633039313164313032646534333338656365336566a2646970667358221220a5b7d687af9dce37765dc35780e303464509a38f8d59ecbb2e97c40b3daf076564736f6c634300060b0033608060405234801561001057600080fd5b506103fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063614619541461003b5780636e832f0714610045575b600080fd5b610043610061565b005b61004d6103c3565b604080519115158252519081900360200190f35b600073da0ab1e0017debcd72be8599041a2aa3ba7e740f6001600160a01b03166321f8a7216040518163ffffffff1660e01b81526004018080661350d117d5905560ca1b815250602001905060206040518083038186803b1580156100c557600080fd5b505afa1580156100d9573d6000803e3d6000fd5b505050506040513d60208110156100ef57600080fd5b50516040805163babe8a3f60e01b815290519192506001600160a01b038316916329ae8114916f090544ca25a70d04680957afbc72a9ef60331b916f0bb17f190166c505b644ffe3ce5bbfd760341b916f190ea2a34c255d0c3d6f48e827e92d5f60341b91869163babe8a3f916004808301926020929190829003018186803b15801561017b57600080fd5b505afa15801561018f573d6000803e3d6000fd5b505050506040513d60208110156101a557600080fd5b5051604080516001600160e01b031960e088901b168152634c696e6560e01b6004820152929091019290920192909201602483015251604480830192600092919082900301818387803b1580156101fb57600080fd5b505af115801561020f573d6000803e3d6000fd5b505060408051630d05943f60e11b8152644554482d4160d81b6004820152636c696e6560e01b60248201526f3dcec45f99b17f1e312391b41e2e1a9560351b604482015290516001600160a01b0385169350631a0b287e9250606480830192600092919082900301818387803b15801561028857600080fd5b505af115801561029c573d6000803e3d6000fd5b505060408051630d05943f60e11b815265555344432d4160d01b6004820152636c696e6560e01b60248201526fb96c4d1ecd147d5a936ab51c5a8a4fbf60331b604482015290516001600160a01b0385169350631a0b287e9250606480830192600092919082900301818387803b15801561031657600080fd5b505af115801561032a573d6000803e3d6000fd5b505060408051630d05943f60e11b81526950534d2d555344432d4160b01b6004820152636c696e6560e01b60248201526f0502ed53dc07790272afdb61a195091360341b604482015290516001600160a01b0385169350631a0b287e9250606480830192600092919082900301818387803b1580156103a857600080fd5b505af11580156103bc573d6000803e3d6000fd5b5050505050565b60008156fea2646970667358221220a6a038796d50551db5308149e890a102d9ee2194d81caa32ca05b7f3a5015c4664736f6c634300060b0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a35760003560e01c8062a7029b146100a85780630a7a1c4d146101255780634665096d1461014957806351f91066146101635780636e832f071461016b5780637284e416146101875780638456cb591461018f57806396d373e514610197578063ae8421e1146101a1578063b0604a26146101a9578063f7992d85146101b1578063fe7d47bb146101b9575b600080fd5b6100b06101c1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ea5781810151838201526020016100d2565b50505050905090810190601f1680156101175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61012d61024e565b604080516001600160a01b039092168252519081900360200190f35b610151610272565b60408051918252519081900360200190f35b610151610296565b6101736102ba565b604080519115158252519081900360200190f35b6100b0610347565b61012d610363565b61019f610387565b005b610173610619565b61019f610622565b6101516108d0565b6101516108d6565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102465780601f1061021b57610100808354040283529160200191610246565b820191906000526020600020905b81548152906001019060200180831161022957829003601f168201915b505050505081565b7f00000000000000000000000049114e6dfd52f9038cc87515e1fa55803e262e4381565b7f00000000000000000000000000000000000000000000000000000000601af71781565b7fcbd3ad4fee3fb5d3544ba0ff3e67935073f985d69cc3427a8067921a7b2d676c81565b60007f00000000000000000000000049114e6dfd52f9038cc87515e1fa55803e262e436001600160a01b0316636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b15801561031557600080fd5b505afa158015610329573d6000803e3d6000fd5b505050506040513d602081101561033f57600080fd5b505190505b90565b6040518060a00160405280606e8152602001610a7b606e913981565b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f381565b60025460ff16156103dd576040805162461bcd60e51b815260206004820152601b60248201527a1114d4d4dc195b1b0bdcdc195b1b0b585b1c9958591e4b58d85cdd602a1b604482015290519081900360640190fd5b6002805460ff19166001908117825560005460405163168ccd6760e01b81527f00000000000000000000000049114e6dfd52f9038cc87515e1fa55803e262e436001600160a01b03818116600484019081527fcbd3ad4fee3fb5d3544ba0ff3e67935073f985d69cc3427a8067921a7b2d676c60248501819052606485018690526080604486019081528754600019818a161561010002011698909804608486018190527f000000000000000000000000be286431454714f511008713973d3b053a2d38f3939093169763168ccd6797949691959193909160a40190859080156105085780601f106104dd57610100808354040283529160200191610508565b820191906000526020600020905b8154815290600101906020018083116104eb57829003601f168201915b505095505050505050600060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561056857600080fd5b8101908080516040519392919084600160201b82111561058757600080fd5b90830190602082018581111561059c57600080fd5b8251600160201b8111828201881017156105b557600080fd5b82525081516020918201929091019080838360005b838110156105e25781810151838201526020016105ca565b50505050905090810190601f16801561060f5780820380516001836020036101000a031916815260200191505b5060405250505050565b60025460ff1681565b7f00000000000000000000000000000000000000000000000000000000601af717421115610694576040805162461bcd60e51b815260206004820152601a6024820152791114d4d4dc195b1b0bdcdc195b1b0b5a185ccb595e1c1a5c995960321b604482015290519081900360640190fd5b600054156106e9576040805162461bcd60e51b815260206004820181905260248201527f4453535370656c6c2f7370656c6c2d616c72656164792d7363686564756c6564604482015290519081900360640190fd5b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f36001600160a01b0316636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d602081101561076c57600080fd5b5051420160008190556040516346d2fbbb60e01b81526001600160a01b037f00000000000000000000000049114e6dfd52f9038cc87515e1fa55803e262e43818116600484019081527fcbd3ad4fee3fb5d3544ba0ff3e67935073f985d69cc3427a8067921a7b2d676c602485018190526064850186905260806044860190815260018054600281831615610100026000190190911604608488018190527f000000000000000000000000be286431454714f511008713973d3b053a2d38f3909616976346d2fbbb97959693959194909390929160a40190859080156108935780601f1061086857610100808354040283529160200191610893565b820191906000526020600020905b81548152906001019060200180831161087657829003601f168201915b505095505050505050600060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b50505050565b60005481565b6000805461092a576040805162461bcd60e51b815260206004820152601c60248201527b1114d4d4dc195b1b0bdcdc195b1b0b5b9bdd0b5cd8da19591d5b195960221b604482015290519081900360640190fd5b600054421161093b5760005461093d565b425b90507f00000000000000000000000049114e6dfd52f9038cc87515e1fa55803e262e436001600160a01b0316636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b15801561099857600080fd5b505afa1580156109ac573d6000803e3d6000fd5b505050506040513d60208110156109c257600080fd5b505115610344576007620151808204600301066018610e10830406603c80840481900690840660058410610a1b578360060362015180028501945082601803600e01610e1002850194508082603c020185039450610a73565b60158310610a53578360041415610a35576202a300850194505b82601803600e01610e1002850194508082603c020185039450610a73565b600e831015610a735782600e03610e1002850194508082603c0201850394505b505050509056fe323032312d30312d3034204d616b657244414f20457865637574697665205370656c6c207c20486173683a20307861393031666165623436613239343061373233656433323031376262643162386631626333373439353630633039313164313032646534333338656365336566a2646970667358221220a5b7d687af9dce37765dc35780e303464509a38f8d59ecbb2e97c40b3daf076564736f6c634300060b0033

Deployed Bytecode Sourcemap

7477:3289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7835:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7663:39;;;:::i;:::-;;;;-1:-1:-1;;;;;7663:39:0;;;;;;;;;;;;;;7752:43;;;:::i;:::-;;;;;;;;;;;;;;;;7709:36;;;:::i;8431:111::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;8264:158;;;:::i;7618:38::-;;;:::i;10608:155::-;;;:::i;:::-;;7868:27;;;:::i;10311:289::-;;;:::i;7802:26::-;;;:::i;8917:1386::-;;;:::i;7835:26::-;;;;;;;;;;;;;;;-1:-1:-1;;7835:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7663:39::-;;;:::o;7752:43::-;;;:::o;7709:36::-;;;:::o;8431:111::-;8477:4;8513:6;-1:-1:-1;;;;;8501:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8501:33:0;;-1:-1:-1;8431:111:0;;:::o;8264:158::-;;;;;;;;;;;;;;;;;;;:::o;7618:38::-;;;:::o;10608:155::-;10653:4;;;;10652:5;10644:45;;;;;-1:-1:-1;;;10644:45:0;;;;;;;;;;;;-1:-1:-1;;;10644:45:0;;;;;;;;;;;;;;;10700:4;:11;;-1:-1:-1;;10700:11:0;10707:4;10700:11;;;;;:4;10751:3;10722:33;;-1:-1:-1;;;10722:33:0;;10733:6;-1:-1:-1;;;;;10722:33:0;;;;;;;;;10741:3;10722:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10722:33:0;;;;10700:11;10722:33;;;;;;;;;;;;;:5;:10;;;;;;;10733:6;;10741:3;;10751;;10722:33;;;;;10707:4;;10722:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10722:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10722:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10722:33:0;;;;;;-1:-1:-1;10722:33:0;;;;;;;;;;-1:-1:-1;10722:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10608:155::o;7868:27::-;;;;;;:::o;10311:289::-;10378:10;10359:15;:29;;10351:68;;;;;-1:-1:-1;;;10351:68:0;;;;;;;;;;;;-1:-1:-1;;;10351:68:0;;;;;;;;;;;;;;;10438:3;;:8;10430:53;;;;;-1:-1:-1;;;10430:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10534:5;-1:-1:-1;;;;;10518:28:0;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10518:30:0;10500:15;:48;10494:3;:54;;;10559:33;;-1:-1:-1;;;10559:33:0;;-1:-1:-1;;;;;10570:6:0;10559:33;;;;;;;;;10578:3;10559:33;;;;;;;;;;;;;;;;;;;10583:3;10559:33;;;;;;;;;-1:-1:-1;;10559:33:0;;;;;;;;;;;:5;:10;;;;;;10570:6;;10578:3;;10583;;10500:48;;10559:33;;;;;;10583:3;;10559:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10311:289::o;7802:26::-;;;;:::o;8917:1386::-;8964:16;9001:3;;8993:49;;;;;-1:-1:-1;;;8993:49:0;;;;;;;;;;;;-1:-1:-1;;;8993:49:0;;;;;;;;;;;;;;;9082:3;;9064:15;:21;:45;;9106:3;;9064:45;;;9088:15;9064:45;9053:56;;9158:6;-1:-1:-1;;;;;9146:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9146:33:0;9142:1154;;;9239:1;9225:6;9214:17;;9234:1;9214:21;9213:27;9293:2;9283:7;9272:18;;:23;9350:2;9327:20;;;:25;;;;9384:13;;9425:1;9418:8;;9414:871;;9464:3;9460:1;:7;9471:6;9459:18;9447:30;;;;9552:4;9547:2;:9;9559:2;9547:14;9565:7;9546:26;9534:38;;;;9658:6;9637;9646:9;9637:18;:27;9625:39;;;;9414:871;;;9743:2;9735:4;:10;9731:539;;9774:3;9781:1;9774:8;9770:32;;;9796:6;9784:18;;;;9770:32;9896:4;9891:2;:9;9903:2;9891:14;9909:7;9890:26;9878:38;;;;10004:6;9983;9992:9;9983:18;:27;9971:39;;;;9731:539;;;10069:2;10062:4;:9;10058:212;;;10114:4;10109:2;:9;10122:7;10108:21;10096:33;;;;10222:6;10201;10210:9;10201:18;:27;10189:39;;;;10058:212;9142:1154;;;;8917:1386;:::o

Swarm Source

ipfs://a6a038796d50551db5308149e890a102d9ee2194d81caa32ca05b7f3a5015c46

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.