TypeScript Méthodes pour le statut de compte de jeton

Blockchain App Builder génère automatiquement des méthodes que vous pouvez utiliser pour gérer le statut des comptes pour les jetons fongibles qui utilisent la norme Token Taxonomy Framework.

Vous pouvez utiliser les méthodes suivantes pour placer les comptes utilisateur de jeton à l'état actif, suspendu ou supprimé.

Lorsqu'un compte est suspendu, l'utilisateur du compte ne peut effectuer aucune opération d'écriture, notamment la frappe, la gravure, le transfert et la détention de jetons. En outre, les autres utilisateurs ne peuvent pas transférer des jetons vers ou détenir des jetons dans un compte suspendu. Un compte suspendu peut toujours terminer les opérations de lecture.

Un compte avec un solde de jeton différent de zéro ne peut pas être supprimé. Vous devez transférer ou graver tous les jetons d'un compte avant de pouvoir supprimer le compte. Une fois qu'un compte est à l'état supprimé, l'état du compte ne peut pas être rétabli sur Actif ou Suspendu.

Méthodes de statut de compte générées automatiquement

Blockchain App Builder génère automatiquement des méthodes pour gérer le statut des comptes de jetons. Les méthodes de contrôleur doivent avoir un décorateur @Validator(...params) pour pouvoir être appelées.

getAccountStatus
Cette méthode obtient le statut actuel du compte de jeton. Cette méthode peut être appelée par l'élément Token Admin du code chaîne, un élément 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, message qui inclut 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 permet d'obtenir l'historique du statut du compte. Cette méthode peut être appelée par l'élément Token Admin du code chaîne, un élément 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, message qui inclut 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 un élément Token Admin du code chaîne ou par un élément 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Une fois qu'un compte est suspendu, vous ne pouvez effectuer aucune opération de mise à jour du 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Une fois qu'un compte est supprimé, vous ne pouvez plus effectuer d'opérations de mise à jour du compte. Le compte supprimé est dans un état final et ne peut être modifié en aucun autre état. Pour supprimer un compte, le solde du compte et le solde en attente 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
Exemple de valeur renvoyée :
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
getAccountStatus
Cette méthode obtient le statut actuel du compte de jeton. Cette méthode peut être appelée par Token Admin ou Token Auditor, Org Admin ou Org Auditor 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, message qui inclut 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 permet d'obtenir l'historique du statut du compte. Cette méthode peut être appelée par Token Admin ou Token Auditor, Org Admin ou Org Auditor 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, message qui inclut 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 un élément Token Admin du code chaîne ou par un élément 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Une fois qu'un compte est suspendu, vous ne pouvez effectuer aucune opération de mise à jour du 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Une fois qu'un compte est supprimé, vous ne pouvez plus effectuer d'opérations de mise à jour du compte. Le compte supprimé est dans un état final et ne peut être modifié en aucun autre état. Pour supprimer un compte, le solde du compte et le solde en attente 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 (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
Exemple de valeur renvoyée :
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}

Méthodes SDK de statut de compte

getAccountStatus
Cette méthode obtient le statut actuel du compte de jeton.
Ctx.AccountStatus.getAccountStatus(account_id: string)
Paramètres :
  • account_id: string : ID du compte de jeton.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte.
Exemple de valeur renvoyée :
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
saveAccountStatus
Cette méthode enregistre l'objet de statut (si aucun objet de statut n'est présent) pour le compte de jeton et définit le statut sur la valeur spécifiée.
Ctx.AccountStatus.saveAccountStatus(account_id: string, status: AccountStatus)
Paramètres :
  • account_id: string : ID du compte de jeton.
  • status: AccountStatus : statut à définir pour le compte spécifié.

    AccountStatus est un type enum qui doit être active, suspended ou deleted.

Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte.
Exemple de valeur renvoyée :
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Cette méthode permet d'obtenir l'historique du statut du compte.
Ctx.AccountStatus.history(status_id: string)
Paramètres :
  • status_id: string : ID de l'objet de statut de compte.
Renvoie :
  • En cas de réussite, une représentation JSON de l'historique des statuts de 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.
Ctx.Account.activateAccount(account_id: string)
Paramètres :
  • account_id: string : ID du compte de jeton.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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.
Ctx.Account.suspendAccount(account_id: string)
Paramètres :
  • account_id: string : ID du compte de jeton.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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.
Ctx.Account.deleteAccount(account_id: string)
Paramètres :
  • account_id: string : ID du compte de jeton.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
Exemple de valeur renvoyée :
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}