TypeScript Metodi per lo stato del conto token ERC-1155

Blockchain App Builder genera automaticamente metodi che è possibile utilizzare per gestire lo stato dell'account per i token che utilizzano lo standard ERC-1155 esteso.

È possibile utilizzare i metodi riportati di seguito per impostare gli account utente token negli stati attivi, sospesi o eliminati.

Quando un account viene sospeso, l'utente dell'account non può completare alcuna operazione di scrittura, che include conio, masterizzazione e trasferimento di token. Inoltre, gli altri utenti non possono trasferire i token a un account sospeso. Un account sospeso può comunque completare le operazioni di lettura.

Impossibile eliminare un conto con un saldo token diverso da zero. È necessario trasferire o masterizzare tutti i token in un account prima di poter eliminare l'account. Dopo che un conto è stato eliminato, non è possibile ripristinare lo stato attivo o sospeso.

Metodi di stato conto generati automaticamente

getAccountStatus
Questo metodo recupera lo stato corrente dell'account token. Questo metodo può essere chiamato dal Token Admin del codice concatenato o dal proprietario dell'account 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);
    }
  }
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId ?: string: per un account token non fungibile, una stringa vuota. Per un account token fungibile, l'ID token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token. Se non viene trovato alcuno stato nel libro contabile per il conto perché il conto è stato creato prima che la funzionalità di stato del conto fosse disponibile, lo stato viene elencato come active nella risposta.
Esempio di valore restituito:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Questo metodo recupera la cronologia dello stato dell'account. Questo metodo può essere chiamato dal Token Admin del codice concatenato o dal proprietario dell'account 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;
  }
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId ?: string: per un account token non fungibile, una stringa vuota. Per un account token fungibile, l'ID token.
Restituisce:
  • In caso di operazione riuscita, la cronologia dello stato dell'account in formato JSON.
Esempio di valore restituito:
[
  {
    "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
Questo metodo attiva un account token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Impossibile attivare gli account eliminati. Per tutti i conti creati prima della disponibilità della funzionalità di stato del conto, è necessario chiamare questo metodo per impostare lo stato del conto su 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);
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId ?: string: per un account token non fungibile, una stringa vuota. Per un account token fungibile, l'ID token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
Esempio di valore restituito:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
Questo metodo sospende un account token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Dopo la sospensione di un conto, non è possibile completare le operazioni che lo aggiornano. Impossibile sospendere un account eliminato.
@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);
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId ?: string: per un account token non fungibile, una stringa vuota. Per un account token fungibile, l'ID token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
Esempio di valore restituito:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
Questo metodo elimina un account token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Dopo l'eliminazione di un account, non è possibile completare le operazioni che lo aggiornano. L'account eliminato è in uno stato finale e non può essere modificato in nessun altro stato. Per eliminare un conto, il saldo del conto deve essere 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);
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId ?: string: per un account token non fungibile, una stringa vuota. Per un account token fungibile, l'ID token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
Esempio di valore restituito:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}

Metodi SDK stato account

getAccountStatus
Questo metodo recupera lo stato corrente dell'account token.
Ctx.ERC1155AccountStatus.getAccountStatus(accountId: string)
Parametri:
  • accountId: string: l'ID dell'account token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token. Se non viene trovato alcuno stato nel libro contabile per il conto perché il conto è stato creato prima che la funzionalità di stato del conto fosse disponibile, lo stato viene elencato come active nella risposta.
Esempio di valore restituito:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Questo metodo recupera la cronologia dello stato dell'account.
Ctx.ERC1155AccountStatus.history(statusId: string)
Parametri:
  • statusId: string: l'ID dell'oggetto stato conto.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON della cronologia dello stato dell'account.
Esempio di valore restituito:
[
  {
    "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
Questo metodo attiva un account token. Per tutti i conti creati prima della disponibilità della funzionalità di stato del conto, è necessario chiamare questo metodo per impostare lo stato del conto su active.
Ctx.ERC1155Account.activateAccount(tokenAccountId: string)
Parametri:
  • tokenAccountId: string: l'ID dell'account token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dell'oggetto stato account per l'account token specificato.
Esempio di valore restituito:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
Questo metodo sospende un account token.
Ctx.ERC1155Account.suspendAccount(tokenAccountId: string)
Parametri:
  • tokenAccountId: string: l'ID dell'account token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dell'oggetto stato account per l'account token specificato.
Esempio di valore restituito:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
Questo metodo elimina un account token.
Ctx.ERC1155Account.deleteAccount(tokenAccountId: string)
Parametri:
  • tokenAccountId: string: l'ID dell'account token.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dell'oggetto stato account per l'account token specificato.
Esempio di valore restituito:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}