@ -169,16 +169,15 @@ function testGitHubImport (browser, callback) {
}
* /
var abstractENS = ` pragma solidity ^0.4.0;
var abstractENS = `
contract AbstractENS {
function owner ( bytes32 node ) constant returns ( address ) ;
function resolver ( bytes32 node ) constant returns ( address ) ;
function ttl ( bytes32 node ) constant returns ( uint64 ) ;
function setOwner ( bytes32 node , address owner ) ;
function setSubnodeOwner ( bytes32 node , bytes32 label , address owner ) ;
function setResolver ( bytes32 node , address resolver ) ;
function setTTL ( bytes32 node , uint64 ttl ) ;
function owner ( bytes32 node ) public view returns ( address ) ;
function resolver ( bytes32 node ) public view returns ( address ) ;
function ttl ( bytes32 node ) public view returns ( uint64 ) ;
function setOwner ( bytes32 node , address owner ) public ;
function setSubnodeOwner ( bytes32 node , bytes32 label , address owner ) public ;
function setResolver ( bytes32 node , address resolver ) public ;
function setTTL ( bytes32 node , uint64 ttl ) public ;
// Logged when the owner of a node assigns a new owner to a subnode.
event NewOwner ( bytes32 indexed node , bytes32 indexed label , address owner ) ;
@ -201,91 +200,91 @@ import './AbstractENS.sol';
* The ENS registry contract .
* /
contract ENS is AbstractENS {
struct Record {
address owner ;
address resolver ;
uint64 ttl ;
}
struct Record {
address owner ;
address resolver ;
uint64 ttl ;
}
mapping ( bytes32 => Record ) records ;
mapping ( bytes32 => Record ) records ;
// Permits modifications only by the owner of the specified node.
modifier only _owner ( bytes32 node ) {
if ( records [ node ] . owner != msg . sender ) throw ;
_ ;
}
// Permits modifications only by the owner of the specified node.
modifier only _owner ( bytes32 node ) {
if ( records [ node ] . owner != msg . sender ) revert ( ) ;
_ ;
}
/ * *
* Constructs a new ENS registrar .
* /
function ENS ( ) {
records [ 0 ] . owner = msg . sender ;
}
/ * *
* Constructs a new ENS registrar .
* /
constructor ( ) public {
records [ 0 ] . owner = msg . sender ;
}
/ * *
* Returns the address that owns the specified node .
* /
function owner ( bytes32 node ) constant returns ( address ) {
return records [ node ] . owner ;
}
/ * *
* Returns the address that owns the specified node .
* /
function owner ( bytes32 node ) public view returns ( address ) {
return records [ node ] . owner ;
}
/ * *
* Returns the address of the resolver for the specified node .
* /
function resolver ( bytes32 node ) constant returns ( address ) {
return records [ node ] . resolver ;
}
/ * *
* Returns the address of the resolver for the specified node .
* /
function resolver ( bytes32 node ) public view returns ( address ) {
return records [ node ] . resolver ;
}
/ * *
* Returns the TTL of a node , and any records associated with it .
* /
function ttl ( bytes32 node ) constant returns ( uint64 ) {
return records [ node ] . ttl ;
}
/ * *
* Returns the TTL of a node , and any records associated with it .
* /
function ttl ( bytes32 node ) public view returns ( uint64 ) {
return records [ node ] . ttl ;
}
/ * *
* Transfers ownership of a node to a new address . May only be called by the current
* owner of the node .
* @ param node The node to transfer ownership of .
* @ param owner The address of the new owner .
* /
function setOwner ( bytes32 node , address owner ) only _owner ( node ) {
Transfer ( node , owner ) ;
records [ node ] . owner = owner ;
}
/ * *
* Transfers ownership of a node to a new address . May only be called by the current
* owner of the node .
* @ param node The node to transfer ownership of .
* @ param owner The address of the new owner .
* /
function setOwner ( bytes32 node , address owner ) public only _owner ( node ) {
emit Transfer ( node , owner ) ;
records [ node ] . owner = owner ;
}
/ * *
* Transfers ownership of a subnode sha3 ( node , label ) to a new address . May only be
* called by the owner of the parent node .
* @ param node The parent node .
* @ param label The hash of the label specifying the subnode .
* @ param owner The address of the new owner .
* /
function setSubnodeOwner ( bytes32 node , bytes32 label , address owner ) only _owner ( node ) {
var subnode = sha3 ( node , label ) ;
NewOwner ( node , label , owner ) ;
records [ subnode ] . owner = owner ;
}
/ * *
* Transfers ownership of a subnode sha3 ( node , label ) to a new address . May only be
* called by the owner of the parent node .
* @ param node The parent node .
* @ param label The hash of the label specifying the subnode .
* @ param owner The address of the new owner .
* /
function setSubnodeOwner ( bytes32 node , bytes32 label , address owner ) public only _owner ( node ) {
bytes32 subnode = keccak256 ( abi . encodePacked ( node , label ) ) ;
emit NewOwner ( node , label , owner ) ;
records [ subnode ] . owner = owner ;
}
/ * *
* Sets the resolver address for the specified node .
* @ param node The node to update .
* @ param resolver The address of the resolver .
* /
function setResolver ( bytes32 node , address resolver ) only _owner ( node ) {
NewResolver ( node , resolver ) ;
records [ node ] . resolver = resolver ;
}
/ * *
* Sets the resolver address for the specified node .
* @ param node The node to update .
* @ param resolver The address of the resolver .
* /
function setResolver ( bytes32 node , address resolver ) public only _owner ( node ) {
emit NewResolver ( node , resolver ) ;
records [ node ] . resolver = resolver ;
}
/ * *
* Sets the TTL for the specified node .
* @ param node The node to update .
* @ param ttl The TTL in seconds .
* /
function setTTL ( bytes32 node , uint64 ttl ) only _owner ( node ) {
NewTTL ( node , ttl ) ;
records [ node ] . ttl = ttl ;
}
/ * *
* Sets the TTL for the specified node .
* @ param node The node to update .
* @ param ttl The TTL in seconds .
* /
function setTTL ( bytes32 node , uint64 ttl ) public only _owner ( node ) {
emit NewTTL ( node , ttl ) ;
records [ node ] . ttl = ttl ;
}
} `
var sources = [
@ -310,14 +309,14 @@ var sources = [
} ,
{
'browser/Untitled5.sol' : { content : ` library lib {
function get ( ) returns ( uint ) {
function getInt ( ) public view returns ( uint ) {
return 45 ;
}
}
contract test {
function get ( ) constant returns ( uint ) {
return lib . get ( ) ;
function get ( ) public view returns ( uint ) {
return lib . getInt ( ) ;
}
} ` }
}