Transaction Hash:
Block:
15702776 at Oct-08-2022 10:28:47 AM +UTC
Transaction Fee:
0.0003000118722307 ETH
$0.78
Gas Used:
45,185 Gas / 6.63963422 Gwei
Emitted Events:
287 |
globalregistrar.Changed( name=E5A5B3E7A59EE9998DE887A80000000000000000000000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x5564886c...41Db9F561 | (Linagee: Name Registrar) | ||||
0xe0503E15...07104ba71 |
0.00496267231075577 Eth
Nonce: 8
|
0.00466266043852507 Eth
Nonce: 9
| 0.0003000118722307 | ||
0xeBec795c...8F299cAcf
Miner
| (Fee Recipient: 0xeBe...Acf) | 1,143.965984273108540893 Eth | 1,143.966052050608540893 Eth | 0.0000677775 |
Execution Trace
globalregistrar.reserve( _name=E5A5B3E7A59EE9998DE887A80000000000000000000000000000000000000000 )
contract NameRegister { function addr(bytes32 _name) constant returns (address o_owner) {} function name(address _owner) constant returns (bytes32 o_name) {} } contract Registrar is NameRegister { event Changed(bytes32 indexed name); event PrimaryChanged(bytes32 indexed name, address indexed addr); function owner(bytes32 _name) constant returns (address o_owner) {} function addr(bytes32 _name) constant returns (address o_address) {} function subRegistrar(bytes32 _name) constant returns (address o_subRegistrar) {} function content(bytes32 _name) constant returns (bytes32 o_content) {} function name(address _owner) constant returns (bytes32 o_name) {} } contract GlobalRegistrar is Registrar { struct Record { address owner; address primary; address subRegistrar; bytes32 content; uint value; uint renewalDate; } function Registrar() { // TODO: Populate with hall-of-fame. } function reserve(bytes32 _name) { // Don't allow the same name to be overwritten. // TODO: bidding mechanism if (m_toRecord[_name].owner == 0) { m_toRecord[_name].owner = msg.sender; Changed(_name); } } /* TODO > 12 chars: free <= 12 chars: auction: 1. new names are auctioned - 7 day period to collect all bid bytes32es + deposits - 1 day period to collect all bids to be considered (validity requires associated deposit to be >10% of bid) - all valid bids are burnt except highest - difference between that and second highest is returned to winner 2. remember when last auctioned/renewed 3. anyone can force renewal process: - 7 day period to collect all bid bytes32es + deposits - 1 day period to collect all bids & full amounts - bids only uncovered if sufficiently high. - 1% of winner burnt; original owner paid rest. */ modifier onlyrecordowner(bytes32 _name) { if (m_toRecord[_name].owner == msg.sender) _ } function transfer(bytes32 _name, address _newOwner) onlyrecordowner(_name) { m_toRecord[_name].owner = _newOwner; Changed(_name); } function disown(bytes32 _name) onlyrecordowner(_name) { if (m_toName[m_toRecord[_name].primary] == _name) { PrimaryChanged(_name, m_toRecord[_name].primary); m_toName[m_toRecord[_name].primary] = ""; } delete m_toRecord[_name]; Changed(_name); } function setAddress(bytes32 _name, address _a, bool _primary) onlyrecordowner(_name) { m_toRecord[_name].primary = _a; if (_primary) { PrimaryChanged(_name, _a); m_toName[_a] = _name; } Changed(_name); } function setSubRegistrar(bytes32 _name, address _registrar) onlyrecordowner(_name) { m_toRecord[_name].subRegistrar = _registrar; Changed(_name); } function setContent(bytes32 _name, bytes32 _content) onlyrecordowner(_name) { m_toRecord[_name].content = _content; Changed(_name); } function owner(bytes32 _name) constant returns (address) { return m_toRecord[_name].owner; } function addr(bytes32 _name) constant returns (address) { return m_toRecord[_name].primary; } // function subRegistrar(bytes32 _name) constant returns (address) { return m_toRecord[_name].subRegistrar; } // TODO: bring in on next iteration. function register(bytes32 _name) constant returns (address) { return m_toRecord[_name].subRegistrar; } // only possible for now function content(bytes32 _name) constant returns (bytes32) { return m_toRecord[_name].content; } function name(address _owner) constant returns (bytes32 o_name) { return m_toName[_owner]; } mapping (address => bytes32) m_toName; mapping (bytes32 => Record) m_toRecord; }