ETH Price: $3,092.51 (-0.48%)
Gas: 5 Gwei

Transaction Decoder

Block:
7863910 at May-30-2019 11:47:02 PM +UTC
Transaction Fee:
0.000767643 ETH $2.37
Gas Used:
767,643 Gas / 1 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x0904Dac3...9a3b99859
(ENS: Wallet)
4.768013778306366185 Eth
Nonce: 307
4.767246135306366185 Eth
Nonce: 308
0.000767643
0x285088c7...408E5284a
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 401021785022851871675051646482195458651150360290215453140013752050300141537427518818939053363969656637149214065600014387343075140905680463064786436985211124856393201081133806187458446533546567087468091253458262998742938418115892187725848887564107960676018167697587189174701101198678008933364594910554226966359559132472524533355403432735309676064766365932017523306785297243784781833225147992361286911459662660069980195707493327968846017792070383694110982926667907496131491177350834943605612836265677644757935809323599619118388080191855046773128251305467822670253019010489108044480106151459970504086294253256476600101337816794027882493077018094791902925926220649109599109145052121164998625853733931887461855325078533910139637814282807577587855144844924901236798041178159022087989845430004414382404376383622463868578547927678526019754686947901733575730914888576305170127925924635933119332824187908680485785777130321736329562278703397629518544820308055893627083489480058774638759256563868120359270301653482309532846712313258315402003136743903372799892658843666149535005836668158622303154354503392666670244186309680418167945425201077311301812826989485598701322131217810362941611670295433977044491393070203485358575421890407511778147727463275672856445124403875176355515534257129451150900319061721832318827939602456538200869976918135823524236703833566414512222018690450793440011440119818795358072515086427946887424572618462853452397581016545996307192225214726849000844702600646569996222945267093523332580627062473659308176535063860726746118296241776830980830613629207122801699525203038736564499216469720733940508740015917486454076928053667916516950840632169358405476875660311667367584101573440649789209734339717994555140621361457924355330329925609915112134587880181793163274857834785277980566652845329795119311719809905725257963636942320863115111331201045384043834332860973873530458840462874098055433453674252087803853863592714499115203509460619788212028454665477600091503243105224765632331296431443199136636455033018924191743150645845508307514738123282342102594504394591665388059581076142970924624319318852527842516186453937877430110138234543000783361964822441412574650230640079411295764967961555473523009374495799546289993253502106009560571662815213604581927474668377170382029037975985856673268132097063319509593979140964864457992543468772412580301473698462747478091765341999926520147380572362818238400453320238029472367092432113894141795907250693784242414837577256171912015094950211761906035683369947905637171157388614624232433788891130486728254550865119673603453762193384170090951489503190418733960440905537894282145158854915364786052230396647072263955374121565411017118675739624345731163502962760573170161063613283508811644363679672694586352197558996635379947673302626017666716613258507861629620159533824865436438532164914234130651779408029468801901461565669405674149046468246362295514529567106843052357241680203747997380845268079314597028822228643451385347272230990140322699412387644902566047394286204666489372553028934086666978432017792058595908419306570057992159150984430881826728992300116552630286108867544705566728989253059951615522476710115725567198386610532815047558367796937194845838651024417230482836937168872124423447721414555438891869814990865362819022674337405728908799614555272098575846249829721185385071197168305191487274128448428761700790717451081031162666642008150546727247588151850480471614415417088692087831472931554642300883458694580830584255280084048950019076019480325860856627632490047292107529260030788854886227859592297205432332638834076258331484684350038312550419596156215671341122699432471866113746531000924176037922351189888702799139197415901060604932988841025906285484801373821252098836880755255365167033872312284399538709068582489538166005051293095422880519091953679894480390640266562887274771042263033864349568320202189757822857675704315914413264903347476421737933767130932996836255576697894733577902919594653065797178882449308797938219139434462261709490196078929433739736742109617286901007089626898049272311323451986749100938637890216105476966569418259171196534927675846465187735387309079914360868081542517071563616723046800665985679388138610864682325450180230732957411131179629040387524337275082683451330588161404098877115355917281542307280939210380555590025838563507822122293220033744954766384223425159531506166707593596465289177231277662601448183926006114646647921283764357778402212314058176131207598946752094002086322030826735930826789784236422374694472493156434216996522358727606446531893041393390980106546739218286426728449499392609388337018169631551872169633365549301601591118979006302475182925091036794355099222260991468542753537879149181889325819792762066097995120482427053407974962747270080526496995516698656570611040006930747670005225955803303131939143675920640270886119465308727044422480975464202369386251090315711224110896441029915251500339269767582153499090526637058871625429165043635963444029174812807332893709750468121388593214614977552515193265594195479845825657529961906294449614611345792905166026741824916945812302979182516684905712437248341828004333609098132715167121061612087864088060525711730051606194766452550007858740635126610279442760383379408926856243576869627451525596962778752992366426524675236416876534121479824302053466929833786207690451075248918119669903758899702386455572083029783681545439477559793569758780995359612282485895220201902917448901626354362587977363118713954013761247760171767039181034308526190665061716450893075391710123929375225147335843240189414375026813743686858050769943473172224255322070018358191616953236530672622732873089854492405120622620096700706051948655055565785736576350813069005369866603149015426090267677863784938598840148019183973768209903282934015921220152605763517724613089046887010560653817175757731746566095467469553496863977267364410364065958576310925933753121871363335142154298079766862465835954426316922288185570462206592948649878156365282173232095659285914476660501552955433
(Spark Pool)
4,412.408874242779211409 Eth4,412.409641885779211409 Eth0.000767643

Execution Trace

Root.60806040( )
// File: @ensdomains/ens/contracts/ENS.sol

pragma solidity >=0.4.24;

interface ENS {

    // Logged when the owner of a node assigns a new owner to a subnode.
    event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);

    // Logged when the owner of a node transfers ownership to a new account.
    event Transfer(bytes32 indexed node, address owner);

    // Logged when the resolver for a node changes.
    event NewResolver(bytes32 indexed node, address resolver);

    // Logged when the TTL of a node changes
    event NewTTL(bytes32 indexed node, uint64 ttl);


    function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external;
    function setResolver(bytes32 node, address resolver) external;
    function setOwner(bytes32 node, address owner) external;
    function setTTL(bytes32 node, uint64 ttl) external;
    function owner(bytes32 node) external view returns (address);
    function resolver(bytes32 node) external view returns (address);
    function ttl(bytes32 node) external view returns (uint64);

}

// File: contracts/Ownable.sol

pragma solidity ^0.5.0;

contract Ownable {

    address public owner;

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

    modifier onlyOwner {
        require(isOwner(msg.sender));
        _;
    }

    constructor() public {
        owner = msg.sender;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    function isOwner(address addr) public view returns (bool) {
        return owner == addr;
    }
}

// File: contracts/Controllable.sol

pragma solidity ^0.5.0;


contract Controllable is Ownable {
    mapping(address=>bool) public controllers;

    event ControllerChanged(address indexed controller, bool enabled);

    modifier onlyController {
        require(controllers[msg.sender]);
        _;
    }

    function setController(address controller, bool enabled) public onlyOwner {
        controllers[controller] = enabled;
        emit ControllerChanged(controller, enabled);
    }
}

// File: contracts/Root.sol

pragma solidity ^0.5.0;




contract Root is Ownable, Controllable {
    bytes32 constant private ROOT_NODE = bytes32(0);

    bytes4 constant private INTERFACE_META_ID = bytes4(keccak256("supportsInterface(bytes4)"));

    event TLDLocked(bytes32 indexed label);

    ENS public ens;
    mapping(bytes32=>bool) public locked;

    constructor(ENS _ens) public {
        ens = _ens;
    }

    function setSubnodeOwner(bytes32 label, address owner) external onlyController {
        require(!locked[label]);
        ens.setSubnodeOwner(ROOT_NODE, label, owner);
    }

    function setResolver(address resolver) external onlyOwner {
        ens.setResolver(ROOT_NODE, resolver);
    }

    function lock(bytes32 label) external onlyOwner {
        emit TLDLocked(label);
        locked[label] = true;
    }

    function supportsInterface(bytes4 interfaceID) external pure returns (bool) {
        return interfaceID == INTERFACE_META_ID;
    }
}