-
GetAccountStatus
- Esse método obtém o status atual da conta de token. Esse método pode ser chamado pelo
Token Admin
do chaincode ou pelo proprietário da conta do token.
-
func (t *Controller) GetAccountStatus(orgId string, userId string) (interface{}, error) {
accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
if err != nil {
return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
}
auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.Get", "TOKEN", map[string]string{"accountId": accountId})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
accountStatus, err := t.Ctx.ERC721AccountStatus.GetAccountStatus(accountId)
if err != nil {
return t.Ctx.ERC721AccountStatus.GetDefaultAccountStatus(accountId)
}
return accountStatus, nil
}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
userId: string
– O nome de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token. Se nenhum status for encontrado no razão da conta porque a conta foi criada antes da funcionalidade de status da conta estar disponível, o status será listado como
active
na resposta.
- Exemplo de valor de retorno:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "active"
}
-
GetAccountStatusHistory
- Este método obtém o histórico do status da conta. Esse método pode ser chamado pelo
Token Admin
do chaincode ou pelo proprietário da conta do token.
-
func (t *Controller) GetAccountStatusHistory(orgId string, userId string) (interface{}, error) {
accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
if err != nil {
return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
}
_, err = t.Ctx.ERC721Account.GetAccount(accountId)
if err != nil {
return nil, fmt.Errorf("error in GetAccountStatusHistory: %s", err)
}
auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.Get", "TOKEN", map[string]string{"accountId": accountId})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
statusId, err := t.Ctx.ERC721AccountStatus.GenerateAccountStatusId(accountId)
if err != nil {
return nil, err
}
accountStatusHistory, err := t.Ctx.ERC721AccountStatus.History(statusId)
if err != nil {
return []map[string]interface{}{}, nil
}
return accountStatusHistory, nil
}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
userId: string
– O nome de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, o histórico de status da conta no formato JSON.
- Exemplo de valor de retorno:
[
{
"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 ativa uma conta de token. Este método pode ser chamado somente por um
Token Admin
do chaincode. As contas excluídas não podem ser ativadas. Para todas as contas criadas antes da funcionalidade de status da conta estar disponível, você deve chamar esse método para definir o status da conta como active
.
-
func (t *Controller) ActivateAccount(orgId string, userId string) (interface{}, error) {
accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
if err != nil {
return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
}
auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.ActivateAccount", "TOKEN")
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.Ctx.ERC721Account.ActivateAccount(accountId)
}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
userId: string
– O nome de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de valor de retorno:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "active"
}
-
SuspendAccount
- Este método suspende uma conta de token. Este método pode ser chamado somente por um
Token Admin
do chaincode. Depois que uma conta for suspensa, você não poderá concluir nenhuma operação que atualize a conta. Uma conta excluída não pode ser suspensa.
-
func (t *Controller) SuspendAccount(orgId string, userId string) (interface{}, error) {
accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
if err != nil {
return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
}
auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.SuspendAccount", "TOKEN")
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.Ctx.ERC721Account.SuspendAccount(accountId)
}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
userId: string
– O nome de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de valor de retorno:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "suspended"
}
-
DeleteAccount
- Este método exclui uma conta de token. Este método pode ser chamado somente por um
Token Admin
do chaincode. Depois que uma conta for excluída, você não poderá concluir nenhuma operação que atualize a conta. A conta excluída está em um estado final e não pode ser alterada para nenhum outro estado. Para excluir uma conta, o saldo da conta deve ser zero.
-
func (t *Controller) DeleteAccount(orgId string, userId string) (interface{}, error) {
accountId, err := t.Ctx.ERC721Account.GenerateAccountId(orgId, userId)
if err != nil {
return nil, fmt.Errorf("error in getting the generating accountId of (Org-Id: %s, User-Id: %s)", orgId, userId)
}
auth, err := t.Ctx.ERC721Auth.CheckAuthorization("ERC721AccountStatus.DeleteAccount", "TOKEN")
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.Ctx.ERC721Account.DeleteAccount(accountId)
}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
userId: string
– O nome de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de valor de retorno:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "deleted"
}