Core Contracts

tezNames system consists of three contracts. cTezname is the most important contract that contains all the necessary data fields and functions for the tezName. The other two contracts, cGate and cNameType, are utilities of the tezNames system.

cTezname

contract storage

storage

type tTeznameType
    = Regular | Premium | Restricted of bytes
type tTeznameInfo
    = RegularName
    | PremiumName    of tMerkleProof
    | RestrictedName of tMerkleProof * bytes
type tMerkleProof = ((bytes, bytes) variant) list
type tTeznameStorage =
    { sTezname       : tHashedName
    ; sAdmin         : address
    (* -- ownership -- *)
    ; sDest          : address
    ; sOwner         : address
    (* -- advanced info -- *)
    ; sTeznameType    : tTeznameType
    ; sSubnameRecords : tRecords
    (* -- temporal info -- *)
    ; sRegistrationDate  : timestamp
    ; sExpirationDate    : timestamp
    ; sLastModification  : timestamp * string
    }

contract entry

storage

resetOwnership : (address * address * tTeznameType) -> _
updateSubnameRecord : (bytes * address) -> _
update : ((address, address) variant) -> _
renew : unit -> _

cGate

contract storage

storage

type tAuctions =
    (bytes, (tez * address * timestamp)) map
type tCommission =
    { regP : tez
    ; preP : tez
    ; resP : tez
    }
type tGateStorage =
    { sAdmin      : address
    ; scNameTypes : address
    ; scRootname  : address
    ; sCommission : tCommission
    ; sAuctions   : tAuctions
    }

contract entry

entries

register : (bytes * tTeznameInfo) -> _
resolve : bytes  -> _
setup : (address * address     * tCommission ) -> _

cNameTypes

contract storage

storage

type tNameTypesStorage =
    { sPremiumRoot    : tMerkleRoot
    ; sRestrictedRoot : tMerkleRoot
    }

contract entry

entry

nameCheck : (bytes * tTeznameInfo) -> _
update : (bytes * bytes) -> _

<Details to be written>