Scaffolded Go-Projekt für Token Taxonomy Framework
Blockchain App Builder übernimmt die Eingabe aus Ihrer Token-Spezifikationsdatei 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 Persistenzfunktion werden automatisch unterstützt.
Informationen zu dem gerüsteten Projekt und den Methoden, die nicht direkt mit Token verknüpft sind, finden Sie unter Gerüstetes Go Chaincode-Projekt.
Modell
Transparent Persistence Capability (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"`
}
Verantwortlicher
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 mehrere Token-SDK-Methoden in einer benutzerdefinierten Methode verwenden, verwenden Sie keine Methoden, die sich auf dieselben Schlüssel/Wert-Paare in der Statusdatenbank auswirken.
Verwenden Sie stattdessen die Methode BulkTransferTokens, um von dem Konto des Aufrufers aus auf mehrere Konten zu übertragen, wie im folgenden Code-Snippet dargestellt.
BulkTransferTokens(token_id string, flow: []map[string]interface{})
Hinweis:
Wenn Sie mehrere Token-SDK-Methoden in einer benutzerdefinierten Methode 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 Optimization.Automatisch generierte Tokenmethoden
Blockchain App Builder generiert automatisch Methoden zur Unterstützung von Token und Token-Lebenszyklen. Mit diesen Methoden können Sie Token initialisieren, Rollen und Accounts verwalten und andere Tokenlebenszyklusaufgaben ohne zusätzliche Codierung abschließen. 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
- Transaktionshistorienmanagement
- Tokenverhaltensverwaltung
Methoden für die Zugriffskontrollverwaltung
-
AddTokenAdmin - Diese Methode fügt einen Benutzer als
Token Admindes Chaincodes hinzu. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
RemoveTokenAdmin - Mit dieser Methode wird ein Benutzer als
Token Admindes Chaincodes entfernt. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
IsTokenAdmin - Diese Methode gibt den booleschen Wert
truezurück, wenn der Aufrufer der Funktion einToken Administ. Andernfalls gibt siefalsezurück. EineToken AdminoderOrg Adminkann diese Funktion für jeden anderen Benutzer im Blockchain-Netzwerk aufrufen. Andere Benutzer können diese Methode nur für ihre eigenen Accounts aufrufen. -
GetAllTokenAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die ein
Token Admindes Chaincodes sind. Diese Methode kann nur von derToken AdminoderOrg Admindes Chaincodes aufgerufen werden. -
AddOrgAdmin - Diese Methode fügt einen Benutzer als
Org Adminder Organisation hinzu. Diese Methode kann nur durch eineToken Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation aufgerufen werden. -
RemoveOrgAdmin - Mit dieser Methode wird ein Benutzer als
Org Admineiner Organisation entfernt. Diese Methode kann nur durch eineToken Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation aufgerufen werden. -
GetOrgAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Org Admineiner Organisation sind. Diese Methode kann nur mit einerToken Admindes Chaincodes oder mit einer beliebigenOrg Adminaufgerufen werden.
-
AddTokenAdmin - Diese Methode fügt einen Benutzer als
Token Admindes Chaincodes hinzu. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
RemoveTokenAdmin - Mit dieser Methode wird ein Benutzer als
Token Admindes Chaincodes entfernt. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
IsTokenAdmin - Diese Methode gibt den booleschen Wert
truezurück, wenn der Aufrufer der Funktion einToken Administ. Andernfalls gibt siefalsezurück. Diese Funktion kann nur mitToken Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
GetAllTokenAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die ein
Token Admindes Chaincodes sind. Diese Methode kann nur mit einerToken AdminoderToken Auditoraufgerufen werden. -
AddOrgAdmin - Diese Methode fügt einen Benutzer als
Org Adminder Organisation hinzu. Diese Methode kann nur durch eineToken Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation aufgerufen werden. -
RemoveOrgAdmin - Mit dieser Methode wird ein Benutzer als
Org Admineiner Organisation entfernt. Diese Methode kann nur durch eineToken Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation aufgerufen werden. -
GetOrgAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Org Admineiner Organisation sind. Diese Methode kann nur mitToken Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
AddTokenAuditor - Diese Methode fügt einen Benutzer als
Token Auditordes Chaincodes hinzu. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
RemoveTokenAuditor - Mit dieser Methode wird ein Benutzer als
Token Auditordes Chaincodes entfernt. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
GetTokenAuditors - Diese Methode gibt alle
Token Auditorsdes Chaincodes zurück. Diese Methode kann nur mit einerToken AdminoderToken Auditordes Chaincodes aufgerufen werden. -
AddOrgAuditor - Diese Methode fügt einen Benutzer als
Org Auditordes Chaincodes hinzu. Diese Methode kann nur mit einerToken AdminoderOrg Admindes Chaincodes aufgerufen werden. -
RemoveOrgAuditor - Mit dieser Methode wird ein Benutzer als
Org Auditordes Chaincodes entfernt. Diese Methode kann nur mit einerToken AdminoderOrg Admindes Chaincodes aufgerufen werden. -
GetOrgAuditors - Diese Methode gibt alle
Org Auditorsdes Chaincodes zurück. Diese Methode kann nur mitToken Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden.
Methoden für die Verwaltung der Tokenkonfiguration
-
Init - Diese Methode wird aufgerufen, wenn der Chaincode bereitgestellt wird. Jede
Token Adminwird durch die Informationenuser_idundorg_idim obligatorischen ParameteradminListidentifiziert. Dieuser_idist der Benutzername oder die E-Mail-ID des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist. Dieorg_idist die MSP-ID (Member Service Provider) 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 Admindes Chaincodes aufgerufen werden. -
Update<Token Name>Token - Diese Methode aktualisiert Tokeneigenschaften. Nachdem ein Tokenasset erstellt wurde, können nur die Eigenschaft
token_descund benutzerdefinierte Eigenschaften aktualisiert werden. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
GetTokenDecimals - Diese Methode gibt die Anzahl der Dezimalstellen zurück, die für ein Bruchteil-Token konfiguriert wurden. Wenn das Verhalten
divisiblefür das Token nicht angegeben wurde, ist der Standardwert 0. Diese Methode kann nur mit einerToken AdminoderOrg Admindes Chaincodes aufgerufen werden. -
GetTokenById - Diese Methode gibt ein Tokenobjekt zurück, wenn es in der Statusdatenbank vorhanden ist. Diese Methode kann nur mit einer
Token AdminoderOrg Admindes 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 mit einer
Token AdminoderOrg Admindes Chaincodes aufgerufen werden. -
GetTokensByName - Diese Methode gibt alle Tokenobjekte mit einem angegebenen Namen zurück. Diese Methode kann nur mit einer
Token AdminoderOrg Admindes Chaincodes aufgerufen werden. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
-
Init - Diese Methode wird aufgerufen, wenn der Chaincode bereitgestellt wird. Jede
Token Adminwird durch die Informationenuser_idundorg_idim obligatorischen ParameteradminListidentifiziert. Dieuser_idist der Benutzername oder die E-Mail-ID des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist. Dieorg_idist die MSP-ID (Member Service Provider) 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 Admindes Chaincodes aufgerufen werden. -
Update<Token Name>Token - Diese Methode aktualisiert Tokeneigenschaften. Nachdem ein Tokenasset erstellt wurde, können nur die Eigenschaft
token_descund benutzerdefinierte Eigenschaften aktualisiert werden. Diese Methode kann nur von einemToken Admindes Chaincodes aufgerufen werden. -
GetTokenDecimals - Diese Methode gibt die Anzahl der Dezimalstellen zurück, die für ein Bruchteil-Token konfiguriert wurden. Wenn das Verhalten
divisiblefür das Token nicht angegeben wurde, ist der Standardwert 0. Diese Methode kann nur mitToken Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
GetTokenById - Diese Methode gibt ein Tokenobjekt zurück, wenn es in der Statusdatenbank vorhanden ist. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
GetTokenHistory - Diese Methode gibt die Tokenhistorie für eine angegebene Token-ID zurück. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
GetAllTokens - Diese Methode gibt alle Token zurück, die in der Statusdatenbank gespeichert sind. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
GetTokensByName - Diese Methode gibt alle Tokenobjekte mit einem angegebenen Namen zurück. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
Methoden für die Kontenverwaltung
-
CreateAccount - Mit dieser Methode wird ein Account für einen angegebenen Benutzer und ein bestimmtes Token erstellt. Ein Konto muss für jeden Benutzer erstellt werden, der zu einem beliebigen Zeitpunkt Token hat. Konten verfolgen Salden, einbehaltene Salden und die Transaktionshistorie. Eine Account-ID ist eine alphanumerische Gruppe von Zeichen 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 Admindes Chaincodes oder einemOrg Adminder angegebenen Organisation aufgerufen werden. -
AssociateTokenToAccount - Diese Methode verknüpft ein fungibles Token mit einem Konto. Diese Methode kann nur durch eine
Token Admindes Chaincodes oder durch eineOrg Adminder relevanten Organisation aufgerufen werden. -
GetAccount - Diese Methode gibt Accountdetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur durch eine
Token Admindes Chaincodes, eineOrg Adminder angegebenen Organisation oder dieAccountOwnerdes Accounts aufgerufen werden. -
GetAccountHistory - Diese Methode gibt Accounthistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur mit einer
Token Admindes Chaincodes oder derAccountOwnerdes Accounts aufgerufen werden. -
GetAccountOnHoldBalance - Diese Methode gibt den aktuellen Zurückstellungssaldo für ein angegebenes Konto und Token zurück. Diese Methode kann nur durch eine
Token Admindes Chaincodes, eineOrg Adminder angegebenen Organisation oder dieAccountOwnerdes Accounts aufgerufen werden. -
GetAllAccounts - Diese Methode gibt eine Liste aller Konten zurück. Diese Methode kann nur von einem
Token Admindes Chaincodes aufgerufen werden. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht. -
GetUserByAccountId - Diese Methode gibt Benutzerdetails (
org_idunduser_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 durch eine
Token Admindes Chaincodes, eineOrg Adminder angegebenen Organisation oder dieAccountOwnerdes Accounts aufgerufen werden. -
GetAllOrgAccounts - Diese Methode gibt eine Liste aller Token-Accounts zurück, die zu einer bestimmten Organisation gehören. Diese Methode kann nur durch eine
Token Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation aufgerufen werden.
-
CreateAccount - Mit dieser Methode wird ein Account für einen angegebenen Benutzer und ein bestimmtes Token erstellt. Ein Konto muss für jeden Benutzer erstellt werden, der zu einem beliebigen Zeitpunkt Token hat. Konten verfolgen Salden, einbehaltene Salden und die Transaktionshistorie. Eine Account-ID ist eine alphanumerische Gruppe von Zeichen 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 Admindes Chaincodes oder einemOrg Adminder angegebenen Organisation aufgerufen werden. -
AssociateTokenToAccount - Diese Methode verknüpft ein fungibles Token mit einem Konto. Diese Methode kann nur durch eine
Token Admindes Chaincodes oder durch eineOrg Adminder relevanten Organisation aufgerufen werden. -
GetAccount - Diese Methode gibt Accountdetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von einer
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder derAccountOwnerdes Accounts aufgerufen werden. -
GetAccountHistory - Diese Methode gibt Accounthistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur mit einer
Token Admindes Chaincodes oder derAccountOwnerdes Accounts aufgerufen werden. -
GetAccountOnHoldBalance - Diese Methode gibt den aktuellen Zurückstellungssaldo für ein angegebenes Konto und Token zurück. Diese Methode kann nur von einer
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder dem angegebenen Accounteigentümer aufgerufen werden. -
GetAllAccounts - Diese Methode gibt eine Liste aller Konten zurück. Diese Methode kann nur mit einer
Token AdminoderToken Auditordes Chaincodes aufgerufen werden. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht. -
GetUserByAccountId - Diese Methode gibt Benutzerdetails (
org_idunduser_id) für einen angegebenen Account zurück. Diese Methode kann nur von einerToken AdminoderToken Auditoroder von einerOrg AdminoderOrg Auditorder angegebenen Organisation aufgerufen werden. -
GetAccountBalance - Diese Methode gibt den aktuellen Saldo für ein angegebenes Konto und Token zurück. Diese Methode kann nur von einer
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder dem angegebenen Accounteigentümer aufgerufen werden. -
GetAllOrgAccounts - Diese Methode gibt eine Liste aller Token-Accounts zurück, die zu einer bestimmten Organisation gehören. Diese Methode kann nur von einer
Token AdminoderToken Auditoroder von einerOrg AdminoderOrg Auditorder angegebenen Organisation aufgerufen werden.
Methoden für die Rollenverwaltung
-
AddRole - Diese Methode fügt einem angegebenen Benutzer und Token eine Rolle hinzu. Diese Methode kann nur von einer
Token Admindes Chaincodes oder von einerOrg Adminder angegebenen Organisation aufgerufen werden, die auch die angegebene Rolle hat. -
RemoveRole - Mit dieser Methode wird eine Rolle aus einem angegebenen Benutzer und Token entfernt. Diese Methode kann nur von einer
Token Admindes Chaincodes oder einerOrg Adminder 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 Admindes Chaincodes aufgerufen werden. -
GetAccountsByUser - Diese Methode gibt eine Liste aller Konto-IDs für eine angegebene Organisations-ID und Benutzer-ID zurück. Diese Methode kann nur durch eine
Token Admindes Chaincodes, eineOrg Adminder angegebenen Organisation oder durch die in den Parametern angegebeneAccount Owneraufgerufen 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 einer
Token Admindes Chaincodes oder von derAccount Owneraufgerufen werden, die in den Parametern angegeben ist. -
IsInRole - Diese Methode gibt einen booleschen Wert zurück, um anzugeben, ob ein Benutzer und ein Token eine bestimmte Rolle haben. Diese Methode kann nur von der
Token Admindes Chaincodes, einerOrg Adminder angegebenen Organisation oder derAccountOwnerdes Accounts aufgerufen werden. -
GetOrgAccountsByRole - Diese Methode gibt Informationen zu allen Konten zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben. Diese Methode kann nur durch eine
Token Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation 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 durch eine
Token Admindes Chaincodes oder durch eineOrg Adminder angegebenen Organisation aufgerufen werden.
-
AddRole - Diese Methode fügt einem angegebenen Benutzer und Token eine Rolle hinzu. Diese Methode kann nur von einer
Token Admindes Chaincodes oder von einerOrg Adminder angegebenen Organisation aufgerufen werden, die auch die angegebene Rolle hat. -
RemoveRole - Mit dieser Methode wird eine Rolle aus einem angegebenen Benutzer und Token entfernt. Diese Methode kann nur von einer
Token Admindes Chaincodes oder einerOrg Adminder 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 mit einer
Token AdminoderToken Auditoraufgerufen werden. -
GetAccountsByUser - Diese Methode gibt eine Liste aller Konto-IDs für eine angegebene Organisations-ID und Benutzer-ID zurück. Diese Methode kann nur von einer
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder von derAccount Owneraufgerufen werden, die in den Parametern angegeben ist. -
GetUsersByRole - Diese Methode gibt eine Liste aller Benutzer für eine angegebene Rolle und ein bestimmtes Token zurück. Diese Methode kann nur mit einer
Token AdminoderToken Auditoraufgerufen werden. -
IsInRole - Diese Methode gibt einen booleschen Wert zurück, um anzugeben, ob ein Benutzer und ein Token eine bestimmte Rolle haben. Diese Methode kann nur von
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder dem angegebenen Accounteigentümer aufgerufen werden. -
GetOrgAccountsByRole - Diese Methode gibt Informationen zu allen Konten zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen 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 einer
Token AdminoderToken Auditoroder von einerOrg AdminoderOrg Auditorder angegebenen Organisation aufgerufen werden.
Methoden für 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 Admindes Chaincodes, einerOrg Adminder angegebenen Organisation oder derAccountOwnerdes 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 Admindes Chaincodes, einerOrg Adminder angegebenen Organisation oder derAccountOwnerdes 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 - Mit dieser Methode werden ältere Transaktionen aus der Statusdatenbank gelöscht.
-
GetAccountTransactionHistoryWithFiltersFromRichHistDB func (t *Controller) GetAccountTransactionHistoryWithFiltersFromRichHistDB(token_id string, org_id string, user_id string, custom_endPoint string, bearer_token string, filters ...account.AccountHistoryFilters) (interface{}, error) { account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id) if err != nil { return nil, err } auth, err := t.Ctx.Auth.CheckAuthorization("Account.GetAccountTransactionHistoryWithFilters", "TOKEN", map[string]string{"account_id": account_id}) if err != nil && !auth { return nil, fmt.Errorf("error in authorizing the caller %s", err.Error()) } // sample format of filter: []string{"3", "", "2022-01-16T15:16:36+00:00", "2022-01-17T15:16:36+00:00"} transactionArray, err := t.Ctx.Account.GetAccountTransactionHistoryWithFiltersFromRichHistDB(account_id, org_id, user_id, custom_endPoint, bearer_token, filters...) return transactionArray, err }-
GetAccountTransactionHistory - Diese Methode gibt ein Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von einer
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder vom angegebenen Accounteigentümer aufgerufen werden. -
GetAccountTransactionHistoryWithFilters - Diese Methode gibt ein gefiltertes Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von einer
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder vom angegebenen Accounteigentümer aufgerufen werden. -
GetSubTransactionsById - Diese Methode gibt ein Array mit Details der Untertransaktionshistorie für eine angegebene Transaktion zurück. Diese Methode kann nur von einem
Token Admin,Token Auditoroder demAccountOwneraufgerufen werden, der die Transaktion aufgerufen hat. -
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. Diese Methode kann nur von einerToken AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder von einem Transaktionsteilnehmer (Absender, Empfänger, Notar) aufgerufen werden. -
DeleteHistoricalTransactions - Mit dieser Methode werden ältere Transaktionen aus der Statusdatenbank gelöscht.
Methoden für die Verwaltung des Tokenverhaltens - Mintable-Verhalten
-
IssueTokens - Mit dieser Methode werden Token abgebildet, die dann dem Aufrufer der Methode gehören. Der Anrufer muss über ein Konto und die Nebenrolle verfügen. Die Anzahl der Token, die geprägt werden können, wird durch die Eigenschaft
max_mint_quantitydes Verhaltensmintablein der Spezifikationsdatei begrenzt. Wenn die Eigenschaftmax_mint_quantitynicht angegeben ist, kann eine unbegrenzte Anzahl von Token geprägt werden. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameterdecimaldes Verhaltensdivisiblein der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwnerdes Kontos mit der Minter-Rolle aufgerufen werden. -
GetTotalMintedTokens - Diese Methode gibt die Gesamtanzahl der ausgeprägten Token für ein angegebenes Token zurück. Diese Methode kann nur mit einer
Token AdminoderOrg Admindes Chaincodes aufgerufen werden. -
GetNetTokens - Diese Methode gibt die Gesamtanzahl der Token zurück, die im System für ein angegebenes Token verfügbar sind. Die Nettotokensumme ist die Anzahl der verbleibenden Token, nachdem Token gebrannt wurden. In Gleichungsform Netto-Token = insgesamt abgebaute Token - insgesamt verbrannte Token. Wenn keine Token verbrannt werden, ist die Anzahl der Nettotoken gleich der Gesamtanzahl der abgebauten Token. Diese Methode kann nur mit einer
Token AdminoderOrg Admindes Chaincodes aufgerufen werden.
-
RequestMint - Diese Methode kann von einem Minter aufgerufen werden, um eine Anforderung an den Minter Notar zu senden, um eine bestimmte Anzahl von Token zu erstellen.
-
ApproveMint - Diese Methode kann von einem Minter Notar aufgerufen werden, um eine Prägeanforderung zu genehmigen.
-
RejectMint - Diese Methode kann von einem Minter Notar aufgerufen werden, um eine Prägeanforderung abzulehnen.
-
IssueTokens - Mit dieser Methode werden Token abgebildet, die dann dem Aufrufer der Methode gehören.
-
GetTotalMintedTokens - Diese Methode gibt die Gesamtanzahl der ausgeprägten Token für ein angegebenes Token zurück. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden. -
GetNetTokens - Diese Methode gibt die Gesamtanzahl der Token zurück, die im System für ein angegebenes Token verfügbar sind. Die Nettotokensumme ist die Anzahl der verbleibenden Token, nachdem Token gebrannt wurden. In Gleichungsform Netto-Token = insgesamt abgebaute Token - insgesamt verbrannte Token. Wenn keine Token verbrannt werden, ist die Anzahl der Nettotoken gleich der Gesamtanzahl der abgebauten Token. Diese Methode kann nur mit
Token Admin,Token Auditor,Org AdminoderOrg Auditoraufgerufen werden.
Methoden für Token Behavior Management - Übertragbares Verhalten
-
TransferTokens - Mit dieser Methode werden Token vom Aufrufer an ein bestimmtes Konto übertragen. Der Aufrufer der Methode muss ein Konto haben. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimaldes Verhaltensdivisiblein der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwnerdes Accounts aufgerufen werden. -
BulkTransferTokens - Diese Methode überträgt Token im Massenverfahren vom aufrufenden Konto auf die Konten, die im Objekt
flowangegeben sind. Die Mengen müssen innerhalb der Dezimalwerte liegen, die durch den Parameterdecimaldes Verhaltensdivisibleim Spezifikationsaufrufer file.The dieser Methode angegeben werden, und es muss bereits ein Konto erstellt sein. Diese Methode kann nur von derAccountOwnerdes Accounts aufgerufen werden.
-
TransferTokens - Mit dieser Methode werden Token vom Aufrufer an ein bestimmtes Konto übertragen.
-
BulkTransferTokens - Diese Methode überträgt Token im Massenverfahren vom aufrufenden Konto auf die Konten, die im Objekt
flowangegeben sind. Die Mengen müssen innerhalb der Dezimalwerte liegen, die durch den Parameterdecimaldes Verhaltensdivisibleim Spezifikationsaufrufer file.The dieser Methode angegeben werden, und es muss bereits ein Konto erstellt sein. Diese Methode kann nur von derAccountOwnerdes Accounts aufgerufen werden.
Methoden für Token Behavior Management - Holdable Behavior
-
HoldTokens - Mit dieser Methode wird eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_iderstellt. Es wird ein Notarkonto angegeben, das die Sperre entweder abschließen oder freigeben muss. 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 Konto erstellt sein. Diese Methode kann nur von derAccountOwnerdes Accounts aufgerufen werden. -
ExecuteHoldTokens - Mit dieser Methode wird eine Sperre für ein Token abgeschlossen. Eine Menge von Token, die zuvor von einem Token-Eigentümer gehalten wurden, wird an einen Empfänger übertragen. Wenn der Wert
quantitykleiner als der tatsächliche Zurückstellungswert ist, ist der verbleibende Betrag wieder für den ursprünglichen Eigentümer der Token verfügbar. Diese Methode kann nur von derAccountOwner-ID mit der Rollenotaryaufgerufen werden. Die Sperre kann nur vom Notar abgeschlossen werden. -
ReleaseHoldTokens - Diese Methode gibt eine Sperre für Token frei. Die Übertragung ist nicht abgeschlossen, und alle zurückgestellten Token stehen dem ursprünglichen Eigentümer erneut zur Verfügung. Diese Methode kann durch die
Account Owner-ID mit der Rollenotaryinnerhalb der angegebenen Frist oder durch den 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 durch die
Token Admindes Chaincodes, eineOrg Adminder angegebenen Organisation oder dieAccount Ownerdes Accounts aufgerufen werden. -
GetOnHoldDetailsWithOperationId - Diese Methode gibt die Details der zurückgestellten Transaktion für eine angegebene Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann von jedem aufgerufen werden.
-
GetOnHoldBalanceWithOperationId - Diese Methode gibt den Saldo für eine bestimmte Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann von jedem aufgerufen werden.
-
HoldTokens - Mit dieser Methode wird eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_iderstellt. -
ExecuteHoldTokens - Mit dieser Methode wird eine Sperre für ein Token abgeschlossen. Eine Menge von Token, die zuvor von einem Token-Eigentümer gehalten wurden, wird an einen Empfänger übertragen. Wenn der Wert
quantitykleiner als der tatsächliche Zurückstellungswert ist, ist der verbleibende Betrag wieder für den ursprünglichen Eigentümer der Token verfügbar. Diese Methode kann nur von derAccountOwner-ID mit der Rollenotaryaufgerufen werden. Die Sperre kann nur vom Notar abgeschlossen werden. -
ReleaseHoldTokens - Diese Methode gibt eine Sperre für Token frei. Die Übertragung ist nicht abgeschlossen, und alle zurückgestellten Token stehen dem ursprünglichen Eigentümer erneut zur Verfügung. Diese Methode kann durch die
Account Owner-ID mit der Rollenotaryinnerhalb der angegebenen Frist oder durch den 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
Token AdminoderToken Auditor, einerOrg AdminoderOrg Auditorder angegebenen Organisation oder dem angegebenen Accounteigentümer aufgerufen werden. -
GetOnHoldDetailsWithOperationId - Diese Methode gibt die Details der zurückgestellten Transaktion für eine angegebene Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann nur vom
Token Admin,Token Auditoroder Transaktionsteilnehmer (Absender, Empfänger, Notar) aufgerufen werden. -
GetOnHoldBalanceWithOperationId - Diese Methode gibt den Saldo für eine bestimmte Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann nur vom
Token Admin,Token Auditoroder Transaktionsteilnehmer (Absender, Empfänger, Notar) aufgerufen werden.
Methoden für Token Behavior Management - Burnable Behavior
-
BurnTokens - Mit dieser Methode werden Token aus dem Konto des Transaktionsaufrufers deaktiviert oder verbrannt. Der Aufrufer dieser Methode muss einen Account und die Burner-Rolle aufweisen. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimaldes Verhaltensdivisiblein der Spezifikationsdatei angegeben werden. Diese Methode kann von derAccount Ownerdes Accounts mit der Burner-Rolle aufgerufen werden.
-
RequestBurn - Diese Methode kann von einem Brenner aufgerufen werden, um eine Anforderung an den Brennernotar zu senden, um eine bestimmte Anzahl von Token zu zerstören, die kleiner oder gleich dem verfügbaren Saldo sein müssen. Wenn eine Burn-Anforderung beginnt, wird der angegebene Betrag sofort vom verfügbaren Saldo abgezogen und dem Feld
onhold_burn_balancehinzugefügt. Wenn der Antrag genehmigt wird, werden die Token verbrannt. Wenn die Anforderung abgelehnt wird, werden die Token aus dem Feldonhold_burn_balancean den verfügbaren Saldo zurückgegeben. -
ApproveBurn - Diese Methode kann von einem Brennernotar aufgerufen werden, um eine Brennanforderung zu genehmigen.
-
RejectBurn - Diese Methode kann von einem Brennernotar aufgerufen werden, um eine Brennanforderung abzulehnen.
-
GetAccountOnHoldBurnBalance - Diese Methode gibt den gesperrten Burn-Balance für einen angegebenen Benutzer zurück. Diese Methode kann nur von
Token Admin,Token Auditor,Org Admin,Org Auditoroder vom Accounteigentümer aufgerufen werden. -
BurnTokens - Mit dieser Methode werden Token aus dem Konto des Transaktionsaufrufers deaktiviert oder verbrannt.
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 doppelte Ausgaben zu vermeiden, sollten Sie auch nicht mehrere asynchrone Funktionen kombinieren, die mit denselben Schlüssel/Wert-Paaren in der Statusdatenbank arbeiten. Verwenden Sie stattdessen die Methode BulkTransferTokens, um mehrere Übertragungen in einer Methode vorzunehmen.
Im folgenden Beispiel wird gezeigt, 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
- Transaktionshistorienmanagement
- Tokenverhaltensverwaltung
Methoden für die Zugriffskontrollverwaltung
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. Unbefugter 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 Admindes Token-Chaincodes hinzu. -
RemoveAdmin - Mit dieser Methode wird ein Benutzer als
Token Admindes Token-Chaincodes entfernt. -
IsUserTokenAdmin - Diese Methode gibt den booleschen Wert
truezurück, wenn der Aufrufer der Funktion einToken Administ. Andernfalls gibt die Methodefalsezurück. -
GetAllAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Token Admindes Token-Chaincodes sind. -
GetAllAdminUsers - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Token Admindes Token-Chaincodes sind. -
CheckAuthorization - Verwenden Sie diese Methode, um Ihrem Chaincode eine 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.gobeschrieben. Um Ihre eigene Zugriffskontrolle zu verwenden oder die Zugriffskontrolle zu deaktivieren, entfernen Sie den Zugriffskontrollcode aus den automatisch generierten Controller-Methoden 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"} -
AddOrgAdmin - Diese Methode fügt einen Benutzer als
Org Adminder Organisation hinzu. -
RemoveOrgAdmin - Mit dieser Methode wird ein Benutzer als
Org Admineiner Organisation entfernt. -
GetOrgAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Org Admineiner Organisation sind.
-
AddAdmin - Diese Methode fügt einen Benutzer als
Token Admindes Token-Chaincodes hinzu. -
RemoveAdmin - Mit dieser Methode wird ein Benutzer als
Token Admindes Token-Chaincodes entfernt. -
IsUserTokenAdmin - Diese Methode gibt den booleschen Wert
truezurück, wenn der Aufrufer der Funktion einToken Administ. Andernfalls gibt die Methodefalsezurück. -
GetAllAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Token Admindes Token-Chaincodes sind. -
GetAllAdminUsers - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Token Admindes Token-Chaincodes sind. -
CheckAuthorization - Verwenden Sie diese Methode, um Ihrem Chaincode eine 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.gobeschrieben. Um Ihre eigene Zugriffskontrolle zu verwenden oder die Zugriffskontrolle zu deaktivieren, entfernen Sie den Zugriffskontrollcode aus den automatisch generierten Controller-Methoden 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"} -
AddOrgAdmin - Diese Methode fügt einen Benutzer als
Org Adminder Organisation hinzu. -
RemoveOrgAdmin - Mit dieser Methode wird ein Benutzer als
Org Admineiner Organisation entfernt. -
GetOrgAdmins - Diese Methode gibt eine Liste aller Benutzer zurück, die eine
Org Admineiner Organisation sind. -
AddTokenAuditor - Diese Methode fügt einen Benutzer als
Token Auditordes Chaincodes hinzu. -
RemoveTokenAuditor - Mit dieser Methode wird ein Benutzer als
Token Auditordes Chaincodes entfernt. -
GetTokenAuditors - Diese Methode gibt alle
Token Auditorsdes Chaincodes zurück. -
AddOrgAuditor - Diese Methode fügt einen Benutzer als
Org Auditordes Chaincodes hinzu. -
RemoveOrgAuditor - Mit dieser Methode wird ein Benutzer als
Org Auditordes Chaincodes entfernt. -
GetOrgAuditors - Diese Methode gibt alle
Org Auditorsdes Chaincodes zurück.
Methoden für die Verwaltung der Tokenkonfiguration
-
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_descund die zugehörigen benutzerdefinierten Eigenschaften aktualisieren. -
GetTokenDecimals - Diese Methode gibt die Anzahl der Dezimalstellen zurück, die für ein Bruchteil-Token verfügbar sind. Wenn das Verhalten
divisiblenicht angegeben ist, ist der Standardwert 0. -
Get - Diese Methode gibt ein Tokenobjekt zurück, wenn es in der Statusdatenbank vorhanden ist. Diese Methode kann nur von einem
Token Admindes Token-Chaincodes aufgerufen werden. -
History - Diese Methode gibt die Tokenhistorie für eine angegebene Token-ID zurück.
-
GetAllTokens - Diese Methode gibt alle Tokenassets zurück, die in der Statusdatenbank gespeichert sind. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
-
GetTokensByName - Diese Methode gibt alle Tokenassets mit dem angegebenen Namen zurück. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
-
IsTokenType - Diese Methode prüft, ob ein Tokenasset für eine angegebene Token-ID vorhanden ist.
-
GetByRange - Diese Methode ruft die
getStateByRange-Methode der Struktur intern auf. Auch wenn ein Vermögensgegenstand mit der angegebenen ID vom Buch zurückgegeben wird, wirft diese Methode den Vermögensgegenstand in den aufrufenden Vermögensgegenstandstyp um.
Methoden für die Kontenverwaltung
-
GenerateAccountId - Diese Methode gibt eine Account-ID zurück, bei der es sich um eine alphanumerische Gruppe von Zeichen mit dem Präfix
oaccount~<token asset name>~handelt, 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 Mitgliedsdienstanbieter-ID (org_id) des Benutzers in der aktuellen Netzwerkorganisation und der eindeutigen Token-ID (token_id). -
CreateAccount - Mit dieser Methode wird ein Account für einen angegebenen Benutzer und ein bestimmtes Token erstellt. Jeder Benutzer, der zu einem beliebigen Zeitpunkt Token hat, muss über ein Konto verfügen. Konten verfolgen den Saldo eines Benutzers, den Sperrsaldo und die Transaktionshistorie. Eine Account-ID ist eine alphanumerische Gruppe von Zeichen 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 derToken Admindes Chaincodes aufgerufen werden. -
AssociateToken - Diese Methode verknüpft ein fungibles Token mit einem Konto. Diese Methode kann nur von einem
Token Admindes Chaincodes aufgerufen werden. -
GetAccountWithStatus - Diese Methode gibt Kontodetails für ein angegebenes 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 einbehaltenen Saldo für ein angegebenes Konto zurück.
-
GetAllAccounts - Diese Methode gibt eine Liste aller Konten zurück. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
-
GetUserByAccountId - Diese Methode gibt die Benutzerdetails für einen angegebenen Account zurück.
-
GetAccountBalance - Diese Methode gibt den Kontensaldo für ein angegebenes Konto zurück.
-
GetAllOrgAccounts - Diese Methode gibt eine Liste aller Token-Accounts zurück, die zu einer bestimmten Organisation gehören.
Methoden für die Rollenverwaltung
-
AddRoleMember - Diese Methode fügt einem angegebenen Benutzer und Token eine Rolle hinzu.
-
RemoveRoleMember - Mit dieser Methode wird eine Rolle aus einem angegebenen Benutzer und Token entfernt.
-
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 eine bestimmte Rolle haben.
-
GetOrgAccountsByRole - Diese Methode gibt Informationen zu allen Konten zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben.
-
GetOrgUsersByRole - Diese Methode gibt Informationen zu allen Benutzern zurück, die eine bestimmte Rolle in einer bestimmten Organisation haben.
-
RoleCheck - Diese Methode prüft, ob die angegebene Konto-ID Mitglied einer Rolle ist.
Methoden für 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 - Mit dieser Methode werden ältere Transaktionen aus der Statusdatenbank gelöscht.
Methoden für die Verwaltung des Tokenverhaltens - Mintable-Verhalten
-
Mint - Mit dieser Methode werden Token abgebildet, die dann dem Aufrufer der Methode gehören. Der Anrufer muss über ein Konto und die Nebenrolle verfügen. Die Anzahl der Token, die geprägt werden können, wird durch die Eigenschaft
max_mint_quantitydes Verhaltensmintablein der Spezifikationsdatei begrenzt. Wenn die Eigenschaftmax_mint_quantitynicht angegeben ist, kann eine unbegrenzte Anzahl von Token geprägt werden. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameterdecimaldes Verhaltensdivisiblein der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwnerdes Kontos mit der Minter-Rolle aufgerufen werden. -
GetTotalMintedTokens - Diese Methode gibt die Gesamtanzahl der eingeprägten Token zurück.
-
GetNetTokens - Diese Methode gibt die Nettomenge der Token zurück, die für ein bestimmtes Token im System verfügbar sind. Die Nettotoken sind die Anzahl der Token, die nach dem Verbrennen von Token übrig bleiben. In Gleichungsform: Nettotoken = Gesamtanzahl abgebrannter Token - Gesamtanzahl verbrannter Token. Wenn keine Token verbrannt werden, ist die Anzahl der Nettotoken gleich der Gesamtanzahl der abgebauten Token.
-
GetMaxMintQuantity - Diese Methode gibt die maximale mintable-Menge für ein Token zurück. Wenn das Verhalten
max_mint_quantitynicht angegeben ist, ist der Standardwert 0, wodurch eine beliebige Anzahl von Token geprägt werden kann.
Methoden für Token Behavior Management - Übertragbares Verhalten
-
Transfer - Mit dieser Methode werden Token vom Aufrufer an ein bestimmtes Konto übertragen. Der Aufrufer der Methode muss ein Konto haben. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimaldes Verhaltensdivisiblein der Spezifikationsdatei angegeben werden. Diese Methode kann nur von derAccountOwnerdes Accounts aufgerufen werden. -
BulkTransfer - Diese Methode überträgt Token im Massenverfahren vom aufrufenden Konto auf die Konten, die im Objekt
flowangegeben sind. Für den Aufrufer dieser Methode muss bereits ein Konto erstellt sein.
Methoden für Token Behavior Management - Holdable Behavior
-
Hold - Mit dieser Methode wird eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_iderstellt. Es wird ein Notarkonto angegeben, das die Sperre entweder abschließen oder freigeben muss. 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 Konto erstellt sein. -
ExecuteHold - Diese Methode schließt eine Sperre von Token ab und überträgt die angegebene Menge von Token, die zuvor zurückgestellt wurden, an den Empfänger. Wenn der Wert
quantitykleiner als der tatsächliche Zurückstellungswert ist, ist der verbleibende Betrag wieder für den ursprünglichen Eigentümer der Token verfügbar. Diese Methode kann nur von derAccountOwner-ID mit der Rollenotaryaufgerufen werden. -
ReleaseHold - Diese Methode gibt eine Sperre für Token frei. Die Übertragung ist nicht abgeschlossen, und alle zurückgestellten Token stehen dem ursprünglichen Eigentümer erneut zur Verfügung. Diese Methode kann durch die
Account Owner-ID mit der Rollenotaryinnerhalb der angegebenen Frist oder durch den 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 Details der zurückgestellten Transaktion für eine angegebene Vorgangs-ID und ein bestimmtes Token zurück.
-
GetOnHoldBalanceWithOperationID - Diese Methode gibt den Sperrsaldo für eine angegebene Vorgangs-ID und ein bestimmtes Token zurück.
Methoden für Token Behavior Management - Burnable Behavior
-
Burn - Mit dieser Methode werden Token aus dem Konto des Transaktionsaufrufers deaktiviert oder verbrannt. Der Aufrufer dieser Methode muss einen Account und die Burner-Rolle aufweisen. Die Menge muss innerhalb der Dezimalwerte liegen, die durch den Parameter
decimaldes Verhaltensdivisiblein der Spezifikationsdatei angegeben werden.