Progetto Go con blocco per struttura tassonomia token
Blockchain App Builder prende l'input dal file di specifica del token e genera un progetto di codice concatenato impalcato completamente funzionale.
Il progetto genera automaticamente classi e funzioni del ciclo di vita dei token, inclusi i metodi CRUD e non CRUD. La convalida degli argomenti, il marshalling/unmarshalling e la capacità di persistenza trasparente sono tutti supportati automaticamente.
Per informazioni sul progetto impalcato e sui metodi non direttamente correlati ai token, vedere Progetto codice catena go impalcato.
Modello
La funzionalità di persistenza trasparente, o ORM semplificato, viene acquisita nella classe OchainModel
.
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
C'è solo un controller principale.
type Controller struct {
Ctx trxcontext.TrxContext
}
È possibile creare un numero qualsiasi di classi, funzioni o file, ma solo i metodi definiti nella classe controller principale sono richiamabili. Gli altri metodi sono nascosti.
È possibile utilizzare i metodi SDK token per scrivere metodi personalizzati per l'applicazione business.
Se si utilizzano più metodi SDK token in un metodo personalizzato, non utilizzare metodi che influiranno sulle stesse coppie chiave-valore nel database di stato.
Utilizzare invece il metodo BulkTransferTokens
per eseguire il trasferimento a più account dall'account del chiamante, come mostrato nello snippet di codice riportato di seguito.
BulkTransferTokens(token_id string, flow: []map[string]interface{})
Nota
Se si utilizzano più metodi SDK token in un metodo personalizzato che potrebbe influire sulle stesse coppie chiave-valore nel database di stato, abilitare l'ottimizzazione MVCC per i codici concatenati token. Per ulteriori informazioni, vedere MVCC Optimization.Metodi token generati automaticamente
Blockchain App Builder genera automaticamente metodi per supportare token e cicli di vita dei token. È possibile utilizzare questi metodi per inizializzare i token, gestire ruoli e account e completare altri task del ciclo di vita dei token senza alcuna codifica aggiuntiva. I metodi controller devono essere pubblici per poter essere richiamati. I nomi dei metodi pubblici iniziano con un carattere maiuscolo. I nomi dei metodi che iniziano con un carattere minuscolo sono privati.
- Gestione del controllo dell'accesso
- Gestione configurazione token
- Gestione account
- Gestione ruoli
- Gestione cronologia transazioni
- Gestione comportamento token
Metodi per la gestione del controllo degli accessi
-
AddTokenAdmin
- Questo metodo aggiunge un utente come
Token Admin
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
RemoveTokenAdmin
- Questo metodo rimuove un utente come
Token Admin
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
IsTokenAdmin
- Questo metodo restituisce il valore booleano
true
se il chiamante della funzione èToken Admin
, altrimenti restituiscefalse
. UnToken Admin
oOrg Admin
può chiamare questa funzione su qualsiasi altro utente della rete blockchain. Altri utenti possono chiamare questo metodo solo sui propri account. -
GetAllTokenAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono un
Token Admin
del codice concatenato. Questo metodo può essere chiamato solo dall'indirizzoToken Admin
oOrg Admin
del codice concatenato. -
AddOrgAdmin
- Questo metodo aggiunge un utente come
Org Admin
dell'organizzazione. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
RemoveOrgAdmin
- Questo metodo rimuove un utente come
Org Admin
di un'organizzazione. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
GetOrgAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono un
Org Admin
di un'organizzazione. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da qualsiasiOrg Admin
.
-
AddTokenAdmin
- Questo metodo aggiunge un utente come
Token Admin
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
RemoveTokenAdmin
- Questo metodo rimuove un utente come
Token Admin
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
IsTokenAdmin
- Questo metodo restituisce il valore booleano
true
se il chiamante della funzione èToken Admin
, altrimenti restituiscefalse
. Questa funzione può essere chiamata solo daToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetAllTokenAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono un
Token Admin
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
oToken Auditor
. -
AddOrgAdmin
- Questo metodo aggiunge un utente come
Org Admin
dell'organizzazione. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
RemoveOrgAdmin
- Questo metodo rimuove un utente come
Org Admin
di un'organizzazione. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
GetOrgAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono un
Org Admin
di un'organizzazione. Questo metodo può essere chiamato solo daToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
AddTokenAuditor
- Questo metodo aggiunge un utente come
Token Auditor
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
RemoveTokenAuditor
- Questo metodo rimuove un utente come
Token Auditor
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
GetTokenAuditors
- Questo metodo restituisce tutti i valori
Token Auditors
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
oToken Auditor
del codice concatenato. -
AddOrgAuditor
- Questo metodo aggiunge un utente come
Org Auditor
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
oOrg Admin
del codice concatenato. -
RemoveOrgAuditor
- Questo metodo rimuove un utente come
Org Auditor
del codice concatenato. Questo metodo può essere chiamato solo da unToken Admin
oOrg Admin
del codice concatenato. -
GetOrgAuditors
- Questo metodo restituisce tutti i valori
Org Auditors
del codice concatenato. Questo metodo può essere chiamato solo daToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
.
Metodi per la gestione della configurazione token
-
Init
- Questo metodo viene richiamato quando viene distribuito il codice concatenato. Ogni
Token Admin
è identificato dalle informazioniuser_id
eorg_id
nel parametro obbligatorioadminList
.user_id
è il nome utente o l'ID e-mail del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza.org_id
è l'ID MSP (Membership Service Provider) dell'utente nell'organizzazione di rete corrente. -
Initialize<Token Name>Token
- Questo metodo crea un token e inizializza le proprietà del token. L'asset e le relative proprietà vengono salvati nel database di stato. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato. -
Update<Token Name>Token
- Questo metodo aggiorna le proprietà del token. Dopo la creazione di un asset token, è possibile aggiornare solo la proprietà
token_desc
e le proprietà personalizzate. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
GetTokenDecimals
- Questo metodo restituisce il numero di posizioni decimali configurate per un token frazionario. Se il comportamento
divisible
non è stato specificato per il token, il valore predefinito è 0. Questo metodo può essere chiamato solo da unToken Admin
oOrg Admin
del codice concatenato. -
GetTokenById
- Questo metodo restituisce un oggetto token se è presente nel database di stato. Questo metodo può essere chiamato solo da un
Token Admin
oOrg Admin
del codice concatenato. -
GetTokenHistory
- Questo metodo restituisce la cronologia del token per un ID token specificato. Qualsiasi utente può chiamare questo metodo.
-
GetAllTokens
- Questo metodo restituisce tutti i token memorizzati nel database di stato. Questo metodo può essere chiamato solo da un
Token Admin
oOrg Admin
del codice concatenato. -
GetTokensByName
- Questo metodo restituisce tutti gli oggetti token con un nome specificato. Questo metodo può essere chiamato solo da un
Token Admin
oOrg Admin
del codice concatenato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
-
Init
- Questo metodo viene richiamato quando viene distribuito il codice concatenato. Ogni
Token Admin
è identificato dalle informazioniuser_id
eorg_id
nel parametro obbligatorioadminList
.user_id
è il nome utente o l'ID e-mail del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza.org_id
è l'ID MSP (Membership Service Provider) dell'utente nell'organizzazione di rete corrente. -
Initialize<Token Name>Token
- Questo metodo crea un token e inizializza le proprietà del token. L'asset e le relative proprietà vengono salvati nel database di stato. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato. -
Update<Token Name>Token
- Questo metodo aggiorna le proprietà del token. Dopo la creazione di un asset token, è possibile aggiornare solo la proprietà
token_desc
e le proprietà personalizzate. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato. -
GetTokenDecimals
- Questo metodo restituisce il numero di posizioni decimali configurate per un token frazionario. Se il comportamento
divisible
non è stato specificato per il token, il valore predefinito è 0. Questo metodo può essere chiamato solo daToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetTokenById
- Questo metodo restituisce un oggetto token se è presente nel database di stato. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetTokenHistory
- Questo metodo restituisce la cronologia del token per un ID token specificato. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetAllTokens
- Questo metodo restituisce tutti i token memorizzati nel database di stato. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetTokensByName
- Questo metodo restituisce tutti gli oggetti token con un nome specificato. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
Metodi per la gestione degli account
-
CreateAccount
- Questo metodo crea un account per un utente e un token specificati. È necessario creare un account per qualsiasi utente che avrà token in qualsiasi momento. I conti tengono traccia dei saldi, dei saldi in sospeso e della cronologia delle transazioni. Un ID account è un set alfanumerico di caratteri, preceduto da
oaccount~<token asset name>~
e seguito da un hash del nome utente o dell'ID e-mail (user_id
) del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza, l'ID del provider di servizi di appartenenza (org_id
) dell'utente nell'organizzazione di rete corrente. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
AssociateTokenToAccount
- Questo metodo associa un token fungibile a un account. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione pertinente. -
GetAccount
- Questo metodo restituisce i dettagli dell'account per un utente e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
GetAccountHistory
- Questo metodo restituisce i dettagli della cronologia dell'account per un utente e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o dalAccountOwner
dell'account. -
GetAccountOnHoldBalance
- Questo metodo restituisce il saldo in sospeso corrente per un conto e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
GetAllAccounts
- Questo metodo restituisce un elenco di tutti i conti. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. -
GetUserByAccountId
- Questo metodo restituisce i dettagli utente (
org_id
euser_id
) per un account specificato. Questo metodo può essere chiamato da qualsiasi utente del codice concatenato. -
GetAccountBalance
- Questo metodo restituisce il saldo corrente per un conto e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
GetAllOrgAccounts
- Questo metodo restituisce un elenco di tutti i conti token appartenenti a un'organizzazione specificata. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata.
-
CreateAccount
- Questo metodo crea un account per un utente e un token specificati. È necessario creare un account per qualsiasi utente che avrà token in qualsiasi momento. I conti tengono traccia dei saldi, dei saldi in sospeso e della cronologia delle transazioni. Un ID account è un set alfanumerico di caratteri, preceduto da
oaccount~<token asset name>~
e seguito da un hash del nome utente o dell'ID e-mail (user_id
) del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza, l'ID del provider di servizi di appartenenza (org_id
) dell'utente nell'organizzazione di rete corrente. Questo metodo può essere chiamato solo da unToken Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
AssociateTokenToAccount
- Questo metodo associa un token fungibile a un account. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione pertinente. -
GetAccount
- Questo metodo restituisce i dettagli dell'account per un utente e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
GetAccountHistory
- Questo metodo restituisce i dettagli della cronologia dell'account per un utente e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o dalAccountOwner
dell'account. -
GetAccountOnHoldBalance
- Questo metodo restituisce il saldo in sospeso corrente per un conto e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata o dal proprietario dell'account specificato. -
GetAllAccounts
- Questo metodo restituisce un elenco di tutti i conti. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
del codice concatenato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. -
GetUserByAccountId
- Questo metodo restituisce i dettagli utente (
org_id
euser_id
) per un account specificato. Questo metodo può essere chiamato solo da unToken Admin
oToken Auditor
, o da unOrg Admin
oOrg Auditor
dell'organizzazione specificata. -
GetAccountBalance
- Questo metodo restituisce il saldo corrente per un conto e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata o dal proprietario dell'account specificato. -
GetAllOrgAccounts
- Questo metodo restituisce un elenco di tutti i conti token appartenenti a un'organizzazione specificata. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, o da unOrg Admin
oOrg Auditor
dell'organizzazione specificata.
Metodi per gestione ruoli
-
AddRole
- Questo metodo aggiunge un ruolo a un utente e a un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata che ha anche il ruolo specificato. -
RemoveRole
- Questo metodo rimuove un ruolo da un utente e da un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata che dispone anche del ruolo specificato. -
GetAccountsByRole
- Questo metodo restituisce un elenco di tutti gli ID account per un ruolo e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato. -
GetAccountsByUser
- Questo metodo restituisce un elenco di tutti gli ID account per un ID organizzazione e un ID utente specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o dalAccount Owner
specificato nei parametri. -
GetUsersByRole
- Questo metodo restituisce un elenco di tutti gli utenti per un ruolo e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o dalAccount Owner
specificato nei parametri. -
IsInRole
- Questo metodo restituisce un valore booleano per indicare se un utente e un token hanno un ruolo specificato. Questo metodo può essere chiamato solo dal
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
GetOrgAccountsByRole
- Questo metodo restituisce informazioni su tutti i conti con un ruolo specificato in un'organizzazione specificata. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata. -
GetOrgUsersByRole
- Questo metodo restituisce informazioni su tutti gli utenti con un ruolo specificato in un'organizzazione specificata. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata.
-
AddRole
- Questo metodo aggiunge un ruolo a un utente e a un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata che ha anche il ruolo specificato. -
RemoveRole
- Questo metodo rimuove un ruolo da un utente e da un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato o da unOrg Admin
dell'organizzazione specificata che dispone anche del ruolo specificato. -
GetAccountsByRole
- Questo metodo restituisce un elenco di tutti gli ID account per un ruolo e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
. -
GetAccountsByUser
- Questo metodo restituisce un elenco di tutti gli ID account per un ID organizzazione e un ID utente specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o dalAccount Owner
specificato nei parametri. -
GetUsersByRole
- Questo metodo restituisce un elenco di tutti gli utenti per un ruolo e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
. -
IsInRole
- Questo metodo restituisce un valore booleano per indicare se un utente e un token hanno un ruolo specificato. Questo metodo può essere chiamato solo da
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o il proprietario dell'account specificato. -
GetOrgAccountsByRole
- Questo metodo restituisce informazioni su tutti i conti con un ruolo specificato in un'organizzazione specificata. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetOrgUsersByRole
- Questo metodo restituisce informazioni su tutti gli utenti con un ruolo specificato in un'organizzazione specificata. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, o da unOrg Admin
oOrg Auditor
dell'organizzazione specificata.
Metodi per gestione cronologia transazioni
-
GetAccountTransactionHistory
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni conto per un utente e un token specificati. Questo metodo può essere chiamato solo dal
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
GetAccountTransactionHistoryWithFilters
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni conto per un utente e un token specificati. Questo metodo può essere chiamato solo dal
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
dell'account. Questo metodo può essere chiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. -
GetSubTransactionsById
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni secondarie per una transazione specificata.
-
GetSubTransactionsByIdWithFilters
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni secondarie per una transazione specificata.
-
GetTransactionById
- Questo metodo restituisce la cronologia di un asset
Transaction
. -
DeleteHistoricalTransactions
- Questo metodo elimina le transazioni meno recenti dal database di stato.
-
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
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni conto per un utente e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata o dal proprietario dell'account specificato. -
GetAccountTransactionHistoryWithFilters
- Questo metodo restituisce un array filtrato di dettagli della cronologia delle transazioni account per un utente e un token specificati. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata o dal proprietario dell'account specificato. -
GetSubTransactionsById
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni secondarie per una transazione specificata. Questo metodo può essere chiamato solo da un
Token Admin
,Token Auditor
, o ilAccountOwner
che ha chiamato la transazione. -
GetSubTransactionsByIdWithFilters
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni secondarie per una transazione specificata.
-
GetTransactionById
- Questo metodo restituisce la cronologia di un asset
Transaction
. Questo metodo può essere chiamato solo da unToken Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o da un partecipante alla transazione (mittente, destinatario, notaio). -
DeleteHistoricalTransactions
- Questo metodo elimina le transazioni meno recenti dal database di stato.
Metodi per la gestione del comportamento dei token - Comportamento minimo
-
IssueTokens
- Questo metodo estrae i token, che sono quindi di proprietà del chiamante del metodo. Il chiamante deve avere un account e il ruolo minore. Il numero di token che è possibile coniare è limitato dalla proprietà
max_mint_quantity
del comportamentomintable
nel file di specifica. Se la proprietàmax_mint_quantity
non viene specificata, è possibile coniare un numero illimitato di token. La quantità deve essere compresa nei valori decimali specificati dal parametrodecimal
del comportamentodivisible
nel file di specifica. Questo metodo può essere chiamato solo dalAccountOwner
dell'account con il ruolo minore. -
GetTotalMintedTokens
- Questo metodo restituisce il numero totale di token coniati per un token specificato. Questo metodo può essere chiamato solo da un
Token Admin
oOrg Admin
del codice concatenato. -
GetNetTokens
- Questo metodo restituisce il numero netto totale di token disponibili nel sistema per un token specificato. Il totale token netto è la quantità di token rimanenti dopo la masterizzazione dei token. In forma di equazione token netti = token coniati totali - token bruciati totali. Se non vengono bruciati token, il numero di token netti è uguale al totale dei token coniati. Questo metodo può essere chiamato solo da un
Token Admin
oOrg Admin
del codice concatenato.
-
RequestMint
- Questo metodo può essere chiamato da un minter per inviare una richiesta al notaio minore per creare una quantità specificata di token.
-
ApproveMint
- Questo metodo può essere chiamato da un notaio minore per approvare una richiesta di conio.
-
RejectMint
- Questo metodo può essere chiamato da un notaio minore per rifiutare una richiesta di conio.
-
IssueTokens
- Questo metodo estrae i token, che sono quindi di proprietà del chiamante del metodo.
-
GetTotalMintedTokens
- Questo metodo restituisce il numero totale di token coniati per un token specificato. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetNetTokens
- Questo metodo restituisce il numero netto totale di token disponibili nel sistema per un token specificato. Il totale token netto è la quantità di token rimanenti dopo la masterizzazione dei token. In forma di equazione token netti = token coniati totali - token bruciati totali. Se non vengono bruciati token, il numero di token netti è uguale al totale dei token coniati. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
.
Metodi per la gestione del comportamento dei token - comportamento trasferibile
-
TransferTokens
- Questo metodo trasferisce i token dal chiamante a un account specificato. Il chiamante del metodo deve avere un account. La quantità deve essere compresa nei valori decimali specificati dal parametro
decimal
del comportamentodivisible
nel file di specifica. Questo metodo può essere chiamato solo dalAccountOwner
dell'account. -
BulkTransferTokens
- Questo metodo trasferisce i token in blocco dal conto chiamante ai conti specificati nell'oggetto
flow
. Le quantità devono essere comprese nei valori decimali specificati dal parametrodecimal
del comportamentodivisible
nel chiamante specifica file.The di questo metodo devono avere un conto già creato. Questo metodo può essere chiamato solo dalAccountOwner
dell'account.
-
TransferTokens
- Questo metodo trasferisce i token dal chiamante a un account specificato.
-
BulkTransferTokens
- Questo metodo trasferisce i token in blocco dal conto chiamante ai conti specificati nell'oggetto
flow
. Le quantità devono essere comprese nei valori decimali specificati dal parametrodecimal
del comportamentodivisible
nel chiamante specifica file.The di questo metodo devono avere un conto già creato. Questo metodo può essere chiamato solo dalAccountOwner
dell'account.
Metodi per la gestione del comportamento dei token - comportamento bloccabile
-
HoldTokens
- Questo metodo crea un blocco per conto del proprietario dei token con l'account
to_account_id
. Viene specificato un conto notarile, che è responsabile del completamento o del rilascio del blocco. Quando viene creato il blocco, il saldo del token specificato dal responsabile pagamento viene bloccato. Impossibile trasferire un saldo bloccato finché il blocco non viene completato o rilasciato. Per il chiamante di questo metodo deve essere già stato creato un account. Questo metodo può essere chiamato solo dalAccountOwner
dell'account. -
ExecuteHoldTokens
- Questo metodo completa il blocco di un token. Una quantità di token precedentemente detenuti da un proprietario di token viene trasferita a un ricevente. Se il valore
quantity
è inferiore al valore di blocco effettivo, l'importo rimanente sarà nuovamente disponibile per il proprietario originale dei token. Questo metodo può essere richiamato solo dall'IDAccountOwner
con il ruolonotary
. La presa può essere completata solo dal notaio. -
ReleaseHoldTokens
- Questo metodo rilascia un blocco sui token. Il trasferimento non è stato completato e tutti i token bloccati sono di nuovo disponibili per il proprietario originale. Questo metodo può essere richiamato dall'ID
Account Owner
con il ruolonotary
entro il limite di tempo specificato o dal responsabile pagamento, dal beneficiario o dal notaio dopo il limite di tempo specificato. -
GetOnHoldIds
- Questo metodo restituisce un elenco di tutti gli ID azienda per un conto specificato. Questo metodo può essere chiamato dal
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccount Owner
dell'account. -
GetOnHoldDetailsWithOperationId
- Questo metodo restituisce i dettagli della transazione in sospeso per un ID operazione e un token specificati. Questo metodo può essere chiamato da chiunque.
-
GetOnHoldBalanceWithOperationId
- Questo metodo restituisce il saldo in sospeso per un ID operazione e un token specificati. Questo metodo può essere chiamato da chiunque.
-
HoldTokens
- Questo metodo crea un blocco per conto del proprietario dei token con l'account
to_account_id
. -
ExecuteHoldTokens
- Questo metodo completa il blocco di un token. Una quantità di token precedentemente detenuti da un proprietario di token viene trasferita a un ricevente. Se il valore
quantity
è inferiore al valore di blocco effettivo, l'importo rimanente sarà nuovamente disponibile per il proprietario originale dei token. Questo metodo può essere richiamato solo dall'IDAccountOwner
con il ruolonotary
. La presa può essere completata solo dal notaio. -
ReleaseHoldTokens
- Questo metodo rilascia un blocco sui token. Il trasferimento non è stato completato e tutti i token bloccati sono di nuovo disponibili per il proprietario originale. Questo metodo può essere richiamato dall'ID
Account Owner
con il ruolonotary
entro il limite di tempo specificato o dal responsabile pagamento, dal beneficiario o dal notaio dopo il limite di tempo specificato. -
GetOnHoldIds
- Questo metodo restituisce un elenco di tutti gli ID azienda per un conto specificato. Questo metodo può essere chiamato da
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o il proprietario dell'account specificato. -
GetOnHoldDetailsWithOperationId
- Questo metodo restituisce i dettagli della transazione in sospeso per un ID operazione e un token specificati. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
o partecipante alla transazione (mittente, destinatario, notaio). -
GetOnHoldBalanceWithOperationId
- Questo metodo restituisce il saldo in sospeso per un ID operazione e un token specificati. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
o partecipante alla transazione (mittente, destinatario, notaio).
Metodi per la gestione del comportamento dei token - comportamento masterizzabile
-
BurnTokens
- Questo metodo disattiva o brucia i token dall'account del chiamante della transazione. Il chiamante di questo metodo deve avere un account e il ruolo di bruciatore. La quantità deve essere compresa nei valori decimali specificati dal parametro
decimal
del comportamentodivisible
nel file di specifica. Questo metodo può essere chiamato dalAccount Owner
dell'account con il ruolo di masterizzatore.
-
RequestBurn
- Questo metodo può essere chiamato da un bruciatore per inviare una richiesta al notaio del bruciatore per distruggere una determinata quantità di token, che deve essere inferiore o uguale al loro saldo disponibile. Quando viene avviata una richiesta di masterizzazione, l'importo specificato viene immediatamente detratto dal saldo disponibile e aggiunto al campo
onhold_burn_balance
. Se la richiesta viene approvata, i token vengono masterizzati. Se la richiesta viene rifiutata, i token vengono restituiti dal campoonhold_burn_balance
al saldo disponibile. -
ApproveBurn
- Questo metodo può essere chiamato da un notaio bruciatore per approvare una richiesta di masterizzazione.
-
RejectBurn
- Questo metodo può essere chiamato da un notaio bruciatore per rifiutare una richiesta di masterizzazione.
-
GetAccountOnHoldBurnBalance
- Questo metodo restituisce il saldo di masterizzazione in sospeso per un utente specificato. Questo metodo può essere chiamato solo da
Token Admin
,Token Auditor
,Org Admin
,Org Auditor
, o dal proprietario dell'account. -
BurnTokens
- Questo metodo disattiva o brucia i token dall'account del chiamante della transazione.
Metodi personalizzati
È possibile utilizzare i metodi SDK token per scrivere metodi personalizzati per l'applicazione business.
Assicurarsi di tenere traccia del valore restituito quando si utilizzano i metodi SDK token. Inoltre, per evitare la doppia spesa, non combinare più funzioni asincrone che operano sulle stesse coppie chiave-valore nel database di stato. Utilizzare invece il metodo BulkTransferTokens
per effettuare più trasferimenti in un unico metodo.
L'esempio seguente mostra come utilizzare i metodi SDK token nei metodi personalizzati. Quando viene chiamato il metodo BuyTicket
, trasferisce 20 token dall'account del chiamante all'account del venditore e restituisce il messaggio di transazione del trasferimento.
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
}
Metodi SDK token
- Gestione del controllo dell'accesso
- Gestione configurazione token
- Gestione account
- Gestione ruoli
- Gestione cronologia transazioni
- Gestione comportamento token
Metodi per la gestione del controllo degli accessi
Token Admin
, Org Admin
o AccountOwner
del token. È possibile utilizzare questa funzione per garantire che le operazioni vengano eseguite solo dagli utenti destinatari. Qualsiasi accesso non autorizzato comporta un errore. Per utilizzare la funzione di controllo dell'accesso, importare la classe Authorization
dal modulo ../lib/auth
.import { Authorization } from '../lib/auth';
-
AddAdmin
- Questo metodo aggiunge un utente come
Token Admin
del codice concatenato del token. -
RemoveAdmin
- Questo metodo rimuove un utente come
Token Admin
del codice concatenato del token. -
IsUserTokenAdmin
- Questo metodo restituisce il valore booleano
true
se il chiamante della funzione è un valoreToken Admin
. Altrimenti, il metodo restituiscefalse
. -
GetAllAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono
Token Admin
del codice concatenato del token. -
GetAllAdminUsers
- Questo metodo restituisce un elenco di tutti gli utenti che sono
Token Admin
del codice concatenato del token. -
CheckAuthorization
- Utilizzare questo metodo per aggiungere il controllo dell'accesso al codice concatenato. Molti dei metodi token generati automaticamente utilizzano il controllo dell'accesso. La mappatura tra il ricevitore SDK e i metodi con controllo dell'accesso è descritta nel file
oChainUtil.go
. Per utilizzare il proprio controllo dell'accesso o disabilitare il controllo dell'accesso, rimuovere il codice di controllo dell'accesso dai metodi del controller generati automaticamente e dai metodi personalizzati.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
- Questo metodo aggiunge un utente come
Org Admin
dell'organizzazione. -
RemoveOrgAdmin
- Questo metodo rimuove un utente come
Org Admin
di un'organizzazione. -
GetOrgAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono un
Org Admin
di un'organizzazione.
-
AddAdmin
- Questo metodo aggiunge un utente come
Token Admin
del codice concatenato del token. -
RemoveAdmin
- Questo metodo rimuove un utente come
Token Admin
del codice concatenato del token. -
IsUserTokenAdmin
- Questo metodo restituisce il valore booleano
true
se il chiamante della funzione è un valoreToken Admin
. Altrimenti, il metodo restituiscefalse
. -
GetAllAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono
Token Admin
del codice concatenato del token. -
GetAllAdminUsers
- Questo metodo restituisce un elenco di tutti gli utenti che sono
Token Admin
del codice concatenato del token. -
CheckAuthorization
- Utilizzare questo metodo per aggiungere il controllo dell'accesso al codice concatenato. Molti dei metodi token generati automaticamente utilizzano il controllo dell'accesso. La mappatura tra il ricevitore SDK e i metodi con controllo dell'accesso è descritta nel file
oChainUtil.go
. Per utilizzare il proprio controllo dell'accesso o disabilitare il controllo dell'accesso, rimuovere il codice di controllo dell'accesso dai metodi del controller generati automaticamente e dai metodi personalizzati.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
- Questo metodo aggiunge un utente come
Org Admin
dell'organizzazione. -
RemoveOrgAdmin
- Questo metodo rimuove un utente come
Org Admin
di un'organizzazione. -
GetOrgAdmins
- Questo metodo restituisce un elenco di tutti gli utenti che sono un
Org Admin
di un'organizzazione. -
AddTokenAuditor
- Questo metodo aggiunge un utente come
Token Auditor
del codice concatenato. -
RemoveTokenAuditor
- Questo metodo rimuove un utente come
Token Auditor
del codice concatenato. -
GetTokenAuditors
- Questo metodo restituisce tutti i valori
Token Auditors
del codice concatenato. -
AddOrgAuditor
- Questo metodo aggiunge un utente come
Org Auditor
del codice concatenato. -
RemoveOrgAuditor
- Questo metodo rimuove un utente come
Org Auditor
del codice concatenato. -
GetOrgAuditors
- Questo metodo restituisce tutti i valori
Org Auditors
del codice concatenato.
Metodi per la gestione della configurazione token
-
Save
- Questo metodo crea un token e ne salva le proprietà nel database di stato.
-
Update
- Questo metodo aggiorna le proprietà del token. Dopo aver creato un asset token, è possibile aggiornare solo il valore
token_desc
e le relative proprietà personalizzate. -
GetTokenDecimals
- Questo metodo restituisce il numero di posizioni decimali disponibili per un token frazionario. Se il comportamento
divisible
non è specificato, il valore predefinito è 0. -
Get
- Questo metodo restituisce un oggetto token se è presente nel database di stato. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato del token. -
History
- Questo metodo restituisce la cronologia del token per un ID token specificato.
-
GetAllTokens
- Questo metodo restituisce tutti gli asset token salvati nel database di stato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
-
GetTokensByName
- Questo metodo restituisce tutti gli asset token con il nome specificato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
-
IsTokenType
- Questo metodo verifica se esiste un asset token per un ID token specificato.
-
GetByRange
- Questo metodo chiama internamente il metodo fabric
getStateByRange
. Anche se qualsiasi cespite con l'ID specificato viene restituito dal libro contabile, questo metodo inserisce il cespite nel tipo di cespite chiamante.
Metodi per la gestione degli account
-
GenerateAccountId
- Questo metodo restituisce un ID account, che è un set alfanumerico di caratteri, preceduto da
oaccount~<token asset name>~
e seguito da un hash del nome utente o dell'ID e-mail (user_id
) del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza, l'ID del provider di servizi di appartenenza (org_id
) dell'utente nell'organizzazione di rete corrente e l'ID token univoco (token_id
). -
CreateAccount
- Questo metodo crea un account per un utente e un token specificati. Ogni utente che ha token in qualsiasi momento deve avere un account. Gli account tengono traccia del saldo, del saldo in sospeso e della cronologia delle transazioni di un utente. Un ID account è un set alfanumerico di caratteri, preceduto da
oaccount~<token asset name>~
e seguito da un hash del nome utente o dell'ID e-mail (user_id
) del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza, l'ID del provider di servizi di appartenenza (org_id
) dell'utente nell'organizzazione di rete corrente. Questo metodo può essere chiamato solo dalToken Admin
del codice concatenato. -
AssociateToken
- Questo metodo associa un token fungibile a un account. Questo metodo può essere chiamato solo da un
Token Admin
del codice concatenato. -
GetAccountWithStatus
- Questo metodo restituisce i dettagli del conto per un conto specificato, incluso lo stato del conto.
-
GetAccount
- Questo metodo restituisce i dettagli del conto per un conto specificato.
-
GetAccountHistory
- Questo metodo restituisce un array dei dettagli della cronologia account per un account specificato.
-
GetAccountOnHoldBalance
- Questo metodo restituisce il saldo in sospeso per un conto specificato.
-
GetAllAccounts
- Questo metodo restituisce un elenco di tutti i conti. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
-
GetUserByAccountId
- Questo metodo restituisce i dettagli utente per un account specificato.
-
GetAccountBalance
- Questo metodo restituisce il saldo del conto per un conto specificato.
-
GetAllOrgAccounts
- Questo metodo restituisce un elenco di tutti i conti token appartenenti a un'organizzazione specificata.
Metodi per gestione ruoli
-
AddRoleMember
- Questo metodo aggiunge un ruolo a un utente e a un token specificati.
-
RemoveRoleMember
- Questo metodo rimuove un ruolo da un utente e da un token specificati.
-
GetAccountsByRole
- Questo metodo restituisce un elenco di tutti gli account per un ruolo e un token specificati.
-
GetUsersByRole
- Questo metodo restituisce un elenco di tutti gli utenti per un ruolo e un token specificati.
-
IsInRole
- Questo metodo indica se un utente e un token hanno un ruolo specificato.
-
GetOrgAccountsByRole
- Questo metodo restituisce informazioni su tutti i conti con un ruolo specificato in un'organizzazione specificata.
-
GetOrgUsersByRole
- Questo metodo restituisce informazioni su tutti gli utenti con un ruolo specificato in un'organizzazione specificata.
-
RoleCheck
- Questo metodo controlla se l'ID conto fornito è membro di un ruolo qualsiasi.
Metodi per gestione cronologia transazioni
-
GetAccountTransactionHistory
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni per un conto specificato.
-
GetAccountTransactionHistoryWithFilters
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni per una transazione specificata. Questo metodo può essere chiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
-
GetSubTransactionsById
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni per una transazione specificata.
-
GetSubTransactionsByIdWithFilters
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni per una transazione specificata.
-
GetTransactionById
- Questo metodo restituisce la cronologia di un asset
Transaction
. -
DeleteHistoricalTransactions
- Questo metodo elimina le transazioni meno recenti dal database di stato.
Metodi per la gestione del comportamento dei token - Comportamento minimo
-
Mint
- Questo metodo estrae i token, che sono quindi di proprietà del chiamante del metodo. Il chiamante deve avere un account e il ruolo minore. Il numero di token che è possibile coniare è limitato dalla proprietà
max_mint_quantity
del comportamentomintable
nel file di specifica. Se la proprietàmax_mint_quantity
non viene specificata, è possibile coniare un numero illimitato di token. La quantità deve essere compresa nei valori decimali specificati dal parametrodecimal
del comportamentodivisible
nel file di specifica. Questo metodo può essere chiamato solo dalAccountOwner
dell'account con il ruolo minore. -
GetTotalMintedTokens
- Questo metodo restituisce il numero totale di token generati.
-
GetNetTokens
- Questo metodo restituisce la quantità netta di token disponibili nel sistema per un token specificato. I token netti sono la quantità di token rimanenti dopo che i token sono stati bruciati. In forma di equazione: token netti = token coniati totali - token bruciati totali. Se non vengono bruciati token, il numero di token netti è uguale al totale dei token coniati.
-
GetMaxMintQuantity
- Questo metodo restituisce la quantità massima estraibile per un token. Se il comportamento di
max_mint_quantity
non viene specificato, il valore predefinito è 0, che consente di coniare un numero qualsiasi di token.
Metodi per la gestione del comportamento dei token - comportamento trasferibile
-
Transfer
- Questo metodo trasferisce i token dal chiamante a un account specificato. Il chiamante del metodo deve avere un account. La quantità deve essere compresa nei valori decimali specificati dal parametro
decimal
del comportamentodivisible
nel file di specifica. Questo metodo può essere chiamato solo dalAccountOwner
dell'account. -
BulkTransfer
- Questo metodo trasferisce i token in blocco dal conto chiamante ai conti specificati nell'oggetto
flow
. Per il chiamante di questo metodo deve essere già stato creato un account.
Metodi per la gestione del comportamento dei token - comportamento bloccabile
-
Hold
- Questo metodo crea un blocco per conto del proprietario dei token con l'account
to_account_id
. Viene specificato un conto notarile, che è responsabile del completamento o del rilascio del blocco. Quando viene creato il blocco, il saldo del token specificato dal responsabile pagamento viene bloccato. Impossibile trasferire un saldo bloccato finché il blocco non viene completato o rilasciato. Per il chiamante di questo metodo deve essere già stato creato un account. -
ExecuteHold
- Questo metodo completa un blocco sui token, trasferendo la quantità specificata di token precedentemente in sospeso al ricevente. Se il valore
quantity
è inferiore al valore di blocco effettivo, l'importo rimanente sarà nuovamente disponibile per il proprietario originale dei token. Questo metodo può essere richiamato solo dall'IDAccountOwner
con il ruolonotary
. -
ReleaseHold
- Questo metodo rilascia un blocco sui token. Il trasferimento non è stato completato e tutti i token bloccati sono di nuovo disponibili per il proprietario originale. Questo metodo può essere richiamato dall'ID
Account Owner
con il ruolonotary
entro il limite di tempo specificato o dal responsabile pagamento, dal beneficiario o dal notaio dopo il limite di tempo specificato. -
GetOnHoldIds
- Questo metodo restituisce un elenco di tutti gli ID di blocco per un utente e un token specificati.
-
GetOnHoldDetailsWithOperationID
- Questo metodo restituisce i dettagli della transazione in sospeso per un ID operazione e un token specificati.
-
GetOnHoldBalanceWithOperationID
- Questo metodo restituisce il saldo in sospeso per un ID operazione e un token specificati.
Metodi per la gestione del comportamento dei token - comportamento masterizzabile
-
Burn
- Questo metodo disattiva o brucia i token dall'account del chiamante della transazione. Il chiamante di questo metodo deve avere un account e il ruolo di bruciatore. La quantità deve essere compresa nei valori decimali specificati dal parametro
decimal
del comportamentodivisible
nel file di specifica.