ETH Price: $3,584.12 (+0.76%)
Gas: 52 Gwei

Contract

0x81A679f98b63B3dDf2F17CB5619f4d6775b3c5ED
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Poke195256132024-03-27 12:19:3525 hrs ago1711541975IN
0x81A679f9...775b3c5ED
0 ETH0.0042765730.96479921
Poke195185092024-03-26 12:06:472 days ago1711454807IN
0x81A679f9...775b3c5ED
0 ETH0.0031405522.73937776
Poke195113352024-03-25 11:56:233 days ago1711367783IN
0x81A679f9...775b3c5ED
0 ETH0.0024237517.54934517
Poke195042052024-03-24 11:48:114 days ago1711280891IN
0x81A679f9...775b3c5ED
0 ETH0.0022743116.48307694
Poke194970802024-03-23 11:44:115 days ago1711194251IN
0x81A679f9...775b3c5ED
0 ETH0.0025906418.77727313
Poke194899372024-03-22 11:42:236 days ago1711107743IN
0x81A679f9...775b3c5ED
0 ETH0.0034099324.71985921
Poke194823062024-03-21 10:00:117 days ago1711015211IN
0x81A679f9...775b3c5ED
0 ETH0.0038989228.23526292
Poke194569332024-03-17 20:26:5910 days ago1710707219IN
0x81A679f9...775b3c5ED
0 ETH0.0037710827.30710662
Poke193765532024-03-06 13:53:2322 days ago1709733203IN
0x81A679f9...775b3c5ED
0 ETH0.0105879276.64246415
Poke193478442024-03-02 13:41:1126 days ago1709386871IN
0x81A679f9...775b3c5ED
0 ETH0.0066069647.8380457
Poke193222112024-02-27 23:38:1129 days ago1709077091IN
0x81A679f9...775b3c5ED
0 ETH0.0055016439.83495819
Poke192844082024-02-22 16:43:1134 days ago1708620191IN
0x81A679f9...775b3c5ED
0 ETH0.010927579.12120035
Poke192762112024-02-21 13:04:3536 days ago1708520675IN
0x81A679f9...775b3c5ED
0 ETH0.0042906431.06933876
Poke192616772024-02-19 12:07:4738 days ago1708344467IN
0x81A679f9...775b3c5ED
0 ETH0.0038632427.99389243
Poke192497832024-02-17 19:54:4739 days ago1708199687IN
0x81A679f9...775b3c5ED
0 ETH0.0024664517.86316916
Poke192094332024-02-12 4:02:3545 days ago1707710555IN
0x81A679f9...775b3c5ED
0 ETH0.0030348921.9991761
Poke191829182024-02-08 10:41:3549 days ago1707388895IN
0x81A679f9...775b3c5ED
0 ETH0.007354653.24214788
Poke191718482024-02-06 21:24:3550 days ago1707254675IN
0x81A679f9...775b3c5ED
0 ETH0.0037739627.351711
Poke191593852024-02-05 3:24:4752 days ago1707103487IN
0x81A679f9...775b3c5ED
0 ETH0.0015113610.94693152
Poke191499532024-02-03 19:37:3553 days ago1706989055IN
0x81A679f9...775b3c5ED
0 ETH0.0017658112.78550802
Poke191381292024-02-02 3:45:2355 days ago1706845523IN
0x81A679f9...775b3c5ED
0 ETH0.0022525816.32985545
Poke191233622024-01-31 2:01:2357 days ago1706666483IN
0x81A679f9...775b3c5ED
0 ETH0.0025589118.51988606
Poke191154002024-01-29 23:17:2358 days ago1706570243IN
0x81A679f9...775b3c5ED
0 ETH0.0025926918.77256803
Poke191053972024-01-28 13:41:2360 days ago1706449283IN
0x81A679f9...775b3c5ED
0 ETH0.0016867112.21382854
Poke190932112024-01-26 20:39:2361 days ago1706301563IN
0x81A679f9...775b3c5ED
0 ETH0.0022238916.10785005
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MedianETHBTC

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2020-04-11
*/

// Verified using https://dapp.tools

// hevm: flattened sources of src/median.sol
pragma solidity >=0.4.23 >=0.5.10;

////// src/median.sol
/* pragma solidity >=0.5.10; */

contract LibNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  usr,
        bytes32  indexed  arg1,
        bytes32  indexed  arg2,
        bytes             data
    ) anonymous;

    modifier note {
        _;
        assembly {
            // log an 'anonymous' event with a constant 6 words of calldata
            // and four indexed topics: selector, caller, arg1 and arg2
            let mark := msize                         // end of memory ensures zero
            mstore(0x40, add(mark, 288))              // update free memory pointer
            mstore(mark, 0x20)                        // bytes type data offset
            mstore(add(mark, 0x20), 224)              // bytes size (padded)
            calldatacopy(add(mark, 0x40), 0, 224)     // bytes payload
            log4(mark, 288,                           // calldata
                 shl(224, shr(224, calldataload(0))), // msg.sig
                 caller,                              // msg.sender
                 calldataload(4),                     // arg1
                 calldataload(36)                     // arg2
                )
        }
    }
}

contract Median is LibNote {

    // --- Auth ---
    mapping (address => uint) public wards;
    function rely(address usr) external note auth { wards[usr] = 1; }
    function deny(address usr) external note auth { wards[usr] = 0; }
    modifier auth {
        require(wards[msg.sender] == 1, "Median/not-authorized");
        _;
    }

    uint128        val;
    uint32  public age;
    bytes32 public constant wat = "ethusd"; // You want to change this every deploy
    uint256 public bar = 1;

    // Authorized oracles, set by an auth
    mapping (address => uint256) public orcl;

    // Whitelisted contracts, set by an auth
    mapping (address => uint256) public bud;

    // Mapping for at most 256 oracles
    mapping (uint8 => address) public slot;

    modifier toll { require(bud[msg.sender] == 1, "Median/contract-not-whitelisted"); _;}

    event LogMedianPrice(uint256 val, uint256 age);

    //Set type of Oracle
    constructor() public {
        wards[msg.sender] = 1;
    }

    function read() external view toll returns (uint256) {
        require(val > 0, "Median/invalid-price-feed");
        return val;
    }

    function peek() external view toll returns (uint256,bool) {
        return (val, val > 0);
    }

    function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
        return ecrecover(
            keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))),
            v, r, s
        );
    }

    function poke(
        uint256[] calldata val_, uint256[] calldata age_,
        uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) external
    {
        require(val_.length == bar, "Median/bar-too-low");

        uint256 bloom = 0;
        uint256 last = 0;
        uint256 zzz = age;

        for (uint i = 0; i < val_.length; i++) {
            // Validate the values were signed by an authorized oracle
            address signer = recover(val_[i], age_[i], v[i], r[i], s[i]);
            // Check that signer is an oracle
            require(orcl[signer] == 1, "Median/invalid-oracle");
            // Price feed age greater than last medianizer age
            require(age_[i] > zzz, "Median/stale-message");
            // Check for ordered values
            require(val_[i] >= last, "Median/messages-not-in-order");
            last = val_[i];
            // Bloom filter for signer uniqueness
            uint8 sl = uint8(uint256(signer) >> 152);
            require((bloom >> sl) % 2 == 0, "Median/oracle-already-signed");
            bloom += uint256(2) ** sl;
        }

        val = uint128(val_[val_.length >> 1]);
        age = uint32(block.timestamp);

        emit LogMedianPrice(val, age);
    }

    function lift(address[] calldata a) external note auth {
        for (uint i = 0; i < a.length; i++) {
            require(a[i] != address(0), "Median/no-oracle-0");
            uint8 s = uint8(uint256(a[i]) >> 152);
            require(slot[s] == address(0), "Median/signer-already-exists");
            orcl[a[i]] = 1;
            slot[s] = a[i];
        }
    }

    function drop(address[] calldata a) external note auth {
       for (uint i = 0; i < a.length; i++) {
            orcl[a[i]] = 0;
            slot[uint8(uint256(a[i]) >> 152)] = address(0);
       }
    }

    function setBar(uint256 bar_) external note auth {
        require(bar_ > 0, "Median/quorum-is-zero");
        require(bar_ % 2 != 0, "Median/quorum-not-odd-number");
        bar = bar_;
    }

    function kiss(address a) external note auth {
        require(a != address(0), "Median/no-contract-0");
        bud[a] = 1;
    }

    function diss(address a) external note auth {
        bud[a] = 0;
    }

    function kiss(address[] calldata a) external note auth {
        for(uint i = 0; i < a.length; i++) {
            require(a[i] != address(0), "Median/no-contract-0");
            bud[a[i]] = 1;
        }
    }

    function diss(address[] calldata a) external note auth {
        for(uint i = 0; i < a.length; i++) {
            bud[a[i]] = 0;
        }
    }
}

contract MedianETHBTC is Median {
    bytes32 public constant wat = "ETHBTC";

    function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
        return ecrecover(
            keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))),
            v, r, s
        );
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"val","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"age","type":"uint256"}],"name":"LogMedianPrice","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"constant":true,"inputs":[],"name":"age","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bud","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"drop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"lift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"orcl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"val_","type":"uint256[]"},{"internalType":"uint256[]","name":"age_","type":"uint256[]"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"poke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"read","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"bar_","type":"uint256"}],"name":"setBar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"slot","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]

6080604090815260016002819055336000908152602081905291909120556115f08061002c6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146105765780639c52a7f1146105e4578063bf353dbb1461060a578063f29c29c414610630578063febb0f7e1461065657610121565b806365c4ce7a146102d257806365fae35e146102f857806389bbb8b21461031e5780638d0e5a9a146104cc5780638ef5eaf01461050857610121565b806346d4577d116100f457806346d4577d1461020c5780634ca299231461027a5780634fce7a2a1461028257806357de26a4146102a857806359e02dd7146102b057610121565b8063020b2e32146101265780631b25b65f1461015e578063262a9dff146101ce578063352d3fba146101ef575b600080fd5b61014c6004803603602081101561013c57600080fd5b50356001600160a01b031661065e565b60405190815260200160405180910390f35b6101cc6004803603602081101561017457600080fd5b810190602081018135600160201b81111561018e57600080fd5b8201836020820111156101a057600080fd5b803590602001918460208302840111600160201b831117156101c157600080fd5b509092509050610672565b005b6101d66107c5565b60405163ffffffff909116815260200160405180910390f35b6101cc6004803603602081101561020557600080fd5b50356107d8565b6101cc6004803603602081101561022257600080fd5b810190602081018135600160201b81111561023c57600080fd5b82018360208201111561024e57600080fd5b803590602001918460208302840111600160201b8311171561026f57600080fd5b509092509050610908565b61014c6109af565b61014c6004803603602081101561029857600080fd5b50356001600160a01b03166109bc565b61014c6109d0565b6102b8610a9f565b604051918252151560208201526040908101905180910390f35b6101cc600480360360208110156102e857600080fd5b50356001600160a01b0316610b18565b6101cc6004803603602081101561030e57600080fd5b50356001600160a01b0316610bbc565b6101cc600480360360a081101561033457600080fd5b810190602081018135600160201b81111561034e57600080fd5b82018360208201111561036057600080fd5b803590602001918460208302840111600160201b8311171561038157600080fd5b919390929091602081019035600160201b81111561039e57600080fd5b8201836020820111156103b057600080fd5b803590602001918460208302840111600160201b831117156103d157600080fd5b919390929091602081019035600160201b8111156103ee57600080fd5b82018360208201111561040057600080fd5b803590602001918460208302840111600160201b8311171561042157600080fd5b919390929091602081019035600160201b81111561043e57600080fd5b82018360208201111561045057600080fd5b803590602001918460208302840111600160201b8311171561047157600080fd5b919390929091602081019035600160201b81111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460208302840111600160201b831117156104c157600080fd5b509092509050610c63565b6104ec600480360360208110156104e257600080fd5b503560ff16610fb0565b6040516001600160a01b03909116815260200160405180910390f35b6101cc6004803603602081101561051e57600080fd5b810190602081018135600160201b81111561053857600080fd5b82018360208201111561054a57600080fd5b803590602001918460208302840111600160201b8311171561056b57600080fd5b509092509050610fcd565b6101cc6004803603602081101561058c57600080fd5b810190602081018135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460208302840111600160201b831117156105d957600080fd5b5090925090506110d4565b6101cc600480360360208110156105fa57600080fd5b50356001600160a01b03166112e9565b61014c6004803603602081101561062057600080fd5b50356001600160a01b031661138d565b6101cc6004803603602081101561064657600080fd5b50356001600160a01b03166113a1565b61014c611499565b600360205280600052604060002054905081565b336000908152602081905260409020546001146106c35760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b818110156107895760008383838181106106dc57fe5b905060200201356001600160a01b03166001600160a01b0316141561073e5760405162461bcd60e51b815260206004820152601460248201527304d656469616e2f6e6f2d636f6e74726163742d360641b604482015260640160405180910390fd5b60016004600085858581811061075057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020556001016106c6565b505961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a4505050565b600154600160801b900463ffffffff1681565b336000908152602081905260409020546001146108295760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b600081116108755760405162461bcd60e51b81526020600482015260156024820152744d656469616e2f71756f72756d2d69732d7a65726f60581b604482015260640160405180910390fd5b600281066108c95760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d62657200000000604482015260640160405180910390fd5b60028190555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b336000908152602081905260409020546001146109595760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b818110156107895760006004600085858581811061097657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000205560010161095c565b6545544842544360d01b81565b600460205280600052604060002054905081565b33600090815260046020526040812054600114610a335760405162461bcd60e51b815260206004820152601f60248201527f4d656469616e2f636f6e74726163742d6e6f742d77686974656c697374656400604482015260640160405180910390fd5b6001546001600160801b0316610a8f5760405162461bcd60e51b815260206004820152601960248201527f4d656469616e2f696e76616c69642d70726963652d6665656400000000000000604482015260640160405180910390fd5b506001546001600160801b031690565b3360009081526004602052806040812054600114610b035760405162461bcd60e51b815260206004820152601f60248201527f4d656469616e2f636f6e74726163742d6e6f742d77686974656c697374656400604482015260640160405180910390fd5b50506001546001600160801b03168015159091565b33600090815260208190526040902054600114610b695760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166000908152600460205260408120555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b33600090815260208190526040902054600114610c0d5760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166000908152602081905260019060409020555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b6002548914610cad5760405162461bcd60e51b81526020600482015260126024820152714d656469616e2f6261722d746f6f2d6c6f7760701b604482015260640160405180910390fd5b6001546000908190600160801b900463ffffffff16815b8c811015610eeb576000610d388f8f84818110610cdd57fe5b905060200201358e8e85818110610cf057fe5b905060200201358d8d86818110610d0357fe5b9050602002013560ff168c8c87818110610d1957fe5b905060200201358b8b88818110610d2c57fe5b9050602002013561149f565b6001600160a01b038116600090815260036020529091506040902054600114610d9f5760405162461bcd60e51b81526020600482015260156024820152744d656469616e2f696e76616c69642d6f7261636c6560581b604482015260640160405180910390fd5b828d8d84818110610dac57fe5b9050602002013511610dfb5760405162461bcd60e51b81526020600482015260146024820152734d656469616e2f7374616c652d6d65737361676560601b604482015260640160405180910390fd5b838f8f84818110610e0857fe5b905060200201351015610e615760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f6d657373616765732d6e6f742d696e2d6f7264657200000000604482015260640160405180910390fd5b8e8e83818110610e6d57fe5b602002919091013594505060ff609882901c16600286821c0615610ed75760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f6f7261636c652d616c72656164792d7369676e656400000000604482015260640160405180910390fd5b60ff1660020a949094019350600101610cc4565b508c8c600181901c818110610efc57fe5b600180546fffffffffffffffffffffffffffffffff191660209290920293909301356001600160801b039081169190911763ffffffff60801b1916600160801b4263ffffffff908116820292909217948590557fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c949283169350909104166040516001600160801b03909216825263ffffffff1660208201526040908101905180910390a150505050505050505050505050565b6005602052806000526040600020546001600160a01b0316905081565b3360009081526020819052604090205460011461101e5760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b818110156107895760006003600085858581811061103b57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020556000600581609886868681811061107f57fe5b905060200201356001600160a01b03166001600160a01b0316901c60ff1660ff16815260200190815260200160002080546001600160a01b0319166001600160a01b0392909216919091179055600101611021565b336000908152602081905260409020546001146111255760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b8181101561078957600083838381811061113e57fe5b905060200201356001600160a01b03166001600160a01b0316141561119e5760405162461bcd60e51b815260206004820152601260248201527104d656469616e2f6e6f2d6f7261636c652d360741b604482015260640160405180910390fd5b600060988484848181106111ae57fe5b905060200201356001600160a01b03166001600160a01b0316901c905060006001600160a01b0316600560008360ff1660ff168152602001908152602001600020546001600160a01b03161461124a5760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f7369676e65722d616c72656164792d65786973747300000000604482015260640160405180910390fd5b60016003600086868681811061125c57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000205583838381811061129957fe5b905060200201356001600160a01b0316600560008360ff1660ff16815260200190815260200160002080546001600160a01b0319166001600160a01b039290921691909117905550600101611128565b3360009081526020819052604090205460011461133a5760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166000908152602081905260408120555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b600060205280600052604060002054905081565b336000908152602081905260409020546001146113f25760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166114435760405162461bcd60e51b815260206004820152601460248201527304d656469616e2f6e6f2d636f6e74726163742d360641b604482015260640160405180910390fd5b6001600160a01b0381166000908152600460205260019060409020555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b60025481565b6000600186866545544842544360d01b604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c810191909152605c016040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611587573d6000803e3d6000fd5b50505060206040510351969550505050505056fe4d656469616e2f6e6f742d617574686f72697a65640000000000000000000000a265627a7a723158205d97cd29080a662659b0148ece1d69f65d038478b1dc3db0e0a9a5b3f31c8c7064736f6c634300050c0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146105765780639c52a7f1146105e4578063bf353dbb1461060a578063f29c29c414610630578063febb0f7e1461065657610121565b806365c4ce7a146102d257806365fae35e146102f857806389bbb8b21461031e5780638d0e5a9a146104cc5780638ef5eaf01461050857610121565b806346d4577d116100f457806346d4577d1461020c5780634ca299231461027a5780634fce7a2a1461028257806357de26a4146102a857806359e02dd7146102b057610121565b8063020b2e32146101265780631b25b65f1461015e578063262a9dff146101ce578063352d3fba146101ef575b600080fd5b61014c6004803603602081101561013c57600080fd5b50356001600160a01b031661065e565b60405190815260200160405180910390f35b6101cc6004803603602081101561017457600080fd5b810190602081018135600160201b81111561018e57600080fd5b8201836020820111156101a057600080fd5b803590602001918460208302840111600160201b831117156101c157600080fd5b509092509050610672565b005b6101d66107c5565b60405163ffffffff909116815260200160405180910390f35b6101cc6004803603602081101561020557600080fd5b50356107d8565b6101cc6004803603602081101561022257600080fd5b810190602081018135600160201b81111561023c57600080fd5b82018360208201111561024e57600080fd5b803590602001918460208302840111600160201b8311171561026f57600080fd5b509092509050610908565b61014c6109af565b61014c6004803603602081101561029857600080fd5b50356001600160a01b03166109bc565b61014c6109d0565b6102b8610a9f565b604051918252151560208201526040908101905180910390f35b6101cc600480360360208110156102e857600080fd5b50356001600160a01b0316610b18565b6101cc6004803603602081101561030e57600080fd5b50356001600160a01b0316610bbc565b6101cc600480360360a081101561033457600080fd5b810190602081018135600160201b81111561034e57600080fd5b82018360208201111561036057600080fd5b803590602001918460208302840111600160201b8311171561038157600080fd5b919390929091602081019035600160201b81111561039e57600080fd5b8201836020820111156103b057600080fd5b803590602001918460208302840111600160201b831117156103d157600080fd5b919390929091602081019035600160201b8111156103ee57600080fd5b82018360208201111561040057600080fd5b803590602001918460208302840111600160201b8311171561042157600080fd5b919390929091602081019035600160201b81111561043e57600080fd5b82018360208201111561045057600080fd5b803590602001918460208302840111600160201b8311171561047157600080fd5b919390929091602081019035600160201b81111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460208302840111600160201b831117156104c157600080fd5b509092509050610c63565b6104ec600480360360208110156104e257600080fd5b503560ff16610fb0565b6040516001600160a01b03909116815260200160405180910390f35b6101cc6004803603602081101561051e57600080fd5b810190602081018135600160201b81111561053857600080fd5b82018360208201111561054a57600080fd5b803590602001918460208302840111600160201b8311171561056b57600080fd5b509092509050610fcd565b6101cc6004803603602081101561058c57600080fd5b810190602081018135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460208302840111600160201b831117156105d957600080fd5b5090925090506110d4565b6101cc600480360360208110156105fa57600080fd5b50356001600160a01b03166112e9565b61014c6004803603602081101561062057600080fd5b50356001600160a01b031661138d565b6101cc6004803603602081101561064657600080fd5b50356001600160a01b03166113a1565b61014c611499565b600360205280600052604060002054905081565b336000908152602081905260409020546001146106c35760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b818110156107895760008383838181106106dc57fe5b905060200201356001600160a01b03166001600160a01b0316141561073e5760405162461bcd60e51b815260206004820152601460248201527304d656469616e2f6e6f2d636f6e74726163742d360641b604482015260640160405180910390fd5b60016004600085858581811061075057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020556001016106c6565b505961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a4505050565b600154600160801b900463ffffffff1681565b336000908152602081905260409020546001146108295760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b600081116108755760405162461bcd60e51b81526020600482015260156024820152744d656469616e2f71756f72756d2d69732d7a65726f60581b604482015260640160405180910390fd5b600281066108c95760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d62657200000000604482015260640160405180910390fd5b60028190555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b336000908152602081905260409020546001146109595760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b818110156107895760006004600085858581811061097657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000205560010161095c565b6545544842544360d01b81565b600460205280600052604060002054905081565b33600090815260046020526040812054600114610a335760405162461bcd60e51b815260206004820152601f60248201527f4d656469616e2f636f6e74726163742d6e6f742d77686974656c697374656400604482015260640160405180910390fd5b6001546001600160801b0316610a8f5760405162461bcd60e51b815260206004820152601960248201527f4d656469616e2f696e76616c69642d70726963652d6665656400000000000000604482015260640160405180910390fd5b506001546001600160801b031690565b3360009081526004602052806040812054600114610b035760405162461bcd60e51b815260206004820152601f60248201527f4d656469616e2f636f6e74726163742d6e6f742d77686974656c697374656400604482015260640160405180910390fd5b50506001546001600160801b03168015159091565b33600090815260208190526040902054600114610b695760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166000908152600460205260408120555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b33600090815260208190526040902054600114610c0d5760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166000908152602081905260019060409020555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b6002548914610cad5760405162461bcd60e51b81526020600482015260126024820152714d656469616e2f6261722d746f6f2d6c6f7760701b604482015260640160405180910390fd5b6001546000908190600160801b900463ffffffff16815b8c811015610eeb576000610d388f8f84818110610cdd57fe5b905060200201358e8e85818110610cf057fe5b905060200201358d8d86818110610d0357fe5b9050602002013560ff168c8c87818110610d1957fe5b905060200201358b8b88818110610d2c57fe5b9050602002013561149f565b6001600160a01b038116600090815260036020529091506040902054600114610d9f5760405162461bcd60e51b81526020600482015260156024820152744d656469616e2f696e76616c69642d6f7261636c6560581b604482015260640160405180910390fd5b828d8d84818110610dac57fe5b9050602002013511610dfb5760405162461bcd60e51b81526020600482015260146024820152734d656469616e2f7374616c652d6d65737361676560601b604482015260640160405180910390fd5b838f8f84818110610e0857fe5b905060200201351015610e615760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f6d657373616765732d6e6f742d696e2d6f7264657200000000604482015260640160405180910390fd5b8e8e83818110610e6d57fe5b602002919091013594505060ff609882901c16600286821c0615610ed75760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f6f7261636c652d616c72656164792d7369676e656400000000604482015260640160405180910390fd5b60ff1660020a949094019350600101610cc4565b508c8c600181901c818110610efc57fe5b600180546fffffffffffffffffffffffffffffffff191660209290920293909301356001600160801b039081169190911763ffffffff60801b1916600160801b4263ffffffff908116820292909217948590557fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c949283169350909104166040516001600160801b03909216825263ffffffff1660208201526040908101905180910390a150505050505050505050505050565b6005602052806000526040600020546001600160a01b0316905081565b3360009081526020819052604090205460011461101e5760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b818110156107895760006003600085858581811061103b57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020556000600581609886868681811061107f57fe5b905060200201356001600160a01b03166001600160a01b0316901c60ff1660ff16815260200190815260200160002080546001600160a01b0319166001600160a01b0392909216919091179055600101611021565b336000908152602081905260409020546001146111255760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b60005b8181101561078957600083838381811061113e57fe5b905060200201356001600160a01b03166001600160a01b0316141561119e5760405162461bcd60e51b815260206004820152601260248201527104d656469616e2f6e6f2d6f7261636c652d360741b604482015260640160405180910390fd5b600060988484848181106111ae57fe5b905060200201356001600160a01b03166001600160a01b0316901c905060006001600160a01b0316600560008360ff1660ff168152602001908152602001600020546001600160a01b03161461124a5760405162461bcd60e51b815260206004820152601c60248201527f4d656469616e2f7369676e65722d616c72656164792d65786973747300000000604482015260640160405180910390fd5b60016003600086868681811061125c57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000205583838381811061129957fe5b905060200201356001600160a01b0316600560008360ff1660ff16815260200190815260200160002080546001600160a01b0319166001600160a01b039290921691909117905550600101611128565b3360009081526020819052604090205460011461133a5760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166000908152602081905260408120555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b600060205280600052604060002054905081565b336000908152602081905260409020546001146113f25760405162461bcd60e51b8152602060048201526015602482015260008051602061159c833981519152604482015260640160405180910390fd5b6001600160a01b0381166114435760405162461bcd60e51b815260206004820152601460248201527304d656469616e2f6e6f2d636f6e74726163742d360641b604482015260640160405180910390fd5b6001600160a01b0381166000908152600460205260019060409020555961012081016040526020815260e0602082015260e060006040830137602435600435336001600160e01b03196000351661012085a45050565b60025481565b6000600186866545544842544360d01b604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c810191909152605c016040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611587573d6000803e3d6000fd5b50505060206040510351969550505050505056fe4d656469616e2f6e6f742d617574686f72697a65640000000000000000000000a265627a7a723158205d97cd29080a662659b0148ece1d69f65d038478b1dc3db0e0a9a5b3f31c8c7064736f6c634300050c0032

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  ]

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.