Blockchain App Builder genera automáticamente métodos para gestionar el estado de la cuenta de token. Los métodos de controlador deben tener un decorador @Validator(...params)
para que se pueda invocar.
-
getAccountStatus
- Este método obtiene el estado actual de la cuenta de token. El
Token Admin
del código de cadena, un Org Admin
de la organización especificada o el propietario de la cuenta de token pueden llamar a este método. Este método también admite la migración de datos para el código de cadenas existente que se ha actualizado a una versión más reciente.
-
@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);
}
}
- Parámetros:
token_id: string
: ID del token.
org_id: string
: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Si se realiza correctamente, un mensaje que incluye detalles del estado de la cuenta de token.
- Ejemplo de valor de retorno:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
getAccountStatusHistory
- Este método obtiene el historial del estado de la cuenta. El
Token Admin
del código de cadena, un Org Admin
de la organización especificada o el propietario de la cuenta de token pueden llamar a este método.
-
@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;
}
- Parámetros:
token_id: string
: ID del token.
org_id: string
: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Cuando se realiza correctamente, un mensaje que incluye detalles del historial de estado de la cuenta.
- Ejemplo de valor de retorno:
[
{
"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
- Este método activa una cuenta de token. Este método sólo puede ser llamado por un
Token Admin
del código de cadena o un Org Admin
de la organización especificada. Las cuentas eliminadas no se pueden activar.
-
@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);
}
- Parámetros:
token_id: string
: ID del token.
org_id: string
: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una vez realizada correctamente, una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de valor de retorno:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
suspendAccount
- Este método suspende una cuenta de token. Este método sólo puede ser llamado por un
Token Admin
del código de cadena o un Org Admin
de la organización especificada. Después de suspender una cuenta, no puede completar ninguna operación que actualice la cuenta. Una cuenta eliminada no se puede suspender.
-
@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);
}
- Parámetros:
token_id: string
: ID del token.
org_id: string
: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una vez realizada correctamente, una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de valor de retorno:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
-
deleteAccount
- Este método suprime una cuenta de token. Este método sólo puede ser llamado por un
Token Admin
del código de cadena o un Org Admin
de la organización especificada. Después de eliminar una cuenta, no puede completar ninguna operación que actualice la cuenta. La cuenta eliminada tiene un estado final y no se puede cambiar a ningún otro estado. Para suprimir una cuenta, el saldo de cuenta y el saldo retenido deben ser cero.
-
@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);
}
- Parámetros:
token_id: string
: ID del token.
org_id: string
: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una vez realizada correctamente, una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de valor de retorno:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "deleted"
}