Pré-Disponibilidade Geral (Pré-GA): 26-02-2026

API de Contrato Inteligente de Solidez

O Oracle Blockchain Platform Enterprise Edition para Hyperledger Besu fornece métodos Solidity que você pode usar para trabalhar com contratos inteligentes Solidity.

A API suporta tokens com base no padrão ERC-20 e no padrão ERC-1155. As implementações ERC-20 e ERC-1155 incluem um contrato inteligente de conta e um contrato inteligente de token. O contrato inteligente da conta fornece métodos de controle de acesso e identidade. O contrato inteligente de token fornece funções especificamente relacionadas a tokens.

ERC-20 - Métodos de Contrato da Conta

Métodos para Gerenciamento de Contas

createAccount
Este método cria uma conta para um usuário especificado. As contas rastreiam o saldo de token e o saldo em espera de um usuário e devem ser criadas para todos os usuários que terão tokens a qualquer momento. Esse método só pode ser chamado por uma Token Admin ou uma Org Admin da organização especificada.
Parâmetros:
  • userId: string – O nome de usuário ou ID de e-mail do usuário. A string do ID do usuário não pode ficar 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 pode ficar vazio.
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • maxDailyAmount: int256 – A quantidade máxima de tokens que podem ser usados em transações diariamente. Se maxDailyAmount for -1, não haverá limite.
  • maxDailyTransactions: int256 – O número máximo de transações que podem ser concluídas diariamente. Se maxDailyTransactions for -1, não haverá limite.
deleteAccount
Este método exclui a conta de um usuário especificado. Uma conta só poderá ser excluída se o saldo do token for zero. Esse método só pode ser chamado por uma Token Admin ou uma Org Admin da organização especificada.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAccountStatus
Este método obtém o status atual da conta especificada. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin da organização especificada ou pelo usuário especificado.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • Um valor para o objeto enum AccountStatus, 0, 1 ou 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Este método obtém as informações da conta de um usuário especificado. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin da organização especificada ou pelo usuário especificado.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode 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           
	},
	"status":0
}
getAllAccounts
Este método obtém as informações da conta para todas as contas que se enquadram em um intervalo especificado. Esse método só pode ser chamado por uma Token Admin ou Token Auditor.
Parâmetros:
  • offset: uint256 – O índice de compensação do qual as contas serão obtidas.
  • limit: uint256 – O número de itens a serem recuperados.
Exemplo de Valor de Retorno:
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50           
	},
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
Este método ativa uma conta de usuário. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
suspendAccount
Este método suspende uma conta de usuário. Para excluir uma conta, o saldo da conta deve ser zero. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
setMaxDailyAmount
Este método define a quantidade máxima de tokens que podem ser usados em transações diariamente. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • count: int256 – A quantidade máxima de tokens que podem ser usados em transações diariamente.
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
setMaxDailyTransactionCount
Este método define o número máximo de transações que podem ser concluídas diariamente. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • value: int256 – O número máximo de transações que podem ser concluídas diariamente.
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.

Métodos para Gerenciamento do Administrador

addTokenAdmin
Esse método adiciona um usuário como Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • adminDetails: JSON – Um objeto que contém detalhes sobre o usuário a ser adicionado como um Token Admin, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Esse método remove um usuário como Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAllTokenAdmins
Esse método retorna uma lista de todos os usuários que são um Token Admin. Esse método só pode ser chamado pelo Token Admin ou pelo Token Auditor.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Este método verifica se o 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: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • O método retornará true se o usuário especificado for um Token Admin, caso contrário, retornará false.
addOrgAdmin
Esse método adiciona um usuário como Org Admin. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • adminDetails: JSON – Um objeto que contém detalhes sobre o usuário a ser adicionado como uma Org Admin, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
Esse método remove um usuário como Org Admin. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAllOrgAdmins
Esse método retorna uma lista de todos os usuários que são um Org Admin. Esse método só pode ser chamado pelo Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
Este método verifica se o 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: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • O método retornará true se o usuário especificado for um Org Admin, caso contrário, retornará false.

Métodos para Gerenciamento de Auditor

addTokenAuditor
Esse método adiciona um usuário como Token Auditor. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • adminDetails: JSON – Um objeto que contém detalhes sobre o usuário a ser adicionado como um Token Auditor, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
Esse método remove um usuário como Token Auditor. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAllTokenAuditors
Esse método retorna uma lista de todos os usuários que são um Token Auditor. Esse método só pode ser chamado pelo Token Admin ou pelo Token Auditor.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
Este método verifica se o usuário especificado é um Token Auditor. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • O método retornará true se o usuário especificado for um Token Auditor, caso contrário, retornará false.
addOrgAuditor
Esse método adiciona um usuário como Org Auditor. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • adminDetails: JSON – Um objeto que contém detalhes sobre o usuário a ser adicionado como uma Org Auditor, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
Esse método remove um usuário como Org Auditor. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAllOrgAuditors
Esse método retorna uma lista de todos os usuários que são um Org Auditor. Esse método só pode ser chamado pelo Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
Este método verifica se o usuário especificado é um Org Auditor. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • O método retornará true se o usuário especificado for um Org Auditor, caso contrário, retornará false.

Métodos para 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: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • role: string – O nome da função a ser adicionada ao usuário especificado. Por exemplo, minter, burner ou notary.
removeRole
Este método remove uma atribuição de 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: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • role: string – O nome da atribuição a ser removida do usuário especificado. Por exemplo, minter, burner ou notary.
accountHasRole
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 hash Keccak-256 do nome da atribuição (minter, burner ou notary) a ser pesquisada.
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • O método retornará true se o usuário tiver a atribuição especificada; caso contrário, retornará false.

Métodos de Contrato de Token ERC-20

Métodos para Gerenciamento de Configuração de Token

__ERC20Token_init
Esse método é chamado quando o contrato de token é implantado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • name: string – O nome do token.
  • symbol: string – O símbolo do token.
  • accountContract: address – O endereço do contrato da conta.
initializeERC20Token
Este método inicializa um token ERC-20. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • token: JSON – Um objeto que define o token, conforme mostrado no exemplo a seguir.
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
Este método obtém detalhes de um token. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
decimals
Este método obtém o valor decimal de um token. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
Retorna
  • Um valor uint8 da quantidade de casas decimais.
__ERC20Token_init
Este método é chamado quando o contrato de token é implantado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • name: string – O nome do token.
  • symbol: string – O símbolo do token.
  • accountContract: address – O endereço do contrato da conta.
initializeERC20Token
Este método inicializa um token ERC-20. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • token: JSON – Um objeto que define o token, conforme mostrado no exemplo a seguir.
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
Este método obtém detalhes de um token. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
cap
Este método obtém o suprimento de token máximo (cap). Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
Retorna
  • Um valor uint256 do limite de suprimento do token.
balanceOf
Este método obtém o saldo do token para o usuário especificado. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin, Org Auditor ou pelo usuário especificado.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna
  • Um valor uint256 do saldo do token.
Gerenciamento de Comportamento de Token - Comportamento de Mintable
mint
Este método cria tokens (mints). Esse método pode ser chamado por qualquer usuário com a função de mineiro.
Parâmetros:
  • to: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • value: uint256 – A quantidade de tokens para hortelã.
batchMint
Este método cria tokens (mints) para mais de um usuário por vez. Esse método pode ser chamado por qualquer usuário com a função de mineiro.
Parâmetros:
  • toList: address[] – A lista de endereços da wallet dos usuários. Os endereços não podem ser zero.
  • amounts: uint256[] – A lista de quantidades de tokens para hortelã.
requestMint
Este método pode ser chamado por um mineiro para enviar uma solicitação ao notário para criar uma quantidade especificada de tokens.
Parâmetros:
  • notary: address – O endereço da wallet do notário. O endereço não pode ser zero.
  • amount: uint256 – A quantidade de tokens para hortelã.
  • expiration: uint256 – O tempo de expiração da solicitação no formato de época.
  • opId: string – O ID da operação da solicitação.
  • info: InfoDetails – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.
approveMint
Este método pode ser chamado por um notário para aprovar uma solicitação de cunhagem.
Parâmetros:
  • opId: string – O ID da operação da solicitação.
rejectMint
Este método pode ser chamado por um notário para rejeitar uma solicitação de cunhagem.
Parâmetros:
  • opId: string – O ID da operação da solicitação.

Token Behavior Management - Comportamento Queimável

burn
Este método desativa tokens (queimações). Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • account: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • value: uint256 – A quantidade de tokens a serem gravados.
batchBurn
Este método grava tokens para mais de um usuário por vez. Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • toList: address[] – A lista de endereços da wallet dos usuários. Os endereços não podem ser zero.
  • amounts: uint256[] – A lista de quantidades de tokens a serem gravadas.
requestBurn
Este método pode ser chamado por um queimador para enviar uma solicitação ao notário para queimar uma quantidade especificada de tokens.
Parâmetros:
  • notary: address – O endereço da wallet do notário. O endereço não pode ser zero.
  • amount: uint256 – A quantidade de tokens a serem gravados.
  • expiration: uint256 – O tempo de expiração da solicitação no formato de época.
  • opId: string – O ID da operação da solicitação.
  • info: InfoDetails – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.
approveBurn
Este método pode ser chamado por um notário para aprovar uma solicitação de gravação.
Parâmetros:
  • opId: string – O ID da operação da solicitação.
rejectBurn
Este método pode ser chamado por um notário para rejeitar uma solicitação de gravação.
Parâmetros:
  • opId: string – O ID da operação da solicitação.

Gerenciamento de Comportamento de Token - Comportamento Transferível

transfer
Este método transfere tokens para um usuário especificado. Este método pode ser chamado por qualquer usuário com tokens.
Parâmetros:
  • to: address – O endereço da wallet do receptor. O endereço não pode ser zero.
  • value: uint256 – A quantidade de tokens a serem transferidos.
batchTransfer
Este método transfere tokens para uma lista especificada de usuários. Este método pode ser chamado por qualquer usuário com tokens.
Parâmetros:
  • toList: address[] – A lista de endereços da wallet dos destinatários. Os endereços não podem ser zero.
  • amounts: uint256[] – A lista de quantidades de tokens a serem transferidos.

Gerenciamento de Comportamento de Token - Comportamento Delegável

allowance
Este método delega gastos de token a um usuário especificado. Este método pode ser chamado por qualquer usuário com tokens.
Parâmetros:
  • owner: address – O endereço da wallet do proprietário que está delegando o gasto de tokens. O endereço não pode ser zero.
  • spender: address – O endereço da wallet do gastador de token. O endereço não pode ser zero.
Retorna
  • Um valor uint256 dos tokens que foram delegados para gastos.
approve
Este método aprova a quantidade de tokens para um gastador delegado especificado. Este método pode ser chamado por qualquer usuário com tokens.
Parâmetros:
  • spender: address – O endereço da wallet do gastador de token. O endereço não pode ser zero.
  • value: uint256 – A quantidade de tokens que o gastador tem permissão de gastar.
transferFrom
Os gastadores delegados usam esse método para transferir tokens.
Parâmetros:
  • from: address – O endereço da wallet do remetente. O endereço não pode ser zero.
  • to: address – O endereço da wallet do receptor. O endereço não pode ser zero.
  • value: uint256 – A quantidade de tokens a serem transferidos.

Gerenciamento de Comportamento de Token - Comportamento Pausável

isPaused
Este método verifica se o contrato está pausado. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • nenhuma
pause
Este método pausa o contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • nenhuma
unpause
Este método retoma o contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • nenhuma

Gerenciamento de Comportamento de Token - Comportamento de Retenção

hold
Este método cria uma retenção em nome do proprietário do token. Este método pode ser chamado por qualquer usuário com tokens.
Parâmetros:
  • to: address – O endereço da wallet do receptor. O endereço não pode ser zero.
  • notary: address – O endereço da wallet do notário. O endereço não pode ser zero.
  • amount: uint256 – A quantidade de tokens a serem transferidos.
  • expiration: uint256 – O tempo de expiração da solicitação no formato de época.
  • opId: string – O ID da operação da solicitação.
  • holdType: string – O tipo de retenção. Por exemplo, transfer.
  • info: InfoDetails – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.
executeHold
Este método aprova uma solicitação de retenção. Este método só pode ser chamado pelo notário especificado anteriormente.
Parâmetros:
  • amount: uint256 – A quantidade de tokens a serem aprovados.
  • opId: string – O ID da operação da solicitação.
releaseHold
Este método rejeita uma solicitação de retenção. Este método só pode ser chamado pelo notário especificado anteriormente.
Parâmetros:
  • opId: string – O ID da operação da solicitação.
getOnHoldBalanceWithOperationId
Este método retorna o saldo em retenção para um ID de operação especificado. Este método pode ser chamado por um Token Admin ou Token Auditor, Org Admin ou Org Auditor da organização especificada ou por um participante da transação (remetente, destinatário, notário).
Parâmetros:
  • opId: string – O ID da operação da solicitação.
Retorna
  • Um valor uint256 do saldo em retenção.
getAccountOnHoldBalance
Este método retorna o saldo em retenção de uma conta especificada. Este método pode ser chamado por um Token Admin ou Token Auditor, Org Admin ou Org Auditor da organização especificada ou por um participante da transação (remetente, destinatário, notário).
Parâmetros:
  • account: address – O endereço da wallet da conta. O endereço não pode ser zero.
Retorna
  • Um valor uint256 do saldo em retenção.

ERC-1155 - Métodos de Contrato da Conta

Métodos para Gerenciamento de Contas

createAccount
Este método cria uma conta para um usuário especificado. As contas rastreiam o saldo do token de um usuário e devem ser criadas para todos os usuários que terão tokens a qualquer momento. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userId: string – O nome de usuário ou ID de e-mail do usuário. A string do ID do usuário não pode ficar 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 pode ficar vazio.
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
deleteAccount
Este método exclui a conta de um usuário especificado. Uma conta só poderá ser excluída se o saldo do token for zero. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAccountStatus
Este método obtém o status atual da conta especificada. Esse método só pode ser chamado por um Token Admin ou pelo usuário especificado.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • Um valor para o objeto enum AccountStatus, 0, 1 ou 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Este método obtém as informações da conta de um usuário especificado. Esse método só pode ser chamado por um Token Admin ou pelo usuário especificado.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Exemplo de Valor de Retorno:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}
getAllAccounts
Este método obtém as informações da conta para todas as contas que se enquadram em um intervalo especificado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • offset: uint256 – O índice de compensação do qual as contas serão obtidas.
  • limit: uint256 – O número de itens a serem recuperados.
Exemplo de Valor de Retorno:
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
Este método ativa uma conta de usuário. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
suspendAccount
Este método suspende uma conta de usuário. Para excluir uma conta, o saldo da conta deve ser zero. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.

Métodos para Gerenciamento do Administrador

addTokenAdmin
Esse método adiciona um usuário como Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • adminDetails: JSON – Um objeto que contém detalhes sobre o usuário a ser adicionado como um Token Admin, conforme mostrado no exemplo a seguir.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Esse método remove um usuário como Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
getAllTokenAdmins
Esse método retorna uma lista de todos os usuários que são um Token Admin. Esse método só pode ser chamado pelo Token Admin.
Parâmetros:
  • nenhuma
Exemplo de Valor de Retorno:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Este método verifica se o usuário especificado é um Token Admin. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
Retorna:
  • O método retornará true se o usuário especificado for um Token Admin, caso contrário, retornará false.

Métodos para 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 um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • role: string – O nome da função a ser adicionada ao usuário especificado. Por exemplo, minter, burner ou notary.
  • scopeId: uint256 – O ID de classe do token não fungível (NFT) ou o ID do token fungível.
removeRole
Este método remove uma atribuição de 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: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • role: string – O nome da atribuição a ser removida do usuário especificado. Por exemplo, minter, burner ou notary.
  • scopeId: uint256 – O ID de classe do token não fungível (NFT) ou o ID do token fungível.
accountHasRole
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 hash Keccak-256 do nome da atribuição (minter, burner ou notary) a ser pesquisada.
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • scopeId: uint256 – O ID de classe do token não fungível (NFT) ou o ID do token fungível.
Retorna:
  • O método retornará true se o usuário tiver a atribuição especificada; caso contrário, retornará false.
addTokenSysRole
Esse método adiciona a atribuição TOKEN_SYS_VAULT_ROLE a um usuário especificado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • role: string – A única função suportada é TOKEN_SYS_VAULT_ROLE.
Retorna:
  • O método retornará true se a atribuição tiver sido adicionada com sucesso; caso contrário, retornará false.
removeTokenSysRole
Esse método remove a atribuição TOKEN_SYS_VAULT_ROLE de um usuário especificado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • role: string – A única função suportada é TOKEN_SYS_VAULT_ROLE.
Retorna:
  • O método retornará true se a atribuição tiver sido removida com sucesso; caso contrário, retornará false.
transferTokenSysRole
Esse método transfere a atribuição TOKEN_SYS_VAULT_ROLE de um usuário para outro. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • fromAddress: address – O endereço da wallet do remetente. O endereço não pode ser zero.
  • toAddress: address – O endereço da wallet do receptor. O endereço não pode ser zero.
  • role: string – A única função suportada é TOKEN_SYS_VAULT_ROLE.
Retorna:
  • O método retornará true se a atribuição tiver sido diferida com sucesso; caso contrário, retornará false.

ERC-1155 - Métodos de Contrato de Token

Métodos para Gerenciamento de Configuração de Token

__ERC1155Token_init
Esse método é chamado quando o contrato de token é implantado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • accountContract: address – O endereço do contrato da conta.
  • uri: string – O URI do tipo de token.
saveNFTClass
Este método salva as informações da classe NFT no razão. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • classinfo: JSON – O objeto de informações da classe de conta NFT. O código a seguir mostra um exemplo para um NFT inteiro.
    {
        "nftClassId": (BigInt(1)),
        "tokenName": "ArtCollection2",
        "tokenDesc": "this is art collection contract",
        "tokenStandard": "erc1155",
        "tokenUnit": 0,
        "behaviors": ["mintable", "burnable", "transferable", "roles", "indivisible"],
        "divisible": { "decimals": 0 },
        "mintable": { "maxMintQuantity": 2 }
    }
    O código a seguir mostra um exemplo de um NFT fracionário.
    {
      "nftClassId": (BigInt(0)),
      "tokenName": "ArtCollection",
      "tokenDesc": "this is art collection contract",
      "tokenStandard": "erc1155",
      "tokenUnit": 1,
      "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
      "divisible": { "decimals": 0 },
      "mintable": { "maxMintQuantity": 1 }
    }
createNonFungibleToken
Este método cunha NFTs. Esse método só pode ser chamado por um usuário com a função de mineiro.
Parâmetros:
  • tokenId: uint256 – O ID do token do NFT, que contém informações da classe NFT. Os 128 primeiros bits do ID representam o ID da classe NFT e os 128 últimos representam o índice exclusivo do NFT.
  • quantity: uint256 – A quantidade de NFTs para hortelã (criar).
createFungibleToken
Esse método é chamado quando o contrato de token é implantado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • token – A definição de token fungível a ser registrada no razão, conforme mostrado no exemplo a seguir.
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
getTokenById
Este método obtém detalhes de um token. Esse método só pode ser chamado por um proprietário de token ou Token Admin.
Parâmetros:
  • token – A definição do token fungível, conforme mostrado no exemplo a seguir.
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
  • metaInfo: bytes – Se o token for fungível, especifique um valor vazio. Se o token for um NFT inteiro, especifique uma versão codificada do objeto struct a seguir.
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Se o token for um NFT fracionário, especifique uma versão codificada do objeto struct a seguir.
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
geTokenDecimals
Este método obtém o valor decimal de um token. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • id: uint256 – O ID do token.
Retorna
  • Um valor uint8 da quantidade de casas decimais.
tokenIdOf
Este método obtém o ID de um token. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • classId: uint256 – O ID da classe NFT.
  • serialId: uint256 – O ID de série na classe NFT.
Retorna
  • Um ID de token uint256.
balanceOf
Este método obtém o saldo do token para o usuário especificado. Esse método só pode ser chamado por um Token Admin ou pelo proprietário do token.
Parâmetros:
  • account: address – O endereço da wallet do usuário. O endereço não pode ser zero.
  • id: uint256 – O ID do token.
Retorna
  • Um valor uint256 do saldo do token.
balanceOfBatch
Este método obtém o saldo do token para uma lista de usuários. Esse método só pode ser chamado por um Token Admin ou pelo proprietário do token.
Parâmetros:
  • account: address[] – Uma lista dos endereços da wallet dos usuários.
  • id: uint256[] – Uma lista de IDs de token.
Retorna
  • Uma lista uint256[] de saldos de token.
exists
Este método verifica se existe um token especificado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • id: uint256 – Um ID de token.
Retorna:
  • O método retornará true se o token especificado existir; caso contrário, retornará false.
totalSupply
Este método verifica o suprimento total de todos os tokens no contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • nenhuma
Retorna:
  • Um valor uint256[] do suprimento total de token.
totalSupply
Este método verifica o suprimento total de um token especificado no contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • id: uint256 – Um ID de token.
Retorna:
  • Um valor uint256[] do suprimento total do token especificado.
Gerenciamento de Comportamento de Token - Comportamento de Mintable
mintBatch
Este método cria tokens ERC-1155 (mints) no modo batch. Os tokens devem ser inicializados. Esse método pode ser chamado por qualquer usuário com a função de mineiro.
Parâmetros:
  • tokenIds: uint256[] – A lista de tokens para hortelã.
  • quantity: uint256[] – A lista de quantidades de token para hortelã.
  • data: byte – Bytes adicionais de dados.

Token Behavior Management - Comportamento Queimável

burnBatch
Este método destrói (queima) tokens ERC-1155 no modo batch. Os tokens devem ser inicializados. Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • tokenIds: uint256[] – A lista de tokens a serem gravados.
  • quantity: uint256[] – A lista de quantidades de token a serem gravadas.
  • data: byte – Bytes adicionais de dados.
burnNFT
Este método destrói (queima) um token não fungível. Os tokens devem ser inicializados. Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • tokenId: uint256 – O ID do token a ser gravado.

Gerenciamento de Comportamento de Token - Comportamento Transferível

safeTransferFrom
Este método transfere tokens de um remetente para um destinatário. Este método pode ser chamado por qualquer usuário que possua tokens.
Parâmetros:
  • from: address – O endereço da wallet do remetente. O endereço não pode ser zero.
  • to: address – O endereço da wallet do receptor. O endereço não pode ser zero.
  • id: uint256 – O ID do token ERC-1155 a ser transferido.
  • value: uint256 – A quantidade de tokens a serem transferidos.
  • data: byte – Bytes adicionais de dados.
safeBatchTransferFrom
Este método transfere tokens de um remetente para um destinatário. Este método pode ser chamado por qualquer usuário que possua tokens.
Parâmetros:
  • from: address – O endereço da wallet do remetente. O endereço não pode ser zero.
  • to: address – O endereço da wallet do receptor. O endereço não pode ser zero.
  • id: uint256 – O ID do token ERC-1155 a ser transferido.
  • value: uint256 – A quantidade de tokens a serem transferidos.
  • data: byte – Bytes adicionais de dados.

Gerenciamento de Comportamento de Token - Comportamento Delegável

setApprovalForAll
Esse método concede ou revoga a permissão de um operador para transferir os tokens do chamador, com base no parâmetro approved. Este método pode ser chamado por qualquer usuário que possua tokens.
Parâmetros:
  • operator: address – O endereço da wallet do operador que está recebendo ou revogando permissões. O endereço não pode ser zero.
  • approved: bool – Um flag booliano indicou se o operador tem permissão para transferir os tokens do chamador.
isApprovedForAll
Este método verifica se um operador está aprovado para transferir tokens para uma conta especificada. Este método pode ser chamado por qualquer usuário que possua tokens.
Parâmetros:
  • account: address – O endereço da wallet dos usuários que concederam ou revogaram permissões ao operador para transferir seus tokens. O endereço não pode ser zero.
  • operator: address – O endereço da wallet do operador que recebeu ou revogou permissões. O endereço não pode ser zero.
Retorna:
  • Um valor booleano que indica se o operador está aprovado para transferir tokens para a conta especificada.

Gerenciamento de Comportamento de Token - Comportamento Pausável

paused
Este método verifica se o contrato está pausado. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • nenhuma
pause
Este método pausa o contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • nenhuma
unpause
Este método retoma um contrato pausado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • nenhuma

Gerenciamento de Comportamento de Token - Comportamento Bloqueável

lockNFT
Este método bloqueia um token não fungível. Esse método só pode ser chamado por um usuário com a atribuição TOKEN_SYS_VAULT_ROLE.
Parâmetros:
  • tokenId: uint256 – O ID do token a ser bloqueado.
isNFTLocked
Este método verifica se um token não fungível está bloqueado. Esse método só pode ser chamado por um usuário com a atribuição TOKEN_SYS_VAULT_ROLE ou pela atribuição Token Admin.
Parâmetros:
  • tokenId: uint256 – O ID do token a ser verificado.
Retorna:
  • Um valor booleano que indica se o token está bloqueado.