-
GetAccountStatus
- Este 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 provedor de serviços 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:
- Em caso de sucesso, 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 provedor de serviços 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:
- Em caso de sucesso, 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 só pode ser chamado por um
Token Admin
do chaincode. Contas excluídas não podem ser ativadas. Para todas as contas criadas antes de a 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 provedor de serviços 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:
- Em caso de sucesso, 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 só pode ser chamado por um
Token Admin
do chaincode. Depois que uma conta é suspensa, você não pode 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 provedor de serviços 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:
- Em caso de sucesso, 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 só pode ser chamado por um
Token Admin
do chaincode. Depois que uma conta é excluída, não é possível 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 provedor de serviços 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:
- Em caso de sucesso, 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"
}