Projet Go échafaudé pour le cadre de taxonomie de jeton
Blockchain App Builder prend l'entrée du fichier de spécification de jeton et génère un projet de code de chaîne entièrement fonctionnel.
Le projet génère automatiquement des classes et des fonctions de cycle de vie de jeton, y compris des méthodes CRUD et non CRUD. La validation des arguments, la conversion/déconversion des paramètres et la capacité de persistance transparente sont toutes prises en charge automatiquement.
Pour plus d'informations sur le projet échafaudé et sur les méthodes qui ne sont pas directement liées aux jetons, voir Projet de code de chaîne de démarrage échafaudé.
Modèle
Transparent Persistence Capability, ou ORM simplifié, est capturé dans la 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
Il n'y a qu'un seul contrôleur principal.
type Controller struct {
Ctx trxcontext.TrxContext
}
Vous pouvez créer un nombre illimité de classes, de fonctions ou de fichiers, mais seules les méthodes définies dans la classe de contrôleur principale peuvent être appelées. Les autres méthodes sont masquées.
Vous pouvez utiliser les méthodes de la trousse SDK de jeton pour écrire des méthodes personnalisées pour votre application d'affaires.
Si vous utilisez plusieurs méthodes de trousse SDK de jeton dans une méthode personnalisée, n'utilisez pas de méthodes qui affecteront les mêmes paires clé-valeur dans la base de données d'état.
Utilisez plutôt la méthode BulkTransferTokens
pour effectuer un transfert vers plusieurs comptes à partir du compte de l'appelant, comme illustré dans l'extrait de code suivant.
BulkTransferTokens(token_id string, flow: []map[string]interface{})
Note :
Si vous utilisez plus d'une méthode de trousse SDK de jeton dans une méthode personnalisée qui peut affecter les mêmes paires clé-valeur dans la base de données d'état, activez l'optimisation MVCC pour les codes de chaîne de jeton. Pour plus d'informations, voir Optimisation MVCC.Méthodes de jeton générées automatiquement
Blockchain App Builder génère automatiquement des méthodes pour prendre en charge les jetons et les cycles de vie des jetons. Vous pouvez utiliser ces méthodes pour initialiser les jetons, gérer les rôles et les comptes et effectuer d'autres tâches de cycle de vie des jetons sans codage supplémentaire. Les méthodes du contrôleur doivent être publiques pour pouvoir être invoquées. Les noms de méthode publique commencent par un caractère majuscule. Les noms de méthode commençant par un caractère minuscule sont privés.
- Gestion du contrôle d'accès
- Gestion de la configuration des jetons
- Gestion des comptes
- Gestion des rôles
- Gestion de l'historique des transactions
- Gestion du comportement des jetons
Méthodes de gestion du contrôle d'accès
-
AddTokenAdmin
- Cette méthode ajoute un utilisateur en tant qu'
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
RemoveTokenAdmin
- Cette méthode supprime un utilisateur en tant qu'
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
IsTokenAdmin
- Cette méthode retourne la valeur booléenne
true
si l'appelant de la fonction estToken Admin
, sinon elle retournefalse
. UnToken Admin
ou unOrg Admin
peut appeler cette fonction sur n'importe quel autre utilisateur du réseau de chaîne de blocs. Les autres utilisateurs ne peuvent appeler cette méthode que sur leurs propres comptes. -
GetAllTokenAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que parToken Admin
ouOrg Admin
du code de chaîne. -
AddOrgAdmin
- Cette méthode ajoute un utilisateur en tant que
Org Admin
de l'organisation. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée. -
RemoveOrgAdmin
- Cette méthode supprime un utilisateur en tant que
Org Admin
d'une organisation. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée. -
GetOrgAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Org Admin
d'une organisation. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou par unOrg Admin
.
-
AddTokenAdmin
- Cette méthode ajoute un utilisateur en tant qu'
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
RemoveTokenAdmin
- Cette méthode supprime un utilisateur en tant qu'
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
IsTokenAdmin
- Cette méthode retourne la valeur booléenne
true
si l'appelant de la fonction estToken Admin
, sinon elle retournefalse
. Cette fonction ne peut être appelée que parToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetAllTokenAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que parToken Admin
ouToken Auditor
. -
AddOrgAdmin
- Cette méthode ajoute un utilisateur en tant que
Org Admin
de l'organisation. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée. -
RemoveOrgAdmin
- Cette méthode supprime un utilisateur en tant que
Org Admin
d'une organisation. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée. -
GetOrgAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Org Admin
d'une organisation. Cette méthode ne peut être appelée que parToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
AddTokenAuditor
- Cette méthode ajoute un utilisateur en tant qu'
Token Auditor
du code de chaîne. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
RemoveTokenAuditor
- Cette méthode supprime un utilisateur en tant qu'
Token Auditor
du code de chaîne. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
GetTokenAuditors
- Cette méthode retourne toutes les
Token Auditors
du code de chaîne. Cette méthode ne peut être appelée que parToken Admin
ouToken Auditor
du code de chaîne. -
AddOrgAuditor
- Cette méthode ajoute un utilisateur en tant qu'
Org Auditor
du code de chaîne. Cette méthode ne peut être appelée que parToken Admin
ouOrg Admin
du code de chaîne. -
RemoveOrgAuditor
- Cette méthode supprime un utilisateur en tant qu'
Org Auditor
du code de chaîne. Cette méthode ne peut être appelée que parToken Admin
ouOrg Admin
du code de chaîne. -
GetOrgAuditors
- Cette méthode retourne toutes les
Org Auditors
du code de chaîne. Cette méthode ne peut être appelée que parToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
.
Méthodes de gestion de la configuration de jeton
-
Init
- Cette méthode est appelée lorsque le code de chaîne est déployé. Chaque
Token Admin
est identifié par les informationsuser_id
etorg_id
dans le paramètreadminList
obligatoire.user_id
est le nom d'utilisateur ou l'ID courriel du responsable de l'instance ou de l'utilisateur connecté à l'instance.org_id
est l'ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation de réseau courante. -
Initialize<Token Name>Token
- Cette méthode crée un jeton et initialise les propriétés du jeton. La ressource et ses propriétés sont enregistrées dans la base de données d'état. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne. -
Update<Token Name>Token
- Cette méthode met à jour les propriétés du jeton. Une fois qu'une ressource de jeton est créée, seule la propriété
token_desc
et les propriétés personnalisées peuvent être mises à jour. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
GetTokenDecimals
- Cette méthode retourne le nombre de décimales configurées pour un jeton fractionnaire. Si le comportement
divisible
n'a pas été spécifié pour le jeton, la valeur par défaut est 0. Cette méthode ne peut être appelée que parToken Admin
ouOrg Admin
du code de chaîne. -
GetTokenById
- Cette méthode retourne un objet de jeton s'il est présent dans la base de données d'état. Cette méthode ne peut être appelée que par
Token Admin
ouOrg Admin
du code de chaîne. -
GetTokenHistory
- Cette méthode retourne l'historique du jeton pour un ID jeton spécifié. Tout utilisateur peut appeler cette méthode.
-
GetAllTokens
- Cette méthode renvoie tous les jetons stockés dans la base de données d'état. Cette méthode ne peut être appelée que par
Token Admin
ouOrg Admin
du code de chaîne. -
GetTokensByName
- Cette méthode retourne tous les objets de jeton portant le nom indiqué. Cette méthode ne peut être appelée que par
Token Admin
ouOrg Admin
du code de chaîne. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
-
Init
- Cette méthode est appelée lorsque le code de chaîne est déployé. Chaque
Token Admin
est identifié par les informationsuser_id
etorg_id
dans le paramètreadminList
obligatoire.user_id
est le nom d'utilisateur ou l'ID courriel du responsable de l'instance ou de l'utilisateur connecté à l'instance.org_id
est l'ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation de réseau courante. -
Initialize<Token Name>Token
- Cette méthode crée un jeton et initialise les propriétés du jeton. La ressource et ses propriétés sont enregistrées dans la base de données d'état. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne. -
Update<Token Name>Token
- Cette méthode met à jour les propriétés du jeton. Une fois qu'une ressource de jeton est créée, seule la propriété
token_desc
et les propriétés personnalisées peuvent être mises à jour. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne. -
GetTokenDecimals
- Cette méthode retourne le nombre de décimales configurées pour un jeton fractionnaire. Si le comportement
divisible
n'a pas été spécifié pour le jeton, la valeur par défaut est 0. Cette méthode ne peut être appelée que parToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetTokenById
- Cette méthode retourne un objet de jeton s'il est présent dans la base de données d'état. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetTokenHistory
- Cette méthode retourne l'historique du jeton pour un ID jeton spécifié. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetAllTokens
- Cette méthode renvoie tous les jetons stockés dans la base de données d'état. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetTokensByName
- Cette méthode retourne tous les objets de jeton portant le nom indiqué. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
Méthodes de gestion des comptes
-
CreateAccount
- Cette méthode crée un compte pour un utilisateur et un jeton spécifiés. Un compte doit être créé pour tout utilisateur qui aura des jetons à tout moment. Les comptes assurent le suivi des soldes, des soldes bloqués et de l'historique des transactions. Un ID compte est un jeu alphanumérique de caractères, précédé de
oaccount~<token asset name>~
et suivi d'un hachage du nom d'utilisateur ou de l'ID courriel (user_id
) du responsable de l'instance ou de l'utilisateur connecté à l'instance, de l'ID fournisseur de services d'adhésion (org_id
) de l'utilisateur dans l'organisation de réseau courante. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou unOrg Admin
de l'organisation spécifiée. -
AssociateTokenToAccount
- Cette méthode associe un jeton fongible à un compte. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par unOrg Admin
de l'organisation concernée. -
GetAccount
- Cette méthode retourne les détails du compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou leAccountOwner
du compte. -
GetAccountHistory
- Cette méthode retourne les détails de l'historique de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou leAccountOwner
du compte. -
GetAccountOnHoldBalance
- Cette méthode retourne le solde bloqué courant pour un compte et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou leAccountOwner
du compte. -
GetAllAccounts
- Cette méthode retourne une liste de tous les comptes. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform. -
GetUserByAccountId
- Cette méthode retourne les détails de l'utilisateur (
org_id
etuser_id
) pour un compte spécifié. Cette méthode peut être appelée par n'importe quel utilisateur du code de chaîne. -
GetAccountBalance
- Cette méthode retourne le solde courant pour un compte et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou leAccountOwner
du compte. -
GetAllOrgAccounts
- Cette méthode retourne une liste de tous les comptes de jeton appartenant à une organisation spécifiée. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée.
-
CreateAccount
- Cette méthode crée un compte pour un utilisateur et un jeton spécifiés. Un compte doit être créé pour tout utilisateur qui aura des jetons à tout moment. Les comptes assurent le suivi des soldes, des soldes bloqués et de l'historique des transactions. Un ID compte est un jeu alphanumérique de caractères, précédé de
oaccount~<token asset name>~
et suivi d'un hachage du nom d'utilisateur ou de l'ID courriel (user_id
) du responsable de l'instance ou de l'utilisateur connecté à l'instance, de l'ID fournisseur de services d'adhésion (org_id
) de l'utilisateur dans l'organisation de réseau courante. Cette méthode ne peut être appelée que par unToken Admin
du code de chaîne ou unOrg Admin
de l'organisation spécifiée. -
AssociateTokenToAccount
- Cette méthode associe un jeton fongible à un compte. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par unOrg Admin
de l'organisation concernée. -
GetAccount
- Cette méthode retourne les détails du compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
,Org Admin
ouOrg Auditor
de l'organisation spécifiée ouAccountOwner
du compte. -
GetAccountHistory
- Cette méthode retourne les détails de l'historique de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou leAccountOwner
du compte. -
GetAccountOnHoldBalance
- Cette méthode retourne le solde bloqué courant pour un compte et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, unOrg Admin
ouOrg Auditor
de l'organisation spécifiée ou le responsable de compte spécifié. -
GetAllAccounts
- Cette méthode retourne une liste de tous les comptes. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
du code de chaîne. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform. -
GetUserByAccountId
- Cette méthode retourne les détails de l'utilisateur (
org_id
etuser_id
) pour un compte spécifié. Cette méthode ne peut être appelée que parToken Admin
ouToken Auditor
, ou parOrg Admin
ouOrg Auditor
de l'organisation spécifiée. -
GetAccountBalance
- Cette méthode retourne le solde courant pour un compte et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, unOrg Admin
ouOrg Auditor
de l'organisation spécifiée ou le responsable de compte spécifié. -
GetAllOrgAccounts
- Cette méthode retourne une liste de tous les comptes de jeton appartenant à une organisation spécifiée. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, ou parOrg Admin
ouOrg Auditor
de l'organisation spécifiée.
Méthodes de gestion des rôles
-
AddRole
- Cette méthode ajoute un rôle à un utilisateur et à un jeton spécifiés. Cette méthode ne peut être appelée que par une valeur
Token Admin
du code de chaîne ou par une valeurOrg Admin
de l'organisation spécifiée qui a également le rôle spécifié. -
RemoveRole
- Cette méthode supprime un rôle d'un utilisateur et d'un jeton spécifiés. Cette méthode ne peut être appelée que par une valeur
Token Admin
du code de chaîne ou une valeurOrg Admin
de l'organisation spécifiée qui a également le rôle spécifié. -
GetAccountsByRole
- Cette méthode retourne une liste de tous les ID compte pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne. -
GetAccountsByUser
- Cette méthode retourne une liste de tous les ID compte pour un ID organisation et un ID utilisateur spécifiés. Cette méthode ne peut être appelée que par
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou parAccount Owner
spécifié dans les paramètres. -
GetUsersByRole
- Cette méthode retourne une liste de tous les utilisateurs pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par leAccount Owner
spécifié dans les paramètres. -
IsInRole
- Cette méthode retourne une valeur booléenne pour indiquer si un utilisateur et un jeton ont un rôle spécifié. Cette méthode ne peut être appelée que par
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou leAccountOwner
du compte. -
GetOrgAccountsByRole
- Cette méthode retourne des informations sur tous les comptes ayant un rôle spécifié dans une organisation spécifiée. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée. -
GetOrgUsersByRole
- Cette méthode retourne des informations sur tous les utilisateurs ayant un rôle spécifié dans une organisation spécifiée. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par unOrg Admin
de l'organisation spécifiée.
-
AddRole
- Cette méthode ajoute un rôle à un utilisateur et à un jeton spécifiés. Cette méthode ne peut être appelée que par une valeur
Token Admin
du code de chaîne ou par une valeurOrg Admin
de l'organisation spécifiée qui a également le rôle spécifié. -
RemoveRole
- Cette méthode supprime un rôle d'un utilisateur et d'un jeton spécifiés. Cette méthode ne peut être appelée que par une valeur
Token Admin
du code de chaîne ou une valeurOrg Admin
de l'organisation spécifiée qui a également le rôle spécifié. -
GetAccountsByRole
- Cette méthode retourne une liste de tous les ID compte pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
. -
GetAccountsByUser
- Cette méthode retourne une liste de tous les ID compte pour un ID organisation et un ID utilisateur spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
,Org Admin
ouOrg Auditor
de l'organisation spécifiée, ou parAccount Owner
spécifié dans les paramètres. -
GetUsersByRole
- Cette méthode retourne une liste de tous les utilisateurs pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
. -
IsInRole
- Cette méthode retourne une valeur booléenne pour indiquer si un utilisateur et un jeton ont un rôle spécifié. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, unOrg Admin
ouOrg Auditor
de l'organisation spécifiée ou le responsable de compte spécifié. -
GetOrgAccountsByRole
- Cette méthode retourne des informations sur tous les comptes ayant un rôle spécifié dans une organisation spécifiée. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetOrgUsersByRole
- Cette méthode retourne des informations sur tous les utilisateurs ayant un rôle spécifié dans une organisation spécifiée. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, ou parOrg Admin
ouOrg Auditor
de l'organisation spécifiée.
Méthodes de gestion de l'historique des transactions
-
GetAccountTransactionHistory
- Cette méthode retourne un tableau des détails de l'historique des transactions de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou leAccountOwner
du compte. -
GetAccountTransactionHistoryWithFilters
- Cette méthode retourne un tableau des détails de l'historique des transactions de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
du code de chaîne, unOrg Admin
de l'organisation spécifiée ou leAccountOwner
du compte. Cette méthode ne peut être appelée que si elle est connectée au réseau Oracle Blockchain Platform distant. -
GetSubTransactionsById
- Cette méthode retourne un tableau de détails d'historique de sous-transactions pour une transaction spécifiée.
-
GetSubTransactionsByIdWithFilters
- Cette méthode retourne un tableau de détails d'historique de sous-transactions pour une transaction spécifiée.
-
GetTransactionById
- Cette méthode retourne l'historique d'une ressource
Transaction
. -
DeleteHistoricalTransactions
- Cette méthode supprime les anciennes transactions de la base de données d'état.
-
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
- Cette méthode retourne un tableau des détails de l'historique des transactions de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, unOrg Admin
ouOrg Auditor
de l'organisation spécifiée, ou par le responsable de compte spécifié. -
GetAccountTransactionHistoryWithFilters
- Cette méthode retourne un tableau filtré des détails de l'historique des transactions de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ouToken Auditor
, unOrg Admin
ouOrg Auditor
de l'organisation spécifiée, ou par le responsable de compte spécifié. -
GetSubTransactionsById
- Cette méthode retourne un tableau de détails d'historique de sous-transactions pour une transaction spécifiée. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
ouAccountOwner
qui a appelé la transaction. -
GetSubTransactionsByIdWithFilters
- Cette méthode retourne un tableau de détails d'historique de sous-transactions pour une transaction spécifiée.
-
GetTransactionById
- Cette méthode retourne l'historique d'une ressource
Transaction
. Cette méthode ne peut être appelée que parToken Admin
ouToken Auditor
, unOrg Admin
ouOrg Auditor
de l'organisation spécifiée, ou par un participant à la transaction (expéditeur, destinataire, notaire). -
DeleteHistoricalTransactions
- Cette méthode supprime les anciennes transactions de la base de données d'état.
Méthodes de gestion du comportement des jetons - Comportement mentable
-
IssueTokens
- Cette méthode extrait des jetons, qui sont ensuite détenus par l'appelant de la méthode. L'appelant doit avoir un compte et le rôle d'émetteur. Le nombre de jetons pouvant être frappés est limité par la propriété
max_mint_quantity
du comportementmintable
dans le fichier de spécification. Si la propriétémax_mint_quantity
n'est pas spécifiée, un nombre illimité de jetons peut être extrait. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètredecimal
du comportementdivisible
dans le fichier de spécification. Cette méthode ne peut être appelée que par la valeurAccountOwner
du compte doté du rôle Minter. -
GetTotalMintedTokens
- Cette méthode retourne le nombre total de jetons frappés pour un jeton spécifié. Cette méthode ne peut être appelée que par
Token Admin
ouOrg Admin
du code de chaîne. -
GetNetTokens
- Cette méthode retourne le nombre net total de jetons disponibles dans le système pour un jeton spécifié. Le total net des jetons correspond à la quantité de jetons restants après la gravure des jetons. En forme d'équation net tokens = total des jetons frappés - total des jetons brûlés. Si aucun jeton n'est brûlé, le nombre de jetons nets est égal au nombre total de jetons frappés. Cette méthode ne peut être appelée que par
Token Admin
ouOrg Admin
du code de chaîne.
-
RequestMint
- Cette méthode peut être appelée par un minter pour envoyer une demande au notaire minter de créer une quantité spécifiée de jetons.
-
ApproveMint
- Cette méthode peut être appelée par un notaire pour approuver une demande de frappe.
-
RejectMint
- Cette méthode peut être appelée par un notaire pour rejeter une demande de frappe.
-
IssueTokens
- Cette méthode extrait des jetons, qui sont ensuite détenus par l'appelant de la méthode.
-
GetTotalMintedTokens
- Cette méthode retourne le nombre total de jetons frappés pour un jeton spécifié. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetNetTokens
- Cette méthode retourne le nombre net total de jetons disponibles dans le système pour un jeton spécifié. Le total net des jetons correspond à la quantité de jetons restants après la gravure des jetons. En forme d'équation net tokens = total des jetons frappés - total des jetons brûlés. Si aucun jeton n'est brûlé, le nombre de jetons nets est égal au nombre total de jetons frappés. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
.
Méthodes de gestion du comportement des jetons - Comportement transférable
-
TransferTokens
- Cette méthode transfère les jetons de l'appelant vers un compte spécifié. L'appelant de la méthode doit avoir un compte. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètre
decimal
du comportementdivisible
dans le fichier de spécification. Cette méthode ne peut être appelée que parAccountOwner
du compte. -
BulkTransferTokens
- Cette méthode transfère en masse les jetons du compte de l'appelant aux comptes spécifiés dans l'objet
flow
. Les quantités doivent être comprises dans les valeurs décimales spécifiées par le paramètredecimal
du comportementdivisible
dans l'appelant file.The de la spécification de cette méthode doivent avoir un compte déjà créé. Cette méthode ne peut être appelée que parAccountOwner
du compte.
-
TransferTokens
- Cette méthode transfère les jetons de l'appelant vers un compte spécifié.
-
BulkTransferTokens
- Cette méthode transfère en masse les jetons du compte de l'appelant aux comptes spécifiés dans l'objet
flow
. Les quantités doivent être comprises dans les valeurs décimales spécifiées par le paramètredecimal
du comportementdivisible
dans l'appelant file.The de la spécification de cette méthode doivent avoir un compte déjà créé. Cette méthode ne peut être appelée que parAccountOwner
du compte.
Méthodes de gestion du comportement des jetons - Comportement pouvant être bloqué
-
HoldTokens
- Cette méthode crée un blocage au nom du responsable des jetons avec le compte
to_account_id
. Un compte de notaire est spécifié, qui est responsable de terminer ou de débloquer le blocage. Lorsque le blocage est créé, le solde de jeton spécifié par le payeur est bloqué. Un solde bloqué ne peut pas être transféré tant que le blocage n'est pas terminé ou annulé. Un compte doit déjà être créé pour l'appelant de cette méthode. Cette méthode ne peut être appelée que parAccountOwner
du compte. -
ExecuteHoldTokens
- Cette méthode effectue un blocage sur un jeton. Une quantité de jetons précédemment détenus par un propriétaire de jeton est transférée à un destinataire. Si la valeur
quantity
est inférieure à la valeur de blocage réelle, le montant restant est de nouveau disponible pour le responsable initial des jetons. Cette méthode ne peut être appelée que par l'IDAccountOwner
avec le rôlenotary
. Le blocage ne peut être effectué que par le notaire. -
ReleaseHoldTokens
- Cette méthode libère un blocage sur les jetons. Le transfert n'est pas terminé et tous les jetons détenus sont à nouveau disponibles pour le propriétaire initial. Cette méthode peut être appelée par l'ID
Account Owner
avec le rôlenotary
dans la limite de temps spécifiée ou par le payeur, le bénéficiaire ou le notaire après la limite de temps spécifiée. -
GetOnHoldIds
- Cette méthode retourne une liste de tous les ID de blocage pour un compte spécifié. Cette méthode peut être appelée par
Token Admin
du code de chaîne,Org Admin
de l'organisation spécifiée ouAccount Owner
du compte. -
GetOnHoldDetailsWithOperationId
- Cette méthode retourne les détails de transaction bloquée pour un ID opération et un jeton spécifiés. Cette méthode peut être appelée par n'importe qui.
-
GetOnHoldBalanceWithOperationId
- Cette méthode retourne le solde bloqué pour un ID opération et un jeton spécifiés. Cette méthode peut être appelée par n'importe qui.
-
HoldTokens
- Cette méthode crée un blocage au nom du responsable des jetons avec le compte
to_account_id
. -
ExecuteHoldTokens
- Cette méthode effectue un blocage sur un jeton. Une quantité de jetons précédemment détenus par un propriétaire de jeton est transférée à un destinataire. Si la valeur
quantity
est inférieure à la valeur de blocage réelle, le montant restant est de nouveau disponible pour le responsable initial des jetons. Cette méthode ne peut être appelée que par l'IDAccountOwner
avec le rôlenotary
. Le blocage ne peut être effectué que par le notaire. -
ReleaseHoldTokens
- Cette méthode libère un blocage sur les jetons. Le transfert n'est pas terminé et tous les jetons détenus sont à nouveau disponibles pour le propriétaire initial. Cette méthode peut être appelée par l'ID
Account Owner
avec le rôlenotary
dans la limite de temps spécifiée ou par le payeur, le bénéficiaire ou le notaire après la limite de temps spécifiée. -
GetOnHoldIds
- Cette méthode retourne une liste de tous les ID de blocage pour un compte spécifié. Cette méthode peut être appelée par
Token Admin
ouToken Auditor
,Org Admin
ouOrg Auditor
de l'organisation spécifiée ou par le responsable de compte spécifié. -
GetOnHoldDetailsWithOperationId
- Cette méthode retourne les détails de transaction bloquée pour un ID opération et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
ou le participant à la transaction (expéditeur, destinataire, notaire). -
GetOnHoldBalanceWithOperationId
- Cette méthode retourne le solde bloqué pour un ID opération et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
ou le participant à la transaction (expéditeur, destinataire, notaire).
Méthodes pour Token Behavior Management - Burnable Behavior
-
BurnTokens
- Cette méthode désactive ou brûle les jetons du compte de l'appelant de la transaction. L'appelant de cette méthode doit avoir un compte et le rôle de brûleur. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètre
decimal
du comportementdivisible
dans le fichier de spécification. Cette méthode peut être appelée parAccount Owner
du compte doté du rôle de brûleur.
-
RequestBurn
- Cette méthode peut être appelée par un brûleur pour envoyer une demande au notaire brûleur de détruire une quantité spécifiée de jetons, qui doit être inférieure ou égale à leur solde disponible. Lorsqu'une demande de gravure commence, le montant spécifié est immédiatement déduit du solde disponible et ajouté au champ
onhold_burn_balance
. Si la demande est approuvée, les jetons sont brûlés. Si la demande est rejetée, les jetons sont retournés du champonhold_burn_balance
au solde disponible. -
ApproveBurn
- Cette méthode peut être appelée par un notaire du brûleur pour approuver une demande de gravure.
-
RejectBurn
- Cette méthode peut être appelée par un notaire brûleur pour rejeter une demande de gravure.
-
GetAccountOnHoldBurnBalance
- Cette méthode retourne le solde de consommation bloqué pour un utilisateur spécifié. Cette méthode ne peut être appelée que par
Token Admin
,Token Auditor
,Org Admin
,Org Auditor
ou par le responsable du compte. -
BurnTokens
- Cette méthode désactive ou brûle les jetons du compte de l'appelant de la transaction.
Méthodes personnalisées
Vous pouvez utiliser les méthodes de la trousse SDK de jeton pour écrire des méthodes personnalisées pour votre application d'affaires.
Assurez-vous de suivre la valeur retournée lorsque vous utilisez les méthodes de la trousse SDK de jeton. De plus, pour éviter les doubles dépenses, ne combinez pas plusieurs fonctions asynchrones qui fonctionnent sur les mêmes paires clé-valeur dans la base de données d'état. Utilisez plutôt la méthode BulkTransferTokens
pour effectuer plusieurs transferts dans une seule méthode.
L'exemple suivant montre comment utiliser des méthodes de trousse SDK de jeton dans des méthodes personnalisées. Lorsque la méthode BuyTicket
est appelée, elle transfère 20 jetons du compte de l'appelant au compte du vendeur et retourne le message de transaction du transfert.
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
}
Méthodes de trousse SDK de jeton
- Gestion du contrôle d'accès
- Gestion de la configuration des jetons
- Gestion des comptes
- Gestion des rôles
- Gestion de l'historique des transactions
- Gestion du comportement des jetons
Méthodes de gestion du contrôle d'accès
Token Admin
, Org Admin
ou AccountOwner
du jeton. Vous pouvez utiliser cette fonction pour vous assurer que les opérations ne sont effectuées que par les utilisateurs prévus. Tout accès non autorisé entraîne une erreur. Pour utiliser la fonction de contrôle d'accès, importez la classe Authorization
à partir du module ../lib/auth
.import { Authorization } from '../lib/auth';
-
AddAdmin
- Cette méthode ajoute un utilisateur en tant qu'
Token Admin
du code de chaîne de jeton. -
RemoveAdmin
- Cette méthode supprime un utilisateur en tant qu'
Token Admin
du code de chaîne de jeton. -
IsUserTokenAdmin
- Cette méthode retourne la valeur booléenne
true
si l'appelant de la fonction estToken Admin
. Sinon, la méthode retournefalse
. -
GetAllAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Token Admin
du code de chaîne de jeton. -
GetAllAdminUsers
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Token Admin
du code de chaîne de jeton. -
CheckAuthorization
- Utiliser cette méthode pour ajouter un contrôle d'accès à votre code de chaîne. De nombreuses méthodes de jeton générées automatiquement utilisent le contrôle d'accès. Le mappage entre le récepteur de la trousse SDK et les méthodes qui disposent d'un contrôle d'accès est décrit dans le fichier
oChainUtil.go
. Pour utiliser votre propre contrôle d'accès ou pour désactiver le contrôle d'accès, supprimez le code de contrôle d'accès des méthodes de contrôleur et des méthodes personnalisées générées automatiquement.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
- Cette méthode ajoute un utilisateur en tant que
Org Admin
de l'organisation. -
RemoveOrgAdmin
- Cette méthode supprime un utilisateur en tant que
Org Admin
d'une organisation. -
GetOrgAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Org Admin
d'une organisation.
-
AddAdmin
- Cette méthode ajoute un utilisateur en tant qu'
Token Admin
du code de chaîne de jeton. -
RemoveAdmin
- Cette méthode supprime un utilisateur en tant qu'
Token Admin
du code de chaîne de jeton. -
IsUserTokenAdmin
- Cette méthode retourne la valeur booléenne
true
si l'appelant de la fonction estToken Admin
. Sinon, la méthode retournefalse
. -
GetAllAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Token Admin
du code de chaîne de jeton. -
GetAllAdminUsers
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Token Admin
du code de chaîne de jeton. -
CheckAuthorization
- Utiliser cette méthode pour ajouter un contrôle d'accès à votre code de chaîne. De nombreuses méthodes de jeton générées automatiquement utilisent le contrôle d'accès. Le mappage entre le récepteur de la trousse SDK et les méthodes qui disposent d'un contrôle d'accès est décrit dans le fichier
oChainUtil.go
. Pour utiliser votre propre contrôle d'accès ou pour désactiver le contrôle d'accès, supprimez le code de contrôle d'accès des méthodes de contrôleur et des méthodes personnalisées générées automatiquement.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
- Cette méthode ajoute un utilisateur en tant que
Org Admin
de l'organisation. -
RemoveOrgAdmin
- Cette méthode supprime un utilisateur en tant que
Org Admin
d'une organisation. -
GetOrgAdmins
- Cette méthode retourne la liste de tous les utilisateurs qui sont des
Org Admin
d'une organisation. -
AddTokenAuditor
- Cette méthode ajoute un utilisateur en tant qu'
Token Auditor
du code de chaîne. -
RemoveTokenAuditor
- Cette méthode supprime un utilisateur en tant qu'
Token Auditor
du code de chaîne. -
GetTokenAuditors
- Cette méthode retourne toutes les
Token Auditors
du code de chaîne. -
AddOrgAuditor
- Cette méthode ajoute un utilisateur en tant qu'
Org Auditor
du code de chaîne. -
RemoveOrgAuditor
- Cette méthode supprime un utilisateur en tant qu'
Org Auditor
du code de chaîne. -
GetOrgAuditors
- Cette méthode retourne toutes les
Org Auditors
du code de chaîne.
Méthodes de gestion de la configuration de jeton
-
Save
- Cette méthode crée un jeton et enregistre ses propriétés dans la base de données d'état.
-
Update
- Cette méthode met à jour les propriétés du jeton. Une fois qu'une ressource de jeton est créée, vous ne pouvez mettre à jour que la valeur
token_desc
et ses propriétés personnalisées. -
GetTokenDecimals
- Cette méthode retourne le nombre de décimales disponibles pour un jeton fractionnaire. Si le comportement
divisible
n'est pas spécifié, la valeur par défaut est 0. -
Get
- Cette méthode retourne un objet de jeton s'il est présent dans la base de données d'état. Cette méthode ne peut être appelée que par
Token Admin
du code de chaîne de jeton. -
History
- Cette méthode retourne l'historique du jeton pour un ID jeton spécifié.
-
GetAllTokens
- Cette méthode retourne toutes les ressources de jeton enregistrées dans la base de données d'état. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
-
GetTokensByName
- Cette méthode retourne toutes les ressources de jeton portant le nom spécifié. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
-
IsTokenType
- Cette méthode teste si une ressource de jeton existe pour un ID jeton spécifié.
-
GetByRange
- Cette méthode appelle la méthode fabric
getStateByRange
en interne. Même si une immobilisation portant le code indiqué provient du grand livre, cette méthode envoie l'immobilisation au type d'immobilisation appelant.
Méthodes de gestion des comptes
-
GenerateAccountId
- Cette méthode retourne un ID compte, qui est un jeu alphanumérique de caractères, précédé de
oaccount~<token asset name>~
et suivi d'un hachage du nom d'utilisateur ou de l'ID courriel (user_id
) du responsable de l'instance ou de l'utilisateur connecté à l'instance, de l'ID fournisseur de services d'adhésion (org_id
) de l'utilisateur dans l'organisation réseau courante et de l'ID jeton unique (token_id
). -
CreateAccount
- Cette méthode crée un compte pour un utilisateur et un jeton spécifiés. Chaque utilisateur qui a des jetons à tout moment doit avoir un compte. Les comptes font le suivi du solde d'un utilisateur, du solde bloqué et de l'historique des transactions. Un ID compte est un jeu alphanumérique de caractères, précédé de
oaccount~<token asset name>~
et suivi d'un hachage du nom d'utilisateur ou de l'ID courriel (user_id
) du responsable de l'instance ou de l'utilisateur connecté à l'instance, de l'ID fournisseur de services d'adhésion (org_id
) de l'utilisateur dans l'organisation de réseau courante. Cette méthode ne peut être appelée que parToken Admin
du code de chaîne. -
AssociateToken
- Cette méthode associe un jeton fongible à un compte. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne. -
GetAccountWithStatus
- Cette méthode retourne les détails du compte pour un compte spécifié, notamment le statut du compte.
-
GetAccount
- Cette méthode retourne les détails du compte pour un compte spécifié.
-
GetAccountHistory
- Cette méthode retourne un tableau des détails de l'historique de compte pour un compte spécifié.
-
GetAccountOnHoldBalance
- Cette méthode retourne le solde bloqué pour un compte spécifié.
-
GetAllAccounts
- Cette méthode retourne une liste de tous les comptes. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
-
GetUserByAccountId
- Cette méthode retourne les détails de l'utilisateur pour un compte spécifié.
-
GetAccountBalance
- Cette méthode retourne le solde d'un compte spécifié.
-
GetAllOrgAccounts
- Cette méthode retourne une liste de tous les comptes de jeton appartenant à une organisation spécifiée.
Méthodes de gestion des rôles
-
AddRoleMember
- Cette méthode ajoute un rôle à un utilisateur et à un jeton spécifiés.
-
RemoveRoleMember
- Cette méthode supprime un rôle d'un utilisateur et d'un jeton spécifiés.
-
GetAccountsByRole
- Cette méthode retourne une liste de tous les comptes pour un rôle et un jeton spécifiés.
-
GetUsersByRole
- Cette méthode retourne une liste de tous les utilisateurs pour un rôle et un jeton spécifiés.
-
IsInRole
- Cette méthode indique si un utilisateur et un jeton ont un rôle spécifié.
-
GetOrgAccountsByRole
- Cette méthode retourne des informations sur tous les comptes ayant un rôle spécifié dans une organisation spécifiée.
-
GetOrgUsersByRole
- Cette méthode retourne des informations sur tous les utilisateurs ayant un rôle spécifié dans une organisation spécifiée.
-
RoleCheck
- Cette méthode vérifie si l'ID compte fourni est membre d'un rôle.
Méthodes de gestion de l'historique des transactions
-
GetAccountTransactionHistory
- Cette méthode retourne un tableau des détails de l'historique des transactions pour un compte spécifié.
-
GetAccountTransactionHistoryWithFilters
- Cette méthode retourne un tableau des détails de l'historique des transactions pour une transaction spécifiée. Cette méthode ne peut être appelée que si elle est connectée au réseau Oracle Blockchain Platform distant.
-
GetSubTransactionsById
- Cette méthode retourne un tableau des détails de l'historique des transactions pour une transaction spécifiée.
-
GetSubTransactionsByIdWithFilters
- Cette méthode retourne un tableau des détails de l'historique des transactions pour une transaction spécifiée.
-
GetTransactionById
- Cette méthode retourne l'historique d'une ressource
Transaction
. -
DeleteHistoricalTransactions
- Cette méthode supprime les anciennes transactions de la base de données d'état.
Méthodes de gestion du comportement des jetons - Comportement mentable
-
Mint
- Cette méthode extrait des jetons, qui sont ensuite détenus par l'appelant de la méthode. L'appelant doit avoir un compte et le rôle d'émetteur. Le nombre de jetons pouvant être frappés est limité par la propriété
max_mint_quantity
du comportementmintable
dans le fichier de spécification. Si la propriétémax_mint_quantity
n'est pas spécifiée, un nombre illimité de jetons peut être extrait. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètredecimal
du comportementdivisible
dans le fichier de spécification. Cette méthode ne peut être appelée que par la valeurAccountOwner
du compte doté du rôle Minter. -
GetTotalMintedTokens
- Cette méthode retourne le nombre total de jetons frappés.
-
GetNetTokens
- Cette méthode retourne la quantité nette de jetons disponibles dans le système pour un jeton spécifié. Les jetons nets sont la quantité de jetons restants après que les jetons sont brûlés. Sous forme d'équation : net tokens = total des jetons frappés - total des jetons brûlés. Si aucun jeton n'est brûlé, le nombre de jetons nets est égal au nombre total de jetons frappés.
-
GetMaxMintQuantity
- Cette méthode retourne la quantité mintable maximale pour un jeton. Si le comportement
max_mint_quantity
n'est pas spécifié, la valeur par défaut est 0, ce qui autorise la frappe d'un nombre quelconque de jetons.
Méthodes de gestion du comportement des jetons - Comportement transférable
-
Transfer
- Cette méthode transfère les jetons de l'appelant vers un compte spécifié. L'appelant de la méthode doit avoir un compte. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètre
decimal
du comportementdivisible
dans le fichier de spécification. Cette méthode ne peut être appelée que parAccountOwner
du compte. -
BulkTransfer
- Cette méthode transfère en masse les jetons du compte de l'appelant aux comptes spécifiés dans l'objet
flow
. Un compte doit déjà être créé pour l'appelant de cette méthode.
Méthodes de gestion du comportement des jetons - Comportement pouvant être bloqué
-
Hold
- Cette méthode crée un blocage au nom du responsable des jetons avec le compte
to_account_id
. Un compte de notaire est spécifié, qui est responsable de terminer ou de débloquer le blocage. Lorsque le blocage est créé, le solde de jeton spécifié par le payeur est bloqué. Un solde bloqué ne peut pas être transféré tant que le blocage n'est pas terminé ou annulé. Un compte doit déjà être créé pour l'appelant de cette méthode. -
ExecuteHold
- Cette méthode permet de bloquer les jetons et de transférer la quantité de jetons précédemment bloqués au destinataire. Si la valeur
quantity
est inférieure à la valeur de blocage réelle, le montant restant est de nouveau disponible pour le responsable initial des jetons. Cette méthode ne peut être appelée que par l'IDAccountOwner
avec le rôlenotary
. -
ReleaseHold
- Cette méthode libère un blocage sur les jetons. Le transfert n'est pas terminé et tous les jetons détenus sont à nouveau disponibles pour le propriétaire initial. Cette méthode peut être appelée par l'ID
Account Owner
avec le rôlenotary
dans la limite de temps spécifiée ou par le payeur, le bénéficiaire ou le notaire après la limite de temps spécifiée. -
GetOnHoldIds
- Cette méthode retourne une liste de tous les ID de blocage pour un utilisateur et un jeton spécifiés.
-
GetOnHoldDetailsWithOperationID
- Cette méthode retourne les détails de transaction bloquée pour un ID opération et un jeton spécifiés.
-
GetOnHoldBalanceWithOperationID
- Cette méthode retourne le solde bloqué pour un ID opération et un jeton spécifiés.
Méthodes pour Token Behavior Management - Burnable Behavior
-
Burn
- Cette méthode désactive ou brûle les jetons du compte de l'appelant de la transaction. L'appelant de cette méthode doit avoir un compte et le rôle de brûleur. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètre
decimal
du comportementdivisible
dans le fichier de spécification.