ERC-20 - APIs do Contrato da Conta

Você pode usar os seguintes métodos de controle de identidade e acesso em contratos de conta ERC-20.

Métodos de Gerenciamento de Contas

createAccount
Este método cria uma conta para um usuário especificado. Uma conta deve ser criada para qualquer usuário que tenha tokens a qualquer momento. As contas rastreiam saldos e saldos em retenção. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
Parâmetros:
  • userId: string – O nome de usuário ou ID de e-mail do usuário. O ID do usuário não deve ser uma string vazia.
  • orgId: string – O ID do provedor de serviços de associação (MSP) do usuário na organização atual. O ID da organização não deve ser uma string vazia.
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
  • maxDailyAmount: int256 – A quantidade máxima de tokens que podem ser usados em transações diariamente. Se o valor for -1, não haverá limite.
  • maxDailyTransactions: int256 – O número máximo de transações que podem ser concluídas diariamente. Se o valor for -1, não haverá limite.
  • applicationGroups: string[] – Uma lista de grupos de aplicativos aos quais o usuário pertence.
deleteAccount
Este método exclui a conta do usuário especificado. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
getAccountStatus
Este método obtém o status da conta atual do usuário especificado. Esse método pode ser chamado pelo Token Admin ou Token Auditor, um Org Admin da organização especificada ou pelo proprietário da conta de token.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor do objeto AccountStatus enum, 0, 1 ou 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Este método obtém a conta do usuário especificado. Esse método pode ser chamado pelo Token Admin ou Token Auditor, um Org Admin da organização especificada ou pelo proprietário da conta de token.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Exemplo de Valor de Retorno:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50,
          "applicationGroups":[]                
    },
	"status":0
}
getAllAccounts
Este método obtém todas as contas, com saída paginada. Esse método só pode ser chamado pelo Token Admin ou pelo Token Auditor.
Parâmetros:
  • offset: uint256 – O índice de compensação que indica onde começar a obter informações da conta.
  • limit: uint256 – O número de itens a serem devolvidos.
Retorna:
  • Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
Exemplo de Valor de Retorno:
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50,
		  "applicationGroups":[]           
	},
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
Este método ativa a conta do usuário especificado. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
suspendAccount
Este método ativa a conta do usuário especificado. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
setMaxDailyAmount
Este método define a quantidade máxima de tokens que podem ser usados em transações diariamente pelo usuário especificado. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
Parâmetros:
  • value: int256 – A quantidade máxima de tokens que podem ser usados em transações diariamente.
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
setMaxDailyTransactionCount
Este método define o número máximo de transações que podem ser concluídas diariamente pelo usuário especificado. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
Parâmetros:
  • count: int256 – O número máximo de transações que podem ser concluídas diariamente.
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.

Métodos de Gerenciamento do Admin

addTokenAdmin
Esse método adiciona um Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • adminDetails: object – Um objeto que especifica o ID do usuário, o ID da organização e o endereço da wallet, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Esse método remove um Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
getAllTokenAdmins
Este método obtém informações de conta para todos os usuários Token Admin. Esse método só pode ser chamado por uma Token Admin ou Token Auditor.
Parâmetros:
  • Nenhum
Exemplo de Valor de Retorno:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Este método verifica se um usuário especificado é um Token Admin. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário especificado é um Token Admin.
addOrgAdmin
Esse método adiciona um Org Admin. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • adminDetails: object – Um objeto que especifica o ID do usuário, o ID da organização e o endereço da wallet, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
Esse método remove um Org Admin. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
getAllOrgAdmins
Este método obtém informações de conta para todos os usuários Org Admin. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • Nenhum
Exemplo de Valor de Retorno:
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
Este método verifica se um usuário especificado é um Org Admin. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário especificado é um Org Admin.

Métodos de Gerenciamento de Auditorias

addTokenAuditor
Esse método adiciona um Token Auditor. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • auditorDetails: object – Um objeto que especifica o ID do usuário, o ID da organização e o endereço da wallet, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
Esse método remove um Token Auditor. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
getAllTokenAuditors
Este método obtém informações de conta para todos os usuários Token Auditor. Esse método só pode ser chamado por uma Token Admin ou Token Auditor.
Parâmetros:
  • Nenhum
Exemplo de Valor de Retorno:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
Este método verifica se um usuário especificado é um Token Auditor. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário especificado é um Token Auditor.
addOrgAuditor
Esse método adiciona um Org Auditor. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • adminDetails: object – Um objeto que especifica o ID do usuário, o ID da organização e o endereço da wallet, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
Esse método remove um Org Auditor. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
getAllOrgAuditors
Este método obtém informações de conta para todos os usuários Org Auditor. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • Nenhum
Exemplo de Valor de Retorno:
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
Este método verifica se um usuário especificado é um Org Auditor. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário especificado é um Org Auditor.

Métodos de Gerenciamento de Atribuições

addRole
Este método adiciona uma atribuição a um usuário especificado. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
  • role: string – O nome da função a ser adicionada para o usuário especificado, como minter, burner ou notary.
removeRole
Este método remove uma atribuição do usuário especificado. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
  • role: string – O nome da função a ser removida para o usuário especificado, como minter, burner ou notary.
isInRole
Este método verifica se um usuário tem uma função especificada. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • role: string – O nome da atribuição a ser verificado para o usuário especificado, como minter, burner ou notary.
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário tem a função especificada.
hasRole
Este método verifica se um usuário tem uma função especificada. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • account: string – O endereço da wallet do usuário, que não deve ser zero.
  • role: bytes32 – O nome da atribuição a ser verificado para o usuário especificado, como minter, burner ou notary.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário tem a função especificada.

Métodos de Gerenciamento de Contexto

setContext
Este método define o endereço do contrato de token para o contrato da conta. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • tokenAddress: address – O endereço do contrato do token implantado, que não deve ser zero.
getContext
Este método obtém o endereço do contrato de token para o contrato da conta. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
Retorna
  • O endereço do contrato de token
setGovernanceContext
Este método define o contrato de governança a ser usado para gerenciar o ciclo de vida de governança do contrato da conta. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • uuid: string – O ID exclusivo definido pelos ativos digitais Token Admin antes da implantação do contrato.
  • governance: address – O endereço do contrato de governança implantado, que não deve ser zero.
getGovernanceContext
Este método obtém os detalhes do contexto de governança. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
Retorna
  • Um objeto governanceContext.
Exemplo de Valor de Retorno:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Este método verifica se a implantação está ativa. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se a implantação está ativa.