ERC-1155 标记流

部署 ERC-1155 令牌项目后,令牌管理员和令牌所有者会遵循创建令牌和完成生命周期操作的典型流程。

部署令牌项目时,传递给初始化方法的列表中用户将成为链代码的令牌管理员。部署后,创建令牌和完成生命周期操作的典型流程遵循以下步骤:

标记管理员操作:

  • 为将拥有令牌或完成令牌相关操作的任何人创建用户帐户。
  • 对于每个用户帐户,创建令牌帐户。用户可以有多个可替换令牌帐户,但只能有一个不可替换令牌 (NFT) 帐户。令牌管理员可以使用 createAccount 方法同时创建用户和令牌帐户,而不是单独创建。
  • 根据需要创建可替换令牌。初始化可替换令牌时,可以将关联的元数据和行为分配给令牌。
  • 对于可互换令牌,将用户的可互换令牌帐户与特定的可互换令牌关联。
  • 根据需要将 minter 和刻录器角色添加到用户的令牌帐户。

标记所有者操作:

  • 具有特定令牌的 minter 角色的用户可以创建 (mint) NFT 或可替换令牌。
  • 用户可以在账户之间转移令牌,并检查账户余额。
  • 具有特定令牌的刻录角色的用户可以销毁(刻录)NFT 或可替换令牌。

Vault 管理器操作:

  • 具有 Vault 角色的用户可以锁定 NFT。锁定的 NFT 不能刻录或转移给其他用户。

下图显示了 ERC-1155 标记方案的总体流程。
ERC-1155 标记方案的流程流

下表汇总了构建 ERC-1155 令牌项目时自动生成的方法。

方法类别 自动生成的方法 (TypeScript) 自动生成的方法(执行) 调用者 说明
管理员管理 init Init 管理员 初始化令牌链代码
isTokenAdmin IsTokenAdmin 管理员 如果呼叫者是管理员,则返回 true
addTokenAdmin AddTokenAdmin 管理员 添加管理员
removeTokenAdmin RemoveTokenAdmin 管理员 删除管理员
getAllTokenAdmins GetAllTokenAdmins 管理员 返回所有管理员
帐户管理 createAccount CreateAccount 管理员 创建用户帐户和令牌帐户
createUserAccount CreateUserAccount 管理员 创建用户帐户
createTokenAccount CreateTokenAccount 管理员 创建令牌账户
associateFungibleTokenAccount AssociateFungibleTokenAccount 管理员 将可替换令牌帐户与可替换令牌关联
getAccountHistory GetAccountHistory 管理员/客户责任人 返回令牌账户的历史记录
getAccountTransactionHistory GetAccountTransactionHistory 管理员/客户责任人 返回账户的事务处理历史记录
getAccount GetAccount 管理员/客户责任人 返回令牌账户的详细信息
getAllAccounts GetAllAccounts 管理员 返回所有用户账户的详细信息
getAccountDetailsByUser GetAccountDetailsByUser 管理员/客户责任人 返回用户帐户和所有关联标记的详细信息
getUserByAccountId GetUserByAccountId 任何用户 返回账户 ID 的用户详细信息
角色管理 addRole AddRole 管理员 向用户和令牌添加角色
isInRole IsInRole 管理员/客户责任人 返回用户是否具有令牌的指定角色
removeRole RemoveRole 管理员 从用户和令牌中删除角色
getAccountsByRole GetAccountsByRole 管理员 返回指定角色和令牌的帐户 ID
getUsersByRole GetUsersByRole 管理员 返回指定角色和令牌的用户列表
小型行为 mintBatch MintBatch 具有 minter 角色的用户 Mint 多个令牌
可转移的行为 batchTransferFrom BatchTransferFrom 任何用户 在用户之间传输令牌
safeBatchTransferFrom SafeBatchTransferFrom 任何用户 在方法调用方与其他用户之间传输令牌
balanceOfBatch BalanceOfBatch 管理员/客户责任人 返回多个用户和令牌的令牌账户余额
exchangeToken ExchangeToken 账户所有者 令牌账户之间的交换令牌
可燃行为 burnBatch BurnBatch 具有刻录程序角色的用户 刻录标记
标记管理 create<Token Name>Token Create<Token Name>Token 管理员(可替换令牌)/具有 minter 角色的用户 (NFT) 创建标记
update<Token Name>Token Update<Token Name>Token 管理(可替换令牌)/令牌所有者 (NFT) 更新标记
getTokenHistory GetTokenHistory 任何用户 返回令牌的历史记录
getTransactionById GetTransactionById 任何用户 返回指定事务处理的详细信息
deleteHistoricalTransactions DeleteHistoricalTransactions 管理员 在指定时间之前删除事务处理
getAllTokens GetAllTokens 管理员 返回所有令牌资产
getTokenById GetTokenById 管理员/令牌所有者 返回令牌
getAllTokensByUser GetAllTokensByUser 管理员/客户责任人 返回指定用户拥有的所有令牌
ownerOf OwnerOf 任何用户 返回指定标记的所有者的用户详细信息
URI URI 任何用户 返回指定标记的 URI
name Name 任何用户 返回指定令牌的名称
totalSupply TotalSupply 管理员 返回指定标记的铸造标记数
totalNetSupply TotalNetSupply 管理员 返回铸造标记数减去指定标记的刻录标记数
getTokensByName getTokensByName 管理员 返回指定令牌名称的所有令牌资产
getTokenDecimal getTokenDecimal 管理员 返回指定标记的小数位数