ERC-1155トークン化フロー

ERC-1155トークン・プロジェクトをデプロイした後、トークン管理者およびトークン所有者は、トークンを作成し、ライフサイクル操作を完了するための一般的なフローに従います。

トークン・プロジェクトをデプロイすると、初期化メソッドに渡されるリスト内のユーザーが、チェーンコードのトークン管理者になります。デプロイメント後、トークンを作成し、ライフサイクル操作を完了するための一般的なフローは、次のステップに従います:

トークン管理者の操作:

  • トークンを所有するユーザー、またはトークン関連の操作を実行するユーザーのユーザー・アカウントを作成します。
  • ユーザー・アカウントごとに、トークン・アカウントを作成します。ユーザーは複数の代替可能トークン・アカウントを持つことができますが、非代替トークン(NFT)アカウントは1つのみです。トークン管理者は、createAccountメソッドを使用して、ユーザー・アカウントとトークン・アカウントを(別々に作成するのではなく)同時に作成できます。
  • 必要に応じて、代替可能トークンを作成します。代替可能トークンを初期化するときに、関連付けるメタデータおよび動作をトークンに割り当てることができます。
  • 代替可能トークンの場合、ユーザーの代替可能トークン・アカウントを特定の代替可能トークンに関連付けます。
  • 必要に応じて、ユーザーのトークン・アカウントにミンターおよびバーナー・ロールを追加します。

トークン所有者の操作:

  • 特定のトークンに対してミンター・ロールを持つユーザーは、NFTまたは代替可能トークンを作成(ミント)できます。
  • ユーザーは、アカウント間でトークンを転送し、アカウント残高を確認できます。
  • 特定のトークンのバーナー・ロールを持つユーザーは、NFTまたは代替可能トークンを破棄(バーン)できます。

ボールト・マネージャの操作:

  • ボールト・ロールを持つユーザーは、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 ミンター・ロールを持つユーザー 複数のトークンをミントします
転送可能動作 batchTransferFrom BatchTransferFrom 任意のユーザー ユーザー間でトークンを転送します
safeBatchTransferFrom SafeBatchTransferFrom 任意のユーザー メソッド・コール元と別のユーザーの間でトークンを転送します
balanceOfBatch BalanceOfBatch 管理者/アカウント所有者 複数のユーザーおよびトークンのトークン・アカウント残高を返します
exchangeToken ExchangeToken アカウント所有者 トークン・アカウント間でトークンを交換します
バーン可能動作 burnBatch BurnBatch バーナー・ロールを持つユーザー トークンをバーンします
トークンの管理 create<Token Name>Token Create<Token Name>Token 管理者(代替可能トークン) /ミンター・ロールを持つユーザー(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 管理者 指定されたトークンの小数点以下の桁数を返します