ERC-1155トークン化フロー
ERC-1155トークン・プロジェクトをデプロイした後、トークン管理者およびトークン所有者は、トークンを作成し、ライフサイクル操作を完了するための一般的なフローに従います。
トークン・プロジェクトをデプロイすると、初期化メソッドに渡されるリスト内のユーザーは、チェーンコードのトークン管理者になります。デプロイメント後、トークンを作成し、ライフサイクル操作を完了するための一般的なフローは、次のステップに従います。
トークン管理者操作:
- トークンを所有するユーザー、またはトークン関連の操作を完了するユーザーアカウントを作成します。
- ユーザー・アカウントごとに、トークン・アカウントを作成します。ユーザーは複数の真菌性トークン・アカウントを持つことができますが、非真菌性トークン(NFT)アカウントは1つのみです。トークン管理者は、
createAccount
メソッドを使用して、ユーザー・アカウントとトークン・アカウントを別々に作成するかわりに同時に作成できます。 - 必要に応じて、真菌性トークンを作成します。真菌可能トークンを初期化するときに、関連付けられたメタデータおよび動作をトークンに割り当てることができます。
- 真菌性トークンの場合、ユーザーの真菌性トークン・アカウントを特定の真菌性トークンに関連付けます。
- 必要に応じて、ユーザーのトークン・アカウントにminterおよびburnerロールを追加します。
トークン所有者操作:
- 特定のトークンに対してminterロールを持つユーザーは、NFTまたはfungibleトークンを作成できます(最小)。
- ユーザーは、アカウント間でトークンを転送し、アカウント残高を確認できます。
- 特定のトークンのバーナー役割を持つユーザーは、NFTまたは真菌性トークンを破棄(書き込み)できます。
Vaultマネージャの操作:
- ボールト・ロールを持つユーザーは、NFTをロックできます。ロックされたNFTは、他のユーザーに焼却または転送できません。
次の図は、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 |
管理者 | 指定したトークンの小数点以下の桁数を返します |