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"
}