Deed

The Deed contract has two main features:

  • Store RIF tokens locked on a bid
  • Handle the annual rent payment.

Deed contract holds RIF tokens in exchange for a domain ownership. The Deed contract is controlled by the Registrar and is the only one capable to sends tokens back to the owner.

Submitting a bid creates a Deed contract which holds the funds and stores information related to the owner and the domain expiration. Have a look at the Registrar bid submission:

// Creates a new hash contract with the owner
TokenDeed createdBid = new TokenDeed(_from, _tokenQuantity, tokenContract);
require(tokenContract.transfer(createdBid, _tokenQuantity));
sealedBids[_from][_sealedBid] = createdBid;

Once bidded, you can query for a particular bid’s Deed:

var deedAddress = registrar.sealedBids(address, sealedBid)
var deedInstante = web3.contract(deedAbi)
var deed = deedInstance.at(deedAddress)

If we’d like to know info about nakamoto.rsk’s deed:

var deedAddress = registrar.entries(web3.sha3('nakamoto'))[1]
var deedInstante = web3.contract(deedAbi)
var deed = deedInstance.at(deedAddress)

Methods

There are only 3 methods that can be accessed directly. Everything else are accessible only by the Registrar.

canPayRent

Returns whether the current date falls within the Deed’s rent payment period.

Signature

function canPayRent() public view returns(bool)

expired

Returns whether the Deed is expired or not.

Signature

function expired() public view returns(bool)

closeExpiredDeed

Close an expired Deed. No funds are returned.

Signature

function closeExpiredDeed() public onlyActive