ERC-1155 - Tokenisierungsablauf
Nachdem Sie ein ERC-1155-Tokenprojekt bereitgestellt haben, folgen Tokenadministratoren und Tokeneigentümer einem typischen Ablauf für das Erstellen von Token und das Abschließen von Lebenszyklusvorgängen.
Wenn Sie ein Tokenprojekt bereitstellen, werden die Benutzer in der an die Initialisierungsmethode übergebenen Liste zu Tokenadministratoren des Chaincodes. Nach dem Deployment führt der typische Ablauf zum Erstellen von Token und zum Durchführen von Lebenszyklusvorgängen die folgenden Schritte aus:
Tokenadministratorvorgänge:
- Erstellen Sie Benutzerkonten für alle, die Token besitzen oder tokenbezogene Vorgänge abschließen.
- Erstellen Sie für jedes Benutzerkonto Tokenkonten. Benutzer können mehrere fungible Token-Konten haben, aber nur ein NFT-Konto (Nicht fungible Token). Tokenadministratoren können die Methode
createAccount
verwenden, um Benutzer- und Tokenaccounts gleichzeitig und nicht separat zu erstellen. - Erstellen Sie bei Bedarf fungible Token. Wenn Sie ein fungibles Token initialisieren, können Sie dem Token die zugehörigen Metadaten und Verhaltensweisen zuweisen.
- Bei fungiblen Token verknüpfen Sie die fungiblen Token-Konten der Benutzer mit bestimmten fungiblen Token.
- Fügen Sie den Tokenaccounts von Benutzern nach Bedarf Minter- und Brennerrollen hinzu.
Vorgänge für Tokeneigentümer:
- Benutzer, die über die Minter-Rolle für ein bestimmtes Token verfügen, können NFTs oder fungible Token erstellen.
- Benutzer können Token zwischen Konten übertragen und Kontosalden prüfen.
- Benutzer, die über die Brennerrolle für ein bestimmtes Token verfügen, können NFTs oder fungible Token zerstören (brennen).
Vault-Manager-Vorgänge:
- Der Benutzer mit der Vault-Rolle kann NFTs sperren. Ein gesperrter NFT kann nicht gebrannt oder an andere Benutzer übertragen werden.
Das folgende Diagramm zeigt den gesamten Prozessablauf für ein ERC-1155-Tokenisierungsszenario.
In der folgenden Tabelle werden die Methoden zusammengefasst, die beim Gerüst eines ERC-1155-Tokenprojekts automatisch generiert werden.
Methodenkategorie | Automatisch generierte Methode (TypeScript) | Automatisch generierte Methode (Los) | Aufgerufen von | Beschreibung |
---|---|---|---|---|
Admin-Verwaltung | init |
Init |
Admin | Initialisiert den Token Chaincode |
isTokenAdmin |
IsTokenAdmin |
Admin | Gibt "true" zurück, wenn der Aufrufer ein Admin ist | |
addTokenAdmin |
AddTokenAdmin |
Admin | Fügt einen Admin hinzu | |
removeTokenAdmin |
RemoveTokenAdmin |
Admin | Entfernt einen Admin | |
getAllTokenAdmins |
GetAllTokenAdmins |
Admin | Gibt alle Admins zurück | |
Accountverwaltung | createAccount |
CreateAccount |
Admin | Erstellt ein Benutzerkonto und Token-Konten |
createUserAccount |
CreateUserAccount |
Admin | Erstellt ein Benutzerkonto | |
createTokenAccount |
CreateTokenAccount |
Admin | Erstellt ein Token-Konto | |
associateFungibleTokenAccount |
AssociateFungibleTokenAccount |
Admin | Verknüpft ein fungibles Token-Konto mit einem fungiblen Token | |
getAccountHistory |
GetAccountHistory |
Admin-/Accountverantwortlicher | Gibt die Historie für ein Token-Konto zurück | |
getAccountTransactionHistory |
GetAccountTransactionHistory |
Admin-/Accountverantwortlicher | Gibt die Transaktionshistorie für ein Konto zurück | |
getAccount |
GetAccount |
Admin-/Accountverantwortlicher | Gibt Details für ein Token-Konto zurück | |
getAllAccounts |
GetAllAccounts |
Admin | Gibt Details für alle Benutzerkonten zurück | |
getAccountDetailsByUser |
GetAccountDetailsByUser |
Admin-/Accountverantwortlicher | Gibt Details für ein Benutzerkonto und alle zugehörigen Token zurück | |
getUserByAccountId |
GetUserByAccountId |
Alle Benutzer | Gibt Benutzerdetails für eine Konto-ID zurück | |
Rollenverwaltung | addRole |
AddRole |
Admin | Fügt einem Benutzer und Token eine Rolle hinzu |
isInRole |
IsInRole |
Admin-/Accountverantwortlicher | Gibt zurück, ob ein Benutzer über eine angegebene Rolle für ein Token verfügt | |
removeRole |
RemoveRole |
Admin | Entfernt eine Rolle von einem Benutzer und einem Token | |
getAccountsByRole |
GetAccountsByRole |
Admin | Gibt Konto-IDs für eine angegebene Rolle und ein bestimmtes Token zurück | |
getUsersByRole |
GetUsersByRole |
Admin | Gibt eine Liste der Benutzer für eine angegebene Rolle und ein bestimmtes Token zurück | |
Unbedingtes Verhalten | mintBatch |
MintBatch |
Benutzer mit der Minter-Rolle | Minziert mehrere Token |
Übertragbares Verhalten | batchTransferFrom |
BatchTransferFrom |
Alle Benutzer | Überträgt Token zwischen Benutzern |
safeBatchTransferFrom |
SafeBatchTransferFrom |
Alle Benutzer | Überträgt Token zwischen dem Methodenaufrufer und einem anderen Benutzer | |
balanceOfBatch |
BalanceOfBatch |
Admin-/Accountverantwortlicher | Gibt Tokensalden für mehrere Benutzer und Token zurück | |
exchangeToken |
ExchangeToken |
Accounteigentümer | Tauscht Token zwischen Token-Konten | |
Brennbares Verhalten | burnBatch |
BurnBatch |
Benutzer mit der Brennerrolle | Verbrennt Token |
Tokenverwaltung | create<Token Name>Token |
Create<Token Name>Token |
Admin (Fungible Token) / Benutzer mit der Minter-Rolle (NFTs) | Erstellt Token |
update<Token Name>Token |
Update<Token Name>Token |
Admin (Fungible Token) / Token-Eigentümer (NFTs) | Aktualisierungstoken | |
getTokenHistory |
GetTokenHistory |
Alle Benutzer | Gibt die Historie eines Tokens zurück | |
getTransactionById |
GetTransactionById |
Alle Benutzer | Gibt die Details einer angegebenen Transaktion zurück | |
deleteHistoricalTransactions |
DeleteHistoricalTransactions |
Admin | Löscht Transaktionen vor einer bestimmten Zeit | |
getAllTokens |
GetAllTokens |
Admin | Gibt alle Tokenassets zurück | |
getTokenById |
GetTokenById |
Admin-/Tokeneigentümer | Gibt ein Token zurück | |
getAllTokensByUser |
GetAllTokensByUser |
Admin-/Accountverantwortlicher | Gibt alle Token zurück, die einem angegebenen Benutzer gehören | |
ownerOf |
OwnerOf |
Alle Benutzer | Gibt die Benutzerdetails des Eigentümers eines angegebenen Tokens zurück | |
URI |
URI |
Alle Benutzer | Gibt die URI eines angegebenen Tokens zurück | |
name |
Name |
Alle Benutzer | Gibt den Namen eines angegebenen Tokens zurück. | |
totalSupply |
TotalSupply |
Admin | Gibt die Anzahl der geminteten Token für ein angegebenes Token zurück | |
totalNetSupply |
TotalNetSupply |
Admin | Gibt die Anzahl der geminteten Token abzüglich der Anzahl der gebrannten Token für ein angegebenes Token zurück | |
getTokensByName |
getTokensByName |
Admin | Gibt alle Tokenassets für einen angegebenen Tokennamen zurück | |
getTokenDecimal |
getTokenDecimal |
Admin | Gibt die Anzahl der Dezimalstellen für ein angegebenes Token zurück |