ETH Price: $2,863.09 (-2.72%)

Contract

0x9d1F623d8708f950C266b422D5Bffa5E244A08e1

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Store Values199617742025-06-23 20:22:13216 days ago1750710133IN
0x9d1F623d...E244A08e1
0 ETH0.000000620.00199224
Store Values199581662025-06-23 19:22:05216 days ago1750706525IN
0x9d1F623d...E244A08e1
0 ETH0.000000480.00190522
Store Values199545592025-06-23 18:21:58216 days ago1750702918IN
0x9d1F623d...E244A08e1
0 ETH0.000000580.00200071
Store Values199509532025-06-23 17:21:52216 days ago1750699312IN
0x9d1F623d...E244A08e1
0 ETH0.000000540.00201959
Store Values199473462025-06-23 16:21:45216 days ago1750695705IN
0x9d1F623d...E244A08e1
0 ETH0.000000590.00201254
Store Values199437392025-06-23 15:21:38216 days ago1750692098IN
0x9d1F623d...E244A08e1
0 ETH0.000000470.00128452
Store Values199401312025-06-23 14:21:30216 days ago1750688490IN
0x9d1F623d...E244A08e1
0 ETH0.000000680.00072404
Store Values199365252025-06-23 13:21:24216 days ago1750684884IN
0x9d1F623d...E244A08e1
0 ETH0.000000040.00000106
Store Values199329182025-06-23 12:21:17216 days ago1750681277IN
0x9d1F623d...E244A08e1
0 ETH0.000000040.00000071
Store Values199293112025-06-23 11:21:10216 days ago1750677670IN
0x9d1F623d...E244A08e1
0 ETH0.000000020.00000066
Store Values199257042025-06-23 10:21:03216 days ago1750674063IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.0000007
Store Values199220982025-06-23 9:20:57216 days ago1750670457IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.00000069
Store Values199184912025-06-23 8:20:50216 days ago1750666850IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.00000099
Store Values199148852025-06-23 7:20:44216 days ago1750663244IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.00000103
Store Values199112792025-06-23 6:20:38216 days ago1750659638IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.00000064
Store Values199076732025-06-23 5:20:32216 days ago1750656032IN
0x9d1F623d...E244A08e1
0 ETH00.00000062
Store Values199040672025-06-23 4:20:26217 days ago1750652426IN
0x9d1F623d...E244A08e1
0 ETH00.00000063
Store Values199004602025-06-23 3:20:19217 days ago1750648819IN
0x9d1F623d...E244A08e1
0 ETH0.000000020.00000048
Store Values198968532025-06-23 2:20:12217 days ago1750645212IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.00000068
Store Values198932462025-06-23 1:20:05217 days ago1750641605IN
0x9d1F623d...E244A08e1
0 ETH0.000000010.00000304
Store Values198896382025-06-23 0:19:57217 days ago1750637997IN
0x9d1F623d...E244A08e1
0 ETH0.000000030.00002056
Store Values198860322025-06-22 23:19:51217 days ago1750634391IN
0x9d1F623d...E244A08e1
0 ETH0.000000120.0004004
Store Values198824262025-06-22 22:19:45217 days ago1750630785IN
0x9d1F623d...E244A08e1
0 ETH0.000000410.00168633
Store Values198788192025-06-22 21:19:38217 days ago1750627178IN
0x9d1F623d...E244A08e1
0 ETH0.000000430.00168525
Store Values198752122025-06-22 20:19:31217 days ago1750623571IN
0x9d1F623d...E244A08e1
0 ETH0.000001830.00766552
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Oracle

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
cancun EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract Oracle {
    address private owner;

    mapping(address => bool) private signers;
    mapping(uint88 => Record) private pStore;

    constructor() {
        owner = msg.sender;
    }

    struct Record {
        uint64 height;
        uint48 timestamp;
        uint240 value;
    }

    // owner override for fixing values
    function ownerSetValues(
        uint8 systemid,
        uint64 cid,
        uint16 typ,
        uint48 timestamp,
        uint64 height,
        uint240 value
    ) public {
        assert(owner == msg.sender);

        Record storage r = pStore[getKey(systemid, cid, typ)];
        r.timestamp = timestamp;
        r.height = height;
        r.value = value;
    }

    function setSignerAddress(address s) public {
        setSignerAddress(s, true);
    }

    function setSignerAddress(address s, bool access) public {
        assert(owner == msg.sender);
        signers[s] = access;
    }

    function transferOwnership(address o) public {
        assert(owner == msg.sender);
        owner = o;
    }

    function storeValues(bytes memory dat) public {
        uint init;
        uint offset;
        assembly {
            init := add(dat, 0x20) // skip bytes header (length parameter)
            offset := init
        }

        // header
        uint8 version;
        uint16 payloadlen;
        uint88 scid;
        uint48 ts;
        uint64 height;
        // payload
        uint256 val;
        uint16 typ;

        address recovered;
        while (true) {
            if (offset >= init + dat.length) {
                break;
            }

            (version, payloadlen, scid, ts, height) = decodeHeader(offset);
            if (version == 0) {
                break;
            }

            recovered = checkSignature(payloadlen, offset);
            require(recovered != address(0), "ECDSA: invalid signature");
            require(signers[recovered], "invalid signer");

            uint start = offset + 0x20; // skip header
            uint8 j;
            while (j < payloadlen) {
                assembly {
                    val := mload(add(start, mul(0x20, j)))
                    typ := shl(0x8, byte(0, val))
                    typ := add(typ, byte(1, val))
                }
                scid = appendType(scid, typ);
                Record storage rec = pStore[scid];

                if (rec.height < height) {
                    pStore[scid] = Record(height, ts, uint240(val));
                } else if (rec.height == height && rec.timestamp < ts) {
                    pStore[scid] = Record(height, ts, uint240(val));
                }
                j++;
            }

            offset += (payloadlen + 4) * 0x20; // ( payload + header + signature )
        }
    }

    function decodeHeader(
        uint offset
    )
        private
        pure
        returns (
            uint8 version,
            uint16 payloadlen,
            uint88 scid,
            uint48 ts,
            uint64 height
        )
    {
        uint64 cid;
        uint8 sid;
        bytes32 buf;
        assembly {
            // HEADER
            buf := mload(offset)

            // decode version
            version := buf

            // shift 8 + decode height
            buf := shr(0x08, buf)
            height := buf

            // shift 32 + decode chain id
            buf := shr(0x40, buf)
            cid := buf

            // shift 32 + decode service id
            buf := shr(0x40, buf)
            sid := buf

            // shift 8 + decode timestamp
            buf := shr(0x08, buf)
            ts := buf

            // shift 48 + decode estimations length
            buf := shr(0x30, buf)
            payloadlen := buf

            scid := sid
            scid := shl(0x40, scid)
            scid := cid
            scid := shl(0x10, scid)
        }

        return (version, payloadlen, scid, ts, height);
    }

    function checkSignature(
        uint16 payloadlen,
        uint offset
    ) private pure returns (address recovered) {
        bytes32 r;
        bytes32 s;
        uint8 v;
        bytes32 kec;

        assembly {
            // SIGNATURE

            // calc signature's contents length
            // (header + payload  ( 0x20 + 0x20 * num. elements ) )
            let siglen := add(0x20, mul(0x20, payloadlen))

            // hash content
            kec := keccak256(offset, siglen)

            // shift + decode r
            offset := add(offset, siglen)
            r := mload(offset)

            // shift + decode s
            offset := add(offset, 0x20)
            s := mload(offset)

            // shift + decode v
            offset := add(offset, 0x20)
            v := byte(0, mload(offset))
        }

        if (v != 27 && v != 28) {
            revert("invalid signer v param");
        }

        recovered = ecrecover(kec, v, r, s);
    }

    function appendType(
        uint88 scida,
        uint16 typ
    ) private pure returns (uint88 scidb) {
        assembly {
            scidb := shr(0x10, scida)
            scidb := shl(0x10, scidb)
            scidb := add(scidb, typ)
        }
        return scidb;
    }

    function get(
        uint8 systemid,
        uint64 cid,
        uint16 typ
    ) public view returns (uint256 value, uint64 height, uint48 timestamp) {
        Record storage s = pStore[getKey(systemid, cid, typ)];
        return (uint256(s.value), s.height, s.timestamp);
    }

    function getValue(
        uint8 systemid,
        uint64 cid,
        uint16 typ
    ) public view returns (uint256 value) {
        Record storage s = pStore[getKey(systemid, cid, typ)];
        return uint256(s.value);
    }

    function getRecord(
        uint8 systemid,
        uint64 cid,
        uint16 typ
    ) public view returns (Record memory r) {
        return pStore[getKey(systemid, cid, typ)];
    }

    function getInTime(
        uint8 systemid,
        uint64 cid,
        uint16 typ,
        uint48 tin
    ) public view returns (uint256 value, uint64 height, uint48 timestamp) {
        Record storage s = pStore[getKey(systemid, cid, typ)];
        if (s.timestamp >= uint48(block.timestamp) * 1000 - tin) {
            return (uint256(s.value), s.height, s.timestamp);
        }

        return (0, 0, 0);
    }

    function getKey(
        uint8 sid,
        uint64 cid,
        uint16 typ
    ) private pure returns (uint88 scid) {
        assembly {
            scid := sid
            scid := shl(0x40, scid)

            scid := add(scid, cid)
            scid := shl(0x10, scid)

            scid := add(scid, typ)
        }
        return (scid);
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"systemid","type":"uint8"},{"internalType":"uint64","name":"cid","type":"uint64"},{"internalType":"uint16","name":"typ","type":"uint16"}],"name":"get","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"systemid","type":"uint8"},{"internalType":"uint64","name":"cid","type":"uint64"},{"internalType":"uint16","name":"typ","type":"uint16"},{"internalType":"uint48","name":"tin","type":"uint48"}],"name":"getInTime","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"systemid","type":"uint8"},{"internalType":"uint64","name":"cid","type":"uint64"},{"internalType":"uint16","name":"typ","type":"uint16"}],"name":"getRecord","outputs":[{"components":[{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"uint240","name":"value","type":"uint240"}],"internalType":"struct Oracle.Record","name":"r","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"systemid","type":"uint8"},{"internalType":"uint64","name":"cid","type":"uint64"},{"internalType":"uint16","name":"typ","type":"uint16"}],"name":"getValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"systemid","type":"uint8"},{"internalType":"uint64","name":"cid","type":"uint64"},{"internalType":"uint16","name":"typ","type":"uint16"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"uint64","name":"height","type":"uint64"},{"internalType":"uint240","name":"value","type":"uint240"}],"name":"ownerSetValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"s","type":"address"}],"name":"setSignerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"s","type":"address"},{"internalType":"bool","name":"access","type":"bool"}],"name":"setSignerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"dat","type":"bytes"}],"name":"storeValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"o","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052348015600e575f5ffd5b505f80546001600160a01b03191633179055610cd58061002d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80637909397811610063578063790939781461015d578063c84326df14610170578063db66b49a14610183578063f2fde38b1461024d578063fbdf8c0814610260575f5ffd5b80630385389d14610094578063046dc16614610122578063105d5389146101375780633ad0288e1461014a575b5f5ffd5b6100f26100a2366004610971565b604092831b9190910160101b016001600160581b03165f908152600260205220600181015490546001600160f01b03909116916001600160401b03821691600160401b900465ffffffffffff1690565b604080519384526001600160401b03909216602084015265ffffffffffff16908201526060015b60405180910390f35b6101356101303660046109c7565b6102ac565b005b6101356101453660046109fb565b6102ba565b610135610158366004610aab565b61067b565b6100f261016b366004610af9565b6106be565b61013561017e366004610b4a565b610761565b610211610191366004610971565b60408051606080820183525f808352602080840182905292840181905295831b9490940160101b929092016001600160581b0316845260028252928390208351928301845280546001600160401b0381168452600160401b900465ffffffffffff1691830191909152600101546001600160f01b03169181019190915290565b6040805182516001600160401b0316815260208084015165ffffffffffff1690820152918101516001600160f01b031690820152606001610119565b61013561025b3660046109c7565b610807565b61029e61026e366004610971565b6001600160581b03604093841b9290920160101b01165f908152600260205220600101546001600160f01b031690565b604051908152602001610119565b6102b781600161067b565b50565b60208101805f808080808080805b8a516102d4908b610bdd565b89101561066e578851975060c088901c9650603888901c62010000600160c81b03169550609088901c9450600888901c935060ff88161561066e57610319878a610841565b90506001600160a01b0381166103765760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064015b60405180910390fd5b6001600160a01b0381165f9081526001602052604090205460ff166103ce5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b604482015260640161036d565b5f6103da8a6020610bdd565b90505f5b8861ffff168160ff16101561064157602081028201519450600185901a5f86901a60081b01935061040f8885610926565b6001600160581b0381165f9081526002602052604090208054919950906001600160401b038089169116101561051f576040518060600160405280886001600160401b031681526020018965ffffffffffff168152602001876001600160f01b031681525060025f8b6001600160581b03166001600160581b031681526020019081526020015f205f820151815f015f6101000a8154816001600160401b0302191690836001600160401b031602179055506020820151815f0160086101000a81548165ffffffffffff021916908365ffffffffffff1602179055506040820151816001015f6101000a8154816001600160f01b0302191690836001600160f01b0316021790555090505061062e565b80546001600160401b03888116911614801561054d5750805465ffffffffffff808a16600160401b90920416105b1561062e576040518060600160405280886001600160401b031681526020018965ffffffffffff168152602001876001600160f01b031681525060025f8b6001600160581b03166001600160581b031681526020019081526020015f205f820151815f015f6101000a8154816001600160401b0302191690836001600160401b031602179055506020820151815f0160086101000a81548165ffffffffffff021916908365ffffffffffff1602179055506040820151816001015f6101000a8154816001600160f01b0302191690836001600160f01b031602179055509050505b8161063881610bf0565b925050506103de565b61064c896004610c0e565b610657906020610c28565b6106659061ffff168c610bdd565b9a5050506102c8565b5050505050505050505050565b5f546001600160a01b0316331461069457610694610c4c565b6001600160a01b03919091165f908152600160205260409020805460ff1916911515919091179055565b604084811b840160101b83016001600160581b03165f908152600260205290812081908190846106f0426103e8610c60565b6106fa9190610c81565b815465ffffffffffff918216600160401b9091049091161061074c57600181015490546001600160f01b0390911693506001600160401b0381169250600160401b900465ffffffffffff169050610757565b5f5f5f935093509350505b9450945094915050565b5f546001600160a01b0316331461077a5761077a610c4c565b604095861b9490940160101b929092016001600160581b03165f90815260026020529390932080546dffffffffffffffffffffffffffff1916600160401b65ffffffffffff9095169490940267ffffffffffffffff1916939093176001600160401b03909116178255600190910180546001600160f01b0319166001600160f01b03909216919091179055565b5f546001600160a01b0316331461082057610820610c4c565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6020808302808201832092019081015160408201516060909201805190935f9391841a90601b821480159061087a57508160ff16601c14155b156108c05760405162461bcd60e51b8152602060048201526016602482015275696e76616c6964207369676e6572207620706172616d60501b604482015260640161036d565b604080515f81526020810180835283905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610910573d5f5f3e3d5ffd5b5050604051601f19015198975050505050505050565b61ffff19821681015b92915050565b803560ff81168114610945575f5ffd5b919050565b80356001600160401b0381168114610945575f5ffd5b803561ffff81168114610945575f5ffd5b5f5f5f60608486031215610983575f5ffd5b61098c84610935565b925061099a6020850161094a565b91506109a860408501610960565b90509250925092565b80356001600160a01b0381168114610945575f5ffd5b5f602082840312156109d7575f5ffd5b6109e0826109b1565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610a0b575f5ffd5b81356001600160401b03811115610a20575f5ffd5b8201601f81018413610a30575f5ffd5b80356001600160401b03811115610a4957610a496109e7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610a7757610a776109e7565b604052818152828201602001861015610a8e575f5ffd5b816020840160208301375f91810160200191909152949350505050565b5f5f60408385031215610abc575f5ffd5b610ac5836109b1565b915060208301358015158114610ad9575f5ffd5b809150509250929050565b803565ffffffffffff81168114610945575f5ffd5b5f5f5f5f60808587031215610b0c575f5ffd5b610b1585610935565b9350610b236020860161094a565b9250610b3160408601610960565b9150610b3f60608601610ae4565b905092959194509250565b5f5f5f5f5f5f60c08789031215610b5f575f5ffd5b610b6887610935565b9550610b766020880161094a565b9450610b8460408801610960565b9350610b9260608801610ae4565b9250610ba06080880161094a565b915060a08701356001600160f01b0381168114610bbb575f5ffd5b809150509295509295509295565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561092f5761092f610bc9565b5f60ff821660ff8103610c0557610c05610bc9565b60010192915050565b61ffff818116838216019081111561092f5761092f610bc9565b61ffff8181168382160290811690818114610c4557610c45610bc9565b5092915050565b634e487b7160e01b5f52600160045260245ffd5b65ffffffffffff8181168382160290811690818114610c4557610c45610bc9565b65ffffffffffff828116828216039081111561092f5761092f610bc956fea26469706673582212202fc48cbfe7bdcae7142fe1b69e91eac426e8d4861de40bd305caf9ce23a53f1364736f6c634300081c0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80637909397811610063578063790939781461015d578063c84326df14610170578063db66b49a14610183578063f2fde38b1461024d578063fbdf8c0814610260575f5ffd5b80630385389d14610094578063046dc16614610122578063105d5389146101375780633ad0288e1461014a575b5f5ffd5b6100f26100a2366004610971565b604092831b9190910160101b016001600160581b03165f908152600260205220600181015490546001600160f01b03909116916001600160401b03821691600160401b900465ffffffffffff1690565b604080519384526001600160401b03909216602084015265ffffffffffff16908201526060015b60405180910390f35b6101356101303660046109c7565b6102ac565b005b6101356101453660046109fb565b6102ba565b610135610158366004610aab565b61067b565b6100f261016b366004610af9565b6106be565b61013561017e366004610b4a565b610761565b610211610191366004610971565b60408051606080820183525f808352602080840182905292840181905295831b9490940160101b929092016001600160581b0316845260028252928390208351928301845280546001600160401b0381168452600160401b900465ffffffffffff1691830191909152600101546001600160f01b03169181019190915290565b6040805182516001600160401b0316815260208084015165ffffffffffff1690820152918101516001600160f01b031690820152606001610119565b61013561025b3660046109c7565b610807565b61029e61026e366004610971565b6001600160581b03604093841b9290920160101b01165f908152600260205220600101546001600160f01b031690565b604051908152602001610119565b6102b781600161067b565b50565b60208101805f808080808080805b8a516102d4908b610bdd565b89101561066e578851975060c088901c9650603888901c62010000600160c81b03169550609088901c9450600888901c935060ff88161561066e57610319878a610841565b90506001600160a01b0381166103765760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064015b60405180910390fd5b6001600160a01b0381165f9081526001602052604090205460ff166103ce5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b604482015260640161036d565b5f6103da8a6020610bdd565b90505f5b8861ffff168160ff16101561064157602081028201519450600185901a5f86901a60081b01935061040f8885610926565b6001600160581b0381165f9081526002602052604090208054919950906001600160401b038089169116101561051f576040518060600160405280886001600160401b031681526020018965ffffffffffff168152602001876001600160f01b031681525060025f8b6001600160581b03166001600160581b031681526020019081526020015f205f820151815f015f6101000a8154816001600160401b0302191690836001600160401b031602179055506020820151815f0160086101000a81548165ffffffffffff021916908365ffffffffffff1602179055506040820151816001015f6101000a8154816001600160f01b0302191690836001600160f01b0316021790555090505061062e565b80546001600160401b03888116911614801561054d5750805465ffffffffffff808a16600160401b90920416105b1561062e576040518060600160405280886001600160401b031681526020018965ffffffffffff168152602001876001600160f01b031681525060025f8b6001600160581b03166001600160581b031681526020019081526020015f205f820151815f015f6101000a8154816001600160401b0302191690836001600160401b031602179055506020820151815f0160086101000a81548165ffffffffffff021916908365ffffffffffff1602179055506040820151816001015f6101000a8154816001600160f01b0302191690836001600160f01b031602179055509050505b8161063881610bf0565b925050506103de565b61064c896004610c0e565b610657906020610c28565b6106659061ffff168c610bdd565b9a5050506102c8565b5050505050505050505050565b5f546001600160a01b0316331461069457610694610c4c565b6001600160a01b03919091165f908152600160205260409020805460ff1916911515919091179055565b604084811b840160101b83016001600160581b03165f908152600260205290812081908190846106f0426103e8610c60565b6106fa9190610c81565b815465ffffffffffff918216600160401b9091049091161061074c57600181015490546001600160f01b0390911693506001600160401b0381169250600160401b900465ffffffffffff169050610757565b5f5f5f935093509350505b9450945094915050565b5f546001600160a01b0316331461077a5761077a610c4c565b604095861b9490940160101b929092016001600160581b03165f90815260026020529390932080546dffffffffffffffffffffffffffff1916600160401b65ffffffffffff9095169490940267ffffffffffffffff1916939093176001600160401b03909116178255600190910180546001600160f01b0319166001600160f01b03909216919091179055565b5f546001600160a01b0316331461082057610820610c4c565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6020808302808201832092019081015160408201516060909201805190935f9391841a90601b821480159061087a57508160ff16601c14155b156108c05760405162461bcd60e51b8152602060048201526016602482015275696e76616c6964207369676e6572207620706172616d60501b604482015260640161036d565b604080515f81526020810180835283905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610910573d5f5f3e3d5ffd5b5050604051601f19015198975050505050505050565b61ffff19821681015b92915050565b803560ff81168114610945575f5ffd5b919050565b80356001600160401b0381168114610945575f5ffd5b803561ffff81168114610945575f5ffd5b5f5f5f60608486031215610983575f5ffd5b61098c84610935565b925061099a6020850161094a565b91506109a860408501610960565b90509250925092565b80356001600160a01b0381168114610945575f5ffd5b5f602082840312156109d7575f5ffd5b6109e0826109b1565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610a0b575f5ffd5b81356001600160401b03811115610a20575f5ffd5b8201601f81018413610a30575f5ffd5b80356001600160401b03811115610a4957610a496109e7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610a7757610a776109e7565b604052818152828201602001861015610a8e575f5ffd5b816020840160208301375f91810160200191909152949350505050565b5f5f60408385031215610abc575f5ffd5b610ac5836109b1565b915060208301358015158114610ad9575f5ffd5b809150509250929050565b803565ffffffffffff81168114610945575f5ffd5b5f5f5f5f60808587031215610b0c575f5ffd5b610b1585610935565b9350610b236020860161094a565b9250610b3160408601610960565b9150610b3f60608601610ae4565b905092959194509250565b5f5f5f5f5f5f60c08789031215610b5f575f5ffd5b610b6887610935565b9550610b766020880161094a565b9450610b8460408801610960565b9350610b9260608801610ae4565b9250610ba06080880161094a565b915060a08701356001600160f01b0381168114610bbb575f5ffd5b809150509295509295509295565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561092f5761092f610bc9565b5f60ff821660ff8103610c0557610c05610bc9565b60010192915050565b61ffff818116838216019081111561092f5761092f610bc9565b61ffff8181168382160290811690818114610c4557610c45610bc9565b5092915050565b634e487b7160e01b5f52600160045260245ffd5b65ffffffffffff8181168382160290811690818114610c4557610c45610bc9565b65ffffffffffff828116828216039081111561092f5761092f610bc956fea26469706673582212202fc48cbfe7bdcae7142fe1b69e91eac426e8d4861de40bd305caf9ce23a53f1364736f6c634300081c0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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