Blockchain App Builder generiert automatisch Methoden zur Verwaltung des Tokenaccountstatus. Controller-Methoden müssen über einen @Validator(...params)
-Dekorator verfügen, damit sie aufgerufen werden können.
-
getAccountStatus
- Diese Methode ruft den aktuellen Status des Tokenaccounts ab. Diese Methode kann von der
Token Admin
des Chaincodes, einer 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 Mitgliedschaftsserviceanbieter-ID (MSP) 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 zum Tokenaccountstatus enthält.
- Beispiel für einen 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 von der
Token Admin
des Chaincodes, einer 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 Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Meldung mit Details zur Firmenstatushistorie.
- Beispiel für einen 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 Mitgliedschaftsserviceanbieter-ID (MSP) 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 einen Rückgabewert:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
suspendAccount
- Diese Methode setzt ein Token-Konto aus. 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 abschließen, die das Konto aktualisieren. Ein gelöschtes Konto kann nicht ausgesetzt 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 Mitgliedschaftsserviceanbieter-ID (MSP) 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 einen 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 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, 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 Mitgliedschaftsserviceanbieter-ID (MSP) 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 einen Rückgabewert:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "deleted"
}