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. Este método puede ser llamado por el
Token Admin
del código de cadenas, un Org Admin
de la organización especificada o por el propietario de la cuenta de token. Este método también admite la migración de datos para el código de cadenas existente que se actualiza 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 afiliación (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 estado de la cuenta del token.
- Ejemplo de Valor de Devolución:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
getAccountStatusHistory
- Este método obtiene el historial del estado de la cuenta. Este método puede ser llamado por el
Token Admin
del código de cadenas, un Org Admin
de la organización especificada o por el propietario de la cuenta de token.
-
@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 afiliación (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 Devolución:
[
{
"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 solo lo puede llamar un
Token Admin
del código de cadenas o un Org Admin
de la organización especificada. No se pueden activar las cuentas suprimidas.
-
@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 afiliación (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de Valor de Devolución:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
suspendAccount
- Este método suspende una cuenta de token. Este método solo lo puede llamar un
Token Admin
del código de cadenas 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. No se puede suspender una cuenta suprimida.
-
@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 afiliación (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de Valor de Devolución:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
-
deleteAccount
- Este método suprime una cuenta de token. Este método solo lo puede llamar un
Token Admin
del código de cadenas o un Org Admin
de la organización especificada. Después de suprimir una cuenta, no puede completar ninguna operación que actualice la cuenta. La cuenta suprimida tiene el 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 afiliación (MSP) del usuario en la organización actual.
user_id: string
: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de Valor de Devolución:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "deleted"
}