ETH Price: $2,748.46 (+5.19%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Delegation216935742025-01-24 9:50:2311 days ago1737712223IN
0xb83EEf82...BFa419ff9
0 ETH0.0166037412.43020095
Set Delegation216916222025-01-24 3:18:1111 days ago1737688691IN
0xb83EEf82...BFa419ff9
0 ETH0.000587064.86370113
Set Delegation214637992024-12-23 7:49:3543 days ago1734940175IN
0xb83EEf82...BFa419ff9
0 ETH0.003283825.13935156
Set Delegation213978912024-12-14 2:52:3552 days ago1734144755IN
0xb83EEf82...BFa419ff9
0 ETH0.001154289.56305749
Set Delegation213871152024-12-12 14:46:5953 days ago1734014819IN
0xb83EEf82...BFa419ff9
0 ETH0.0035704429.58038623
Set Delegation213450702024-12-06 17:52:4759 days ago1733507567IN
0xb83EEf82...BFa419ff9
0 ETH0.0036190729.98331431
Set Delegation213411572024-12-06 4:46:1160 days ago1733460371IN
0xb83EEf82...BFa419ff9
0 ETH0.0014484312
Set Delegation213386722024-12-05 20:26:2360 days ago1733430383IN
0xb83EEf82...BFa419ff9
0 ETH0.0037909631.41049452
Set Delegation213375162024-12-05 16:34:2360 days ago1733416463IN
0xb83EEf82...BFa419ff9
0 ETH0.0031832926.37296885
Set Delegation213352902024-12-05 9:06:2361 days ago1733389583IN
0xb83EEf82...BFa419ff9
0 ETH0.0038887823.22566696
Set Delegation213312312024-12-04 19:29:3561 days ago1733340575IN
0xb83EEf82...BFa419ff9
0 ETH0.0012688824.35018212
Set Delegation213311812024-12-04 19:19:3561 days ago1733339975IN
0xb83EEf82...BFa419ff9
0 ETH0.0049302329.44776674
Set Delegation213301742024-12-04 15:57:4761 days ago1733327867IN
0xb83EEf82...BFa419ff9
0 ETH0.008329249.74589675
Set Delegation213227852024-12-03 15:10:3562 days ago1733238635IN
0xb83EEf82...BFa419ff9
0 ETH0.0080146766.4
Set Delegation213220792024-12-03 12:48:4762 days ago1733230127IN
0xb83EEf82...BFa419ff9
0 ETH0.003098925.67378067
Set Delegation213213672024-12-03 10:25:3563 days ago1733221535IN
0xb83EEf82...BFa419ff9
0 ETH0.0020864917.28619236
Set Delegation213102172024-12-01 21:01:4764 days ago1733086907IN
0xb83EEf82...BFa419ff9
0 ETH0.0022404218.56142933
Set Delegation213062392024-12-01 7:42:5965 days ago1733038979IN
0xb83EEf82...BFa419ff9
0 ETH0.0022911510.6985737
Set Delegation212921142024-11-29 8:19:3567 days ago1732868375IN
0xb83EEf82...BFa419ff9
0 ETH0.000284116.24506968
Set Delegation212870592024-11-28 15:21:5967 days ago1732807319IN
0xb83EEf82...BFa419ff9
0 ETH0.0016040213.2889857
Set Delegation212783262024-11-27 9:54:5969 days ago1732701299IN
0xb83EEf82...BFa419ff9
0 ETH0.001049078.69140979
Set Delegation212449992024-11-22 18:16:4773 days ago1732299407IN
0xb83EEf82...BFa419ff9
0 ETH0.0017483614.48486763
Set Delegation212390732024-11-21 22:24:1174 days ago1732227851IN
0xb83EEf82...BFa419ff9
0 ETH0.0014353511.89163719
Set Delegation212287702024-11-20 11:51:5975 days ago1732103519IN
0xb83EEf82...BFa419ff9
0 ETH0.001327611
Set Delegation212277492024-11-20 8:26:4776 days ago1732091207IN
0xb83EEf82...BFa419ff9
0 ETH0.00156019.31968844
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:
DelegateRegistry

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 10000 runs

Other Settings:
london EvmVersion
File 1 of 1 : DelegateRegistry.sol
// SPDX-License-Identifier: LGPL-3.0-only
/*

  ____       _                  _       
 |  _ \  ___| | ___  __ _  __ _| |_ ___ 
 | | | |/ _ \ |/ _ \/ _` |/ _` | __/ _ \
 | |_| |  __/ |  __/ (_| | (_| | ||  __/
 |____/ \___|_|\___|\__, |\__,_|\__\___|
  ____            _ |___/               
 |  _ \ ___  __ _(_)___| |_ _ __ _   _  
 | |_) / _ \/ _` | / __| __| '__| | | | 
 |  _ <  __/ (_| | \__ \ |_| |  | |_| | 
 |_| \_\___|\__, |_|___/\__|_|   \__, | 
            |___/                |___/  

 Made with ❤️ by Gnosis Guild
*/
pragma solidity ^0.8.17;

struct Delegation {
    bytes32 delegate;
    uint256 ratio;
}

contract DelegateRegistry {
    // Mapping from account address => context => array of user-defined delegations.
    mapping(address => mapping(string => Delegation[])) private delegations;
    // Mapping from account address => context => user-defined delegation expiration dates.
    mapping(address => mapping(string => uint256)) private expirationTimestamps;
    // Mapping from delegate address => context => opt-out status
    mapping(address => mapping(string => bool)) public optouts;

    event ExpirationUpdated(
        address indexed account,
        string context,
        Delegation[] delegation,
        uint256 expirationTimestamp
    );
    event DelegationUpdated(
        address indexed account,
        string context,
        Delegation[] previousDelegation,
        Delegation[] delegation,
        uint256 expirationTimestamp
    );
    event DelegationCleared(
        address indexed account,
        string context,
        Delegation[] delegatesCleared
    );
    event OptOutStatusSet(
        address indexed delegate,
        string context,
        bool optout
    );

    /// @dev Delegation is already set to this value.
    error DuplicateDelegation(address emitter, Delegation[] delegation);
    /// @dev Duplicate expiration timestamp.
    error DuplicateTimestamp(address emitter, uint256 expirationTimestamp);
    /// @dev Given delegate is 0 or a duplicate.
    error InvalidDelegateID(address emiter, bytes32 delegate);
    /// @dev Duplicate opt-out status
    error DuplicateOptoutStatus(address emitter, string context, bool optout);

    /// @dev Sets a delegate for the msg.sender and a specific context.
    /// @param context ID of the context in which delegation should be set.
    /// @param delegation Array of delegations. Must be sorted in numerical order, from smallest to largets.
    /// @param expirationTimestamp Unix timestamp for at which this delegation should expire.
    /// @notice setDelegation() will overrite the user's previous delegation for the given context.
    function setDelegation(
        string memory context,
        Delegation[] memory delegation,
        uint256 expirationTimestamp
    ) public {
        bytes32 currentDelegationHash = keccak256(
            abi.encode(delegations[msg.sender][context])
        );
        bytes32 delegationHash = keccak256(abi.encode(delegation));

        if (
            currentDelegationHash == delegationHash &&
            expirationTimestamps[msg.sender][context] == expirationTimestamp
        ) revert DuplicateDelegation(address(this), delegation);

        emit DelegationUpdated(
            msg.sender,
            context,
            delegations[msg.sender][context],
            delegation,
            expirationTimestamp
        );

        delete delegations[msg.sender][context];

        // Update delegation mapping
        bytes32 previous;
        for (uint i = 0; i < delegation.length; i++) {
            if (delegation[i].delegate <= previous)
                revert InvalidDelegateID(address(this), delegation[i].delegate);
            delegations[msg.sender][context].push(delegation[i]);
            previous = delegation[i].delegate;
        }

        // set delegation expiration
        expirationTimestamps[msg.sender][context] = expirationTimestamp;
    }

    /// @dev Clears msg.sender's delegation in a given context.
    /// @param context ID of the context in which delegation should be cleared.
    function clearDelegation(string memory context) public {
        emit DelegationCleared(
            msg.sender,
            context,
            delegations[msg.sender][context]
        );
        delete delegations[msg.sender][context];
        delete expirationTimestamps[msg.sender][context];
    }

    /// @dev Sets msg.senders expiration timestamp for a given context.
    /// @param context ID of the context in which the timestamp should be set.
    /// @param expirationTimestamp Unix timestamp at which the delegations in this context should expire.
    function setExpiration(
        string memory context,
        uint256 expirationTimestamp
    ) public {
        if (expirationTimestamps[msg.sender][context] == expirationTimestamp)
            revert DuplicateTimestamp(address(this), expirationTimestamp);
        expirationTimestamps[msg.sender][context] = expirationTimestamp;
        emit ExpirationUpdated(
            msg.sender,
            context,
            delegations[msg.sender][context],
            expirationTimestamp
        );
    }

    /// @dev Sets an "opt-out" status, allowing users to signal a desire to opt-out of receiving delegations.
    /// @param context Context in which the user wishes to set their opt-out status.
    /// @param _optout opt-out status.
    function optout(string memory context, bool _optout) public {
        if (optouts[msg.sender][context] == _optout)
            revert DuplicateOptoutStatus(address(this), context, _optout);
        optouts[msg.sender][context] = _optout;
        emit OptOutStatusSet(msg.sender, context, _optout);
    }

    /// @dev Returns the delegation details for a given account in a given context.
    /// @param context ID of the context to query.
    /// @param account Address of the account to query.
    /// @return delegation Array of delegations.
    /// @return expirationTimestamp Unix timestamp at which this delegation will expire.
    function getDelegation(
        string memory context,
        address account
    )
        public
        view
        returns (Delegation[] memory delegation, uint256 expirationTimestamp)
    {
        delegation = delegations[account][context];
        expirationTimestamp = expirationTimestamps[account][context];
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"emitter","type":"address"},{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"internalType":"struct Delegation[]","name":"delegation","type":"tuple[]"}],"name":"DuplicateDelegation","type":"error"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"string","name":"context","type":"string"},{"internalType":"bool","name":"optout","type":"bool"}],"name":"DuplicateOptoutStatus","type":"error"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"name":"DuplicateTimestamp","type":"error"},{"inputs":[{"internalType":"address","name":"emiter","type":"address"},{"internalType":"bytes32","name":"delegate","type":"bytes32"}],"name":"InvalidDelegateID","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"string","name":"context","type":"string"},{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"indexed":false,"internalType":"struct Delegation[]","name":"delegatesCleared","type":"tuple[]"}],"name":"DelegationCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"string","name":"context","type":"string"},{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"indexed":false,"internalType":"struct Delegation[]","name":"previousDelegation","type":"tuple[]"},{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"indexed":false,"internalType":"struct Delegation[]","name":"delegation","type":"tuple[]"},{"indexed":false,"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"name":"DelegationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"string","name":"context","type":"string"},{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"indexed":false,"internalType":"struct Delegation[]","name":"delegation","type":"tuple[]"},{"indexed":false,"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"name":"ExpirationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"string","name":"context","type":"string"},{"indexed":false,"internalType":"bool","name":"optout","type":"bool"}],"name":"OptOutStatusSet","type":"event"},{"inputs":[{"internalType":"string","name":"context","type":"string"}],"name":"clearDelegation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"context","type":"string"},{"internalType":"address","name":"account","type":"address"}],"name":"getDelegation","outputs":[{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"internalType":"struct Delegation[]","name":"delegation","type":"tuple[]"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"context","type":"string"},{"internalType":"bool","name":"_optout","type":"bool"}],"name":"optout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"}],"name":"optouts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"context","type":"string"},{"components":[{"internalType":"bytes32","name":"delegate","type":"bytes32"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"internalType":"struct Delegation[]","name":"delegation","type":"tuple[]"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"name":"setDelegation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"context","type":"string"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"name":"setExpiration","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610f82806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80634cd443b9116100505780634cd443b9146100c9578063ce2f6ef5146100dc578063e0653453146100ef57600080fd5b80631e61206a1461007757806332aeba931461008c57806343953e911461009f575b600080fd5b61008a6100853660046109ad565b61013e565b005b61008a61009a366004610aa6565b610457565b6100b26100ad366004610b14565b610561565b6040516100c0929190610ba8565b60405180910390f35b61008a6100d7366004610bca565b610661565b61008a6100ea366004610c07565b61072f565b61012e6100fd366004610c5e565b6002602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b60405190151581526020016100c0565b33600090815260208190526040808220905161015b908690610cd0565b90815260200160405180910390206040516020016101799190610d2d565b6040516020818303038152906040528051906020012090506000836040516020016101a49190610d47565b60405160208183030381529060405280519060200120905080821480156101f85750336000908152600160205260409081902090518491906101e7908890610cd0565b908152602001604051809103902054145b1561023c5730846040517f1dd0547d000000000000000000000000000000000000000000000000000000008152600401610233929190610d5a565b60405180910390fd5b336000818152602081905260409081902090517fbbfaebc0e35c81daa40cc3d21316def67a6456e2b1c91d5f8ad1de9b721de37b91889161027e908390610cd0565b90815260405190819003602001812061029b929189908990610dd3565b60405180910390a2336000908152602081905260409081902090516102c1908790610cd0565b908152602001604051809103902060006102db9190610835565b6000805b855181101561041d57818682815181106102fb576102fb610e1e565b6020026020010151600001511161037b573086828151811061031f5761031f610e1e565b6020908102919091010151516040517ff3458b1700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401610233565b33600090815260208190526040908190209051610399908990610cd0565b90815260200160405180910390208682815181106103b9576103b9610e1e565b602090810291909101810151825460018181018555600094855293839020825160029092020190815591015191015585518690829081106103fc576103fc610e1e565b6020026020010151600001519150808061041590610e4d565b9150506102df565b503360009081526001602052604090819020905185919061043f908990610cd0565b90815260405190819003602001902055505050505050565b33600090815260016020526040908190209051829190610478908590610cd0565b908152602001604051809103902054036104c7576040517f5fd7432600000000000000000000000000000000000000000000000000000000815230600482015260248101829052604401610233565b336000908152600160205260409081902090518291906104e8908590610cd0565b908152604080519182900360209081018320939093553360008181529384905292207fa32227b2030924096f77f3098d1a4bd08f954c5c03672df745323d1c782b959b9185919061053a908390610cd0565b90815260405190819003602001812061055592918690610eac565b60405180910390a25050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604080822090516060929190610599908690610cd0565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b8282101561060d578382906000526020600020906002020160405180604001604052908160008201548152602001600182015481525050815260200190600101906105c7565b50505073ffffffffffffffffffffffffffffffffffffffff85166000908152600160205260409081902090519294509161064991508690610cd0565b90815260200160405180910390205490509250929050565b336000818152602081905260409081902090517fbd98d3f04eeb1303945395a3f2e81f61bd3850805868eb03afa6f491295ed8d49184916106a3908390610cd0565b9081526040519081900360200181206106bc9291610ee2565b60405180910390a2336000908152602081905260409081902090516106e2908390610cd0565b908152602001604051809103902060006106fc9190610835565b3360009081526001602052604090819020905161071a908390610cd0565b90815260200160405180910390206000905550565b336000908152600260205260409081902090518215159190610752908590610cd0565b9081526040519081900360200190205460ff161515036107a4573082826040517f61224be100000000000000000000000000000000000000000000000000000000815260040161023393929190610f10565b336000908152600260205260409081902090518291906107c5908590610cd0565b90815260405190819003602001812080549215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009093169290921790915533907f7e87855f33013e8d674833df5eab0f65055b248901ff9059f5482da853f76347906105559085908590610f51565b50805460008255600202906000526020600020908101906108569190610859565b50565b5b80821115610874576000808255600182015560020161085a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156108ca576108ca610878565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561091757610917610878565b604052919050565b600082601f83011261093057600080fd5b813567ffffffffffffffff81111561094a5761094a610878565b61097b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016108d0565b81815284602083860101111561099057600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156109c257600080fd5b833567ffffffffffffffff808211156109da57600080fd5b6109e68783880161091f565b94506020915081860135818111156109fd57600080fd5b8601601f81018813610a0e57600080fd5b803582811115610a2057610a20610878565b610a2e848260051b016108d0565b818152848101935060069190911b820184019089821115610a4e57600080fd5b918401915b81831015610a91576040838b031215610a6c5760008081fd5b610a746108a7565b833581528584013586820152845292840192604090920191610a53565b96999698505050506040949094013593505050565b60008060408385031215610ab957600080fd5b823567ffffffffffffffff811115610ad057600080fd5b610adc8582860161091f565b95602094909401359450505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b0f57600080fd5b919050565b60008060408385031215610b2757600080fd5b823567ffffffffffffffff811115610b3e57600080fd5b610b4a8582860161091f565b925050610b5960208401610aeb565b90509250929050565b600081518084526020808501945080840160005b83811015610b9d578151805188528301518388015260409096019590820190600101610b76565b509495945050505050565b604081526000610bbb6040830185610b62565b90508260208301529392505050565b600060208284031215610bdc57600080fd5b813567ffffffffffffffff811115610bf357600080fd5b610bff8482850161091f565b949350505050565b60008060408385031215610c1a57600080fd5b823567ffffffffffffffff811115610c3157600080fd5b610c3d8582860161091f565b92505060208301358015158114610c5357600080fd5b809150509250929050565b60008060408385031215610c7157600080fd5b610c7a83610aeb565b9150602083013567ffffffffffffffff811115610c9657600080fd5b610ca28582860161091f565b9150509250929050565b60005b83811015610cc7578181015183820152602001610caf565b50506000910152565b60008251610ce2818460208701610cac565b9190910192915050565b6000815480845260208085019450836000528060002060005b83811015610b9d57815487526001808301548489015260409097019660029092019101610d05565b602081526000610d406020830184610cec565b9392505050565b602081526000610d406020830184610b62565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610bff6040830184610b62565b60008151808452610da1816020860160208601610cac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b608081526000610de66080830187610d89565b8281036020840152610df88187610cec565b90508281036040840152610e0c8186610b62565b91505082606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ea5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b606081526000610ebf6060830186610d89565b8281036020840152610ed18186610cec565b915050826040830152949350505050565b604081526000610ef56040830185610d89565b8281036020840152610f078185610cec565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000610f3f6060830185610d89565b90508215156040830152949350505050565b604081526000610f646040830185610d89565b90508215156020830152939250505056fea164736f6c6343000811000a

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100725760003560e01c80634cd443b9116100505780634cd443b9146100c9578063ce2f6ef5146100dc578063e0653453146100ef57600080fd5b80631e61206a1461007757806332aeba931461008c57806343953e911461009f575b600080fd5b61008a6100853660046109ad565b61013e565b005b61008a61009a366004610aa6565b610457565b6100b26100ad366004610b14565b610561565b6040516100c0929190610ba8565b60405180910390f35b61008a6100d7366004610bca565b610661565b61008a6100ea366004610c07565b61072f565b61012e6100fd366004610c5e565b6002602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b60405190151581526020016100c0565b33600090815260208190526040808220905161015b908690610cd0565b90815260200160405180910390206040516020016101799190610d2d565b6040516020818303038152906040528051906020012090506000836040516020016101a49190610d47565b60405160208183030381529060405280519060200120905080821480156101f85750336000908152600160205260409081902090518491906101e7908890610cd0565b908152602001604051809103902054145b1561023c5730846040517f1dd0547d000000000000000000000000000000000000000000000000000000008152600401610233929190610d5a565b60405180910390fd5b336000818152602081905260409081902090517fbbfaebc0e35c81daa40cc3d21316def67a6456e2b1c91d5f8ad1de9b721de37b91889161027e908390610cd0565b90815260405190819003602001812061029b929189908990610dd3565b60405180910390a2336000908152602081905260409081902090516102c1908790610cd0565b908152602001604051809103902060006102db9190610835565b6000805b855181101561041d57818682815181106102fb576102fb610e1e565b6020026020010151600001511161037b573086828151811061031f5761031f610e1e565b6020908102919091010151516040517ff3458b1700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401610233565b33600090815260208190526040908190209051610399908990610cd0565b90815260200160405180910390208682815181106103b9576103b9610e1e565b602090810291909101810151825460018181018555600094855293839020825160029092020190815591015191015585518690829081106103fc576103fc610e1e565b6020026020010151600001519150808061041590610e4d565b9150506102df565b503360009081526001602052604090819020905185919061043f908990610cd0565b90815260405190819003602001902055505050505050565b33600090815260016020526040908190209051829190610478908590610cd0565b908152602001604051809103902054036104c7576040517f5fd7432600000000000000000000000000000000000000000000000000000000815230600482015260248101829052604401610233565b336000908152600160205260409081902090518291906104e8908590610cd0565b908152604080519182900360209081018320939093553360008181529384905292207fa32227b2030924096f77f3098d1a4bd08f954c5c03672df745323d1c782b959b9185919061053a908390610cd0565b90815260405190819003602001812061055592918690610eac565b60405180910390a25050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604080822090516060929190610599908690610cd0565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b8282101561060d578382906000526020600020906002020160405180604001604052908160008201548152602001600182015481525050815260200190600101906105c7565b50505073ffffffffffffffffffffffffffffffffffffffff85166000908152600160205260409081902090519294509161064991508690610cd0565b90815260200160405180910390205490509250929050565b336000818152602081905260409081902090517fbd98d3f04eeb1303945395a3f2e81f61bd3850805868eb03afa6f491295ed8d49184916106a3908390610cd0565b9081526040519081900360200181206106bc9291610ee2565b60405180910390a2336000908152602081905260409081902090516106e2908390610cd0565b908152602001604051809103902060006106fc9190610835565b3360009081526001602052604090819020905161071a908390610cd0565b90815260200160405180910390206000905550565b336000908152600260205260409081902090518215159190610752908590610cd0565b9081526040519081900360200190205460ff161515036107a4573082826040517f61224be100000000000000000000000000000000000000000000000000000000815260040161023393929190610f10565b336000908152600260205260409081902090518291906107c5908590610cd0565b90815260405190819003602001812080549215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009093169290921790915533907f7e87855f33013e8d674833df5eab0f65055b248901ff9059f5482da853f76347906105559085908590610f51565b50805460008255600202906000526020600020908101906108569190610859565b50565b5b80821115610874576000808255600182015560020161085a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156108ca576108ca610878565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561091757610917610878565b604052919050565b600082601f83011261093057600080fd5b813567ffffffffffffffff81111561094a5761094a610878565b61097b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016108d0565b81815284602083860101111561099057600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156109c257600080fd5b833567ffffffffffffffff808211156109da57600080fd5b6109e68783880161091f565b94506020915081860135818111156109fd57600080fd5b8601601f81018813610a0e57600080fd5b803582811115610a2057610a20610878565b610a2e848260051b016108d0565b818152848101935060069190911b820184019089821115610a4e57600080fd5b918401915b81831015610a91576040838b031215610a6c5760008081fd5b610a746108a7565b833581528584013586820152845292840192604090920191610a53565b96999698505050506040949094013593505050565b60008060408385031215610ab957600080fd5b823567ffffffffffffffff811115610ad057600080fd5b610adc8582860161091f565b95602094909401359450505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b0f57600080fd5b919050565b60008060408385031215610b2757600080fd5b823567ffffffffffffffff811115610b3e57600080fd5b610b4a8582860161091f565b925050610b5960208401610aeb565b90509250929050565b600081518084526020808501945080840160005b83811015610b9d578151805188528301518388015260409096019590820190600101610b76565b509495945050505050565b604081526000610bbb6040830185610b62565b90508260208301529392505050565b600060208284031215610bdc57600080fd5b813567ffffffffffffffff811115610bf357600080fd5b610bff8482850161091f565b949350505050565b60008060408385031215610c1a57600080fd5b823567ffffffffffffffff811115610c3157600080fd5b610c3d8582860161091f565b92505060208301358015158114610c5357600080fd5b809150509250929050565b60008060408385031215610c7157600080fd5b610c7a83610aeb565b9150602083013567ffffffffffffffff811115610c9657600080fd5b610ca28582860161091f565b9150509250929050565b60005b83811015610cc7578181015183820152602001610caf565b50506000910152565b60008251610ce2818460208701610cac565b9190910192915050565b6000815480845260208085019450836000528060002060005b83811015610b9d57815487526001808301548489015260409097019660029092019101610d05565b602081526000610d406020830184610cec565b9392505050565b602081526000610d406020830184610b62565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610bff6040830184610b62565b60008151808452610da1816020860160208601610cac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b608081526000610de66080830187610d89565b8281036020840152610df88187610cec565b90508281036040840152610e0c8186610b62565b91505082606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ea5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b606081526000610ebf6060830186610d89565b8281036020840152610ed18186610cec565b915050826040830152949350505050565b604081526000610ef56040830185610d89565b8281036020840152610f078185610cec565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000610f3f6060830185610d89565b90508215156040830152949350505050565b604081526000610f646040830185610d89565b90508215156020830152939250505056fea164736f6c6343000811000a

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

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.