Progetto TypeScript impalcato 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 e sui metodi impalcati non direttamente correlati ai token, vedere Progetto Chaincode TypeScript impalcato.
Modello
Ogni classe di modello tokenizzato estende la classe Token
, che a sua volta estende la classe OchainModel
. La classe Token
viene importata da ../lib/token
. La funzionalità di persistenza trasparente, o ORM semplificato, viene acquisita nella classe OchainModel
.
import * as yup from 'yup';
import { Id, Mandatory, Validate, ReadOnly } from '../lib/decorators';
import { Token } from '../lib/token';
@Id('token_id')
export class Digicur extends Token<Digicur> {
public readonly assetType = 'otoken';
@Mandatory()
@Validate(yup.string().required().matches(/^[A-Za-z0-9][A-Za-z0-9_-]*$/).max(16))
public token_id: string;
@ReadOnly('digicur')
public token_name: string;
@Validate(yup.string().trim().max(256))
public token_desc: string;
@ReadOnly('fungible')
public token_type: string;
@ReadOnly(["divisible","mintable","transferable","burnable","holdable","roles"])
public behaviors: string[];
@ReadOnly({minter_role_name: "minter", burner_role_name: "burner", notary_role_name: "notary"})
public roles: object;
@ReadOnly({max_mint_quantity: 20000})
public mintable: object;
@ReadOnly({decimal: 1})
public divisible: object;
@Validate(yup.number())
public token_to_currency_ratio: number;
@Validate(yup.string())
public currency_representation: string;
}
Controller
La classe del controller principale estende la classe OchainController
. C'è solo un controller principale.
export class DigiCurrCCController extends OchainController{
È 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.
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 del controller devono avere un decoratore @Validator(...params)
da richiamare.
- 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 dalToken Admin
o da qualsiasiOrg 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
dell'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 unOrg Admin
di qualsiasi organizzazione.
-
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
,Token Auditor
, qualsiasiOrg Admin
o qualsiasiOrg Auditor
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
oToken Auditor
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
dell'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
, qualsiasiOrg Admin
o qualsiasiOrg 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 il codice concatenato viene distribuito o aggiornato. 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
o da unOrg 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
o da unOrg 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. -
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 il codice concatenato viene distribuito o aggiornato. 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
. 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 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 ilAccountOwner
dell'account. -
getAllAccounts
- Questo metodo restituisce un elenco di tutti i conti. Questo metodo può essere chiamato solo da un
Token Admin
oToken Auditor
. 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 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 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
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 detiene 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 detiene anche il 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 dal
Token Admin
del codice concatenato, dalOrg 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. -
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 un
Token Admin
del codice concatenato, ilAccountOwner
dell'account o unOrg Admin
dell'organizzazione specificata. -
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 detiene 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 detiene anche il 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
Token Admin
oToken Auditor
, daOrg Admin
oOrg Auditor
dell'organizzazione specificata, o daAccount 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 un
Token Admin
oToken Auditor
, ilAccountOwner
dell'account, o unOrg Admin
oOrg Auditor
dell'organizzazione specificata. -
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
, 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 conto per un utente e un token specificati. Questo metodo può essere chiamato solo dal
Token Admin
del codice concatenato o dalAccountOwner
dell'account. -
getSubTransactionsByIdWithFilters
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni secondarie conto 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
- È possibile sincronizzare i dati nel database della cronologia avanzata e quindi recuperare i dati utilizzando le chiamate API del codice concatenato. Questo metodo recupera la cronologia delle transazioni dal database della cronologia avanzata. Prima di poter utilizzare questo metodo, è necessario eseguire Oracle Autonomous Database con Oracle REST Data Services (ORDS) e OAuth abilitati, come descritto in Oracle Database View Definitions for Wholesale CBDC in Oracle Blockchain Platform Digital Assets Edition.
-
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
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
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
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o ilAccountOwner
dell'account. -
getSubTransactionsById
- 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
Token Admin
,Token Auditor
oAccountOwner
che ha chiamato la transazione. -
getSubTransactionsByIdWithFilters
- Questo metodo restituisce un array di dettagli della cronologia delle transazioni secondarie conto 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
, da unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o da un partecipante alla transazione (mittente, destinatario o 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
o da qualsiasiOrg 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
o da qualsiasiOrg 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
per l'ID operazione specificato. 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
AccountOwner
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 un
Token Admin
del codice concatenato, unOrg Admin
dell'organizzazione specificata, o ilAccountOwner
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
per l'ID operazione specificato. 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
AccountOwner
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 un
Token Admin
oToken Auditor
del codice concatenato, unOrg Admin
oOrg Auditor
dell'organizzazione specificata, o ilAccountOwner
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 un
Token Admin
oToken Auditor
del codice concatenato o da un 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 da un
Token Admin
oToken Auditor
del codice concatenato o da un 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 dalAccountOwner
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.
Per evitare la doppia spesa, non combinare più funzioni asincrone che operano sulle stesse coppie chiave-valore nel database di stato. In alternativa, utilizzare il metodo bulkTransferTokens
per eseguire 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.
@Validator(yup.string(), yup.string(), yup.string(), yup.string(), yup.string())
public async buyTicket(token_id: string, seller_org_id: string, seller_user_id: string) {
const token = await this.getTokenObject(token_id);
/**
* The following method this.Ctx.Account.generateAccountId(token_id, seller_org_id, seller_user_id) generates account id of the seller.
*/
const seller_account_id = await this.Ctx.Account.generateAccountId(token_id, seller_org_id, seller_user_id);
/**
* The following method this.Ctx.Token.transfer(seller_account_id, 20, token) transfers the quantity 20 from caller's
* account & to seller's account.
*/
const transaction = await this.Ctx.Token.transfer(seller_account_id, 20, token);
return transaction;
}
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. L'esempio seguente mostra il modo errato di effettuare più trasferimenti:
@Validator(yup.string(), yup.string(), yup.string(), yup.string(), yup.string())
public async sendTokens(token_id: string, user1_org_id: string, user1_user_id: string, user2_org_id: string, user2_user_id: string) {
const token = await this.getTokenObject(token_id);
const user1_account_id = await Account.generateAccountId(token_id, user1_org_id, user1_user_id);
const user2_account_id = await Account.generateAccountId(token_id, user2_org_id, user2_user_id);
await token.transfer(user1_account_id, 20);
await token.transfer(user2_account_id, 30);
}
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: object[])
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 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. -
checkAuthorization
- Utilizzare questo metodo per aggiungere un controllo di accesso a un'operazione. Alcuni metodi di token possono essere eseguiti solo da un
Token Admin
oAccountOwner
del token o daMultipleAccountOwner
per gli utenti con più account. Il mapping del controllo dell'accesso è descritto nel file../lib/constant.ts
. È possibile modificare il controllo dell'accesso modificando il file../lib/constant.ts
. 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.export const TOKENACCESS = { ADMIN: { isUserTokenAdmin: ["Admin", "OrgAdmin"], addTokenAdmin: ["Admin"], removeTokenAdmin: ["Admin"], getAllAdmins: ["Admin", "OrgAdmin"], addOrgAdmin: ["Admin", "OrgAdminForOrgId"], removeOrgAdmin: ["Admin", "OrgAdminForOrgId"], getOrgAdmins: ["Admin", "OrgAdmin"], }, TOKEN: { save: ["Admin"], getAllTokens: ["Admin", "OrgAdmin"], get: ["Admin", "OrgAdmin"], update: ["Admin"], getDecimals: ["Admin", "OrgAdmin"], getTokensByName: ["Admin", "OrgAdmin"], addRoleMember: ["Admin", "OrgAdminRoleCheck"], removeRoleMember: ["Admin", "OrgAdminRoleCheck"], isInRole: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getTotalMintedTokens: ["Admin", "OrgAdmin"], getNetTokens: ["Admin", "OrgAdmin"], getTokenHistory: ["Admin", "OrgAdmin"], }, ROLE: { getAccountsByRole: ["Admin"], getOrgAccountsByRole: ["Admin", "OrgAdminForOrgId"], getUsersByRole: ["Admin"], getOrgUsersByRole: ["Admin", "OrgAdminForOrgId"], }, TRANSACTION: { deleteTransactions: ["Admin"], },ACCOUNT: { createAccount: ["Admin", "OrgAdminForOrgId"], associateToken: ["Admin", "OrgAdminForAccountId"], getAllAccounts: ["Admin"], getAllOrgAccounts: ["Admin", "OrgAdminForOrgId"], getAccountsByUser: ["Admin", "OrgAdminForOrgId", "MultipleAccountOwner"], getAccount: ["Admin", "OrgAdminForAccountId", "AccountOwner"], history: ["Admin", "AccountOwner"], getAccountTransactionHistory: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getAccountTransactionHistoryWithFilters: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getSubTransactionsById: ["Admin", "TransactionInvoker"], getSubTransactionsByIdWithFilters: ["Admin", "TransactionInvoker"], getAccountBalance: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getAccountOnHoldBalance: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getOnHoldIds: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getConversionHistory: ["Admin", "OrgAdminForAccountId", "AccountOwner"], }, ACCOUNT_STATUS: { get: ["Admin", "OrgAdminForAccountId", "AccountOwner"], history: ["Admin", "OrgAdminForAccountId", "AccountOwner"], activateAccount: ["Admin", "OrgAdminForOrgId"], suspendAccount: ["Admin", "OrgAdminForOrgId"], deleteAccount: ["Admin", "OrgAdminForOrgId"], }, TOKEN_CONVERSION: { initializeExchangePoolUser: ["Admin"], addConversionRate: ["Admin"], updateConversionRate: ["Admin"], getConversionRate: ["Admin", "OrgAdmin", "AnyAccountOwner"], getConversionRateHistory: ["Admin", "OrgAdmin", "AnyAccountOwner"], tokenConversion: ["Admin", "AnyAccountOwner"], getExchangePoolUser: ["Admin"], }, }
-
addOrgAdmin
- Questo metodo aggiunge un utente come
Org Admin
dell'organizzazione. -
removeOrgAdmin
- Questo metodo rimuove un utente come
Org Admin
dell'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. -
checkAuthorization
- Utilizzare questo metodo per aggiungere un controllo di accesso a un'operazione. Alcuni metodi di token possono essere eseguiti solo da un
Token Admin
oAccountOwner
del token o daMultipleAccountOwner
per gli utenti con più account. Il mapping del controllo dell'accesso è descritto nel file../lib/constant.ts
. È possibile modificare il controllo dell'accesso modificando il file../lib/constant.ts
. 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.export const TOKENACCESS = { ADMIN: { isUserTokenAdmin: ["Admin", "OrgAdmin"], addTokenAdmin: ["Admin"], removeTokenAdmin: ["Admin"], getAllAdmins: ["Admin", "OrgAdmin"], addOrgAdmin: ["Admin", "OrgAdminForOrgId"], removeOrgAdmin: ["Admin", "OrgAdminForOrgId"], getOrgAdmins: ["Admin", "OrgAdmin"], }, TOKEN: { save: ["Admin"], getAllTokens: ["Admin", "OrgAdmin"], get: ["Admin", "OrgAdmin"], update: ["Admin"], getDecimals: ["Admin", "OrgAdmin"], getTokensByName: ["Admin", "OrgAdmin"], addRoleMember: ["Admin", "OrgAdminRoleCheck"], removeRoleMember: ["Admin", "OrgAdminRoleCheck"], isInRole: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getTotalMintedTokens: ["Admin", "OrgAdmin"], getNetTokens: ["Admin", "OrgAdmin"], getTokenHistory: ["Admin", "OrgAdmin"], }, ROLE: { getAccountsByRole: ["Admin"], getOrgAccountsByRole: ["Admin", "OrgAdminForOrgId"], getUsersByRole: ["Admin"], getOrgUsersByRole: ["Admin", "OrgAdminForOrgId"], }, TRANSACTION: { deleteTransactions: ["Admin"], },ACCOUNT: { createAccount: ["Admin", "OrgAdminForOrgId"], associateToken: ["Admin", "OrgAdminForAccountId"], getAllAccounts: ["Admin"], getAllOrgAccounts: ["Admin", "OrgAdminForOrgId"], getAccountsByUser: ["Admin", "OrgAdminForOrgId", "MultipleAccountOwner"], getAccount: ["Admin", "OrgAdminForAccountId", "AccountOwner"], history: ["Admin", "AccountOwner"], getAccountTransactionHistory: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getAccountTransactionHistoryWithFilters: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getSubTransactionsById: ["Admin", "TransactionInvoker"], getSubTransactionsByIdWithFilters: ["Admin", "TransactionInvoker"], getAccountBalance: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getAccountOnHoldBalance: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getOnHoldIds: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getConversionHistory: ["Admin", "OrgAdminForAccountId", "AccountOwner"], }, ACCOUNT_STATUS: { get: ["Admin", "OrgAdminForAccountId", "AccountOwner"], history: ["Admin", "OrgAdminForAccountId", "AccountOwner"], activateAccount: ["Admin", "OrgAdminForOrgId"], suspendAccount: ["Admin", "OrgAdminForOrgId"], deleteAccount: ["Admin", "OrgAdminForOrgId"], }, TOKEN_CONVERSION: { initializeExchangePoolUser: ["Admin"], addConversionRate: ["Admin"], updateConversionRate: ["Admin"], getConversionRate: ["Admin", "OrgAdmin", "AnyAccountOwner"], getConversionRateHistory: ["Admin", "OrgAdmin", "AnyAccountOwner"], tokenConversion: ["Admin", "AnyAccountOwner"], getExchangePoolUser: ["Admin"], }, }
-
addOrgAdmin
- Questo metodo aggiunge un utente come
Org Admin
dell'organizzazione. -
removeOrgAdmin
- Questo metodo rimuove un utente come
Org Admin
dell'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.
-
history
- Questo metodo restituisce la cronologia per il 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 indica se esiste un asset token con l'ID 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
-
getCallerAccountId
- Questo metodo restituisce l'ID account del chiamante.
-
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 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. -
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.
-
history
- 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.
-
getAccountsByUser
- Questo metodo restituisce un elenco di tutti gli ID account per un utente specificato.
-
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 un conto specificato. Questo metodo può essere chiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
-
getSubTransactionHistory
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni per una transazione specificata.
-
getSubTransactionHistoryWithFilters
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni secondarie per una transazione specificata.
-
getTransactionById
- Questo metodo restituisce la cronologia di un asset
Transaction
. -
deleteHistoricalTransactions
- Questo metodo restituisce un array dei dettagli della cronologia delle transazioni per un conto specificato.
Gestione comportamento token
Token
dal modulo ../lib/token
.
import { Token } from '../lib/token';
Metodi per la gestione del comportamento dei token - Comportamento minimo
-
mint
- Questo metodo estrae una quantità di token, che sono quindi di proprietà del chiamante del metodo. Il chiamante deve avere un account e il ruolo minore. La quantità deve essere compresa nei valori decimali specificati dal parametro
decimal
del comportamentodivisible
nel file di specifica. -
getTotalMintedTokens
- Questo metodo restituisce il numero totale di token generati.
-
getNetTokens
- Questo metodo restituisce la quantità netta di token disponibili nel sistema. 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 transazione al conto
to_account_id
. Il chiamante di questo metodo deve avere un conto e la quantità deve essere compresa nei valori decimali specificati dal parametrodecimal
del comportamentodivisible
nel file di specifica. -
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
per l'ID operazione specificato. La presa può essere completata solo dal notaio. -
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
AccountOwner
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.
-
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. Questo metodo può essere chiamato da chiunque.
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.