ETH Price: $3,139.77 (+4.54%)

Contract

0x1645E0cc24595faB37916a3d57bC51dFf0315Cf7

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

ContractCreator

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...52085952025-07-08 5:10:06133 days ago1751951406IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.0012
Transfer Ownersh...48105402025-07-03 14:35:51138 days ago1751553351IN
0x1645E0cc...Ff0315Cf7
0 ETH00.00000042
Set Role Capabil...46844892025-07-02 3:35:00139 days ago1751427300IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00109837
Set Role Capabil...46844842025-07-02 3:34:55139 days ago1751427295IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.0011002
Set Role Capabil...46844762025-07-02 3:34:47139 days ago1751427287IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00110314
Set Role Capabil...46844712025-07-02 3:34:42139 days ago1751427282IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00110506
Set Role Capabil...46844602025-07-02 3:34:31139 days ago1751427271IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00110952
Set Role Capabil...46844532025-07-02 3:34:24139 days ago1751427264IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00111245
Set Role Capabil...46844462025-07-02 3:34:17139 days ago1751427257IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00111296
Set Role Capabil...46844412025-07-02 3:34:12139 days ago1751427252IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00111512
Set Role Capabil...46844362025-07-02 3:34:07139 days ago1751427247IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00111716
Set Role Capabil...46844312025-07-02 3:34:02139 days ago1751427242IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00111935
Set Role Capabil...46844222025-07-02 3:33:53139 days ago1751427233IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00112347
Set Role Capabil...46844162025-07-02 3:33:47139 days ago1751427227IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.0011263
Set Role Capabil...46844002025-07-02 3:33:31139 days ago1751427211IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00113112
Set Role Capabil...46843942025-07-02 3:33:25139 days ago1751427205IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00113408
Set User Role46843832025-07-02 3:33:14139 days ago1751427194IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00113965
Set User Role46843782025-07-02 3:33:09139 days ago1751427189IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00114231
Set User Role46843722025-07-02 3:33:03139 days ago1751427183IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00114556
Set User Role46843652025-07-02 3:32:56139 days ago1751427176IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00114948
Set User Role46843602025-07-02 3:32:51139 days ago1751427171IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00115042
Set User Role46843552025-07-02 3:32:46139 days ago1751427166IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00115309
Set User Role46843492025-07-02 3:32:40139 days ago1751427160IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00115662
Set User Role46843442025-07-02 3:32:35139 days ago1751427155IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000030.00115958
Set User Role46843372025-07-02 3:32:28139 days ago1751427148IN
0x1645E0cc...Ff0315Cf7
0 ETH0.000000050.00116387
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
45870022025-07-01 0:30:13140 days ago1751329813  Contract Creation0 ETH

Cross-Chain Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x11BF7551...04a743606
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 200 runs

Other Settings:
shanghai EvmVersion, GNU AGPLv3 license

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
{
  "evmVersion": "shanghai",
  "metadata": {
    "appendCBOR": true,
    "bytecodeHash": "ipfs",
    "useLiteralContent": false
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "remappings": [
    "@solmate/=lib/solmate/src/",
    "@forge-std/=lib/forge-std/src/",
    "@ds-test/=lib/forge-std/lib/ds-test/src/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "@ccip/=lib/ccip/",
    "@oapp-auth/=lib/OAppAuth/src/",
    "@devtools-oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/contracts/oapp/",
    "@layerzerolabs/lz-evm-messagelib-v2/=lib/OAppAuth/node_modules/@layerzerolabs/lz-evm-messagelib-v2/",
    "@layerzerolabs/lz-evm-protocol-v2/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/protocol/",
    "@layerzerolabs/oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/",
    "@lz-oapp-evm/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/oapp/contracts/oapp/",
    "@sbu/=lib/OAppAuth/lib/solidity-bytes-utils/",
    "LayerZero-V2/=lib/OAppAuth/lib/",
    "OAppAuth/=lib/OAppAuth/",
    "ccip/=lib/ccip/contracts/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "halmos-cheatcodes/=lib/OAppAuth/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "solidity-bytes-utils/=lib/OAppAuth/node_modules/solidity-bytes-utils/",
    "solmate/=lib/solmate/src/"
  ],
  "viaIR": false
}

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"}]

0x608060405234801561000f575f80fd5b50604051610b58380380610b5883398101604081905261002e916100dd565b5f80546001600160a01b03199081166001600160a01b0385811691821784556001805490931690851617909155604051849284929133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350505050610115565b6001600160a01b03811681146100da575f80fd5b50565b5f80604083850312156100ee575f80fd5b82516100f9816100c6565b602084015190925061010a816100c6565b809150509250929050565b610a36806101225f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063bf7e214f11610063578063bf7e214f1461022c578063c6b0263e1461023f578063ea7ca27614610252578063f2fde38b14610288575f80fd5b80638da5cb5b146101a3578063b4bad06a146101cd578063b700961314610219575f80fd5b806306a36aee146100cf5780632f47571f1461010157806367aff4841461013e5780637917b794146101535780637a9e5e4b1461017d5780637d40583d14610190575b5f80fd5b6100ee6100dd3660046107b5565b60026020525f908152604090205481565b6040519081526020015b60405180910390f35b61012e61010f3660046107f3565b600360209081525f928352604080842090915290825290205460ff1681565b60405190151581526020016100f8565b61015161014c366004610843565b61029b565b005b6100ee6101613660046107f3565b600460209081525f928352604080842090915290825290205481565b61015161018b3660046107b5565b610376565b61015161019e366004610889565b61045a565b5f546101b5906001600160a01b031681565b6040516001600160a01b0390911681526020016100f8565b61012e6101db3660046108de565b6001600160a01b03919091165f9081526004602090815260408083206001600160e01b031990941683529290522054600160ff929092161c16151590565b61012e610227366004610920565b610562565b6001546101b5906001600160a01b031681565b61015161024d36600461093d565b6105df565b61012e610260366004610968565b6001600160a01b03919091165f90815260026020526040902054600160ff9092161c16151590565b6101516102963660046107b5565b61067e565b6102b0335f356001600160e01b0319166106f9565b6102d55760405162461bcd60e51b81526004016102cc90610992565b60405180910390fd5b8015610303576001600160a01b0383165f9081526002602052604090208054600160ff85161b179055610328565b6001600160a01b0383165f9081526002602052604090208054600160ff85161b191690555b8160ff16836001600160a01b03167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf283604051610369911515815260200190565b60405180910390a3505050565b5f546001600160a01b0316331480610407575060015460405163b700961360e01b81526001600160a01b039091169063b7009613906103c890339030906001600160e01b03195f3516906004016109b8565b602060405180830381865afa1580156103e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040791906109e5565b61040f575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b61046f335f356001600160e01b0319166106f9565b61048b5760405162461bcd60e51b81526004016102cc90610992565b80156104ce576001600160a01b0383165f9081526004602090815260408083206001600160e01b03198616845290915290208054600160ff87161b179055610508565b6001600160a01b0383165f9081526004602090815260408083206001600160e01b03198616845290915290208054600160ff87161b191690555b816001600160e01b031916836001600160a01b03168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e84604051610554911515815260200190565b60405180910390a450505050565b6001600160a01b0382165f9081526003602090815260408083206001600160e01b03198516845290915281205460ff16806105d757506001600160a01b038084165f9081526004602090815260408083206001600160e01b031987168452825280832054938816835260029091529020541615155b949350505050565b6105f4335f356001600160e01b0319166106f9565b6106105760405162461bcd60e51b81526004016102cc90610992565b6001600160a01b0383165f8181526003602090815260408083206001600160e01b0319871680855290835292819020805460ff191686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e9101610369565b610693335f356001600160e01b0319166106f9565b6106af5760405162461bcd60e51b81526004016102cc90610992565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f906001600160a01b03168015801590610780575060405163b700961360e01b81526001600160a01b0382169063b700961390610741908790309088906004016109b8565b602060405180830381865afa15801561075c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078091906109e5565b806105d757505f546001600160a01b03858116911614949350505050565b6001600160a01b03811681146107b2575f80fd5b50565b5f602082840312156107c5575f80fd5b81356107d08161079e565b9392505050565b80356001600160e01b0319811681146107ee575f80fd5b919050565b5f8060408385031215610804575f80fd5b823561080f8161079e565b915061081d602084016107d7565b90509250929050565b803560ff811681146107ee575f80fd5b80151581146107b2575f80fd5b5f805f60608486031215610855575f80fd5b83356108608161079e565b925061086e60208501610826565b9150604084013561087e81610836565b809150509250925092565b5f805f806080858703121561089c575f80fd5b6108a585610826565b935060208501356108b58161079e565b92506108c3604086016107d7565b915060608501356108d381610836565b939692955090935050565b5f805f606084860312156108f0575f80fd5b6108f984610826565b925060208401356109098161079e565b9150610917604085016107d7565b90509250925092565b5f805f60608486031215610932575f80fd5b83356108f98161079e565b5f805f6060848603121561094f575f80fd5b833561095a8161079e565b925061086e602085016107d7565b5f8060408385031215610979575f80fd5b82356109848161079e565b915061081d60208401610826565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f602082840312156109f5575f80fd5b81516107d08161083656fea2646970667358221220a5d282a90b79f5aa939e48b2b8b418b685ec429cf4a704703696c53633056e9764736f6c634300081500330000000000000000000000005f2f11ad8656439d5c14d9b351f8b09cdac2a02d0000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063bf7e214f11610063578063bf7e214f1461022c578063c6b0263e1461023f578063ea7ca27614610252578063f2fde38b14610288575f80fd5b80638da5cb5b146101a3578063b4bad06a146101cd578063b700961314610219575f80fd5b806306a36aee146100cf5780632f47571f1461010157806367aff4841461013e5780637917b794146101535780637a9e5e4b1461017d5780637d40583d14610190575b5f80fd5b6100ee6100dd3660046107b5565b60026020525f908152604090205481565b6040519081526020015b60405180910390f35b61012e61010f3660046107f3565b600360209081525f928352604080842090915290825290205460ff1681565b60405190151581526020016100f8565b61015161014c366004610843565b61029b565b005b6100ee6101613660046107f3565b600460209081525f928352604080842090915290825290205481565b61015161018b3660046107b5565b610376565b61015161019e366004610889565b61045a565b5f546101b5906001600160a01b031681565b6040516001600160a01b0390911681526020016100f8565b61012e6101db3660046108de565b6001600160a01b03919091165f9081526004602090815260408083206001600160e01b031990941683529290522054600160ff929092161c16151590565b61012e610227366004610920565b610562565b6001546101b5906001600160a01b031681565b61015161024d36600461093d565b6105df565b61012e610260366004610968565b6001600160a01b03919091165f90815260026020526040902054600160ff9092161c16151590565b6101516102963660046107b5565b61067e565b6102b0335f356001600160e01b0319166106f9565b6102d55760405162461bcd60e51b81526004016102cc90610992565b60405180910390fd5b8015610303576001600160a01b0383165f9081526002602052604090208054600160ff85161b179055610328565b6001600160a01b0383165f9081526002602052604090208054600160ff85161b191690555b8160ff16836001600160a01b03167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf283604051610369911515815260200190565b60405180910390a3505050565b5f546001600160a01b0316331480610407575060015460405163b700961360e01b81526001600160a01b039091169063b7009613906103c890339030906001600160e01b03195f3516906004016109b8565b602060405180830381865afa1580156103e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040791906109e5565b61040f575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b61046f335f356001600160e01b0319166106f9565b61048b5760405162461bcd60e51b81526004016102cc90610992565b80156104ce576001600160a01b0383165f9081526004602090815260408083206001600160e01b03198616845290915290208054600160ff87161b179055610508565b6001600160a01b0383165f9081526004602090815260408083206001600160e01b03198616845290915290208054600160ff87161b191690555b816001600160e01b031916836001600160a01b03168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e84604051610554911515815260200190565b60405180910390a450505050565b6001600160a01b0382165f9081526003602090815260408083206001600160e01b03198516845290915281205460ff16806105d757506001600160a01b038084165f9081526004602090815260408083206001600160e01b031987168452825280832054938816835260029091529020541615155b949350505050565b6105f4335f356001600160e01b0319166106f9565b6106105760405162461bcd60e51b81526004016102cc90610992565b6001600160a01b0383165f8181526003602090815260408083206001600160e01b0319871680855290835292819020805460ff191686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e9101610369565b610693335f356001600160e01b0319166106f9565b6106af5760405162461bcd60e51b81526004016102cc90610992565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f906001600160a01b03168015801590610780575060405163b700961360e01b81526001600160a01b0382169063b700961390610741908790309088906004016109b8565b602060405180830381865afa15801561075c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078091906109e5565b806105d757505f546001600160a01b03858116911614949350505050565b6001600160a01b03811681146107b2575f80fd5b50565b5f602082840312156107c5575f80fd5b81356107d08161079e565b9392505050565b80356001600160e01b0319811681146107ee575f80fd5b919050565b5f8060408385031215610804575f80fd5b823561080f8161079e565b915061081d602084016107d7565b90509250929050565b803560ff811681146107ee575f80fd5b80151581146107b2575f80fd5b5f805f60608486031215610855575f80fd5b83356108608161079e565b925061086e60208501610826565b9150604084013561087e81610836565b809150509250925092565b5f805f806080858703121561089c575f80fd5b6108a585610826565b935060208501356108b58161079e565b92506108c3604086016107d7565b915060608501356108d381610836565b939692955090935050565b5f805f606084860312156108f0575f80fd5b6108f984610826565b925060208401356109098161079e565b9150610917604085016107d7565b90509250925092565b5f805f60608486031215610932575f80fd5b83356108f98161079e565b5f805f6060848603121561094f575f80fd5b833561095a8161079e565b925061086e602085016107d7565b5f8060408385031215610979575f80fd5b82356109848161079e565b915061081d60208401610826565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f602082840312156109f5575f80fd5b81516107d08161083656fea2646970667358221220a5d282a90b79f5aa939e48b2b8b418b685ec429cf4a704703696c53633056e9764736f6c63430008150033

Deployed Bytecode Sourcemap

391:3558:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1375:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;548:25:2;;;536:2;521:18;1375:47:1;;;;;;;;1429:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1251:14:2;;1244:22;1226:41;;1214:2;1199:18;1429:69:1;1086:187:2;3610:337:1;;;;;;:::i;:::-;;:::i;:::-;;1505:76;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1523:434:0;;;;;;:::i;:::-;;:::i;2971:444:1:-;;;;;;:::i;:::-;;:::i;562:20:0:-;;;;;-1:-1:-1;;;;;562:20:0;;;;;;-1:-1:-1;;;;;2982:32:2;;;2964:51;;2952:2;2937:18;562:20:0;2818:203:2;1751:240:1;;;;;;:::i;:::-;-1:-1:-1;;;;;1922:30:1;;;;1890:4;1922:30;;;:22;:30;;;;;;;;-1:-1:-1;;;;;;1922:43:1;;;;;;;;;;1978:1;1914:60;;;;;;1913:66;:71;;;1751:240;2183:310;;;;;;:::i;:::-;;:::i;589:26:0:-;;;;;-1:-1:-1;;;;;589:26:0;;;2693:272:1;;;;;;:::i;:::-;;:::i;1588:157::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1701:18:1;;;;1669:4;1701:18;;;:12;:18;;;;;;1732:1;1693:35;;;;;1692:41;:46;;;1588:157;1963:164:0;;;;;;:::i;:::-;;:::i;3610:337:1:-;902:33:0;915:10;927:7;;-1:-1:-1;;;;;;927:7:0;902:12;:33::i;:::-;894:58;;;;-1:-1:-1;;;894:58:0;;;;;;;:::i;:::-;;;;;;;;;3743:7:1::1;3739:150;;;-1:-1:-1::0;;;;;3766:18:1;::::1;3788;3766::::0;;;:12:::1;:18;::::0;;;;:40;;3796:1:::1;:9;::::0;::::1;;3766:40;::::0;;3739:150:::1;;;-1:-1:-1::0;;;;;3837:18:1;::::1;3860;3837::::0;;;:12:::1;:18;::::0;;;;:41;;3868:1:::1;:9;::::0;::::1;;3859:19;3837:41;::::0;;3739:150:::1;3926:4;3904:36;;3920:4;-1:-1:-1::0;;;;;3904:36:1::1;;3932:7;3904:36;;;;1251:14:2::0;1244:22;1226:41;;1214:2;1199:18;;1086:187;3904:36:1::1;;;;;;;;3610:337:::0;;;:::o;1523:434:0:-;1794:5;;-1:-1:-1;;;;;1794:5:0;1780:10;:19;;:76;;-1:-1:-1;1803:9:0;;:53;;-1:-1:-1;;;1803:53:0;;-1:-1:-1;;;;;1803:9:0;;;;:17;;:53;;1821:10;;1841:4;;-1:-1:-1;;;;;;1803:9:0;1848:7;;;1803:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1772:85;;;;;;1868:9;:24;;-1:-1:-1;;;;;;1868:24:0;-1:-1:-1;;;;;1868:24:0;;;;;;;;1908:42;;1925:10;;1908:42;;-1:-1:-1;;1908:42:0;1523:434;:::o;2971:444:1:-;902:33:0;915:10;927:7;;-1:-1:-1;;;;;;927:7:0;902:12;:33::i;:::-;894:58;;;;-1:-1:-1;;;894:58:0;;;;;;;:::i;:::-;3140:7:1::1;3136:200;;;-1:-1:-1::0;;;;;3163:30:1;::::1;3210:18;3163:30:::0;;;:22:::1;:30;::::0;;;;;;;-1:-1:-1;;;;;;3163:43:1;::::1;::::0;;;;;;;:65;;3218:1:::1;:9;::::0;::::1;;3163:65;::::0;;3136:200:::1;;;-1:-1:-1::0;;;;;3259:30:1;::::1;3307:18;3259:30:::0;;;:22:::1;:30;::::0;;;;;;;-1:-1:-1;;;;;;3259:43:1;::::1;::::0;;;;;;;:66;;3315:1:::1;:9;::::0;::::1;;3306:19;3259:66;::::0;;3136:200:::1;3387:11;-1:-1:-1::0;;;;;3351:57:1::1;;3379:6;-1:-1:-1::0;;;;;3351:57:1::1;3373:4;3351:57;;;3400:7;3351:57;;;;1251:14:2::0;1244:22;1226:41;;1214:2;1199:18;;1086:187;3351:57:1::1;;;;;;;;2971:444:::0;;;;:::o;2183:310::-;-1:-1:-1;;;;;2353:26:1;;2318:4;2353:26;;;:18;:26;;;;;;;;-1:-1:-1;;;;;;2353:39:1;;;;;;;;;;;;;:133;;-1:-1:-1;;;;;;2443:30:1;;;;;;;:22;:30;;;;;;;;-1:-1:-1;;;;;;2443:43:1;;;;;;;;;;2422:18;;;;;:12;:18;;;;;;:64;2408:78;;2353:133;2334:152;2183:310;-1:-1:-1;;;;2183:310:1:o;2693:272::-;902:33:0;915:10;927:7;;-1:-1:-1;;;;;;927:7:0;902:12;:33::i;:::-;894:58;;;;-1:-1:-1;;;894:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2840:26:1;::::1;;::::0;;;:18:::1;:26;::::0;;;;;;;-1:-1:-1;;;;;;2840:39:1;::::1;::::0;;;;;;;;;;:49;;-1:-1:-1;;2840:49:1::1;::::0;::::1;;::::0;;::::1;::::0;;;2905:53;;1226:41:2;;;2840:39:1;;:26;2905:53:::1;::::0;1199:18:2;2905:53:1::1;1086:187:2::0;1963:164:0;902:33;915:10;927:7;;-1:-1:-1;;;;;;927:7:0;902:12;:33::i;:::-;894:58;;;;-1:-1:-1;;;894:58:0;;;;;;;:::i;:::-;2046:5:::1;:16:::0;;-1:-1:-1;;;;;;2046:16:0::1;-1:-1:-1::0;;;;;2046:16:0;::::1;::::0;;::::1;::::0;;2078:42:::1;::::0;2046:16;;2099:10:::1;::::0;2078:42:::1;::::0;2046:5;2078:42:::1;1963:164:::0;:::o;977:540::-;1097:9;;1064:4;;-1:-1:-1;;;;;1097:9:0;1415:27;;;;;:77;;-1:-1:-1;1446:46:0;;-1:-1:-1;;;1446:46:0;;-1:-1:-1;;;;;1446:12:0;;;;;:46;;1459:4;;1473;;1480:11;;1446:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1414:96;;;-1:-1:-1;1505:5:0;;-1:-1:-1;;;;;1497:13:0;;;1505:5;;1497:13;1407:103;977:540;-1:-1:-1;;;;977:540:0:o;14:131:2:-;-1:-1:-1;;;;;89:31:2;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:2:o;584:173::-;651:20;;-1:-1:-1;;;;;;700:32:2;;690:43;;680:71;;747:1;744;737:12;680:71;584:173;;;:::o;762:319::-;829:6;837;890:2;878:9;869:7;865:23;861:32;858:52;;;906:1;903;896:12;858:52;945:9;932:23;964:31;989:5;964:31;:::i;:::-;1014:5;-1:-1:-1;1038:37:2;1071:2;1056:18;;1038:37;:::i;:::-;1028:47;;762:319;;;;;:::o;1278:156::-;1344:20;;1404:4;1393:16;;1383:27;;1373:55;;1424:1;1421;1414:12;1439:118;1525:5;1518:13;1511:21;1504:5;1501:32;1491:60;;1547:1;1544;1537:12;1562:452;1634:6;1642;1650;1703:2;1691:9;1682:7;1678:23;1674:32;1671:52;;;1719:1;1716;1709:12;1671:52;1758:9;1745:23;1777:31;1802:5;1777:31;:::i;:::-;1827:5;-1:-1:-1;1851:36:2;1883:2;1868:18;;1851:36;:::i;:::-;1841:46;;1939:2;1928:9;1924:18;1911:32;1952:30;1974:7;1952:30;:::i;:::-;2001:7;1991:17;;;1562:452;;;;;:::o;2288:525::-;2368:6;2376;2384;2392;2445:3;2433:9;2424:7;2420:23;2416:33;2413:53;;;2462:1;2459;2452:12;2413:53;2485:27;2502:9;2485:27;:::i;:::-;2475:37;;2562:2;2551:9;2547:18;2534:32;2575:31;2600:5;2575:31;:::i;:::-;2625:5;-1:-1:-1;2649:37:2;2682:2;2667:18;;2649:37;:::i;:::-;2639:47;;2738:2;2727:9;2723:18;2710:32;2751:30;2773:7;2751:30;:::i;:::-;2288:525;;;;-1:-1:-1;2288:525:2;;-1:-1:-1;;2288:525:2:o;3026:389::-;3100:6;3108;3116;3169:2;3157:9;3148:7;3144:23;3140:32;3137:52;;;3185:1;3182;3175:12;3137:52;3208:27;3225:9;3208:27;:::i;:::-;3198:37;;3285:2;3274:9;3270:18;3257:32;3298:31;3323:5;3298:31;:::i;:::-;3348:5;-1:-1:-1;3372:37:2;3405:2;3390:18;;3372:37;:::i;:::-;3362:47;;3026:389;;;;;:::o;3420:460::-;3496:6;3504;3512;3565:2;3553:9;3544:7;3540:23;3536:32;3533:52;;;3581:1;3578;3571:12;3533:52;3620:9;3607:23;3639:31;3664:5;3639:31;:::i;4110:454::-;4183:6;4191;4199;4252:2;4240:9;4231:7;4227:23;4223:32;4220:52;;;4268:1;4265;4258:12;4220:52;4307:9;4294:23;4326:31;4351:5;4326:31;:::i;:::-;4376:5;-1:-1:-1;4400:37:2;4433:2;4418:18;;4400:37;:::i;4569:317::-;4635:6;4643;4696:2;4684:9;4675:7;4671:23;4667:32;4664:52;;;4712:1;4709;4702:12;4664:52;4751:9;4738:23;4770:31;4795:5;4770:31;:::i;:::-;4820:5;-1:-1:-1;4844:36:2;4876:2;4861:18;;4844:36;:::i;4891:336::-;5093:2;5075:21;;;5132:2;5112:18;;;5105:30;-1:-1:-1;;;5166:2:2;5151:18;;5144:42;5218:2;5203:18;;4891:336::o;5232:400::-;-1:-1:-1;;;;;5488:15:2;;;5470:34;;5540:15;;;;5535:2;5520:18;;5513:43;-1:-1:-1;;;;;;5592:33:2;;;5587:2;5572:18;;5565:61;5420:2;5405:18;;5232:400::o;5637:245::-;5704:6;5757:2;5745:9;5736:7;5732:23;5728:32;5725:52;;;5773:1;5770;5763:12;5725:52;5805:9;5799:16;5824:28;5846:5;5824:28;:::i

Swarm Source

ipfs://a5d282a90b79f5aa939e48b2b8b418b685ec429cf4a704703696c53633056e97

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  ]
[ 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.