Verbesserungen für Token Taxonomy Framework
Die erweiterte Version von Blockchain App Builder enthält neue Funktionen für den erweiterten Token Taxonomy Framework-Standard.
Tägliche Transaktionslimits
Sie können die Anzahl der Transaktionen, die ein Konto täglich abschließen kann, sowie die Anzahl der Token, die bearbeitet werden können, einschränken. Die Eingabeparameter max_daily_amount
und max_daily_transactions
für die Methode createAccount
steuern dieses Verhalten. Diese Parameter sind optional.
Sie können einen höheren Durchsatz erzielen, wenn Sie die täglichen Transaktionslimits für ein Konto nicht festlegen.
-
createAccount (TypeScript)
@Validator(yup.string(), yup.string(), yup.string(), yup.object().nullable()) public async createAccount(org_id: string, user_id: string, token_type: string, daily_limits: DailyLimits) { await this.Ctx.Auth.checkAuthorization("ACCOUNT.createAccount", "TOKEN", { org_id }); return await this.Ctx.Account.createAccount(org_id, user_id, token_type, daily_limits); }
-
CreateAccount (Go)
func (t *Controller) CreateAccount(org_id string, user_id string, token_type string, daily_limits ...account.AccountDailyLimits) (interface{}, error) { auth, err := t.Ctx.Auth.CheckAuthorization("Account.CreateAccount", "TOKEN", map[string]string{"org_id": org_id}) if err != nil && !auth { return nil, fmt.Errorf("error in authorizing the caller %s", err.Error()) } return t.Ctx.Account.CreateAccount(org_id, user_id, token_type, daily_limits...) }
Zulassungsvoraussetzungen für Minting und Burning
Sie können Genehmigungen für das Prägen und Brennen von Token einrichten, sodass Benutzer mit der Minter- oder Brennerrolle eine Anforderung an einen Genehmiger senden müssen, anstatt Token direkt zu prägen oder zu brennen. Genehmiger können Anforderungen zum Minzen oder Brennen von Token annehmen oder ablehnen. Um Genehmigungen für das Prägen und Brennen zu aktivieren, verwenden Sie die Parameter mint_approval_required
und burn_approval_required
. Anschließend müssen Sie auch Werte für mint_approver_role_name
und burn_approval_role_name
angeben, wie im folgenden Beispiel gezeigt.
behavior: # Token behaviors
- divisible:
decimal: 2
- mintable:
max_mint_quantity: 1000
mint_approval_required: true
- transferable
- burnable
burn_approval_required: true
- holdable
- roles:
minter_role_name: minter
notary_role_name: notary
mint_approver_role_name: minter_notary
burn_approver_role_name: burner_notary
Die folgenden Methoden unterstützen das Anfordern, Akzeptieren und Ablehnen von Genehmigungen für Münz- und Burn-Token.TypeScript Methoden für die Präge- und Brenngenehmigung
-
requestMint
- Diese Methode kann von einem Minter aufgerufen werden, um eine Anforderung an den Minternotar zu senden, um eine bestimmte Anzahl von Token zu erstellen.
-
approveMint
- Diese Methode kann von einem Minternotar aufgerufen werden, um eine Prägeanforderung zu genehmigen.
-
rejectMint
- Diese Methode kann von einem Minternotar aufgerufen werden, um eine Prägeanforderung abzulehnen.
-
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.
-
approveBurn
- Diese Methode kann von einem Brenner Notar aufgerufen werden, um eine Brennanforderung zu genehmigen.
-
rejectBurn
- Diese Methode kann von einem Brennernotar aufgerufen werden, um eine Brennanforderung abzulehnen.
Go Methoden für Minting und Burning Approval
-
RequestMint
- Diese Methode kann von einem Minter aufgerufen werden, um eine Anforderung an den Minternotar zu senden, um eine bestimmte Anzahl von Token zu erstellen.
-
ApproveMint
- Diese Methode kann von einem Minternotar aufgerufen werden, um eine Prägeanforderung zu genehmigen.
-
RejectMint
- Diese Methode kann von einem Minternotar aufgerufen werden, um eine Prägeanforderung abzulehnen.
-
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.
-
ApproveBurn
- Diese Methode kann von einem Brenner Notar aufgerufen werden, um eine Brennanforderung zu genehmigen.
-
RejectBurn
- Diese Methode kann von einem Brennernotar aufgerufen werden, um eine Brennanforderung abzulehnen.
Transaktionshistorie aus der Rich History-Datenbank abrufen
Sie können Daten mit der Rich History-Datenbank synchronisieren und die Daten dann mit Chaincode-API-Aufrufen abrufen. Die folgende Methode, die in TypeScript und in Go gezeigt wird, ruft die Transaktionshistorie aus der Rich History-Datenbank ab. Bevor Sie diese Methoden verwenden können, müssen Sie Oracle Autonomous Database mit Oracle REST Data Services (ORDS) und aktiviertem OAuth ausführen, wie unter Oracle Database View Definitions for Wholesale CBDC beschrieben.-
getAccountTransactionHistoryWithFiltersFromRichHistDB (TypeScript)
@GetMethod() @Validator(yup.string(), yup.string(), yup.string(), yup.string(), yup.string(), yup.object().nullable()) public async getAccountTransactionHistoryWithFiltersFromRichHistDB(token_id: string, org_id: string, user_id: string, custom_endpoint: string, bearer_token: string, filters?: Filters) { const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id); await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistoryWithFilters", "TOKEN", { account_id }); return await this.Ctx.Account.getAccountTrxHistoryWithFiltersFromRichHistDB(account_id, org_id, user_id.toLowerCase(), custom_endpoint, bearer_token, filters); }
-
GetAccountTransactionHistoryWithFiltersFromRichHistDB (Go)
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 }
Kategorie- und Beschreibungsattribute in Transaktionsobjekten
- Kategorie- und Beschreibungsattribute müssen in den Methoden
transferTokens
,holdTokens
,issueTokens
,requestMint
,requestBurn
,burnTokens
undrejectBurn
in der Controllerdatei enthalten sein. Die entsprechenden SDK-Methoden müssen auch Kategorie- und Beschreibungsattribute enthalten. - Die Eingabe des Kategorie- und Beschreibungsattributs hat die Form eines JSON-Objekts mit dem Namen
info_details
, wie im folgenden Beispiel dargestellt.{ "category" : "category input", "description" : "description input" }
- Das Feld
info_details
ist optional. Sie können bei Bedarf nur eine Kategorie oder nur eine Beschreibung übergeben. - Die GET-Methoden für alle Transaktionen für
transferTokens
,holdTokens
,executeHold
,releaseHold
,requestMint
,approveMint
,rejectMint
,requestBurn
,approveBurn
undrejectBurn
müssen Kategorie- und Beschreibungsattribute in der Payload-Antwort enthalten, wenn sie vorhanden sind. - Das Kategoriefeld ist auf 20 Zeichen begrenzt, und das Beschreibungsfeld ist auf 250 Zeichen begrenzt.
TypeScript-Methoden mit geänderten Eingaben
Die folgenden Methoden unterstützen optionale Kategorie- und Beschreibungsattribute, wenn Sie die erweiterte Version von Blockchain App Builder verwenden.
-
transferTokens
- Diese Methode überträgt Token vom Aufrufer auf ein angegebenes Konto.
-
holdTokens
- Diese Methode erstellt eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_id
. -
issueTokens
- Diese Methode bildet Token ab, die dann dem Aufrufer der Methode gehören.
-
burnTokens
- Diese Methode deaktiviert oder verbrennt Token aus dem Konto des Transaktionsaufrufers.
Go-Methoden mit geänderten Eingaben
Die folgenden Methoden unterstützen optionale Kategorie- und Beschreibungsattribute, wenn Sie die erweiterte Version von Blockchain App Builder verwenden.
-
TransferTokens
- Diese Methode überträgt Token vom Aufrufer auf ein angegebenes Konto.
-
HoldTokens
- Diese Methode erstellt eine Sperre im Namen des Eigentümers der Token mit dem Konto
to_account_id
. -
IssueTokens
- Diese Methode bildet Token ab, die dann dem Aufrufer der Methode gehören.
-
BurnTokens
- Diese Methode deaktiviert oder verbrennt Token aus dem Konto des Transaktionsaufrufers.
TypeScript-Methoden mit geänderten Ausgaben
Die folgenden Methoden geben die relevante Organisation und Benutzer-IDs zurück, wenn Sie die erweiterte Version von Blockchain App Builder verwenden.
-
getAccountTransactionHistory
- Diese Methode gibt ein Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück.
-
getAccountTransactionHistoryWithFilters
- Diese Methode gibt ein gefiltertes Array mit Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück.
Go-Methoden mit geänderten Ausgaben
Die folgenden Methoden geben die relevante Organisation und Benutzer-IDs zurück, wenn Sie die erweiterte Version von Blockchain App Builder verwenden.
-
GetAccountTransactionHistory
- Diese Methode gibt ein Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück.
-
GetAccountTransactionHistoryWithFilters
- Diese Methode gibt ein gefiltertes Array mit Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück.