TypeScript Methoden für ERC-721-Tokenkontostatus

Blockchain App Builder generiert automatisch Methoden, mit denen Sie den Kontostatus für Token verwalten können, die den erweiterten ERC-721-Standard verwenden.

Mit den folgenden Methoden können Sie Tokenbenutzeraccounts in den Status "Aktiv", "Ausgesetzt" oder "Gelöscht" versetzen.

Wenn ein Konto gesperrt wird, kann der Kontobenutzer keine Schreibvorgänge abschließen, einschließlich Münz-, Brenn- und Übertragungstoken. Darüber hinaus können andere Benutzer keine Token auf ein unterbrochenes Konto übertragen. Ein unterbrochener Account kann weiterhin Lesevorgänge ausführen.

Ein Konto mit einem Tokensaldo ungleich Null kann nicht gelöscht werden. Sie müssen alle Token in einem Konto übertragen oder brennen, bevor Sie das Konto löschen können. Nachdem sich ein Account im Status "Gelöscht" befindet, kann der Accountstatus nicht mehr in "Aktiv" oder "Ausgesetzt" geändert werden.

Automatisch generierte Kontenstatusmethoden

getAccountStatus
Diese Methode ruft den aktuellen Status des Tokenaccounts ab. Diese Methode kann vom Token Admin des Chaincodes oder vom Eigentümer des Tokenaccounts aufgerufen werden.
@Validator(yup.string(), yup.string())
     public async getAccountStatus(orgId: string, userId: string) {
       const accountId = await this.Ctx.ERC721Account.generateAccountId(orgId, userId);
       await this.Ctx.ERC721Auth.checkAuthorization("ERC721ACCOUNT_STATUS.get", "TOKEN", { accountId });
       try {
         return await this.Ctx.ERC721AccountStatus.getAccountStatus(accountId);
       } catch (err) {
        return await this.Ctx.ERC721AccountStatus.getDefaultAccountStatus(accountId);
       }
     }
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus. Wenn im Buch für das Konto kein Status gefunden wird, weil das Konto erstellt wurde, bevor die Kontenstatusfunktion verfügbar war, wird der Status in der Antwort als active aufgeführt.
Beispiel für einen Rückgabewert:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Diese Methode ruft die Historie des Accountstatus ab. Diese Methode kann vom Token Admin des Chaincodes oder vom Eigentümer des Tokenaccounts aufgerufen werden.
public async getAccountStatusHistory(orgId: string, userId: string) {
       const accountId = await this.Ctx.ERC721Account.generateAccountId(orgId, userId);
       await this.Ctx.ERC721Account.getAccount(accountId);
       await this.Ctx.ERC721Auth.checkAuthorization("ERC721ACCOUNT_STATUS.history", "TOKEN", { accountId });
       const status_id = await this.Ctx.ERC721AccountStatus.generateAccountStatusId(accountId);
       let accountStatusHistory: any;
       try {
         accountStatusHistory = await this.Ctx.ERC721AccountStatus.history(status_id);
       } catch (err) {
         return [];
       }
       return accountStatusHistory;
     }
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg die Kontostatushistorie im JSON-Format.
Beispiel für einen Rückgabewert:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2022-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2022-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
activateAccount
Diese Methode aktiviert ein Token-Konto. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Gelöschte Accounts können nicht aktiviert werden. Für alle Accounts, die vor der Verfügbarkeit der Accountstatusfunktion erstellt wurden, müssen Sie diese Methode aufrufen, um den Accountstatus auf active zu setzen.
@Validator(yup.string(), yup.string())
 public async activateAccount(orgId: string, userId: string) {
   await this.Ctx.ERC721Auth.checkAuthorization("ERC721ACCOUNT_STATUS.activateAccount", "TOKEN");
   const accountId = await this.Ctx.ERC721Account.generateAccountId(orgId, userId);
   return await this.Ctx.ERC721Account.activateAccount(accountId);
 }
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus.
Beispiel für einen Rückgabewert:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
Diese Methode setzt ein Token-Konto aus. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Nachdem ein Konto gesperrt wurde, können Sie keine Vorgänge abschließen, die das Konto aktualisieren. Ein gelöschtes Konto kann nicht ausgesetzt werden.
@Validator(yup.string(), yup.string())
 public async suspendAccount(orgId: string, userId: string) {
   await this.Ctx.ERC721Auth.checkAuthorization("ERC721ACCOUNT_STATUS.suspendAccount", "TOKEN");
   const accountId = await this.Ctx.ERC721Account.generateAccountId(orgId, userId);
   return await this.Ctx.ERC721Account.suspendAccount(accountId);
 }
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus.
Beispiel für einen Rückgabewert:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
Mit dieser Methode wird ein Tokenaccount gelöscht. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Nachdem ein Account gelöscht wurde, können Sie keine Vorgänge abschließen, die den Account aktualisieren. Das gelöschte Konto befindet sich in einem endgültigen Status und kann nicht in einen anderen Status geändert werden. Um ein Konto zu löschen, muss der Kontensaldo Null sein.
@Validator(yup.string(), yup.string())
 public async deleteAccount(orgId: string, userId: string) {
   await this.Ctx.ERC721Auth.checkAuthorization("ERC721ACCOUNT_STATUS.deleteAccount", "TOKEN");
   const accountId = await this.Ctx.ERC721Account.generateAccountId(orgId, userId);
   return await this.Ctx.ERC721Account.deleteAccount(accountId);
 }
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus.
Beispiel für einen Rückgabewert:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}

SDK-Methoden für Accountstatus

getAccountStatus
Diese Methode ruft den aktuellen Status des Tokenaccounts ab.
Ctx.ERC721AccountStatus.getAccountStatus(accountId: string)
Parameter:
  • accountId: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus. Wenn im Buch für das Konto kein Status gefunden wird, weil das Konto erstellt wurde, bevor die Kontenstatusfunktion verfügbar war, wird der Status in der Antwort als active aufgeführt.
Beispiel für einen Rückgabewert:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Diese Methode ruft die Historie des Accountstatus ab.
Ctx.ERC721AccountStatus.history(statusId: string)
Parameter:
  • statusId: string: Die ID des Accountstatusobjekts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung der Kontostatushistorie.
Beispiel für einen Rückgabewert:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2022-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2022-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
activateAccount
Diese Methode aktiviert ein Token-Konto. Für alle Accounts, die vor der Verfügbarkeit der Accountstatusfunktion erstellt wurden, müssen Sie diese Methode aufrufen, um den Accountstatus auf active zu setzen.
Ctx.ERC721Account.activateAccount(accountId: string)
Parameter:
  • accountId: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für einen Rückgabewert:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
Diese Methode setzt ein Token-Konto aus.
Ctx.ERC721AccountStatus.suspendAccount(accountId: string)
Parameter:
  • accountId: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für einen Rückgabewert:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
Mit dieser Methode wird ein Tokenaccount gelöscht.
Ctx.ERC721Account.deleteAccount(accountId: string)
Parameter:
  • accountId: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für einen Rückgabewert:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}