Blockchain App Builder génère automatiquement des méthodes pour gérer le statut du compte de jeton. Les méthodes de contrôleur doivent avoir un décorateur @Validator(...params)
pour être invocables.
-
getAccountStatus
- Cette méthode obtient le statut actuel du compte de jeton. Cette méthode peut être appelée par
Token Admin
du code chaîne, par Org Admin
de l'organisation indiquée ou par le propriétaire du compte de jeton. Cette méthode prend également en charge la migration des données pour le code chaîne existant mis à niveau vers une version plus récente.
-
@Validator(yup.string(), yup.string(), yup.string())
public async getAccountStatus(token_id: string, org_id: string, user_id: string) {
const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.get", "TOKEN", { account_id });
try {
return await this.Ctx.AccountStatus.getAccountStatus(account_id);
} catch (err) {
return await this.Ctx.AccountStatus.getDefaultAccountStatus(account_id);
}
}
- Paramètres :
token_id: string
: ID du jeton.
org_id: string
: ID du fournisseur de services d'adhésion de l'utilisateur dans l'organisation actuelle.
user_id: string
: nom d'utilisateur ou ID de courriel de l'utilisateur.
- Renvoie :
- En cas de succès, message contenant les détails du statut du compte de jeton.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
getAccountStatusHistory
- Cette méthode extrait l'historique du statut du compte. Cette méthode peut être appelée par
Token Admin
du code chaîne, par Org Admin
de l'organisation indiquée ou par le propriétaire du compte de jeton.
-
@Validator(yup.string(), yup.string(), yup.string())
public async getAccountStatusHistory(token_id: string, org_id: string, user_id: string) {
const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
await this.Ctx.Account.getAccount(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.history", "TOKEN", { account_id });
const status_id = await this.Ctx.AccountStatus.generateAccountStatusId(account_id);
let account_status_history: any;
try {
account_status_history = await this.Ctx.AccountStatus.history(status_id);
} catch (err) {
return [];
}
return account_status_history;
}
- Paramètres :
token_id: string
: ID du jeton.
org_id: string
: ID du fournisseur de services d'adhésion de l'utilisateur dans l'organisation actuelle.
user_id: string
: nom d'utilisateur ou ID de courriel de l'utilisateur.
- Renvoie :
- En cas de succès, message contenant les détails de l'historique du statut du compte.
- Exemple de valeur renvoyée :
[
{
"trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
"timeStamp": "2022-12-02T10:39:14.000Z",
"value": {
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
},
{
"trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
"timeStamp": "2022-12-02T10:37:50.000Z",
"value": {
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
}
]
-
activateAccount
- Cette méthode active un compte de jeton. Cette méthode peut uniquement être appelée par
Token Admin
du code chaîne ou par Org Admin
de l'organisation indiquée. Les comptes supprimés ne peuvent pas être activés.
-
@Validator(yup.string(), yup.string(), yup.string())
public async activateAccount(token_id: string, org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.activateAccount", "TOKEN", { org_id });
const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
return await this.Ctx.Account.activateAccount(account_id);
}
- Paramètres :
token_id: string
: ID du jeton.
org_id: string
: ID du fournisseur de services d'adhésion de l'utilisateur dans l'organisation actuelle.
user_id: string
: nom d'utilisateur ou ID de courriel de l'utilisateur.
- Renvoie :
- En cas de succès, représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
suspendAccount
- Cette méthode suspend un compte de jeton. Cette méthode peut uniquement être appelée par
Token Admin
du code chaîne ou par Org Admin
de l'organisation indiquée. Une fois qu'un compte est suspendu, vous ne pouvez effectuer aucune opération mettant à jour le compte. Un compte supprimé ne peut pas être suspendu.
-
@Validator(yup.string(), yup.string(), yup.string())
public async suspendAccount(token_id: string, org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.suspendAccount", "TOKEN", { org_id });
const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
return await this.Ctx.Account.suspendAccount(account_id);
}
- Paramètres :
token_id: string
: ID du jeton.
org_id: string
: ID du fournisseur de services d'adhésion de l'utilisateur dans l'organisation actuelle.
user_id: string
: nom d'utilisateur ou ID de courriel de l'utilisateur.
- Renvoie :
- En cas de succès, représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
-
deleteAccount
- Cette méthode supprime un compte de jeton. Cette méthode peut uniquement être appelée par
Token Admin
du code chaîne ou par Org Admin
de l'organisation indiquée. Une fois qu'un compte a été supprimé, vous ne pouvez effectuer aucune opération de mise à jour du compte. Le compte supprimé est dans un état final et ne peut pas passer à un autre état. Pour supprimer un compte, le solde du compte et le solde bloqué doivent être égaux à zéro.
-
@Validator(yup.string(), yup.string(), yup.string())
public async deleteAccount(token_id: string, org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.deleteAccount", "TOKEN", { org_id });
const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
return await this.Ctx.Account.deleteAccount(account_id);
}
- Paramètres :
token_id: string
: ID du jeton.
org_id: string
: ID du fournisseur de services d'adhésion de l'utilisateur dans l'organisation actuelle.
user_id: string
: nom d'utilisateur ou ID de courriel de l'utilisateur.
- Renvoie :
- En cas de succès, représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "deleted"
}