TypeScript Methoden für Tokenaccountstatus

Blockchain App Builder generiert automatisch Methoden, mit denen Sie den Accountstatus für fungible Token verwalten können, die den Standard "Tokentaxonomie-Framework" verwenden.

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

Wenn ein Konto gesperrt wird, kann der Kontobenutzer keine Schreibvorgänge abschließen, wie Prägen, Brennen, Übertragen und Halten von Token. Darüber hinaus können andere Benutzer keine Token an Token in einem ausgesetzten Konto übertragen oder sperren. Ein ausgesetzter Account kann weiterhin Lesevorgänge abschließen.

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

Automatisch generierte Kontenstatusarten

Blockchain App Builder generiert automatisch Methoden zur Verwaltung des Tokenaccountstatus. Controller-Methoden müssen einen @Validator(...params)-Dekorator aufweisen, damit sie aufgerufen werden können.

getAccountStatus
Diese Methode ruft den aktuellen Status des Tokenaccounts ab. Diese Methode kann vom Token Admin des Chaincodes, einem Org Admin der angegebenen Organisation oder vom Eigentümer des Tokenaccounts aufgerufen werden. Diese Methode unterstützt auch die Datenmigration für vorhandenen Chaincode, der auf eine neuere Version upgegradet wird.
@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);
    }
  }
Parameter:
  • token_id: string: Die ID des Tokens.
  • org_id: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine Meldung, die Details zum Status des Tokenaccounts enthält.
Beispiel für den Rückgabewert:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Diese Methode ruft die Historie des Accountstatus ab. Diese Methode kann vom Token Admin des Chaincodes, einem Org Admin der angegebenen Organisation oder vom Eigentümer des Tokenaccounts aufgerufen werden.
  @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;
  }
Parameter:
  • token_id: string: Die ID des Tokens.
  • org_id: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine Nachricht, die Details zur Accountstatushistorie enthält.
Beispiel für den Rückgabewert:
[
  {
    "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
Diese Methode aktiviert ein Token-Konto. Diese Methode kann nur von einem Token Admin des Chaincodes oder einem Org Admin der angegebenen Organisation aufgerufen werden. Gelöschte Accounts können nicht aktiviert werden.
@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);
  }
Parameter:
  • token_id: string: Die ID des Tokens.
  • org_id: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für den Rückgabewert:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
Mit dieser Methode wird ein Tokenaccount gesperrt. Diese Methode kann nur von einem Token Admin des Chaincodes oder einem Org Admin der angegebenen Organisation aufgerufen werden. Nachdem ein Konto gesperrt wurde, können Sie keine Vorgänge mehr ausführen, die das Konto aktualisieren. Ein gelöschtes Konto kann nicht gesperrt werden.
@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);
  }
Parameter:
  • token_id: string: Die ID des Tokens.
  • org_id: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für den Rückgabewert:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
Mit dieser Methode wird ein Tokenaccount gelöscht. Diese Methode kann nur von einem Token Admin des Chaincodes oder einem Org Admin der angegebenen Organisation aufgerufen werden. Nachdem ein Account gelöscht wurde, können Sie keine Vorgänge mehr ausführen, 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, müssen der Kontensaldo und der gesperrte Saldo Null sein.
@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);
  }
Parameter:
  • token_id: string: Die ID des Tokens.
  • org_id: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für den Rückgabewert:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}

Accountstatus-SDK-Methoden

getAccountStatus
Diese Methode ruft den aktuellen Status des Tokenaccounts ab.
Ctx.AccountStatus.getAccountStatus(account_id: string)
Parameter:
  • account_id: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts.
Beispiel für den Rückgabewert:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
saveAccountStatus
Diese Methode speichert das Statusobjekt (wenn kein Statusobjekt vorhanden ist) für das Tokenkonto und setzt den Status auf den angegebenen Wert.
Ctx.AccountStatus.saveAccountStatus(account_id: string, status: AccountStatus)
Parameter:
  • account_id: string: Die ID des Tokenaccounts.
  • status: AccountStatus: Der für den angegebenen Account festzulegende Status.

    AccountStatus ist ein enum-Typ, der active, suspended oder deleted sein muss.

Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts.
Beispiel für den Rückgabewert:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Diese Methode ruft die Historie des Accountstatus ab.
Ctx.AccountStatus.history(status_id: string)
Parameter:
  • status_id: string: Die ID des Accountstatusobjekts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung der Accountstatushistorie.
Beispiel für den Rückgabewert:
[
  {
    "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
Diese Methode aktiviert ein Token-Konto.
Ctx.Account.activateAccount(account_id: string)
Parameter:
  • account_id: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für den Rückgabewert:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
Mit dieser Methode wird ein Tokenaccount gesperrt.
Ctx.Account.suspendAccount(account_id: string)
Parameter:
  • account_id: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für den Rückgabewert:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
Mit dieser Methode wird ein Tokenaccount gelöscht.
Ctx.Account.deleteAccount(account_id: string)
Parameter:
  • account_id: string: Die ID des Tokenaccounts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für den Rückgabewert:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}