ERC-1155 标记流

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

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

令牌管理员操作:

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

令牌所有者操作:

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

Vault 管理器操作:

  • 具有 Vault 角色的用户可以锁定 NFT。锁定的 NFT 无法刻录或传输给其他用户。

下图显示了 ERC-1155 标记方案的整个流程流。
ERC-1155 令牌化方案的流程流

下表汇总了按 ERC-1155 令牌项目脚手架时自动生成的方法。

方法种类 自动生成的方法 (TypeScript) 自动生成的方法 (Go) 调用者 说明
管理员管理 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 角色的用户 铸造多个令牌
可转移行为 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 管理员 返回指定标记的小数位数