Blockchain App Builder genera automáticamente métodos para gestionar el estado de la cuenta de token. Los métodos de controlador deben ser públicos para poder ser invocados. Los nombres de métodos públicos comienzan con un carácter en mayúscula. Los nombres de métodos que comienzan con un carácter en minúscula son privados.
-
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 cadena, 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 cadena existente que se actualiza a una versión más reciente.
-
func (t *Controller) GetAccountStatus(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.Get", "TOKEN", map[string]string{"account_id": account_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
accountStatus, err := t.Ctx.AccountStatus.GetAccountStatus(account_id)
if err != nil {
return t.Ctx.AccountStatus.GetDefaultAccountStatus(account_id)
}
return accountStatus, nil
}
- Parámetros:
token_id: string: ID del token.
org_id: string: ID del proveedor de servicios de afiliación (MSP) del usuario de la organización actual.
user_id: string: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- En caso de éxito, un mensaje que incluye detalles del estado de la cuenta de token.
- Ejemplo de valor devuelto:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "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 cadena, un Org Admin de la organización especificada o por el propietario de la cuenta de token.
-
func (t *Controller) GetAccountStatusHistory(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
_, err = t.Ctx.Account.GetAccount(account_id)
if err != nil {
return nil, fmt.Errorf("error in GetAccountStatusHistory: %s", err)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.Get", "TOKEN", map[string]string{"account_id": account_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
status_id, err := t.Ctx.AccountStatus.GenerateAccountStatusId(account_id)
if err != nil {
return nil, err
}
account_status_history, err := t.Ctx.AccountStatus.History(status_id)
if err != nil {
return []map[string]interface{}{}, nil
}
return account_status_history, nil
}
- Parámetros:
token_id: string: ID del token.
org_id: string: ID del proveedor de servicios de afiliación (MSP) del usuario de la organización actual.
user_id: string: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- En caso de éxito, un mensaje que incluye detalles del historial de estado de la cuenta.
- Ejemplo de valor devuelto:
[
{
"IsDelete": "false",
"Timestamp": "2022-12-02T16:20:34+05:30",
"TxId": "af1601c7a14b4becf4bb3b285d85553b39bf234caaf1cd488a284a31a2d9df78",
"Value": {
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"AssetType": "oaccountStatus",
"Status": "suspended",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
}
},
{
"IsDelete": "false",
"Timestamp": "2022-12-02T16:19:15+05:30",
"TxId": "4b307b989063e43add5357ab110e19174d586b9746cc8a30c9aa3a2b0b48a34e",
"Value": {
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"AssetType": "oaccountStatus",
"Status": "active",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
}
}
]
-
ActivateAccount
- Este método activa una cuenta de token. Este método solo puede ser llamado por un
Token Admin del código de cadena o por un Org Admin de la organización especificada. Las cuentas eliminadas no se pueden activar.
-
func (t *Controller) ActivateAccount(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.ActivateAccount", "TOKEN", map[string]string{"org_id": org_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.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 de la organización actual.
user_id: string: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una vez realizado correctamente, una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de valor devuelto:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "active"
}
-
SuspendAccount
- Este método suspende una cuenta de token. Las cuentas suspendidas aún pueden completar las operaciones de lectura. Los usuarios con cuentas suspendidas no pueden enviar, recibir, acuñar ni quemar tokens. Este método solo puede ser llamado por un
Token Admin del código de cadena o por 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 eliminada.
-
func (t *Controller) SuspendAccount(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.SuspendAccount", "TOKEN", map[string]string{"org_id": org_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.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 de la organización actual.
user_id: string: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una vez realizado correctamente, una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de valor devuelto:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "suspended"
}
-
DeleteAccount
- Este método suprime una cuenta de token. Este método solo puede ser llamado por un
Token Admin del código de cadena o por 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 eliminar una cuenta, el saldo de cuenta y el saldo retenido deben ser cero.
-
func (t *Controller) DeleteAccount(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.DeleteAccount", "TOKEN", map[string]string{"org_id": org_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.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 de la organización actual.
user_id: string: nombre de usuario o ID de correo electrónico del usuario.
- Devuelve:
- Una vez realizado correctamente, una representación JSON del objeto de estado de cuenta para la cuenta de token especificada.
- Ejemplo de valor devuelto:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "deleted"
}