ERC-1155トークン化フロー

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

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

トークン管理者操作:

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

トークン所有者操作:

  • 特定のトークンに対してminterロールを持つユーザーは、NFTまたはfungibleトークンを作成できます(最小)。
  • ユーザーは、アカウント間でトークンを転送し、アカウント残高を確認できます。
  • 特定のトークンのバーナー役割を持つユーザーは、NFTまたは真菌性トークンを破棄(書き込み)できます。

Vaultマネージャの操作:

  • ボールト・ロールを持つユーザーは、NFTをロックできます。ロックされたNFTは、他のユーザーに焼却または転送できません。

次の図は、ERC-1155トークン化シナリオの全体的なプロセス・フローを示しています。
ERC-1155トークン化シナリオのプロセス・フロー

次の表に、ERC-1155トークンプロジェクトをスキャフォールドするときに自動的に生成されるメソッドの概要を示します。

メソッド・カテゴリ 自動生成メソッド(TypeScript) 自動生成方法(進む) 呼出者 説明
管理者の管理 init Init 管理者 トークン・チェーンコードを初期化します
isTokenAdmin IsTokenAdmin 管理者 コール元がAdminの場合は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 管理者 指定したトークンの小数点以下の桁数を返します