-
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.
-
@Validator(yup.string(), yup.string(), yup.string())
public async getAccountStatus(orgId: string, userId: string, tokenId ?: string) {
const userAccountId = this.Ctx.ERC1155Account.generateAccountId(orgId, userId, ACCOUNT_TYPE.USER_ACCOUNT);
let tokenAccount = await this.Ctx.ERC1155Account.getAccount(userAccountId, tokenId);
await this.Ctx.ERC1155Auth.checkAuthorization("ERC1155ACCOUNT_STATUS.get", "TOKEN", { accountId: tokenAccount.accountId });
try {
return await this.Ctx.ERC1155AccountStatus.getAccountStatus(tokenAccount.accountId);
} catch (err) {
return await this.Ctx.ERC1155AccountStatus.getDefaultAccountStatus(tokenAccount.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.
tokenId ?: string
– Para uma conta de token não fungível, uma string vazia. Para uma conta de token fungível, o ID do token.
- 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.
-
public async getAccountStatusHistory(orgId: string, userId: string, tokenId ?: string) {
const userAccountId = this.Ctx.ERC1155Account.generateAccountId(orgId, userId, ACCOUNT_TYPE.USER_ACCOUNT);
let tokenAccount = await this.Ctx.ERC1155Account.getAccount(userAccountId, tokenId);
await this.Ctx.ERC1155Auth.checkAuthorization("ERC1155ACCOUNT_STATUS.history", "TOKEN", { accountId: tokenAccount.accountId });
const status_id = await this.Ctx.ERC1155AccountStatus.generateAccountStatusId(tokenAccount.accountId);
let accountStatusHistory: any;
try {
accountStatusHistory = await this.Ctx.ERC1155AccountStatus.history(status_id);
} catch (err) {
return [];
}
return accountStatusHistory;
}
- 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.
tokenId ?: string
– Para uma conta de token não fungível, uma string vazia. Para uma conta de token fungível, o ID do token.
- Retorna:
- Com êxito, o histórico de status da conta no formato JSON.
- Exemplo de valor de retorno:
[
{
"trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
"timeStamp": "2022-12-02T10:39:14.000Z",
"value": {
"assetType": "oaccountStatus",
"statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
},
{
"trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
"timeStamp": "2022-12-02T10:37:50.000Z",
"value": {
"assetType": "oaccountStatus",
"statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
}
]
-
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
.
-
@Validator(yup.string(), yup.string(), yup.string())
public async activateAccount(orgId: string, userId: string, tokenId ?: string) {
await this.Ctx.ERC1155Auth.checkAuthorization("ERC1155ACCOUNT_STATUS.activateAccount", "TOKEN");
const userAccountId = this.Ctx.ERC1155Account.generateAccountId(orgId, userId, ACCOUNT_TYPE.USER_ACCOUNT);
let tokenAccount = await this.Ctx.ERC1155Account.getAccount(userAccountId, tokenId);
return await this.Ctx.ERC1155Account.activateAccount(tokenAccount.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.
tokenId ?: string
– Para uma conta de token não fungível, uma string vazia. Para uma conta de token fungível, o ID do token.
- 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.
-
@Validator(yup.string(), yup.string(), yup.string())
public async suspendAccount(orgId: string, userId: string, tokenId ?: string) {
await this.Ctx.ERC1155Auth.checkAuthorization("ERC1155ACCOUNT_STATUS.suspendAccount", "TOKEN");
const userAccountId = this.Ctx.ERC1155Account.generateAccountId(orgId, userId, ACCOUNT_TYPE.USER_ACCOUNT);
let tokenAccount = await this.Ctx.ERC1155Account.getAccount(userAccountId, tokenId);
return await this.Ctx.ERC1155Account.suspendAccount(tokenAccount.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.
tokenId ?: string
– Para uma conta de token não fungível, uma string vazia. Para uma conta de token fungível, o ID do token.
- 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.
-
@Validator(yup.string(), yup.string(), yup.string())
public async deleteAccount(orgId: string, userId: string, tokenId ?: string) {
await this.Ctx.ERC1155Auth.checkAuthorization("ERC1155ACCOUNT_STATUS.deleteAccount", "TOKEN");
const userAccountId = this.Ctx.ERC1155Account.generateAccountId(orgId, userId, ACCOUNT_TYPE.USER_ACCOUNT);
let tokenAccount = await this.Ctx.ERC1155Account.getAccount(userAccountId, tokenId);
return await this.Ctx.ERC1155Account.deleteAccount(tokenAccount.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.
tokenId ?: string
– Para uma conta de token não fungível, uma string vazia. Para uma conta de token fungível, o ID do token.
- 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"
}