Gestaffeltes Go-Projekt für Token Taxonomy Framework
Blockchain App Builder übernimmt die Eingabe aus Ihrer Tokenspezifikationsdatei und generiert ein voll funktionsfähiges gerüstetes Chaincode-Projekt.
Das Projekt generiert automatisch Tokenlebenszyklusklassen und -funktionen, einschließlich CRUD- und Nicht-CRUD-Methoden. Validierung von Argumenten, Marshalling/Unmarshalling und transparente Persistenzfähigkeit werden automatisch unterstützt.
Informationen zum gerüsteten Projekt und zu Methoden, die nicht direkt mit Token zusammenhängen, finden Sie unter Scaffolded Go Chaincode Project.
Modell
Transparent Persistence Capability (transparente Persistenzfunktion) oder vereinfachtes ORM wird in der Klasse OchainModel
erfasst.
package src
type Digicur struct {
AssetType string `json:"AssetType" final:"otoken"`
Token_id string `json:"Token_id" id:"true" mandatory:"true" validate:"regexp=^[A-Za-z0-9][A-Za-z0-9_-]*$,max=16"`
Token_name string `json:"Token_name" final:"digicur"`
Token_desc string `json:"Token_desc" validate:"max=256"`
Token_type string `json:"Token_type" final:"fungible" validate:"regexp=^fungible$"`
Behavior []string `json:"Behavior" final:"[\"divisible\",\"mintable\",\"transferable\",\"burnable\",\"holdable\",\"roles\"]"`
Roles map[string]interface{} `json:"Roles" final:"{\"minter_role_name\":\"minter\",\"burner_role_name\":\"burner\",\"notary_role_name\":\"notary\"}"`
Mintable map[string]interface{} `json:"Mintable" final:"{\"Max_mint_quantity\":20000}"`
Divisible map[string]interface{} `json:"Divisible" final:"{\"Decimal\":1}"`
Token_to_currency_ratio int `json:"Token_to_currency_ratio" validate:"int"`
Currency_representation string `json:"Currency_representation" validate:"string"`
Metadata interface{} `json:"Metadata,omitempty"`
}
Controller
Es gibt nur einen Hauptcontroller.
type Controller struct {
Ctx trxcontext.TrxContext
}
Sie können eine beliebige Anzahl von Klassen, Funktionen oder Dateien erstellen, aber nur die Methoden, die in der Hauptcontrollerklasse definiert sind, können aufgerufen werden. Die anderen Methoden sind versteckt.
Mit den Token-SDK-Methoden können Sie benutzerdefinierte Methoden für Ihre Geschäftsanwendung schreiben.
Wenn Sie in einer benutzerdefinierten Methode mehrere Token-SDK-Methoden verwenden, verwenden Sie keine Methoden, die sich auf dieselben Schlüssel/Wert-Paare in der Statusdatenbank auswirken.
Verwenden Sie stattdessen die Methode BulkTransferTokens
, um aus dem Konto des Anrufers auf mehrere Konten zu übertragen, wie im folgenden Code-Snippet dargestellt.
BulkTransferTokens(token_id string, flow: []map[string]interface{})
Hinweis:
Wenn Sie in einer benutzerdefinierten Methode mehrere Token-SDK-Methoden verwenden, die sich auf dieselben Schlüssel/Wert-Paare in der Statusdatenbank auswirken können, aktivieren Sie die MVCC-Optimierung für Token Chaincodes. Weitere Informationen finden Sie unter MVCC-Optimierung.Automatisch generierte Token-Methoden
Blockchain App Builder generiert automatisch Methoden zur Unterstützung von Token und Tokenlebenszyklen. Mit diesen Methoden können Sie Token initialisieren, Rollen und Konten verwalten und andere Tokenlebenszyklusaufgaben ohne zusätzliche Codierung ausführen. Controller-Methoden müssen öffentlich sein, damit sie aufgerufen werden können. Öffentliche Methodennamen beginnen mit einem Großbuchstaben. Methodennamen, die mit einem Kleinbuchstaben beginnen, sind privat.
- Access Control Management
- Tokenkonfigurationsverwaltung
- Accountverwaltung
- Rollenverwaltung
- Verwaltung der Transaktionshistorie
- Tokenverhaltensverwaltung
Methoden für Access Control Management
-
AddTokenAdmin
- Mit dieser Methode wird ein Benutzer als
Token Admin
des Chaincodes hinzugefügt. Diese Methode kann nur von einemToken Admin
des Chaincodes aufgerufen werden. -
RemoveTokenAdmin
- Mit dieser Methode wird ein Benutzer als
Token Admin
des Chaincodes entfernt. Diese Methode kann nur von einemToken Admin
des Chaincodes aufgerufen werden. -
IsTokenAdmin
- Diese Methode gibt den booleschen Wert
true
zurück, wenn der Aufrufer der Funktion einToken Admin
ist. Andernfalls wirdfalse
zurückgegeben. EineToken Admin
oderOrg Admin
kann diese Funktion für jeden anderen Benutzer im Blockchain-Netzwerk aufrufen. Andere Benutzer können diese Methode nur für ihre eigenen Konten aufrufen. -
GetAllTokenAdmins
- Diese Methode gibt eine Liste aller Benutzer zurück, die ein
Token Admin
des Chaincodes sind. Diese Methode kann nur vomToken Admin
oderOrg Admin
des Chaincodes aufgerufen werden. -
AddOrgAdmin
- Mit dieser Methode wird ein Benutzer als
Org Admin
der Organisation hinzugefügt. Diese Methode kann nur von einemToken Admin
des Chaincodes oder von einemOrg Admin
der angegebenen Organisation aufgerufen werden. -
RemoveOrgAdmin
- Mit dieser Methode wird ein Benutzer als
Org Admin
einer Organisation entfernt. Diese Methode kann nur von einemToken Admin
des Chaincodes oder von einemOrg Admin
der angegebenen Organisation aufgerufen werden. -
GetOrgAdmins
- Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Org Admin
einer Organisation sind. Diese Methode kann nur von einemToken Admin
des Chaincodes oder von einem beliebigenOrg Admin
aufgerufen werden.
Methoden für die Verwaltung der Tokenkonfiguration
-
Init
- Diese Methode wird aufgerufen, wenn der Chaincode bereitgestellt wird. Jede
Token Admin
wird durch die Informationenuser_id
undorg_id
im obligatorischen ParameteradminList
identifiziert.user_id
ist der Benutzername oder die E-Mail-ID des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist.org_id
ist die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Netzwerkorganisation. -
Initialize<Token Name>Token
- Diese Methode erstellt ein Token und initialisiert die Tokeneigenschaften. Das Asset und seine Eigenschaften werden in der Statusdatenbank gespeichert. Diese Methode kann nur von einem
Token Admin
des Chaincodes aufgerufen werden. -
Update<Token Name>Token
- Diese Methode aktualisiert Tokeneigenschaften. Nachdem ein Tokenasset erstellt wurde, können nur die Eigenschaft
token_desc
und benutzerdefinierte Eigenschaften aktualisiert werden. Diese Methode kann nur von einemToken Admin
des Chaincodes aufgerufen werden. -
GetTokenDecimals
- Diese Methode gibt die Anzahl der Dezimalstellen zurück, die für ein partielles Token konfiguriert wurden. Wenn das
divisible
-Verhalten für das Token nicht angegeben wurde, ist der Standardwert 0. Diese Methode kann nur von einemToken Admin
oderOrg Admin
des Chaincodes aufgerufen werden. -
GetTokenById
- Diese Methode gibt ein Tokenobjekt zurück, wenn es in der Statusdatenbank vorhanden ist. Diese Methode kann nur von einem
Token Admin
oderOrg Admin
des Chaincodes aufgerufen werden. -
GetTokenHistory
- Diese Methode gibt die Tokenhistorie für eine angegebene Token-ID zurück. Jeder Benutzer kann diese Methode aufrufen.
-
GetAllTokens
- Diese Methode gibt alle Token zurück, die in der Statusdatenbank gespeichert sind. Diese Methode kann nur von einem
Token Admin
oderOrg Admin
des Chaincodes aufgerufen werden. -
GetTokensByName
- Diese Methode gibt alle Tokenobjekte mit einem angegebenen Namen zurück. Diese Methode kann nur von einem
Token Admin
oderOrg Admin
des Chaincodes aufgerufen werden. Diese Methode verwendet SQL-Rich-Abfragen von Berkeley DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Netzwerk von Oracle Blockchain Platform besteht.
Methoden für die Accountverwaltung
-
CreateAccount
- Diese Methode erstellt einen Account für einen angegebenen Benutzer und ein bestimmtes Token. Ein Konto muss für jeden Benutzer erstellt werden, der zu einem beliebigen Zeitpunkt Token hat. Konten verfolgen Salden, gesperrte Salden und die Transaktionshistorie. Eine Account-ID ist ein alphanumerisches Zeichenset mit dem Präfix
oaccount~<token asset name>~
, gefolgt von einem Hash des Benutzernamens oder der E-Mail-ID (user_id
) des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist, der Mitgliedschaftsserviceprovider-ID (org_id
) des Benutzers in der aktuellen Netzwerkorganisation. Diese Methode kann nur von einemToken Admin
des Chaincodes oder einemOrg Admin
der angegebenen Organisation aufgerufen werden. -
AssociateTokenToAccount
- Diese Methode verknüpft ein fungibles Token mit einem Konto. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder von einemOrg Admin
der relevanten Organisation aufgerufen werden. -
GetAccount
- Diese Methode gibt Kontodetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes, einemOrg Admin
der angegebenen Organisation oder demAccountOwner
des Accounts aufgerufen werden. -
GetAccountHistory
- Diese Methode gibt Accounthistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder demAccountOwner
des Accounts aufgerufen werden. -
GetAccountOnHoldBalance
- Diese Methode gibt den aktuellen gesperrten Saldo für ein angegebenes Konto und Token zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes, einemOrg Admin
der angegebenen Organisation oder demAccountOwner
des Accounts aufgerufen werden. -
GetAllAccounts
- Diese Methode gibt eine Liste aller Konten zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes aufgerufen werden. Diese Methode verwendet SQL-Rich-Abfragen von Berkeley DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Netzwerk von Oracle Blockchain Platform besteht. -
GetUserByAccountId
- Diese Methode gibt Benutzerdetails (
org_id
unduser_id
) für einen angegebenen Account zurück. Diese Methode kann von jedem Benutzer des Chaincodes aufgerufen werden. -
GetAccountBalance
- Diese Methode gibt den aktuellen Saldo für ein angegebenes Konto und Token zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes, einemOrg Admin
der angegebenen Organisation oder demAccountOwner
des Accounts aufgerufen werden. -
GetAllOrgAccounts
- Diese Methode gibt eine Liste aller Tokenaccounts zurück, die zu einer angegebenen Organisation gehören. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder von einemOrg Admin
der angegebenen Organisation aufgerufen werden.
Methoden für die Rollenverwaltung
-
AddRole
- Mit dieser Methode wird eine Rolle zu einem angegebenen Benutzer und Token hinzugefügt. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder von einemOrg Admin
der angegebenen Organisation mit der angegebenen Rolle aufgerufen werden. -
RemoveRole
- Diese Methode entfernt eine Rolle aus einem angegebenen Benutzer und Token. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder einemOrg Admin
der angegebenen Organisation aufgerufen werden, die auch die angegebene Rolle hat. -
GetAccountsByRole
- Diese Methode gibt eine Liste aller Konto-IDs für eine angegebene Rolle und ein bestimmtes Token zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes aufgerufen werden. -
GetAccountsByUser
- Diese Methode gibt eine Liste aller Konto-IDs für eine bestimmte Organisationskennung und Benutzerkennung zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes, einemOrg Admin
der angegebenen Organisation oder von dem in den Parametern angegebenenAccount Owner
aufgerufen werden. -
GetUsersByRole
- Diese Methode gibt eine Liste aller Benutzer für eine angegebene Rolle und ein bestimmtes Token zurück. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder von dem in den Parametern angegebenenAccount Owner
aufgerufen werden. -
IsInRole
- Diese Methode gibt einen booleschen Wert zurück, um anzugeben, ob ein Benutzer und ein Token über eine angegebene Rolle verfügen. Diese Methode kann nur von der
Token Admin
des Chaincodes, einerOrg Admin
der angegebenen Organisation oder derAccountOwner
des Accounts aufgerufen werden. -
GetOrgUsersByRole
- Diese Methode gibt Informationen zu allen Benutzern zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder von einemOrg Admin
der angegebenen Organisation aufgerufen werden. -
GetOrgAccountsByRole
- Diese Methode gibt Informationen zu allen Firmen zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder von einemOrg Admin
der angegebenen Organisation aufgerufen werden.
Methoden für das Transaktionshistorienmanagement
-
GetAccountTransactionHistory
- Diese Methode gibt ein Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von der
Token Admin
des Chaincodes, einerOrg Admin
der angegebenen Organisation oder derAccountOwner
des Accounts aufgerufen werden. -
GetAccountTransactionHistoryWithFilters
- Diese Methode gibt ein Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von der
Token Admin
des Chaincodes, einerOrg Admin
der angegebenen Organisation oder derAccountOwner
des Accounts aufgerufen werden. Diese Methode kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht. -
GetSubTransactionsById
- Diese Methode gibt ein Array mit Details der Untertransaktionshistorie für eine angegebene Transaktion zurück.
-
GetSubTransactionsByIdWithFilters
- Diese Methode gibt ein Array mit Details der Untertransaktionshistorie für eine angegebene Transaktion zurück.
-
GetTransactionById
- Diese Methode gibt die Historie eines
Transaction
-Assets zurück. -
DeleteHistoricalTransactions
- Diese Methode löscht ältere Transaktionen aus der Statusdatenbank.
Methoden für das Tokenverhaltensmanagement - Mintable Behavior
-
IssueTokens
- Diese Methode bildet Token ab, die dann dem Aufrufer der Methode gehören. Der Anrufer muss über einen Account und die Minter-Rolle verfügen. Die Anzahl der Token, die geprägt werden können, wird durch die Eigenschaft
max_mint_quantity
des Verhaltensmintable
in der Spezifikationsdatei begrenzt. Wenn die Eigenschaftmax_mint_quantity
nicht angegeben ist, kann eine unbegrenzte Anzahl von Token geprägt werden. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameterdecimal
des Verhaltensdivisible
in der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwner
des Accounts mit der Minter-Rolle aufgerufen werden. -
GetTotalMintedTokens
- Diese Methode gibt die Gesamtanzahl der geminteten Token für ein angegebenes Token zurück. Diese Methode kann nur von einem
Token Admin
oderOrg Admin
des Chaincodes aufgerufen werden. -
GetNetTokens
- Diese Methode gibt die Gesamtanzahl der im System verfügbaren Token für ein angegebenes Token zurück. Die Nettotokensumme ist die Anzahl der verbleibenden Token, nachdem Token verbrannt wurden. In Gleichungsform Netto-Token = insgesamt geprägt Token - insgesamt verbrannte Token. Wenn keine Token gebrannt werden, entspricht die Anzahl der Net Token der Gesamtanzahl der geprägten Token. Diese Methode kann nur von einem
Token Admin
oderOrg Admin
des Chaincodes aufgerufen werden.
Methoden für das Tokenverhaltensmanagement - Übertragbares Verhalten
-
TransferTokens
- Diese Methode überträgt Token vom Aufrufer auf ein angegebenes Konto. Der Aufrufer der Methode muss einen Account haben. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimal
des Verhaltensdivisible
in der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwner
des Accounts aufgerufen werden. -
BulkTransferTokens
- Diese Methode wird verwendet, um eine Massenübertragung von Token aus dem Aufruferkonto auf die Konten durchzuführen, die im Objekt
flow
angegeben sind. Die Mengen müssen innerhalb der Dezimalwerte liegen, die durch den Parameterdecimal
des Verhaltensdivisible
im Aufrufer der Spezifikation file.The dieser Methode angegeben werden, und ein Account muss bereits erstellt sein. Diese Methode kann nur von derAccountOwner
des Accounts aufgerufen werden.
Methoden für das Tokenverhaltensmanagement - Zurückstellbares Verhalten
-
HoldTokens
- Diese Methode erstellt eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_id
. Es wird ein Notarkonto angegeben, das für den Abschluss oder die Freigabe der Sperre verantwortlich ist. Wenn die Sperre erstellt wird, wird der angegebene Tokensaldo des Zahlers gesperrt. Ein gesperrter Saldo kann erst übertragen werden, wenn die Sperre abgeschlossen oder freigegeben wurde. Für den Aufrufer dieser Methode muss bereits ein Account erstellt sein. Diese Methode kann nur von derAccountOwner
des Accounts aufgerufen werden. -
ExecuteHoldTokens
- Diese Methode schließt eine Sperre eines Tokens ab. Eine Menge von Token, die zuvor von einem Token-Eigentümer gehalten wurden, wird an einen Empfänger übertragen. Wenn der Wert
quantity
kleiner als der tatsächliche Sperrwert ist, ist der Restbetrag wieder für den ursprünglichen Eigentümer der Token verfügbar. Diese Methode kann nur von derAccountOwner
-ID mit der Rollenotary
aufgerufen werden. Die Sperre kann nur durch den Notar abgeschlossen werden. -
ReleaseHoldTokens
- Diese Methode gibt eine Sperre für Token frei. Die Übertragung ist nicht abgeschlossen, und alle gespeicherten Token stehen dem ursprünglichen Eigentümer wieder zur Verfügung. Diese Methode kann von der
Account Owner
-ID mit der Rollenotary
innerhalb der angegebenen Frist oder vom Zahler, Zahlungsempfänger oder Notar nach der angegebenen Frist aufgerufen werden. -
GetOnHoldIds
- Diese Methode gibt eine Liste aller Halte-IDs für ein angegebenes Konto zurück. Diese Methode kann von der
Token Admin
des Chaincodes, einerOrg Admin
der angegebenen Organisation oder derAccount Owner
des Accounts aufgerufen werden. -
GetOnHoldDetailsWithOperationId
- Diese Methode gibt die zurückgestellten Transaktionsdetails für eine angegebene Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann von jedem aufgerufen werden.
-
GetOnHoldBalanceWithOperationId
- Diese Methode gibt den gesperrten Saldo für eine angegebene Vorgangs-ID und ein Token zurück. Diese Methode kann von jedem aufgerufen werden.
Methoden für das Tokenverhaltensmanagement - Burnable Behavior
-
BurnTokens
- Diese Methode deaktiviert oder verbrennt Token aus dem Konto des Transaktionsaufrufers. Der Aufrufer dieser Methode muss über einen Account und die Brennerrolle verfügen. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimal
des Verhaltensdivisible
in der Spezifikationsdatei angegeben werden. Diese Methode kann von derAccount Owner
des Accounts mit der Brennerrolle aufgerufen werden.
Benutzerdefinierte Methoden
Mit den Token-SDK-Methoden können Sie benutzerdefinierte Methoden für Ihre Geschäftsanwendung schreiben.
Verfolgen Sie den Rückgabewert, wenn Sie die Token-SDK-Methoden verwenden. Um Doppelausgaben zu vermeiden, kombinieren Sie außerdem nicht mehrere asynchrone Funktionen, die auf denselben Schlüssel/Wert-Paaren in der Statusdatenbank arbeiten. Verwenden Sie stattdessen die Methode BulkTransferTokens
, um mehrere Übertragungen in einer Methode vorzunehmen.
Das folgende Beispiel zeigt, wie Sie Token-SDK-Methoden in benutzerdefinierten Methoden verwenden. Wenn die Methode BuyTicket
aufgerufen wird, überträgt sie 20 Token vom Konto des Anrufers auf das Konto des Verkäufers und gibt die Transaktionsnachricht der Übertragung zurück.
func (t *Controller) BuyTicket(TokenId string, SellerOrgId string, SellerUserId string) (interface{}, error){
token, err := t.Ctx.Token.Get(TokenId)
if err != nil {
return nil, err
}
/**
* The following method t.Ctx.Account.GenerateAccountId(TokenId, SellerOrgId, SellerUserId) generates account id of the seller
*/
sellerAccountId, err := t.Ctx.Account.GenerateAccountId(TokenId, SellerOrgId, SellerUserId)
if err != nil {
return nil, err
}
/**
* The following method t.Ctx.Token.Transfer(sellerAccountId, 20, token) transfers the quantity 20 from caller's
* account & to seller's account.
*/
transaction, err := t.Ctx.Token.Transfer(sellerAccountId, 20, token)
if err != nil {
return nil, err
}
return transaction, nil
}
Token-SDK-Methoden
- Access Control Management
- Tokenkonfigurationsverwaltung
- Accountverwaltung
- Rollenverwaltung
- Verwaltung der Transaktionshistorie
- Tokenverhaltensverwaltung
Methoden für die Zugriffskontrolle
Token Admin
, Org Admin
oder AccountOwner
des Tokens aufgerufen werden. Mit dieser Funktion können Sie sicherstellen, dass Vorgänge nur von den beabsichtigten Benutzern ausgeführt werden. Jeder nicht autorisierte Zugriff führt zu einem Fehler. Um die Zugriffskontrollfunktion zu verwenden, importieren Sie die Klasse Authorization
aus dem Modul ../lib/auth
.import { Authorization } from '../lib/auth';
-
AddAdmin
- Diese Methode fügt einen Benutzer als
Token Admin
des Token Chaincodes hinzu. -
RemoveAdmin
- Diese Methode entfernt einen Benutzer als
Token Admin
des Token Chaincodes. -
GetAllAdmins
- Diese Methode gibt eine Liste aller Benutzer zurück, die ein
Token Admin
des Token Chaincodes sind. -
GetAllAdminUsers
- Diese Methode gibt eine Liste aller Benutzer zurück, die ein
Token Admin
des Token Chaincodes sind. -
CheckAuthorization
- Verwenden Sie diese Methode, um Ihrem Chaincode Zugriffskontrolle hinzuzufügen. Viele der automatisch generierten Token-Methoden verwenden die Zugriffskontrolle. Die Zuordnung zwischen dem SDK-Empfänger und den Methoden mit Zugriffskontrolle wird in der Datei
oChainUtil.go
beschrieben. Um Ihre eigene Zugriffskontrolle zu verwenden oder die Zugriffskontrolle zu deaktivieren, entfernen Sie den Zugriffskontrollcode aus den automatisch generierten Controllermethoden und benutzerdefinierten Methoden.var t TokenAccess var r RoleAccess var a AccountAccess var as AccountStatusAccess var h HoldAccess var ad AdminAccess var trx TransactionAccess var tc TokenConversionAccess var auth AuthAccess auth.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner"} trx.DeleteHistoricalTransactions = []string{"Admin"} ad.AddAdmin = []string{"Admin"} ad.RemoveAdmin = []string{"Admin"} ad.GetAllAdmins = []string{"Admin", "OrgAdmin"} ad.AddOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.RemoveOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.GetOrgAdmins = []string{"Admin", "OrgAdmin"} ad.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner", "OrgAdmin"} t.Save = []string{"Admin"} t.GetAllTokens = []string{"Admin", "OrgAdmin"} t.Update = []string{"Admin"} t.GetTokenDecimals = []string{"Admin", "OrgAdmin"} t.GetTokensByName = []string{"Admin", "OrgAdmin"} t.AddRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.RemoveRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.IsInRole = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} t.GetTotalMintedTokens = []string{"Admin", "OrgAdmin"} t.GetNetTokens = []string{"Admin", "OrgAdmin"} t.Get = []string{"Admin", "OrgAdmin"} t.GetTokenHistory = []string{"Admin", "OrgAdmin"} a.CreateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} a.AssociateToken = []string{"Admin", "OrgAdminAccountIdCheck"} a.GetAllAccounts = []string{"Admin"} a.GetAllOrgAccounts = []string{"Admin", "OrgAdminOrgIdCheck"} a.GetAccount = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.History = []string{"Admin", "AccountOwner"} a.GetAccountTransactionHistory = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountTransactionHistoryWithFilters = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetSubTransactionsById = []string{"Admin", "TransactionInvoker"} a.GetSubTransactionsByIdWithFilters = []string{"Admin", "TransactionInvoker"} a.GetAccountBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountOnHoldBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetOnHoldIds = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountsByUser = []string{"Admin", "OrgAdminOrgIdCheck", "MultipleAccountOwner"} as.Get = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} as.ActivateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.SuspendAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.DeleteAccount = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetAccountsByRole = []string{"Admin"} r.GetUsersByRole = []string{"Admin"} r.GetOrgAccountsByRole = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetOrgUsersByRole = []string{"Admin", "OrgAdminOrgIdCheck"} tc.InitializeExchangePoolUser = []string{"Admin"} tc.AddConversionRate = []string{"Admin"} tc.UpdateConversionRate = []string{"Admin"} tc.GetConversionRate = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.GetConversionRateHistory = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.TokenConversion = []string{"Admin", "AnyAccountOwner"} tc.GetExchangePoolUser = []string{"Admin"}
-
IsUserTokenAdmin
- Diese Methode gibt den booleschen Wert
true
zurück, wenn der Aufrufer der Funktion einToken Admin
ist. Andernfalls gibt die Methodefalse
zurück. -
AddOrgAdmin
- Mit dieser Methode wird ein Benutzer als
Org Admin
der Organisation hinzugefügt. -
RemoveOrgAdmin
- Mit dieser Methode wird ein Benutzer als
Org Admin
einer Organisation entfernt. -
GetOrgAdmins
- Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Org Admin
einer Organisation sind.
Methoden für die Verwaltung der Tokenkonfiguration
-
GetTokenDecimals
- Diese Methode gibt die Anzahl der Dezimalstellen zurück, die für ein partielles Token verfügbar sind. Wenn das
divisible
-Verhalten nicht angegeben ist, ist der Standardwert 0. -
GetAllTokens
- Diese Methode gibt alle Tokenassets zurück, die in der Statusdatenbank gespeichert sind. Diese Methode verwendet SQL-Rich-Abfragen von Berkeley DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Netzwerk von Oracle Blockchain Platform besteht.
-
GetTokensByName
- Diese Methode gibt alle Tokenassets mit dem angegebenen Namen zurück. Diese Methode verwendet SQL-Rich-Abfragen von Berkeley DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Netzwerk von Oracle Blockchain Platform besteht.
-
Get
- Diese Methode gibt ein Tokenobjekt zurück, wenn es in der Statusdatenbank vorhanden ist. Diese Methode kann nur von einem
Token Admin
des Token Chaincodes aufgerufen werden. -
IsTokenType
- Diese Methode testet, ob ein Tokenasset für eine angegebene Token-ID vorhanden ist.
-
Save
- Diese Methode erstellt ein Token und speichert seine Eigenschaften in der Statusdatenbank.
-
Update
- Diese Methode aktualisiert Tokeneigenschaften. Nachdem ein Tokenasset erstellt wurde, können Sie nur den Wert
token_desc
und die zugehörigen benutzerdefinierten Eigenschaften aktualisieren. -
GetByRange
- Diese Methode ruft die Stoffmethode
getStateByRange
intern auf. Obwohl ein Vermögensgegenstand mit der angegebenen ID aus dem Buch zurückgegeben wird, überträgt diese Methode den Vermögensgegenstand in den aufrufenden Vermögensgegenstandstyp. -
History
- Diese Methode gibt die Tokenhistorie für eine angegebene Token-ID zurück.
Methoden für die Accountverwaltung
-
GenerateAccountId
- Diese Methode gibt eine Konto-ID zurück, die aus einem alphanumerischen Zeichensatz mit dem Präfix
oaccount~<token asset name>~
besteht, gefolgt von einem Hash des Benutzernamens oder der E-Mail-ID (user_id
) des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist, der Mitgliedschaftsserviceprovider-ID (org_id
) des Benutzers in der aktuellen Netzwerkorganisation und der eindeutigen Token-ID (token_id
). -
CreateAccount
- Diese Methode erstellt einen Account für einen angegebenen Benutzer und ein bestimmtes Token. Jeder Benutzer, der Token hat, muss ein Konto haben. Konten verfolgen den Saldo, den gesperrten Saldo und die Transaktionshistorie eines Benutzers. Eine Account-ID ist ein alphanumerisches Zeichenset mit dem Präfix
oaccount~<token asset name>~
, gefolgt von einem Hash des Benutzernamens oder der E-Mail-ID (user_id
) des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist, der Mitgliedschaftsserviceprovider-ID (org_id
) des Benutzers in der aktuellen Netzwerkorganisation. Diese Methode kann nur vomToken Admin
des Chaincodes aufgerufen werden. -
AssociateToken
- Diese Methode verknüpft ein fungibles Token mit einem Konto. Diese Methode kann nur von einem
Token Admin
des Chaincodes aufgerufen werden. -
GetAccountWithStatus
- Diese Methode gibt Kontodetails für ein bestimmtes Konto zurück, einschließlich Kontostatus.
-
GetAccount
- Diese Methode gibt Kontodetails für ein angegebenes Konto zurück.
-
GetAccountHistory
- Diese Methode gibt ein Array der Kontohistoriendetails für ein angegebenes Konto zurück.
-
GetAccountOnHoldBalance
- Diese Methode gibt den gesperrten Saldo für ein angegebenes Konto zurück.
-
GetAllAccounts
- Diese Methode gibt eine Liste aller Konten zurück. Diese Methode verwendet SQL-Rich-Abfragen von Berkeley DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Netzwerk von Oracle Blockchain Platform besteht.
-
GetUserByAccountId
- Diese Methode gibt die Benutzerdetails für einen angegebenen Account zurück.
-
GetAccountBalance
- Diese Methode gibt den Kontensaldo für ein bestimmtes Konto zurück.
-
GetAllOrgAccounts
- Diese Methode gibt eine Liste aller Tokenaccounts zurück, die zu einer angegebenen Organisation gehören.
Methoden für die Rollenverwaltung
-
AddRoleMember
- Mit dieser Methode wird eine Rolle zu einem angegebenen Benutzer und Token hinzugefügt.
-
RemoveRoleMember
- Diese Methode entfernt eine Rolle aus einem angegebenen Benutzer und Token.
-
GetAccountsByRole
- Diese Methode gibt eine Liste aller Konten für eine angegebene Rolle und ein bestimmtes Token zurück.
-
GetUsersByRole
- Diese Methode gibt eine Liste aller Benutzer für eine angegebene Rolle und ein bestimmtes Token zurück.
-
IsInRole
- Diese Methode gibt an, ob ein Benutzer und ein Token über eine angegebene Rolle verfügen.
-
RoleCheck
- Diese Methode prüft, ob die angegebene Konto-ID Mitglied einer beliebigen Rolle ist.
-
GetOrgUsersByRole
- Diese Methode gibt Informationen zu allen Benutzern zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben.
-
GetOrgAccountsByRole
- Diese Methode gibt Informationen zu allen Firmen zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben.
Methoden für das Transaktionshistorienmanagement
-
GetAccountTransactionHistory
- Diese Methode gibt ein Array der Transaktionshistoriendetails für ein angegebenes Konto zurück.
-
GetAccountTransactionHistoryWithFilters
- Diese Methode gibt ein Array der Transaktionshistoriendetails für eine angegebene Transaktion zurück. Diese Methode kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
-
GetSubTransactionsById
- Diese Methode gibt ein Array der Transaktionshistoriendetails für eine angegebene Transaktion zurück.
-
GetSubTransactionsByIdWithFilters
- Diese Methode gibt ein Array der Transaktionshistoriendetails für eine angegebene Transaktion zurück.
-
GetTransactionById
- Diese Methode gibt die Historie eines
Transaction
-Assets zurück. -
DeleteHistoricalTransactions
- Diese Methode löscht ältere Transaktionen aus der Statusdatenbank.
Methoden für das Tokenverhaltensmanagement - Mintable Behavior
-
Mint
- Diese Methode bildet Token ab, die dann dem Aufrufer der Methode gehören. Der Anrufer muss über einen Account und die Minter-Rolle verfügen. Die Anzahl der Token, die geprägt werden können, wird durch die Eigenschaft
max_mint_quantity
des Verhaltensmintable
in der Spezifikationsdatei begrenzt. Wenn die Eigenschaftmax_mint_quantity
nicht angegeben ist, kann eine unbegrenzte Anzahl von Token geprägt werden. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameterdecimal
des Verhaltensdivisible
in der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwner
des Accounts mit der Minter-Rolle aufgerufen werden. -
GetTotalMintedTokens
- Diese Methode gibt die Gesamtanzahl der Token zurück, die geprägt wurden.
-
GetNetTokens
- Diese Methode gibt die Nettomenge der Token zurück, die für ein angegebenes Token im System verfügbar sind. Die Netto-Token sind die Anzahl der verbleibenden Token, nachdem Token verbrannt wurden. In Gleichungsform: net tokens = insgesamt geprägte tokens - insgesamt gebrannte tokens. Wenn keine Token gebrannt werden, entspricht die Anzahl der Net Token der Gesamtanzahl der geprägten Token.
-
GetMaxMintQuantity
- Diese Methode gibt die maximale Münzmenge für ein Token zurück. Wenn das
max_mint_quantity
-Verhalten nicht angegeben ist, ist der Standardwert 0. Dadurch kann eine beliebige Anzahl von Token geprägt werden.
Methoden für das Tokenverhaltensmanagement - Übertragbares Verhalten
-
Transfer
- Diese Methode überträgt Token vom Aufrufer auf ein angegebenes Konto. Der Aufrufer der Methode muss einen Account haben. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimal
des Verhaltensdivisible
in der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwner
des Accounts aufgerufen werden. -
BulkTransfer
- Diese Methode wird verwendet, um eine Massenübertragung von Token aus dem Aufruferkonto auf die Konten durchzuführen, die im Objekt
flow
angegeben sind. Für den Aufrufer dieser Methode muss bereits ein Account erstellt sein.
Methoden für das Tokenverhaltensmanagement - Zurückstellbares Verhalten
-
Hold
- Diese Methode erstellt eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_id
. Es wird ein Notarkonto angegeben, das für den Abschluss oder die Freigabe der Sperre verantwortlich ist. Wenn die Sperre erstellt wird, wird der angegebene Tokensaldo des Zahlers gesperrt. Ein gesperrter Saldo kann erst übertragen werden, wenn die Sperre abgeschlossen oder freigegeben wurde. Für den Aufrufer dieser Methode muss bereits ein Account erstellt sein. -
ExecuteHold
- Diese Methode schließt eine Tokensperre ab und überträgt die angegebene Anzahl zuvor gesperrter Token an den Empfänger. Wenn der Wert
quantity
kleiner als der tatsächliche Sperrwert ist, ist der Restbetrag wieder für den ursprünglichen Eigentümer der Token verfügbar. Diese Methode kann nur von derAccountOwner
-ID mit der Rollenotary
aufgerufen werden. -
ReleaseHold
- Diese Methode gibt eine Sperre für Token frei. Die Übertragung ist nicht abgeschlossen, und alle gespeicherten Token stehen dem ursprünglichen Eigentümer wieder zur Verfügung. Diese Methode kann von der
Account Owner
-ID mit der Rollenotary
innerhalb der angegebenen Frist oder vom Zahler, Zahlungsempfänger oder Notar nach der angegebenen Frist aufgerufen werden. -
GetOnHoldIds
- Diese Methode gibt eine Liste aller Halte-IDs für einen angegebenen Benutzer und ein bestimmtes Token zurück.
-
GetOnHoldDetailsWithOperationID
- Diese Methode gibt die zurückgestellten Transaktionsdetails für eine angegebene Vorgangs-ID und ein Token zurück.
-
GetOnHoldBalanceWithOperationID
- Diese Methode gibt den zurückgestellten Saldo für eine angegebene Vorgangs-ID und ein Token zurück.
Methoden für das Tokenverhaltensmanagement - Burnable Behavior
-
Burn
- Diese Methode deaktiviert oder verbrennt Token aus dem Konto des Transaktionsaufrufers. Der Aufrufer dieser Methode muss über einen Account und die Brennerrolle verfügen. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimal
des Verhaltensdivisible
in der Spezifikationsdatei angegeben werden.