ERC-1155トークン化フロー

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

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

トークン管理者操作:

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

トークン所有者操作:

  • 特定のトークンに対してminterロールを持つユーザーは、NFTまたはfungibleトークンを作成できます(mint)。
  • ユーザーは、アカウント間でトークンを転送し、アカウント残高を確認できます。
  • 特定のトークンに対してバーナ・ロールを持つユーザーは、NFTまたはファニブル・トークンを破棄(バーン)できます。

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 管理者 楽しいトークン・アカウントをfungibleトークンに関連付けます。
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 Admin (Fungible 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 管理者 指定されたトークンの小数点以下の桁数を返します