Skip to content

Latest commit

 

History

History
1218 lines (698 loc) · 21.4 KB

SoulName.md

File metadata and controls

1218 lines (698 loc) · 21.4 KB

SoulName

Masa Finance

SoulName NFT

SoulName NFT that points to a Soulbound identity token

SoulName NFT, that inherits from the NFT contract, and points to a Soulbound identity token. It has an extension, and stores all the information about the identity names.

Methods

DEFAULT_ADMIN_ROLE

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns

Name Type Description
_0 bytes32 undefined

MINTER_ROLE

function MINTER_ROLE() external view returns (bytes32)

Returns

Name Type Description
_0 bytes32 undefined

approve

function approve(address to, uint256 tokenId) external nonpayable

See {IERC721-approve}.

Parameters

Name Type Description
to address undefined
tokenId uint256 undefined

balanceOf

function balanceOf(address owner) external view returns (uint256)

See {IERC721-balanceOf}.

Parameters

Name Type Description
owner address undefined

Returns

Name Type Description
_0 uint256 undefined

burn

function burn(uint256 tokenId) external nonpayable

Burn a soul name

The caller must be the owner or an approved address of the soul name.

Parameters

Name Type Description
tokenId uint256 TokenId of the soul name to burn

contractURI

function contractURI() external view returns (string)

Returns

Name Type Description
_0 string undefined

exists

function exists(uint256 tokenId) external view returns (bool)

Returns true if the token exists

Returns true if the token has been minted

Parameters

Name Type Description
tokenId uint256 Token to check

Returns

Name Type Description
_0 bool True if the token exists

extension

function extension() external view returns (string)

Returns

Name Type Description
_0 string undefined

getApproved

function getApproved(uint256 tokenId) external view returns (address)

See {IERC721-getApproved}.

Parameters

Name Type Description
tokenId uint256 undefined

Returns

Name Type Description
_0 address undefined

getExtension

function getExtension() external view returns (string)

Returns the extension of the soul name

This function is used to get the extension of the soul name

Returns

Name Type Description
_0 string Extension of the soul name

getRoleAdmin

function getRoleAdmin(bytes32 role) external view returns (bytes32)

Returns the admin role that controls role. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters

Name Type Description
role bytes32 undefined

Returns

Name Type Description
_0 bytes32 undefined

getSoulNames

function getSoulNames(uint256 identityId) external view returns (string[] sbtNames)

Returns all the active soul names of an account

This function queries all the identity names of the specified identity Id

Parameters

Name Type Description
identityId uint256 TokenId of the identity

Returns

Name Type Description
sbtNames string[] Array of soul names associated to the identity Id

getSoulNames

function getSoulNames(address owner) external view returns (string[] sbtNames)

Returns all the active soul names of an account

This function queries all the identity names of the specified account

Parameters

Name Type Description
owner address Address of the owner of the identities

Returns

Name Type Description
sbtNames string[] Array of soul names associated to the account

getTokenData

function getTokenData(string name) external view returns (string sbtName, bool linked, uint256 identityId, uint256 tokenId, uint256 expirationDate, bool active)

Returns the information of a soul name

This function queries the information of a soul name

Parameters

Name Type Description
name string Name of the soul name

Returns

Name Type Description
sbtName string Soul name, in upper/lower case and extension
linked bool true if the soul name is linked, false otherwise
identityId uint256 Identity id of the soul name
tokenId uint256 SoulName id of the soul name
expirationDate uint256 Expiration date of the soul name
active bool true if the soul name is active, false otherwise

getTokenId

function getTokenId(string name) external view returns (uint256)

Returns the token id of a soul name

This function queries the token id of a soul name

Parameters

Name Type Description
name string Name of the soul name

Returns

Name Type Description
_0 uint256 SoulName id of the soul name

grantRole

function grantRole(bytes32 role, address account) external nonpayable

Grants role to account. If account had not been already granted role, emits a {RoleGranted} event. Requirements: - the caller must have role's admin role. May emit a {RoleGranted} event.

Parameters

Name Type Description
role bytes32 undefined
account address undefined

hasRole

function hasRole(bytes32 role, address account) external view returns (bool)

Returns true if account has been granted role.

Parameters

Name Type Description
role bytes32 undefined
account address undefined

Returns

Name Type Description
_0 bool undefined

isApprovedForAll

function isApprovedForAll(address owner, address operator) external view returns (bool)

See {IERC721-isApprovedForAll}.

Parameters

Name Type Description
owner address undefined
operator address undefined

Returns

Name Type Description
_0 bool undefined

isAvailable

function isAvailable(string name) external view returns (bool available)

Checks if a soul name is available

This function queries if a soul name already exists and is in the available state

Parameters

Name Type Description
name string Name of the soul name

Returns

Name Type Description
available bool true if the soul name is available, false otherwise

mint

function mint(address to, string name, uint256 yearsPeriod, string _tokenURI) external nonpayable returns (uint256)

Mints a new soul name

The caller can mint more than one name. The soul name must be unique.

Parameters

Name Type Description
to address Address of the owner of the new soul name
name string Name of the new soul name
yearsPeriod uint256 Years of validity of the name
_tokenURI string URI of the NFT

Returns

Name Type Description
_0 uint256 undefined

name

function name() external view returns (string)

See {IERC721Metadata-name}.

Returns

Name Type Description
_0 string undefined

nameData

function nameData(string) external view returns (bool exists, uint256 tokenId)

Parameters

Name Type Description
_0 string undefined

Returns

Name Type Description
exists bool undefined
tokenId uint256 undefined

owner

function owner() external view returns (address)

Returns the address of the current owner.

Returns

Name Type Description
_0 address undefined

ownerOf

function ownerOf(uint256 tokenId) external view returns (address)

See {IERC721-ownerOf}.

Parameters

Name Type Description
tokenId uint256 undefined

Returns

Name Type Description
_0 address undefined

renewYearsPeriod

function renewYearsPeriod(uint256 tokenId, uint256 yearsPeriod) external nonpayable

Update the expiration date of a soul name

The caller must be the owner or an approved address of the soul name.

Parameters

Name Type Description
tokenId uint256 TokenId of the soul name
yearsPeriod uint256 Years of validity of the name

renounceOwnership

function renounceOwnership() external nonpayable

Leaves the contract without owner. It will not be possible to call onlyOwner functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.

renounceRole

function renounceRole(bytes32 role, address account) external nonpayable

Revokes role from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked role, emits a {RoleRevoked} event. Requirements: - the caller must be account. May emit a {RoleRevoked} event.

Parameters

Name Type Description
role bytes32 undefined
account address undefined

revokeRole

function revokeRole(bytes32 role, address account) external nonpayable

Revokes role from account. If account had been granted role, emits a {RoleRevoked} event. Requirements: - the caller must have role's admin role. May emit a {RoleRevoked} event.

Parameters

Name Type Description
role bytes32 undefined
account address undefined

safeTransferFrom

function safeTransferFrom(address from, address to, uint256 tokenId) external nonpayable

See {IERC721-safeTransferFrom}.

Parameters

Name Type Description
from address undefined
to address undefined
tokenId uint256 undefined

safeTransferFrom

function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) external nonpayable

See {IERC721-safeTransferFrom}.

Parameters

Name Type Description
from address undefined
to address undefined
tokenId uint256 undefined
data bytes undefined

setApprovalForAll

function setApprovalForAll(address operator, bool approved) external nonpayable

See {IERC721-setApprovalForAll}.

Parameters

Name Type Description
operator address undefined
approved bool undefined

setContractURI

function setContractURI(string _contractURI) external nonpayable

Sets the URI of the smart contract metadata

The caller must have the admin role to call this function

Parameters

Name Type Description
_contractURI string URI of the smart contract metadata

setExtension

function setExtension(string _extension) external nonpayable

Sets the extension of the soul name

The caller must have the admin role to call this function

Parameters

Name Type Description
_extension string Extension of the soul name

setSoulboundIdentity

function setSoulboundIdentity(contract ISoulboundIdentity _soulboundIdentity) external nonpayable

Sets the SoulboundIdentity contract address linked to this soul name

The caller must have the admin role to call this function

Parameters

Name Type Description
_soulboundIdentity contract ISoulboundIdentity Address of the SoulboundIdentity contract

soulboundIdentity

function soulboundIdentity() external view returns (contract ISoulboundIdentity)

Returns

Name Type Description
_0 contract ISoulboundIdentity undefined

supportsInterface

function supportsInterface(bytes4 interfaceId) external view returns (bool)

Query if a contract implements an interface

Interface identification is specified in ERC-165.

Parameters

Name Type Description
interfaceId bytes4 The interface identifier, as specified in ERC-165

Returns

Name Type Description
_0 bool true if the contract implements interfaceId and interfaceId is not 0xffffffff, false otherwise

symbol

function symbol() external view returns (string)

See {IERC721Metadata-symbol}.

Returns

Name Type Description
_0 string undefined

tokenByIndex

function tokenByIndex(uint256 index) external view returns (uint256)

See {IERC721Enumerable-tokenByIndex}.

Parameters

Name Type Description
index uint256 undefined

Returns

Name Type Description
_0 uint256 undefined

tokenData

function tokenData(uint256) external view returns (string name, uint256 expirationDate)

Parameters

Name Type Description
_0 uint256 undefined

Returns

Name Type Description
name string undefined
expirationDate uint256 undefined

tokenOfOwnerByIndex

function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256)

See {IERC721Enumerable-tokenOfOwnerByIndex}.

Parameters

Name Type Description
owner address undefined
index uint256 undefined

Returns

Name Type Description
_0 uint256 undefined

tokenURI

function tokenURI(string name) external view returns (string)

A distinct Uniform Resource Identifier (URI) for a given asset.

This function returns the token URI of the soul name specified by the name

Parameters

Name Type Description
name string Name of the soul name

Returns

Name Type Description
_0 string URI of the soulname associated to a name

tokenURI

function tokenURI(uint256 tokenId) external view returns (string)

A distinct Uniform Resource Identifier (URI) for a given asset.

Throws if _tokenId is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the "ERC721 Metadata JSON Schema".

Parameters

Name Type Description
tokenId uint256 NFT to get the URI of

Returns

Name Type Description
_0 string URI of the NFT

totalSupply

function totalSupply() external view returns (uint256)

See {IERC721Enumerable-totalSupply}.

Returns

Name Type Description
_0 uint256 undefined

transferFrom

function transferFrom(address from, address to, uint256 tokenId) external nonpayable

See {IERC721-transferFrom}.

Parameters

Name Type Description
from address undefined
to address undefined
tokenId uint256 undefined

transferOwnership

function transferOwnership(address newOwner) external nonpayable

Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner.

Parameters

Name Type Description
newOwner address undefined

Events

Approval

event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)

Emitted when owner enables approved to manage the tokenId token.

Parameters

Name Type Description
owner indexed address undefined
approved indexed address undefined
tokenId indexed uint256 undefined

ApprovalForAll

event ApprovalForAll(address indexed owner, address indexed operator, bool approved)

Emitted when owner enables or disables (approved) operator to manage all of its assets.

Parameters

Name Type Description
owner indexed address undefined
operator indexed address undefined
approved bool undefined

OwnershipTransferred

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)

Parameters

Name Type Description
previousOwner indexed address undefined
newOwner indexed address undefined

RoleAdminChanged

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Emitted when newAdminRole is set as role's admin role, replacing previousAdminRole DEFAULT_ADMIN_ROLE is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. Available since v3.1.

Parameters

Name Type Description
role indexed bytes32 undefined
previousAdminRole indexed bytes32 undefined
newAdminRole indexed bytes32 undefined

RoleGranted

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Emitted when account is granted role. sender is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.

Parameters

Name Type Description
role indexed bytes32 undefined
account indexed address undefined
sender indexed address undefined

RoleRevoked

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Emitted when account is revoked role. sender is the account that originated the contract call: - if using revokeRole, it is the admin role bearer - if using renounceRole, it is the role bearer (i.e. account)

Parameters

Name Type Description
role indexed bytes32 undefined
account indexed address undefined
sender indexed address undefined

Transfer

event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)

Emitted when tokenId token is transferred from from to to.

Parameters

Name Type Description
from indexed address undefined
to indexed address undefined
tokenId indexed uint256 undefined

YearsPeriodRenewed

event YearsPeriodRenewed(uint256 tokenId, uint256 yearsPeriod, uint256 newExpirationDate)

Parameters

Name Type Description
tokenId uint256 undefined
yearsPeriod uint256 undefined
newExpirationDate uint256 undefined

Errors

AddressDoesNotHaveIdentity

error AddressDoesNotHaveIdentity(address to)

Parameters

Name Type Description
to address undefined

CallerNotOwner

error CallerNotOwner(address caller)

Parameters

Name Type Description
caller address undefined

InvalidTokenURI

error InvalidTokenURI(string tokenURI)

Parameters

Name Type Description
tokenURI string undefined

NameAlreadyExists

error NameAlreadyExists(string name)

Parameters

Name Type Description
name string undefined

NameNotFound

error NameNotFound(string name)

Parameters

Name Type Description
name string undefined

NameRegisteredByOtherAccount

error NameRegisteredByOtherAccount(string name, uint256 tokenId)

Parameters

Name Type Description
name string undefined
tokenId uint256 undefined

SameValue

error SameValue()

TokenNotFound

error TokenNotFound(uint256 tokenId)

Parameters

Name Type Description
tokenId uint256 undefined

URIAlreadyExists

error URIAlreadyExists(string tokenURI)

Parameters

Name Type Description
tokenURI string undefined

ZeroAddress

error ZeroAddress()

ZeroLengthName

error ZeroLengthName(string name)

Parameters

Name Type Description
name string undefined

ZeroYearsPeriod

error ZeroYearsPeriod(uint256 yearsPeriod)

Parameters

Name Type Description
yearsPeriod uint256 undefined