ETH Price: $3,424.17 (-2.27%)
Gas: 2 Gwei

Contract

0x7A3d898b717e50a96fd8b232E9d15F0A547A7eeb
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Mint127314912021-06-29 22:06:321089 days ago1625004392IN
Synthetix: Native Ether Wrapper
0.01 ETH0.0032528430.1
Mint127314732021-06-29 22:02:581089 days ago1625004178IN
Synthetix: Native Ether Wrapper
0.01 ETH0.0013126725.8
Burn125815452021-06-06 14:38:451113 days ago1622990325IN
Synthetix: Native Ether Wrapper
0 ETH0.0046029912
Mint125591342021-06-03 3:28:241116 days ago1622690904IN
Synthetix: Native Ether Wrapper
29.580165 ETH0.004820720
Mint125574802021-06-02 21:15:191117 days ago1622668519IN
Synthetix: Native Ether Wrapper
25.0126 ETH0.0053027722
Burn125572442021-06-02 20:22:351117 days ago1622665355IN
Synthetix: Native Ether Wrapper
0 ETH0.0073487922
Mint125530822021-06-02 5:11:171117 days ago1622610677IN
Synthetix: Native Ether Wrapper
6 ETH0.0043882917
Mint125077092021-05-26 4:07:161124 days ago1622002036IN
Synthetix: Native Ether Wrapper
15 ETH0.009757537.80000153
Mint124772792021-05-21 10:53:111129 days ago1621594391IN
Synthetix: Native Ether Wrapper
0.01 ETH0.010422240.37500059
Mint124532502021-05-17 17:15:491133 days ago1621271749IN
Synthetix: Native Ether Wrapper
1 ETH0.02651385110
Transfer124356282021-05-14 23:50:271135 days ago1621036227IN
Synthetix: Native Ether Wrapper
0.01912308 ETH0.00225128107
Mint124270612021-05-13 16:20:151137 days ago1620922815IN
Synthetix: Native Ether Wrapper
10 ETH0.0361389140
Burn124265412021-05-13 14:23:101137 days ago1620915790IN
Synthetix: Native Ether Wrapper
0 ETH0.03729285150
Mint124265072021-05-13 14:15:251137 days ago1620915325IN
Synthetix: Native Ether Wrapper
1 ETH0.0457149140
Nominate New Own...124263572021-05-13 13:44:311137 days ago1620913471IN
Synthetix: Native Ether Wrapper
0 ETH0.009414200
0x60806040124256792021-05-13 11:09:141137 days ago1620904154IN
 Create: NativeEtherWrapper
0 ETH0.1898326200

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
186827302023-11-30 6:46:59206 days ago1701326819
Synthetix: Native Ether Wrapper
0.001 ETH
186827302023-11-30 6:46:59206 days ago1701326819
Synthetix: Native Ether Wrapper
0.001 ETH
186400952023-11-24 7:32:35212 days ago1700811155
Synthetix: Native Ether Wrapper
0.001 ETH
186400952023-11-24 7:32:35212 days ago1700811155
Synthetix: Native Ether Wrapper
0.001 ETH
181328032023-09-14 6:42:47283 days ago1694673767
Synthetix: Native Ether Wrapper
0.001 ETH
181328032023-09-14 6:42:47283 days ago1694673767
Synthetix: Native Ether Wrapper
0.001 ETH
149586312022-06-13 23:21:51740 days ago1655162511
Synthetix: Native Ether Wrapper
858.87720722 ETH
149586312022-06-13 23:21:51740 days ago1655162511
Synthetix: Native Ether Wrapper
858.87720722 ETH
149580772022-06-13 21:03:38741 days ago1655154218
Synthetix: Native Ether Wrapper
1,943.276696 ETH
149580772022-06-13 21:03:38741 days ago1655154218
Synthetix: Native Ether Wrapper
1,943.276696 ETH
149579102022-06-13 20:23:08741 days ago1655151788
Synthetix: Native Ether Wrapper
2,392.36 ETH
149579102022-06-13 20:23:08741 days ago1655151788
Synthetix: Native Ether Wrapper
2,392.36 ETH
149578442022-06-13 20:06:18741 days ago1655150778
Synthetix: Native Ether Wrapper
1,577.0101 ETH
149578442022-06-13 20:06:18741 days ago1655150778
Synthetix: Native Ether Wrapper
1,577.0101 ETH
149574322022-06-13 18:21:24741 days ago1655144484
Synthetix: Native Ether Wrapper
481.92 ETH
149574322022-06-13 18:21:24741 days ago1655144484
Synthetix: Native Ether Wrapper
481.92 ETH
149269752022-06-08 13:37:46746 days ago1654695466
Synthetix: Native Ether Wrapper
264.22149291 ETH
149269752022-06-08 13:37:46746 days ago1654695466
Synthetix: Native Ether Wrapper
264.22149291 ETH
149241952022-06-08 2:07:54746 days ago1654654074
Synthetix: Native Ether Wrapper
1,091.49709865 ETH
149241952022-06-08 2:07:54746 days ago1654654074
Synthetix: Native Ether Wrapper
1,091.49709865 ETH
149236012022-06-07 23:41:30746 days ago1654645290
Synthetix: Native Ether Wrapper
1,152.6818329 ETH
149236012022-06-07 23:41:30746 days ago1654645290
Synthetix: Native Ether Wrapper
1,152.6818329 ETH
149226162022-06-07 19:39:33747 days ago1654630773
Synthetix: Native Ether Wrapper
1,633.74526544 ETH
149226162022-06-07 19:39:33747 days ago1654630773
Synthetix: Native Ether Wrapper
1,633.74526544 ETH
149225132022-06-07 19:15:17747 days ago1654629317
Synthetix: Native Ether Wrapper
1,100.65082913 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NativeEtherWrapper

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-13
*/

/*
   ____            __   __        __   _
  / __/__ __ ___  / /_ / /  ___  / /_ (_)__ __
 _\ \ / // // _ \/ __// _ \/ -_)/ __// / \ \ /
/___/ \_, //_//_/\__//_//_/\__/ \__//_/ /_\_\
     /___/

* Synthetix: NativeEtherWrapper.sol
*
* Latest source (may be newer): https://github.com/Synthetixio/synthetix/blob/master/contracts/NativeEtherWrapper.sol
* Docs: https://docs.synthetix.io/contracts/NativeEtherWrapper
*
* Contract Dependencies: 
*	- IAddressResolver
*	- MixinResolver
*	- Owned
* Libraries: (none)
*
* MIT License
* ===========
*
* Copyright (c) 2021 Synthetix
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*/



pragma solidity ^0.5.16;

// https://docs.synthetix.io/contracts/source/contracts/owned
contract Owned {
    address public owner;
    address public nominatedOwner;

    constructor(address _owner) public {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external {
        require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner {
        _onlyOwner();
        _;
    }

    function _onlyOwner() private view {
        require(msg.sender == owner, "Only the contract owner may perform this action");
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}


// https://docs.synthetix.io/contracts/source/interfaces/iaddressresolver
interface IAddressResolver {
    function getAddress(bytes32 name) external view returns (address);

    function getSynth(bytes32 key) external view returns (address);

    function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address);
}


interface IWETH {
    // ERC20 Optional Views
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    // Views
    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function allowance(address owner, address spender) external view returns (uint);

    // Mutative functions
    function transfer(address to, uint value) external returns (bool);

    function approve(address spender, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    // WETH-specific functions.
    function deposit() external payable;

    function withdraw(uint amount) external;

    // Events
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    event Deposit(address indexed to, uint amount);
    event Withdrawal(address indexed to, uint amount);
}


// https://docs.synthetix.io/contracts/source/interfaces/ietherwrapper
contract IEtherWrapper {
    function mint(uint amount) external;

    function burn(uint amount) external;

    function distributeFees() external;

    function capacity() external view returns (uint);

    function getReserves() external view returns (uint);

    function totalIssuedSynths() external view returns (uint);

    function calculateMintFee(uint amount) public view returns (uint);

    function calculateBurnFee(uint amount) public view returns (uint);

    function maxETH() public view returns (uint256);

    function mintFeeRate() public view returns (uint256);

    function burnFeeRate() public view returns (uint256);

    function weth() public view returns (IWETH);
}


// https://docs.synthetix.io/contracts/source/interfaces/isynth
interface ISynth {
    // Views
    function currencyKey() external view returns (bytes32);

    function transferableSynths(address account) external view returns (uint);

    // Mutative functions
    function transferAndSettle(address to, uint value) external returns (bool);

    function transferFromAndSettle(
        address from,
        address to,
        uint value
    ) external returns (bool);

    // Restricted: used internally to Synthetix
    function burn(address account, uint amount) external;

    function issue(address account, uint amount) external;
}


// https://docs.synthetix.io/contracts/source/interfaces/ierc20
interface IERC20 {
    // ERC20 Optional Views
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    // Views
    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function allowance(address owner, address spender) external view returns (uint);

    // Mutative functions
    function transfer(address to, uint value) external returns (bool);

    function approve(address spender, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    // Events
    event Transfer(address indexed from, address indexed to, uint value);

    event Approval(address indexed owner, address indexed spender, uint value);
}


// https://docs.synthetix.io/contracts/source/interfaces/iissuer
interface IIssuer {
    // Views
    function anySynthOrSNXRateIsInvalid() external view returns (bool anyRateInvalid);

    function availableCurrencyKeys() external view returns (bytes32[] memory);

    function availableSynthCount() external view returns (uint);

    function availableSynths(uint index) external view returns (ISynth);

    function canBurnSynths(address account) external view returns (bool);

    function collateral(address account) external view returns (uint);

    function collateralisationRatio(address issuer) external view returns (uint);

    function collateralisationRatioAndAnyRatesInvalid(address _issuer)
        external
        view
        returns (uint cratio, bool anyRateIsInvalid);

    function debtBalanceOf(address issuer, bytes32 currencyKey) external view returns (uint debtBalance);

    function issuanceRatio() external view returns (uint);

    function lastIssueEvent(address account) external view returns (uint);

    function maxIssuableSynths(address issuer) external view returns (uint maxIssuable);

    function minimumStakeTime() external view returns (uint);

    function remainingIssuableSynths(address issuer)
        external
        view
        returns (
            uint maxIssuable,
            uint alreadyIssued,
            uint totalSystemDebt
        );

    function synths(bytes32 currencyKey) external view returns (ISynth);

    function getSynths(bytes32[] calldata currencyKeys) external view returns (ISynth[] memory);

    function synthsByAddress(address synthAddress) external view returns (bytes32);

    function totalIssuedSynths(bytes32 currencyKey, bool excludeEtherCollateral) external view returns (uint);

    function transferableSynthetixAndAnyRateIsInvalid(address account, uint balance)
        external
        view
        returns (uint transferable, bool anyRateIsInvalid);

    // Restricted: used internally to Synthetix
    function issueSynths(address from, uint amount) external;

    function issueSynthsOnBehalf(
        address issueFor,
        address from,
        uint amount
    ) external;

    function issueMaxSynths(address from) external;

    function issueMaxSynthsOnBehalf(address issueFor, address from) external;

    function burnSynths(address from, uint amount) external;

    function burnSynthsOnBehalf(
        address burnForAddress,
        address from,
        uint amount
    ) external;

    function burnSynthsToTarget(address from) external;

    function burnSynthsToTargetOnBehalf(address burnForAddress, address from) external;

    function liquidateDelinquentAccount(
        address account,
        uint susdAmount,
        address liquidator
    ) external returns (uint totalRedeemed, uint amountToLiquidate);
}


// Inheritance


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/addressresolver
contract AddressResolver is Owned, IAddressResolver {
    mapping(bytes32 => address) public repository;

    constructor(address _owner) public Owned(_owner) {}

    /* ========== RESTRICTED FUNCTIONS ========== */

    function importAddresses(bytes32[] calldata names, address[] calldata destinations) external onlyOwner {
        require(names.length == destinations.length, "Input lengths must match");

        for (uint i = 0; i < names.length; i++) {
            bytes32 name = names[i];
            address destination = destinations[i];
            repository[name] = destination;
            emit AddressImported(name, destination);
        }
    }

    /* ========= PUBLIC FUNCTIONS ========== */

    function rebuildCaches(MixinResolver[] calldata destinations) external {
        for (uint i = 0; i < destinations.length; i++) {
            destinations[i].rebuildCache();
        }
    }

    /* ========== VIEWS ========== */

    function areAddressesImported(bytes32[] calldata names, address[] calldata destinations) external view returns (bool) {
        for (uint i = 0; i < names.length; i++) {
            if (repository[names[i]] != destinations[i]) {
                return false;
            }
        }
        return true;
    }

    function getAddress(bytes32 name) external view returns (address) {
        return repository[name];
    }

    function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address) {
        address _foundAddress = repository[name];
        require(_foundAddress != address(0), reason);
        return _foundAddress;
    }

    function getSynth(bytes32 key) external view returns (address) {
        IIssuer issuer = IIssuer(repository["Issuer"]);
        require(address(issuer) != address(0), "Cannot find Issuer address");
        return address(issuer.synths(key));
    }

    /* ========== EVENTS ========== */

    event AddressImported(bytes32 name, address destination);
}


// solhint-disable payable-fallback

// https://docs.synthetix.io/contracts/source/contracts/readproxy
contract ReadProxy is Owned {
    address public target;

    constructor(address _owner) public Owned(_owner) {}

    function setTarget(address _target) external onlyOwner {
        target = _target;
        emit TargetUpdated(target);
    }

    function() external {
        // The basics of a proxy read call
        // Note that msg.sender in the underlying will always be the address of this contract.
        assembly {
            calldatacopy(0, 0, calldatasize)

            // Use of staticcall - this will revert if the underlying function mutates state
            let result := staticcall(gas, sload(target_slot), 0, calldatasize, 0, 0)
            returndatacopy(0, 0, returndatasize)

            if iszero(result) {
                revert(0, returndatasize)
            }
            return(0, returndatasize)
        }
    }

    event TargetUpdated(address newTarget);
}


// Inheritance


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/mixinresolver
contract MixinResolver {
    AddressResolver public resolver;

    mapping(bytes32 => address) private addressCache;

    constructor(address _resolver) internal {
        resolver = AddressResolver(_resolver);
    }

    /* ========== INTERNAL FUNCTIONS ========== */

    function combineArrays(bytes32[] memory first, bytes32[] memory second)
        internal
        pure
        returns (bytes32[] memory combination)
    {
        combination = new bytes32[](first.length + second.length);

        for (uint i = 0; i < first.length; i++) {
            combination[i] = first[i];
        }

        for (uint j = 0; j < second.length; j++) {
            combination[first.length + j] = second[j];
        }
    }

    /* ========== PUBLIC FUNCTIONS ========== */

    // Note: this function is public not external in order for it to be overridden and invoked via super in subclasses
    function resolverAddressesRequired() public view returns (bytes32[] memory addresses) {}

    function rebuildCache() public {
        bytes32[] memory requiredAddresses = resolverAddressesRequired();
        // The resolver must call this function whenver it updates its state
        for (uint i = 0; i < requiredAddresses.length; i++) {
            bytes32 name = requiredAddresses[i];
            // Note: can only be invoked once the resolver has all the targets needed added
            address destination =
                resolver.requireAndGetAddress(name, string(abi.encodePacked("Resolver missing target: ", name)));
            addressCache[name] = destination;
            emit CacheUpdated(name, destination);
        }
    }

    /* ========== VIEWS ========== */

    function isResolverCached() external view returns (bool) {
        bytes32[] memory requiredAddresses = resolverAddressesRequired();
        for (uint i = 0; i < requiredAddresses.length; i++) {
            bytes32 name = requiredAddresses[i];
            // false if our cache is invalid or if the resolver doesn't have the required address
            if (resolver.getAddress(name) != addressCache[name] || addressCache[name] == address(0)) {
                return false;
            }
        }

        return true;
    }

    /* ========== INTERNAL FUNCTIONS ========== */

    function requireAndGetAddress(bytes32 name) internal view returns (address) {
        address _foundAddress = addressCache[name];
        require(_foundAddress != address(0), string(abi.encodePacked("Missing address: ", name)));
        return _foundAddress;
    }

    /* ========== EVENTS ========== */

    event CacheUpdated(bytes32 name, address destination);
}


// @unsupported: ovm


// Inheritance


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/nativeetherwrapper
contract NativeEtherWrapper is Owned, MixinResolver {
    bytes32 private constant CONTRACT_ETHER_WRAPPER = "EtherWrapper";
    bytes32 private constant CONTRACT_SYNTHSETH = "SynthsETH";

    constructor(address _owner, address _resolver) public Owned(_owner) MixinResolver(_resolver) {}

    /* ========== PUBLIC FUNCTIONS ========== */

    /* ========== VIEWS ========== */
    function resolverAddressesRequired() public view returns (bytes32[] memory addresses) {
        bytes32[] memory addresses = new bytes32[](2);
        addresses[0] = CONTRACT_ETHER_WRAPPER;
        addresses[1] = CONTRACT_SYNTHSETH;
        return addresses;
    }

    function etherWrapper() internal view returns (IEtherWrapper) {
        return IEtherWrapper(requireAndGetAddress(CONTRACT_ETHER_WRAPPER));
    }

    function weth() internal view returns (IWETH) {
        return etherWrapper().weth();
    }

    function synthsETH() internal view returns (IERC20) {
        return IERC20(requireAndGetAddress(CONTRACT_SYNTHSETH));
    }

    /* ========== MUTATIVE FUNCTIONS ========== */

    function mint() public payable {
        uint amount = msg.value;
        require(amount > 0, "msg.value must be greater than 0");

        // Convert sent ETH into WETH.
        weth().deposit.value(amount)();

        // Approve for the EtherWrapper.
        weth().approve(address(etherWrapper()), amount);

        // Now call mint.
        etherWrapper().mint(amount);

        // Transfer the sETH to msg.sender.
        synthsETH().transfer(msg.sender, synthsETH().balanceOf(address(this)));

        emit Minted(msg.sender, amount);
    }

    function burn(uint amount) public {
        require(amount > 0, "amount must be greater than 0");
        IWETH weth = weth();

        // Transfer sETH from the msg.sender.
        synthsETH().transferFrom(msg.sender, address(this), amount);

        // Approve for the EtherWrapper.
        synthsETH().approve(address(etherWrapper()), amount);

        // Now call burn.
        etherWrapper().burn(amount);

        // Convert WETH to ETH and send to msg.sender.
        weth.withdraw(weth.balanceOf(address(this)));
        // solhint-disable avoid-low-level-calls
        msg.sender.call.value(address(this).balance)("");

        emit Burned(msg.sender, amount);
    }

    function() external payable {
        // Allow the WETH contract to send us ETH during
        // our call to WETH.deposit. The gas stipend it gives
        // is 2300 gas, so it's not possible to do much else here.
    }

    /* ========== EVENTS ========== */
    // While these events are replicated in the core EtherWrapper,
    // it is useful to see the usage of the NativeEtherWrapper contract.
    event Minted(address indexed account, uint amount);
    event Burned(address indexed account, uint amount);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_resolver","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"name","type":"bytes32"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"CacheUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isResolverCached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mint","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"rebuildCache","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"resolver","outputs":[{"internalType":"contract AddressResolver","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"resolverAddressesRequired","outputs":[{"internalType":"bytes32[]","name":"addresses","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506040516110703803806110708339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050610f4c806101246000396000f3fe6080604052600436106100915760003560e01c806353a47bb71161005957806353a47bb714610152578063741853601461016757806379ba50971461017c578063899ffef4146101915780638da5cb5b146101f657610091565b806304f3bcec146100935780631249c58b146100c45780631627540c146100cc5780632af64bd3146100ff57806342966c6814610128575b005b34801561009f57600080fd5b506100a861020b565b604080516001600160a01b039092168252519081900360200190f35b61009161021a565b3480156100d857600080fd5b50610091600480360360208110156100ef57600080fd5b50356001600160a01b031661051c565b34801561010b57600080fd5b50610114610578565b604080519115158252519081900360200190f35b34801561013457600080fd5b506100916004803603602081101561014b57600080fd5b5035610683565b34801561015e57600080fd5b506100a86109c2565b34801561017357600080fd5b506100916109d1565b34801561018857600080fd5b50610091610b99565b34801561019d57600080fd5b506101a6610c55565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101e25781810151838201526020016101ca565b505050509050019250505060405180910390f35b34801561020257600080fd5b506100a8610ccc565b6002546001600160a01b031681565b348061026d576040805162461bcd60e51b815260206004820181905260248201527f6d73672e76616c7565206d7573742062652067726561746572207468616e2030604482015290519081900360640190fd5b610275610cdb565b6001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156102af57600080fd5b505af11580156102c3573d6000803e3d6000fd5b50505050506102d0610cdb565b6001600160a01b031663095ea7b36102e6610d4e565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b505050506040513d602081101561036057600080fd5b5061036b9050610d4e565b6001600160a01b031663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506103d0610d6d565b6001600160a01b031663a9059cbb336103e7610d6d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561043c57600080fd5b505afa158015610450573d6000803e3d6000fd5b505050506040513d602081101561046657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156104b757600080fd5b505af11580156104cb573d6000803e3d6000fd5b505050506040513d60208110156104e157600080fd5b505060408051828152905133917f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe919081900360200190a250565b610524610d84565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060610584610c55565b905060005b81518110156106795760008282815181106105a057fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561060857600080fd5b505afa15801561061c573d6000803e3d6000fd5b505050506040513d602081101561063257600080fd5b50516001600160a01b031614158061065f57506000818152600360205260409020546001600160a01b0316155b156106705760009350505050610680565b50600101610589565b5060019150505b90565b600081116106d8576040805162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b60006106e2610cdb565b90506106ec610d6d565b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b506107799050610d6d565b6001600160a01b031663095ea7b361078f610d4e565b846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107df57600080fd5b505af11580156107f3573d6000803e3d6000fd5b505050506040513d602081101561080957600080fd5b506108149050610d4e565b6001600160a01b03166342966c68836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516001600160a01b0385169350632e1a7d4d925083916370a08231916024808301926020929190829003018186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d60208110156108e957600080fd5b5051604080516001600160e01b031960e085901b168152600481019290925251602480830192600092919082900301818387803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b5050604051339250479150600081818185875af1925050503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b50506040805184815290513392507f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df79181900360200190a25050565b6001546001600160a01b031681565b60606109db610c55565b905060005b8151811015610b955760008282815181106109f757fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610aad578181015183820152602001610a95565b50505050905090810190601f168015610ada5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109e0565b5050565b6001546001600160a01b03163314610be25760405162461bcd60e51b8152600401808060200182810382526035815260200180610eb46035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6040805160028082526060808301845292839291906020830190803883390190505090506b22ba3432b92bb930b83832b960a11b81600081518110610c9657fe5b602002602001018181525050680a6f2dce8d0e68aa8960bb1b81600181518110610cbc57fe5b6020908102919091010152905090565b6000546001600160a01b031681565b6000610ce5610d4e565b6001600160a01b0316633fc8cef36040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d6020811015610d4757600080fd5b5051905090565b6000610d686b22ba3432b92bb930b83832b960a11b610dcf565b905090565b6000610d68680a6f2dce8d0e68aa8960bb1b610dcf565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ee9602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610eac5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e71578181015183820152602001610e59565b50505050905090810190601f168015610e9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158205440feb76760d81bf7cf1ac0dae8e6f196bbf524ccf55137d94ab5d0b4391e9064736f6c63430005100032000000000000000000000000de910777c787903f78c89e7a0bf7f4c435cbb1fe0000000000000000000000004e3b31eb0e5cb73641ee1e65e7dcefe520ba3ef2

Deployed Bytecode

0x6080604052600436106100915760003560e01c806353a47bb71161005957806353a47bb714610152578063741853601461016757806379ba50971461017c578063899ffef4146101915780638da5cb5b146101f657610091565b806304f3bcec146100935780631249c58b146100c45780631627540c146100cc5780632af64bd3146100ff57806342966c6814610128575b005b34801561009f57600080fd5b506100a861020b565b604080516001600160a01b039092168252519081900360200190f35b61009161021a565b3480156100d857600080fd5b50610091600480360360208110156100ef57600080fd5b50356001600160a01b031661051c565b34801561010b57600080fd5b50610114610578565b604080519115158252519081900360200190f35b34801561013457600080fd5b506100916004803603602081101561014b57600080fd5b5035610683565b34801561015e57600080fd5b506100a86109c2565b34801561017357600080fd5b506100916109d1565b34801561018857600080fd5b50610091610b99565b34801561019d57600080fd5b506101a6610c55565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101e25781810151838201526020016101ca565b505050509050019250505060405180910390f35b34801561020257600080fd5b506100a8610ccc565b6002546001600160a01b031681565b348061026d576040805162461bcd60e51b815260206004820181905260248201527f6d73672e76616c7565206d7573742062652067726561746572207468616e2030604482015290519081900360640190fd5b610275610cdb565b6001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156102af57600080fd5b505af11580156102c3573d6000803e3d6000fd5b50505050506102d0610cdb565b6001600160a01b031663095ea7b36102e6610d4e565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561033657600080fd5b505af115801561034a573d6000803e3d6000fd5b505050506040513d602081101561036057600080fd5b5061036b9050610d4e565b6001600160a01b031663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506103d0610d6d565b6001600160a01b031663a9059cbb336103e7610d6d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561043c57600080fd5b505afa158015610450573d6000803e3d6000fd5b505050506040513d602081101561046657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156104b757600080fd5b505af11580156104cb573d6000803e3d6000fd5b505050506040513d60208110156104e157600080fd5b505060408051828152905133917f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe919081900360200190a250565b610524610d84565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060610584610c55565b905060005b81518110156106795760008282815181106105a057fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561060857600080fd5b505afa15801561061c573d6000803e3d6000fd5b505050506040513d602081101561063257600080fd5b50516001600160a01b031614158061065f57506000818152600360205260409020546001600160a01b0316155b156106705760009350505050610680565b50600101610589565b5060019150505b90565b600081116106d8576040805162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b60006106e2610cdb565b90506106ec610d6d565b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b506107799050610d6d565b6001600160a01b031663095ea7b361078f610d4e565b846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107df57600080fd5b505af11580156107f3573d6000803e3d6000fd5b505050506040513d602081101561080957600080fd5b506108149050610d4e565b6001600160a01b03166342966c68836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b5050604080516370a0823160e01b815230600482015290516001600160a01b0385169350632e1a7d4d925083916370a08231916024808301926020929190829003018186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d60208110156108e957600080fd5b5051604080516001600160e01b031960e085901b168152600481019290925251602480830192600092919082900301818387803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b5050604051339250479150600081818185875af1925050503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b50506040805184815290513392507f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df79181900360200190a25050565b6001546001600160a01b031681565b60606109db610c55565b905060005b8151811015610b955760008282815181106109f757fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610aad578181015183820152602001610a95565b50505050905090810190601f168015610ada5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d6020811015610b2257600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109e0565b5050565b6001546001600160a01b03163314610be25760405162461bcd60e51b8152600401808060200182810382526035815260200180610eb46035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6040805160028082526060808301845292839291906020830190803883390190505090506b22ba3432b92bb930b83832b960a11b81600081518110610c9657fe5b602002602001018181525050680a6f2dce8d0e68aa8960bb1b81600181518110610cbc57fe5b6020908102919091010152905090565b6000546001600160a01b031681565b6000610ce5610d4e565b6001600160a01b0316633fc8cef36040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d6020811015610d4757600080fd5b5051905090565b6000610d686b22ba3432b92bb930b83832b960a11b610dcf565b905090565b6000610d68680a6f2dce8d0e68aa8960bb1b610dcf565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ee9602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610eac5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e71578181015183820152602001610e59565b50505050905090810190601f168015610e9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158205440feb76760d81bf7cf1ac0dae8e6f196bbf524ccf55137d94ab5d0b4391e9064736f6c63430005100032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000de910777c787903f78c89e7a0bf7f4c435cbb1fe0000000000000000000000004e3b31eb0e5cb73641ee1e65e7dcefe520ba3ef2

-----Decoded View---------------
Arg [0] : _owner (address): 0xDe910777C787903F78C89e7a0bf7F4C435cBB1Fe
Arg [1] : _resolver (address): 0x4E3b31eB0E5CB73641EE1E65E7dCEFe520bA3ef2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000de910777c787903f78c89e7a0bf7f4c435cbb1fe
Arg [1] : 0000000000000000000000004e3b31eb0e5cb73641ee1e65e7dcefe520ba3ef2


Libraries Used


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.