ETH Price: $1,927.63 (-4.31%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set User Role201918992024-06-28 18:13:11609 days ago1719598391IN
0x29E8f1d7...187A4C04d
0 ETH0.000328456.48267045
Set User Role201918932024-06-28 18:11:59609 days ago1719598319IN
0x29E8f1d7...187A4C04d
0 ETH0.00019776.87705717
Set User Role201918912024-06-28 18:11:23609 days ago1719598283IN
0x29E8f1d7...187A4C04d
0 ETH0.000326846.45077344
Set User Role201918782024-06-28 18:08:47609 days ago1719598127IN
0x29E8f1d7...187A4C04d
0 ETH0.000208397.2490399
Set User Role201918602024-06-28 18:05:11609 days ago1719597911IN
0x29E8f1d7...187A4C04d
0 ETH0.000426898.42543057
Set User Role201885522024-06-28 7:00:23609 days ago1719558023IN
0x29E8f1d7...187A4C04d
0 ETH0.000101113.01237689
Set User Role201885502024-06-28 6:59:59609 days ago1719557999IN
0x29E8f1d7...187A4C04d
0 ETH0.000094942.82845219
Set User Role201885462024-06-28 6:59:11609 days ago1719557951IN
0x29E8f1d7...187A4C04d
0 ETH0.000142672.81600149
Set User Role201885332024-06-28 6:56:35609 days ago1719557795IN
0x29E8f1d7...187A4C04d
0 ETH0.000082362.86521575
Set User Role201885292024-06-28 6:55:47609 days ago1719557747IN
0x29E8f1d7...187A4C04d
0 ETH0.000093062.77400485
Set User Role201884992024-06-28 6:49:47609 days ago1719557387IN
0x29E8f1d7...187A4C04d
0 ETH0.000092712.7621727
Set User Role201861452024-06-27 22:55:47610 days ago1719528947IN
0x29E8f1d7...187A4C04d
0 ETH0.000214944.24224295
Set User Role201753132024-06-26 10:37:47611 days ago1719398267IN
0x29E8f1d7...187A4C04d
0 ETH0.000185523.66173062
Set User Role201745522024-06-26 8:04:59611 days ago1719389099IN
0x29E8f1d7...187A4C04d
0 ETH0.000098811.95034509
Set User Role201745512024-06-26 8:04:47611 days ago1719389087IN
0x29E8f1d7...187A4C04d
0 ETH0.000104442.06136386
Set User Role201745502024-06-26 8:04:35611 days ago1719389075IN
0x29E8f1d7...187A4C04d
0 ETH0.00007042.09745945
Set User Role201745492024-06-26 8:04:23611 days ago1719389063IN
0x29E8f1d7...187A4C04d
0 ETH0.000107322.1181975
Set Public Capab...201745082024-06-26 7:56:11611 days ago1719388571IN
0x29E8f1d7...187A4C04d
0 ETH0.000092821.83010281
Set Public Capab...201745072024-06-26 7:55:59611 days ago1719388559IN
0x29E8f1d7...187A4C04d
0 ETH0.000096861.90971335
Set Role Capabil...201745062024-06-26 7:55:47611 days ago1719388547IN
0x29E8f1d7...187A4C04d
0 ETH0.000099571.93753524
Set Role Capabil...201745052024-06-26 7:55:35611 days ago1719388535IN
0x29E8f1d7...187A4C04d
0 ETH0.000064881.89195497
Set Role Capabil...201745042024-06-26 7:55:23611 days ago1719388523IN
0x29E8f1d7...187A4C04d
0 ETH0.000095871.86549119
Set Role Capabil...201745032024-06-26 7:55:11611 days ago1719388511IN
0x29E8f1d7...187A4C04d
0 ETH0.00006341.8488898
Set Role Capabil...201745022024-06-26 7:54:59611 days ago1719388499IN
0x29E8f1d7...187A4C04d
0 ETH0.000063051.83859308
Set Role Capabil...201745012024-06-26 7:54:47611 days ago1719388487IN
0x29E8f1d7...187A4C04d
0 ETH0.000096671.88106068
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60806040201744442024-06-26 7:43:23611 days ago1719387803  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xe677Fe58...B8fC6f463
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
RolesAuthority

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 10000 runs

Other Settings:
shanghai EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

import {Auth, Authority} from "../Auth.sol";

/// @notice Role based Authority that supports up to 256 roles.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/authorities/RolesAuthority.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-roles/blob/master/src/roles.sol)
contract RolesAuthority is Auth, Authority {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event UserRoleUpdated(address indexed user, uint8 indexed role, bool enabled);

    event PublicCapabilityUpdated(address indexed target, bytes4 indexed functionSig, bool enabled);

    event RoleCapabilityUpdated(uint8 indexed role, address indexed target, bytes4 indexed functionSig, bool enabled);

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner, Authority _authority) Auth(_owner, _authority) {}

    /*//////////////////////////////////////////////////////////////
                            ROLE/USER STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(address => bytes32) public getUserRoles;

    mapping(address => mapping(bytes4 => bool)) public isCapabilityPublic;

    mapping(address => mapping(bytes4 => bytes32)) public getRolesWithCapability;

    function doesUserHaveRole(address user, uint8 role) public view virtual returns (bool) {
        return (uint256(getUserRoles[user]) >> role) & 1 != 0;
    }

    function doesRoleHaveCapability(
        uint8 role,
        address target,
        bytes4 functionSig
    ) public view virtual returns (bool) {
        return (uint256(getRolesWithCapability[target][functionSig]) >> role) & 1 != 0;
    }

    /*//////////////////////////////////////////////////////////////
                           AUTHORIZATION LOGIC
    //////////////////////////////////////////////////////////////*/

    function canCall(
        address user,
        address target,
        bytes4 functionSig
    ) public view virtual override returns (bool) {
        return
            isCapabilityPublic[target][functionSig] ||
            bytes32(0) != getUserRoles[user] & getRolesWithCapability[target][functionSig];
    }

    /*//////////////////////////////////////////////////////////////
                   ROLE CAPABILITY CONFIGURATION LOGIC
    //////////////////////////////////////////////////////////////*/

    function setPublicCapability(
        address target,
        bytes4 functionSig,
        bool enabled
    ) public virtual requiresAuth {
        isCapabilityPublic[target][functionSig] = enabled;

        emit PublicCapabilityUpdated(target, functionSig, enabled);
    }

    function setRoleCapability(
        uint8 role,
        address target,
        bytes4 functionSig,
        bool enabled
    ) public virtual requiresAuth {
        if (enabled) {
            getRolesWithCapability[target][functionSig] |= bytes32(1 << role);
        } else {
            getRolesWithCapability[target][functionSig] &= ~bytes32(1 << role);
        }

        emit RoleCapabilityUpdated(role, target, functionSig, enabled);
    }

    /*//////////////////////////////////////////////////////////////
                       USER ROLE ASSIGNMENT LOGIC
    //////////////////////////////////////////////////////////////*/

    function setUserRole(
        address user,
        uint8 role,
        bool enabled
    ) public virtual requiresAuth {
        if (enabled) {
            getUserRoles[user] |= bytes32(1 << role);
        } else {
            getUserRoles[user] &= ~bytes32(1 << role);
        }

        emit UserRoleUpdated(user, role, enabled);
    }
}

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Provides a flexible and updatable auth pattern which is completely separate from application logic.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Auth.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol)
abstract contract Auth {
    event OwnershipTransferred(address indexed user, address indexed newOwner);

    event AuthorityUpdated(address indexed user, Authority indexed newAuthority);

    address public owner;

    Authority public authority;

    constructor(address _owner, Authority _authority) {
        owner = _owner;
        authority = _authority;

        emit OwnershipTransferred(msg.sender, _owner);
        emit AuthorityUpdated(msg.sender, _authority);
    }

    modifier requiresAuth() virtual {
        require(isAuthorized(msg.sender, msg.sig), "UNAUTHORIZED");

        _;
    }

    function isAuthorized(address user, bytes4 functionSig) internal view virtual returns (bool) {
        Authority auth = authority; // Memoizing authority saves us a warm SLOAD, around 100 gas.

        // Checking if the caller is the owner only after calling the authority saves gas in most cases, but be
        // aware that this makes protected functions uncallable even to the owner if the authority is out of order.
        return (address(auth) != address(0) && auth.canCall(user, address(this), functionSig)) || user == owner;
    }

    function setAuthority(Authority newAuthority) public virtual {
        // We check if the caller is the owner first because we want to ensure they can
        // always swap out the authority even if it's reverting or using up a lot of gas.
        require(msg.sender == owner || authority.canCall(msg.sender, address(this), msg.sig));

        authority = newAuthority;

        emit AuthorityUpdated(msg.sender, newAuthority);
    }

    function transferOwnership(address newOwner) public virtual requiresAuth {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

/// @notice A generic interface for a contract which provides authorization data to an Auth instance.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Auth.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol)
interface Authority {
    function canCall(
        address user,
        address target,
        bytes4 functionSig
    ) external view returns (bool);
}

Settings
{
  "remappings": [
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "forge-std/=node_modules/forge-std/",
    "@solmate/=lib/solmate/src/",
    "ds-test/=lib/solmate/lib/ds-test/src/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "none",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract Authority","name":"_authority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":true,"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"PublicCapabilityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"role","type":"uint8"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":true,"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"RoleCapabilityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint8","name":"role","type":"uint8"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"UserRoleUpdated","type":"event"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"}],"name":"canCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"}],"name":"doesRoleHaveCapability","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"}],"name":"doesUserHaveRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"getRolesWithCapability","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getUserRoles","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"isCapabilityPublic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setPublicCapability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setRoleCapability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setUserRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x608060405234801561000f575f80fd5b50604051610f0c380380610f0c83398101604081905261002e916100dd565b5f80546001600160a01b03199081166001600160a01b0385811691821784556001805490931690851617909155604051849284929133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350505050610115565b6001600160a01b03811681146100da575f80fd5b50565b5f80604083850312156100ee575f80fd5b82516100f9816100c6565b602084015190925061010a816100c6565b809150509250929050565b610dea806101225f395ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c80638da5cb5b11610088578063bf7e214f11610063578063bf7e214f1461027a578063c6b0263e1461029a578063ea7ca276146102ad578063f2fde38b146102f0575f80fd5b80638da5cb5b146101b2578063b4bad06a146101f6578063b700961314610267575f80fd5b80637917b794116100b85780637917b794146101625780637a9e5e4b1461018c5780637d40583d1461019f575f80fd5b806306a36aee146100de5780632f47571f1461011057806367aff4841461014d575b5f80fd5b6100fd6100ec366004610bcd565b60026020525f908152604090205481565b6040519081526020015b60405180910390f35b61013d61011e366004610c23565b600360209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610107565b61016061015b366004610c73565b610303565b005b6100fd610170366004610c23565b600460209081525f928352604080842090915290825290205481565b61016061019a366004610bcd565b610463565b6101606101ad366004610cb9565b6105ba565b5f546101d19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610107565b61013d610204366004610d0e565b73ffffffffffffffffffffffffffffffffffffffff919091165f9081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000090941683529290522054600160ff929092161c16151590565b61013d610275366004610d50565b610790565b6001546101d19073ffffffffffffffffffffffffffffffffffffffff1681565b6101606102a8366004610d6d565b610857565b61013d6102bb366004610d98565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260026020526040902054600160ff9092161c16151590565b6101606102fe366004610bcd565b61099b565b610330335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b61039b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b80156103d65773ffffffffffffffffffffffffffffffffffffffff83165f9081526002602052604090208054600160ff85161b179055610408565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526002602052604090208054600160ff85161b191690555b8160ff168373ffffffffffffffffffffffffffffffffffffffff167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf283604051610456911515815260200190565b60405180910390a3505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633148061054257506001546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201525f357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa15801561051e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105429190610dc2565b61054a575f80fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b6105e7335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610392565b80156106b55773ffffffffffffffffffffffffffffffffffffffff83165f9081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b179055610714565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b191690555b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e84604051610782911515815260200190565b60405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526003602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008516845290915281205460ff168061084f575073ffffffffffffffffffffffffffffffffffffffff8084165f9081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452825280832054938816835260029091529020541615155b949350505050565b610884335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b6108ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610392565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526003602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e9101610456565b6109c8335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b610a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610392565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f9073ffffffffffffffffffffffffffffffffffffffff168015801590610b7e57506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa158015610b5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7e9190610dc2565b8061084f57505f5473ffffffffffffffffffffffffffffffffffffffff858116911614949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bca575f80fd5b50565b5f60208284031215610bdd575f80fd5b8135610be881610ba9565b9392505050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610c1e575f80fd5b919050565b5f8060408385031215610c34575f80fd5b8235610c3f81610ba9565b9150610c4d60208401610bef565b90509250929050565b803560ff81168114610c1e575f80fd5b8015158114610bca575f80fd5b5f805f60608486031215610c85575f80fd5b8335610c9081610ba9565b9250610c9e60208501610c56565b91506040840135610cae81610c66565b809150509250925092565b5f805f8060808587031215610ccc575f80fd5b610cd585610c56565b93506020850135610ce581610ba9565b9250610cf360408601610bef565b91506060850135610d0381610c66565b939692955090935050565b5f805f60608486031215610d20575f80fd5b610d2984610c56565b92506020840135610d3981610ba9565b9150610d4760408501610bef565b90509250925092565b5f805f60608486031215610d62575f80fd5b8335610d2981610ba9565b5f805f60608486031215610d7f575f80fd5b8335610d8a81610ba9565b9250610c9e60208501610bef565b5f8060408385031215610da9575f80fd5b8235610db481610ba9565b9150610c4d60208401610c56565b5f60208284031215610dd2575f80fd5b8151610be881610c6656fea164736f6c6343000815000a0000000000000000000000006e1ee0cbff9a5f88be095e871309b626263df66a0000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100da575f3560e01c80638da5cb5b11610088578063bf7e214f11610063578063bf7e214f1461027a578063c6b0263e1461029a578063ea7ca276146102ad578063f2fde38b146102f0575f80fd5b80638da5cb5b146101b2578063b4bad06a146101f6578063b700961314610267575f80fd5b80637917b794116100b85780637917b794146101625780637a9e5e4b1461018c5780637d40583d1461019f575f80fd5b806306a36aee146100de5780632f47571f1461011057806367aff4841461014d575b5f80fd5b6100fd6100ec366004610bcd565b60026020525f908152604090205481565b6040519081526020015b60405180910390f35b61013d61011e366004610c23565b600360209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610107565b61016061015b366004610c73565b610303565b005b6100fd610170366004610c23565b600460209081525f928352604080842090915290825290205481565b61016061019a366004610bcd565b610463565b6101606101ad366004610cb9565b6105ba565b5f546101d19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610107565b61013d610204366004610d0e565b73ffffffffffffffffffffffffffffffffffffffff919091165f9081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000090941683529290522054600160ff929092161c16151590565b61013d610275366004610d50565b610790565b6001546101d19073ffffffffffffffffffffffffffffffffffffffff1681565b6101606102a8366004610d6d565b610857565b61013d6102bb366004610d98565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260026020526040902054600160ff9092161c16151590565b6101606102fe366004610bcd565b61099b565b610330335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b61039b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b80156103d65773ffffffffffffffffffffffffffffffffffffffff83165f9081526002602052604090208054600160ff85161b179055610408565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526002602052604090208054600160ff85161b191690555b8160ff168373ffffffffffffffffffffffffffffffffffffffff167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf283604051610456911515815260200190565b60405180910390a3505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633148061054257506001546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201525f357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa15801561051e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105429190610dc2565b61054a575f80fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b6105e7335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610392565b80156106b55773ffffffffffffffffffffffffffffffffffffffff83165f9081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b179055610714565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b191690555b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e84604051610782911515815260200190565b60405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526003602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008516845290915281205460ff168061084f575073ffffffffffffffffffffffffffffffffffffffff8084165f9081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452825280832054938816835260029091529020541615155b949350505050565b610884335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b6108ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610392565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526003602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e9101610456565b6109c8335f357fffffffff0000000000000000000000000000000000000000000000000000000016610a9d565b610a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610392565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f9073ffffffffffffffffffffffffffffffffffffffff168015801590610b7e57506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa158015610b5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7e9190610dc2565b8061084f57505f5473ffffffffffffffffffffffffffffffffffffffff858116911614949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bca575f80fd5b50565b5f60208284031215610bdd575f80fd5b8135610be881610ba9565b9392505050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610c1e575f80fd5b919050565b5f8060408385031215610c34575f80fd5b8235610c3f81610ba9565b9150610c4d60208401610bef565b90509250929050565b803560ff81168114610c1e575f80fd5b8015158114610bca575f80fd5b5f805f60608486031215610c85575f80fd5b8335610c9081610ba9565b9250610c9e60208501610c56565b91506040840135610cae81610c66565b809150509250925092565b5f805f8060808587031215610ccc575f80fd5b610cd585610c56565b93506020850135610ce581610ba9565b9250610cf360408601610bef565b91506060850135610d0381610c66565b939692955090935050565b5f805f60608486031215610d20575f80fd5b610d2984610c56565b92506020840135610d3981610ba9565b9150610d4760408501610bef565b90509250925092565b5f805f60608486031215610d62575f80fd5b8335610d2981610ba9565b5f805f60608486031215610d7f575f80fd5b8335610d8a81610ba9565b9250610c9e60208501610bef565b5f8060408385031215610da9575f80fd5b8235610db481610ba9565b9150610c4d60208401610c56565b5f60208284031215610dd2575f80fd5b8151610be881610c6656fea164736f6c6343000815000a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.