TypeScript ERC-721 NFT 锁定方法
Blockchain App Builder 自动生成方法,可用于锁定使用扩展 ERC-721 标准的非同质代币。
锁定的令牌无法刻录或传输给其他用户。所有其他属性(例如令牌的状态、所有者和历史记录)都将保留。将令牌传输到另一个区块链网络(如以太坊或多边形)时,可以使用 NFT 锁定功能。
必须先将 Vault 管理器角色分配给用户,然后才能锁定 NFT。Vault 管理器是一种特殊类型的角色,即 TokenSys 角色。TokenSys 角色与基于资产的角色(如刻录器、矿工和公证人)以及管理角色(如 Token Admin 和 Org Admin)不同。当前,区块链应用构建器支持 vault TokenSys 角色。链代码具有 vault 角色的单个用户是链代码的 Vault 管理器,可以管理锁定的 NFT。
使用 NFT 锁定功能的典型流遵循以下步骤。
- 创建具有可锁定行为的不可替换令牌。
- 使用
addTokenSysRole方法将vault角色授予用户 Vault 管理器。 - 调用
lockNFT方法以锁定由令牌 ID 指定的不可替换令牌。
TokenSys 角色管理方法
-
addTokenSysRole - 此方法向指定用户添加
TokenSys角色。此方法只能由链代码的Token Admin调用。 -
isInTokenSysRole - 此方法返回布尔值以指示用户是否具有指定的
TokenSys角色。此方法只能由链代码的Token Admin调用。 -
removeTokenSysRole - 此方法从指定用户中删除
TokenSys角色。此方法只能由链代码的Token Admin调用。 -
transferTokenSysRole - 此方法将
TokenSys角色从用户转移到其他用户。此方法只能由链代码的Token Admin调用。 -
getAccountsByTokenSysRole - 此方法返回指定
TokenSys角色的所有帐户 ID 的列表。此方法只能由链代码的Token Admin调用。 -
getUsersByTokenSysRole - 此方法返回具有指定
TokenSys角色的所有用户的用户信息。此方法只能由链代码的Token Admin调用。
NFT 锁定方法
-
lockNFT - 此方法锁定指定的不可替换标记。要锁定令牌,必须有一个具有
TokenSysvault角色的用户,该用户充当 Vault 管理器。此方法只能由标记的所有者调用。 -
isNFTLocked - 此方法返回布尔值以指示指定的标记是否已锁定。此方法只能由令牌所有者、 Vault 管理器(具有
TokenSysvault角色的用户)或链代码的Token Admin调用。 -
getAllLockedNFTs - 此方法返回所有锁定的不可换代币的列表。此方法只能由 Vault 管理器(具有
TokenSysvault角色的用户)或链代码的Token Admin调用。 -
getAllLockedNFTsByOrg - 此方法返回指定组织和(可选)指定用户的所有锁定不可替换标记的列表。此方法只能由 Vault 管理器(具有
TokenSysvault角色的用户)或链代码的Token Admin调用。
-
lockNFT - 此方法锁定指定的不可替换标记。要锁定令牌,必须有一个具有
TokenSysvault角色的用户,该用户充当 Vault 管理器。此方法只能由标记的所有者调用。 -
isNFTLocked - 此方法返回布尔值以指示指定的标记是否已锁定。此方法只能由令牌所有者、 Vault 管理器(具有
TokenSysvault角色的用户)或链代码的Token Admin调用。 -
getAllLockedNFTs - 此方法返回所有锁定的不可换代币的列表。此方法只能由 Vault 管理器(具有
TokenSysvault角色的用户)或链代码的Token Admin调用。 -
getAllLockedNFTsByOrg - 此方法返回指定组织和(可选)指定用户的所有锁定不可替换标记的列表。此方法只能由 Vault 管理器(具有
TokenSysvault角色的用户)或链代码的Token Admin调用。