Méthodes d'accès pour le statut du compte de jeton ERC-721

Blockchain App Builder génère automatiquement des méthodes que vous pouvez utiliser pour gérer l'état du compte pour les jetons qui utilisent la norme ERC-721 étendue.

Vous pouvez utiliser les méthodes suivantes pour placer les comptes d'utilisateur de jeton dans les états actif, suspendu ou supprimé.

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

Impossible de supprimer un compte avec un solde de jeton différent de zéro. 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é, il est impossible de rétablir l'état Actif ou Suspendu.

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

GetAccountStatus
Cette méthode obtient le statut courant du compte de jeton. Cette méthode peut être appelée par la chaîne Token Admin du code de chaîne ou par le responsable du compte de jeton.
func (t *Controller) GetAccountStatus(orgId string, userId string) (interface{}, error) {
      accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
      if err != nil {
            return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
      }
      auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.Get", "TOKEN", map[string]string{"accountId": accountId})
      if err != nil && !auth {
            return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
      }
      accountStatus, err := t.Ctx.ERC721AccountStatus.GetAccountStatus(accountId)
      if err != nil {
            return t.Ctx.ERC721AccountStatus.GetDefaultAccountStatus(accountId)
      }
      return accountStatus, nil
}
Paramètres :
  • orgId: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • userId: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, une représentation JSON du statut du compte de jeton. Si aucun statut n'est trouvé dans le livre pour le compte, car le compte a été créé avant que la fonctionnalité de statut de compte ne soit disponible, le statut est active dans la réponse.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "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 la chaîne Token Admin du code de chaîne ou par le responsable du compte de jeton.
func (t *Controller) GetAccountStatusHistory(orgId string, userId string) (interface{}, error) {
      accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
      if err != nil {
            return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
      }
      _, err = t.Ctx.ERC721Account.GetAccount(accountId)
      if err != nil {
            return nil, fmt.Errorf("error in GetAccountStatusHistory: %s", err)
      }
      auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.Get", "TOKEN", map[string]string{"accountId": accountId})
      if err != nil && !auth {
            return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
      }
      statusId, err := t.Ctx.ERC721AccountStatus.GenerateAccountStatusId(accountId)
      if err != nil {
            return nil, err
      }
      accountStatusHistory, err := t.Ctx.ERC721AccountStatus.History(statusId)
      if err != nil {
            return []map[string]interface{}{}, nil
      }
      return accountStatusHistory, nil
}
Paramètres :
  • orgId: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • userId: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, l'historique des statuts de compte au format JSON.
Exemple de valeur renvoyée :
[
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-02T16:20:34+05:30",
    "TxId": "af1601c7a14b4becf4bb3b285d85553b39bf234caaf1cd488a284a31a2d9df78",
    "Value": {
      "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "AssetType": "oaccountStatus",
      "Status": "suspended",
      "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
    }
  },
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-02T16:19:15+05:30",
    "TxId": "4b307b989063e43add5357ab110e19174d586b9746cc8a30c9aa3a2b0b48a34e",
    "Value": {
      "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "AssetType": "oaccountStatus",
      "Status": "active",
      "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
    }
  }
]
ActivateAccount
Cette méthode active un compte de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne. Les comptes supprimés ne peuvent pas être activés. Pour tous les comptes créés avant que la fonctionnalité de statut de compte ne soit disponible, vous devez appeler cette méthode pour régler le statut du compte à active.
func (t *Controller) ActivateAccount(orgId string, userId string) (interface{}, error) {
    accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
    if err != nil {
        return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
    }
    auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.ActivateAccount", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.ERC721Account.ActivateAccount(accountId)
}
Paramètres :
  • orgId: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • userId: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "active"
}
SuspendAccount
Cette méthode suspend un compte de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne. Une fois qu'un compte est suspendu, vous ne pouvez pas effectuer d'opérations qui mettent à jour le compte. Un compte supprimé ne peut pas être suspendu.
func (t *Controller) SuspendAccount(orgId string, userId string) (interface{}, error) {
    accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
    if err != nil {
        return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
    }
    auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.SuspendAccount", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.ERC721Account.SuspendAccount(accountId)
}
Paramètres :
  • orgId: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • userId: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "suspended"
}
DeleteAccount
Cette méthode supprime un compte de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne. Une fois qu'un compte est supprimé, vous ne pouvez pas effectuer d'opérations qui mettent à jour le compte. Le compte supprimé est à l'état final et ne peut pas être remplacé par un autre état. Pour supprimer un compte, le solde doit être égal à zéro.
func (t *Controller) DeleteAccount(orgId string, userId string) (interface{}, error) {
    accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
    if err != nil {
        return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
    }
    auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.DeleteAccount", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.ERC721Account.DeleteAccount(accountId)
}
Paramètres :
  • orgId: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • userId: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "deleted"
}

Méthodes SDK de statut de compte

GetDefaultAccountStatus
Cette méthode obtient le statut courant d'un compte de jeton, avec le statut active pour tout compte pour lequel aucun statut de compte n'est stocké dans le livre (car le compte a été créé avant la fonctionnalité de statut de compte).
Ctx.ERC721AccountStatus.GetDefaultAccountStatus(accountId string) (NFTAccountStatus, error)
Paramètres :
  • accountId: string - ID du compte de jeton.
Retourne :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
      "AssetType": "oaccountStatus",
      "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "Status": "active"
}
GetAccountStatus
Cette méthode obtient le statut courant du compte de jeton.
Ctx.ERC721AccountStatus.GetAccountStatus(accountId string) (NFTAccountStatus, error)
Paramètres :
  • accountId: string - ID du compte de jeton.
Retourne :
  • En cas de succès, une représentation JSON du statut du compte de jeton. Si aucun statut n'est trouvé dans le livre pour le compte, car le compte a été créé avant que la fonctionnalité de statut de compte ne soit disponible, le statut est active dans la réponse.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "active"
}
GetAccountStatusHistory
Cette méthode permet d'obtenir l'historique du statut du compte.
Ctx.ERC721AccountStatus.History(statusId string) (interface{}, error) 
Paramètres :
  • statusId: string - ID de l'objet de statut de compte.
Retourne :
  • En cas de succès, une représentation JSON de l'historique de statut du compte.
Exemple de valeur renvoyée :
[
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-02T16:20:34+05:30",
    "TxId": "af1601c7a14b4becf4bb3b285d85553b39bf234caaf1cd488a284a31a2d9df78",
    "Value": {
      "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "AssetType": "oaccountStatus",
      "Status": "suspended",
      "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
    }
  },
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-02T16:19:15+05:30",
    "TxId": "4b307b989063e43add5357ab110e19174d586b9746cc8a30c9aa3a2b0b48a34e",
    "Value": {
      "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "AssetType": "oaccountStatus",
      "Status": "active",
      "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
    }
  }
]
ActivateAccount
Cette méthode active un compte de jeton. Pour tous les comptes créés avant que la fonctionnalité de statut de compte ne soit disponible, vous devez appeler cette méthode pour régler le statut du compte à active.
Ctx.ERC721Account.ActivateAccount(accountId string) (interface{}, error)
Paramètres :
  • accountId: string - ID du compte de jeton.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "active"
}
SuspendAccount
Cette méthode suspend un compte de jeton.
Ctx.ERC721Account.SuspendAccount(accountId string) (interface{}, error)
Paramètres :
  • accountId: string - ID du compte de jeton.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "suspended"
}
DeleteAccount
Cette méthode supprime un compte de jeton.
Ctx.ERC721Account.DeleteAccount(accountId string) (interface{}, error)
Paramètres :
  • accountId: string - ID du compte de jeton.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
Exemple de valeur renvoyée :
{
    "AssetType": "oaccountStatus",
    "StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "Status": "deleted"
}