POL Price: $0.618132 (-3.95%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...443721802023-06-26 20:15:45535 days ago1687810545IN
0x18B8A143...a8954b295
0 POL0.00397873138.88841822
Transfer Control438815542023-06-13 23:29:30548 days ago1686698970IN
0x18B8A143...a8954b295
0 POL0.00499015162.82162507
Set Address438814122023-06-13 23:24:28548 days ago1686698668IN
0x18B8A143...a8954b295
0 POL0.00796366165.62674455
Set Address Uint...438813602023-06-13 23:22:25548 days ago1686698545IN
0x18B8A143...a8954b295
0 POL0.00788677162.14577905
Set Address Uint...438813172023-06-13 23:20:53548 days ago1686698453IN
0x18B8A143...a8954b295
0 POL0.00814654167.48652463
Set Address Uint...438812702023-06-13 23:18:59548 days ago1686698339IN
0x18B8A143...a8954b295
0 POL0.00759065156.05790268
Set Address Uint...438812282023-06-13 23:17:29548 days ago1686698249IN
0x18B8A143...a8954b295
0 POL0.00753972155.01079996
Set Address Uint...438811422023-06-13 23:14:27548 days ago1686698067IN
0x18B8A143...a8954b295
0 POL0.0090479186.01771354
Set Address Uint...438811012023-06-13 23:12:55548 days ago1686697975IN
0x18B8A143...a8954b295
0 POL0.00868283178.46812934

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Configuration

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 4 : Configuration.sol
/*
Configuration

https://github.com/gysr-io/core

SPDX-License-Identifier: MIT
*/

pragma solidity 0.8.18;

import "./interfaces/IConfiguration.sol";
import "./OwnerController.sol";

/**
 * @title Configuration
 *
 * @notice configuration contract to define global variables for GYSR protocol
 */
contract Configuration is IConfiguration, OwnerController {
    // data
    mapping(bytes32 => uint256) private _data;
    mapping(address => mapping(bytes32 => uint256)) _overrides;

    /**
     * @inheritdoc IConfiguration
     */
    function setUint256(
        bytes32 key,
        uint256 value
    ) external override onlyController {
        _data[key] = value;
        emit ParameterUpdated(key, value);
    }

    /**
     * @inheritdoc IConfiguration
     */
    function setAddress(
        bytes32 key,
        address value
    ) external override onlyController {
        _data[key] = uint256(uint160(value));
        emit ParameterUpdated(key, value);
    }

    /**
     * @inheritdoc IConfiguration
     */
    function setAddressUint96(
        bytes32 key,
        address value0,
        uint96 value1
    ) external override onlyController {
        uint256 val = uint256(uint160(value0));
        val |= uint256(value1) << 160;
        _data[key] = val;
        emit ParameterUpdated(key, value0, value1);
    }

    /**
     * @inheritdoc IConfiguration
     */
    function getUint256(bytes32 key) external view override returns (uint256) {
        if (_overrides[msg.sender][key] > 0) return _overrides[msg.sender][key];
        return _data[key];
    }

    /**
     * @inheritdoc IConfiguration
     */
    function getAddress(bytes32 key) external view override returns (address) {
        if (_overrides[msg.sender][key] > 0)
            return address(uint160(_overrides[msg.sender][key]));
        return address(uint160(_data[key]));
    }

    /**
     * @inheritdoc IConfiguration
     */
    function getAddressUint96(
        bytes32 key
    ) external view override returns (address, uint96) {
        uint256 val = _overrides[msg.sender][key] > 0
            ? _overrides[msg.sender][key]
            : _data[key];
        return (address(uint160(val)), uint96(val >> 160));
    }

    /**
     * @inheritdoc IConfiguration
     */
    function overrideUint256(
        address caller,
        bytes32 key,
        uint256 value
    ) external override onlyController {
        _overrides[caller][key] = value;
        emit ParameterOverridden(caller, key, value);
    }

    /**
     * @inheritdoc IConfiguration
     */
    function overrideAddress(
        address caller,
        bytes32 key,
        address value
    ) external override onlyController {
        uint256 val = uint256(uint160(value));
        _overrides[caller][key] = val;
        emit ParameterOverridden(caller, key, value);
    }

    /**
     * @inheritdoc IConfiguration
     */
    function overrideAddressUint96(
        address caller,
        bytes32 key,
        address value0,
        uint96 value1
    ) external override onlyController {
        uint256 val = uint256(uint160(value0));
        val |= uint256(value1) << 160;
        _overrides[caller][key] = val;
        emit ParameterOverridden(caller, key, value0, value1);
    }
}

File 2 of 4 : IConfiguration.sol
/*
IConfiguration

https://github.com/gysr-io/core

SPDX-License-Identifier: MIT
*/

pragma solidity 0.8.18;

/**
 * @title Configuration interface
 *
 * @notice this defines the protocol configuration interface
 */
interface IConfiguration {
    // events
    event ParameterUpdated(bytes32 indexed key, address value);
    event ParameterUpdated(bytes32 indexed key, uint256 value);
    event ParameterUpdated(bytes32 indexed key, address value0, uint96 value1);
    event ParameterOverridden(
        address indexed caller,
        bytes32 indexed key,
        address value
    );
    event ParameterOverridden(
        address indexed caller,
        bytes32 indexed key,
        uint256 value
    );
    event ParameterOverridden(
        address indexed caller,
        bytes32 indexed key,
        address value0,
        uint96 value1
    );

    /**
     * @notice set or update uint256 parameter
     * @param key keccak256 hash of parameter key
     * @param value uint256 parameter value
     */
    function setUint256(bytes32 key, uint256 value) external;

    /**
     * @notice set or update address parameter
     * @param key keccak256 hash of parameter key
     * @param value address parameter value
     */
    function setAddress(bytes32 key, address value) external;

    /**
     * @notice set or update packed address + uint96 pair
     * @param key keccak256 hash of parameter key
     * @param value0 address parameter value
     * @param value1 uint96 parameter value
     */
    function setAddressUint96(
        bytes32 key,
        address value0,
        uint96 value1
    ) external;

    /**
     * @notice get uint256 parameter
     * @param key keccak256 hash of parameter key
     * @return uint256 parameter value
     */
    function getUint256(bytes32 key) external view returns (uint256);

    /**
     * @notice get address parameter
     * @param key keccak256 hash of parameter key
     * @return uint256 parameter value
     */
    function getAddress(bytes32 key) external view returns (address);

    /**
     * @notice get packed address + uint96 pair
     * @param key keccak256 hash of parameter key
     * @return address parameter value
     * @return uint96 parameter value
     */
    function getAddressUint96(
        bytes32 key
    ) external view returns (address, uint96);

    /**
     * @notice override uint256 parameter for specific caller
     * @param caller address of caller
     * @param key keccak256 hash of parameter key
     * @param value uint256 parameter value
     */
    function overrideUint256(
        address caller,
        bytes32 key,
        uint256 value
    ) external;

    /**
     * @notice override address parameter for specific caller
     * @param caller address of caller
     * @param key keccak256 hash of parameter key
     * @param value address parameter value
     */
    function overrideAddress(
        address caller,
        bytes32 key,
        address value
    ) external;

    /**
     * @notice override address parameter for specific caller
     * @param caller address of caller
     * @param key keccak256 hash of parameter key
     * @param value0 address parameter value
     * @param value1 uint96 parameter value
     */
    function overrideAddressUint96(
        address caller,
        bytes32 key,
        address value0,
        uint96 value1
    ) external;
}

File 3 of 4 : IOwnerController.sol
/*
IOwnerController

https://github.com/gysr-io/core

SPDX-License-Identifier: MIT
*/

pragma solidity 0.8.18;

/**
 * @title Owner controller interface
 *
 * @notice this defines the interface for any contracts that use the
 * owner controller access pattern
 */
interface IOwnerController {
    /**
     * @dev Returns the address of the current owner.
     */
    function owner() external view returns (address);

    /**
     * @dev Returns the address of the current controller.
     */
    function controller() external view returns (address);

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`). This can
     * include renouncing ownership by transferring to the zero address.
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) external;

    /**
     * @dev Transfers control of the contract to a new account (`newController`).
     * Can only be called by the owner.
     */
    function transferControl(address newController) external;
}

File 4 of 4 : OwnerController.sol
/*
OwnerController

https://github.com/gysr-io/core

SPDX-License-Identifier: MIT
*/

pragma solidity 0.8.18;

import "./interfaces/IOwnerController.sol";

/**
 * @title Owner controller
 *
 * @notice this base contract implements an owner-controller access model.
 *
 * @dev the contract is an adapted version of the OpenZeppelin Ownable contract.
 * It allows the owner to designate an additional account as the controller to
 * perform restricted operations.
 *
 * Other changes include supporting role verification with a require method
 * in addition to the modifier option, and removing some unneeded functionality.
 *
 * Original contract here:
 * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol
 */
contract OwnerController is IOwnerController {
    address private _owner;
    address private _controller;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    event ControlTransferred(
        address indexed previousController,
        address indexed newController
    );

    constructor() {
        _owner = msg.sender;
        _controller = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
        emit ControlTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view override returns (address) {
        return _owner;
    }

    /**
     * @dev Returns the address of the current controller.
     */
    function controller() public view override returns (address) {
        return _controller;
    }

    /**
     * @dev Modifier that throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == msg.sender, "oc1");
        _;
    }

    /**
     * @dev Modifier that throws if called by any account other than the controller.
     */
    modifier onlyController() {
        require(_controller == msg.sender, "oc2");
        _;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    function requireOwner() internal view {
        require(_owner == msg.sender, "oc1");
    }

    /**
     * @dev Throws if called by any account other than the controller.
     */
    function requireController() internal view {
        require(_controller == msg.sender, "oc2");
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual override {
        requireOwner();
        require(newOwner != address(0), "oc3");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    /**
     * @dev Transfers control of the contract to a new account (`newController`).
     * Can only be called by the owner.
     */
    function transferControl(address newController) public virtual override {
        requireOwner();
        require(newController != address(0), "oc4");
        emit ControlTransferred(_controller, newController);
        _controller = newController;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousController","type":"address"},{"indexed":true,"internalType":"address","name":"newController","type":"address"}],"name":"ControlTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ParameterOverridden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ParameterOverridden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value0","type":"address"},{"indexed":false,"internalType":"uint96","name":"value1","type":"uint96"}],"name":"ParameterOverridden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ParameterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ParameterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value0","type":"address"},{"indexed":false,"internalType":"uint96","name":"value1","type":"uint96"}],"name":"ParameterUpdated","type":"event"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getAddressUint96","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getUint256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"overrideAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value0","type":"address"},{"internalType":"uint96","name":"value1","type":"uint96"}],"name":"overrideAddressUint96","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"overrideUint256","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value0","type":"address"},{"internalType":"uint96","name":"value1","type":"uint96"}],"name":"setAddressUint96","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setUint256","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newController","type":"address"}],"name":"transferControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060008054336001600160a01b0319918216811783556001805490921681179091556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600080546040516001600160a01b0390911691907fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f2908290a3610d99806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063bf88d9d511610066578063bf88d9d514610208578063ca446dd91461021b578063f2fde38b1461022e578063f77c47911461024157600080fd5b80638da5cb5b146101c45780639a8ddf1a146101e2578063b05dbf22146101f557600080fd5b80634f3029c2116100bd5780634f3029c214610152578063575313cd146101655780636d16fa41146101b157600080fd5b80630fb82676146100e457806321f8a721146100f957806333598b0014610136575b600080fd5b6100f76100f2366004610beb565b61025f565b005b61010c610107366004610c38565b610397565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610144610107366004610c38565b60405190815260200161012d565b6100f7610160366004610c51565b6103e8565b610178610173366004610c38565b6104ba565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff90911660208301520161012d565b6100f76101bf366004610c73565b61051b565b60005473ffffffffffffffffffffffffffffffffffffffff1661010c565b6100f76101f0366004610c95565b61062e565b6100f7610203366004610cd1565b610721565b6100f7610216366004610d04565b61080e565b6100f7610229366004610d37565b610934565b6100f761023c366004610c73565b610a11565b60015473ffffffffffffffffffffffffffffffffffffffff1661010c565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff848116600081815260036020908152604080832088845282529182902093861660a086901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179485905582519081526bffffffffffffffffffffffff8616918101919091528692917fd240764df8b7d976efa973b131eeae859f1efa5872658e3500751f5ec25ed3cb910160405180910390a35050505050565b336000908152600360209081526040808320848452909152812054156103d55750336000908152600360209081526040808320938352929052205490565b5060009081526002602052604090205490565b60015473ffffffffffffffffffffffffffffffffffffffff163314610469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b600082815260026020526040908190208290555182907ffdae04feea64164f7a1003019a92a4460a1d01652e226a7177d695c5017aa912906104ae9084815260200190565b60405180910390a25050565b336000908152600360209081526040808320848452909152812054819081906104f15760008481526002602052604090205461050d565b3360009081526003602090815260408083208784529091529020545b9460a086901c945092505050565b610523610b23565b73ffffffffffffffffffffffffffffffffffffffff81166105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6334000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f290600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526003602090815260408083208784528252918290209385169384905590518381528592917ff14ca68a61d3d5598260eb185f1301fbf2d42106b9d2f45d1d46451505b4093d910160405180910390a350505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260036020908152604080832086845282529182902084905590518381528492917ff3b993d26f99b9ba3aa84e3015d8053d036da065d2f0e85fa2b1840c69c4a866910160405180910390a3505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008381526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff851660a085901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179182905583519081526bffffffffffffffffffffffff8516928101929092529185917f4e67c2d180a6641bedd3b56ec522e36320a1cf4bfaa8c4782686fa4a80087700910160405180910390a250505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008281526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff841690819055915191825283917f1ca5c264cc3cd84fcf0229b8f886e84e181bad05ab81dabf3422e1643959abe891016104ae565b610a19610b23565b73ffffffffffffffffffffffffffffffffffffffff8116610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6333000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6331000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bca57600080fd5b919050565b80356bffffffffffffffffffffffff81168114610bca57600080fd5b60008060008060808587031215610c0157600080fd5b610c0a85610ba6565b935060208501359250610c1f60408601610ba6565b9150610c2d60608601610bcf565b905092959194509250565b600060208284031215610c4a57600080fd5b5035919050565b60008060408385031215610c6457600080fd5b50508035926020909101359150565b600060208284031215610c8557600080fd5b610c8e82610ba6565b9392505050565b600080600060608486031215610caa57600080fd5b610cb384610ba6565b925060208401359150610cc860408501610ba6565b90509250925092565b600080600060608486031215610ce657600080fd5b610cef84610ba6565b95602085013595506040909401359392505050565b600080600060608486031215610d1957600080fd5b83359250610d2960208501610ba6565b9150610cc860408501610bcf565b60008060408385031215610d4a57600080fd5b82359150610d5a60208401610ba6565b9050925092905056fea26469706673582212206821a844396250116e3b9b66d017450d3f0f908429fc677143e43e6044f97c5f64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063bf88d9d511610066578063bf88d9d514610208578063ca446dd91461021b578063f2fde38b1461022e578063f77c47911461024157600080fd5b80638da5cb5b146101c45780639a8ddf1a146101e2578063b05dbf22146101f557600080fd5b80634f3029c2116100bd5780634f3029c214610152578063575313cd146101655780636d16fa41146101b157600080fd5b80630fb82676146100e457806321f8a721146100f957806333598b0014610136575b600080fd5b6100f76100f2366004610beb565b61025f565b005b61010c610107366004610c38565b610397565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610144610107366004610c38565b60405190815260200161012d565b6100f7610160366004610c51565b6103e8565b610178610173366004610c38565b6104ba565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff90911660208301520161012d565b6100f76101bf366004610c73565b61051b565b60005473ffffffffffffffffffffffffffffffffffffffff1661010c565b6100f76101f0366004610c95565b61062e565b6100f7610203366004610cd1565b610721565b6100f7610216366004610d04565b61080e565b6100f7610229366004610d37565b610934565b6100f761023c366004610c73565b610a11565b60015473ffffffffffffffffffffffffffffffffffffffff1661010c565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff848116600081815260036020908152604080832088845282529182902093861660a086901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179485905582519081526bffffffffffffffffffffffff8616918101919091528692917fd240764df8b7d976efa973b131eeae859f1efa5872658e3500751f5ec25ed3cb910160405180910390a35050505050565b336000908152600360209081526040808320848452909152812054156103d55750336000908152600360209081526040808320938352929052205490565b5060009081526002602052604090205490565b60015473ffffffffffffffffffffffffffffffffffffffff163314610469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b600082815260026020526040908190208290555182907ffdae04feea64164f7a1003019a92a4460a1d01652e226a7177d695c5017aa912906104ae9084815260200190565b60405180910390a25050565b336000908152600360209081526040808320848452909152812054819081906104f15760008481526002602052604090205461050d565b3360009081526003602090815260408083208784529091529020545b9460a086901c945092505050565b610523610b23565b73ffffffffffffffffffffffffffffffffffffffff81166105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6334000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f290600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526003602090815260408083208784528252918290209385169384905590518381528592917ff14ca68a61d3d5598260eb185f1301fbf2d42106b9d2f45d1d46451505b4093d910160405180910390a350505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260036020908152604080832086845282529182902084905590518381528492917ff3b993d26f99b9ba3aa84e3015d8053d036da065d2f0e85fa2b1840c69c4a866910160405180910390a3505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008381526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff851660a085901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179182905583519081526bffffffffffffffffffffffff8516928101929092529185917f4e67c2d180a6641bedd3b56ec522e36320a1cf4bfaa8c4782686fa4a80087700910160405180910390a250505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008281526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff841690819055915191825283917f1ca5c264cc3cd84fcf0229b8f886e84e181bad05ab81dabf3422e1643959abe891016104ae565b610a19610b23565b73ffffffffffffffffffffffffffffffffffffffff8116610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6333000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6331000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bca57600080fd5b919050565b80356bffffffffffffffffffffffff81168114610bca57600080fd5b60008060008060808587031215610c0157600080fd5b610c0a85610ba6565b935060208501359250610c1f60408601610ba6565b9150610c2d60608601610bcf565b905092959194509250565b600060208284031215610c4a57600080fd5b5035919050565b60008060408385031215610c6457600080fd5b50508035926020909101359150565b600060208284031215610c8557600080fd5b610c8e82610ba6565b9392505050565b600080600060608486031215610caa57600080fd5b610cb384610ba6565b925060208401359150610cc860408501610ba6565b90509250925092565b600080600060608486031215610ce657600080fd5b610cef84610ba6565b95602085013595506040909401359392505050565b600080600060608486031215610d1957600080fd5b83359250610d2960208501610ba6565b9150610cc860408501610bcf565b60008060408385031215610d4a57600080fd5b82359150610d5a60208401610ba6565b9050925092905056fea26469706673582212206821a844396250116e3b9b66d017450d3f0f908429fc677143e43e6044f97c5f64736f6c63430008120033

Block Transaction 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
[ 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.