APIs do Contrato de Token ERC-20

Você pode usar os seguintes métodos relacionados à funcionalidade de token em contratos de token ERC-20.

Métodos de Configuração do Token

__ERC20Token_init
Esse método é chamado quando um 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.
initializeERC20Token
Este método inicializa um token ERC-20. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • token: ERC20Token – A estrutura que define o token ERC-20, 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 um token ERC-20. 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:
{
    "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 retorna o número de casas decimais que foram configuradas para um token. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • Nenhum
Retorna:
  • Um valor uint8 que indica o número de casas decimais.
cap
Este método retorna o valor de limite (o suprimento total máximo) para um token ERC-20. Esse método só pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • Nenhum
Retorna:
  • Um valor uint256 indicando o valor de limite.
balanceOf
Este método retorna o saldo do token atual para um usuário especificado. Esse método só pode ser chamado por uma Token Admin ou Token Auditor, ou pela Org Admin ou Org Auditor da organização especificada.
Parâmetros:
  • userAddress: string – O endereço da wallet do usuário, que não deve ser zero.
Retorna:
  • Um valor uint256 indicando o saldo atual.

Métodos de Comportamento de Token - Comportamento de Mintable

mint
Este método cunha tokens ERC-20. Esse método pode ser chamado por qualquer usuário com a função de mineiro.
Parâmetros:
  • to: string – O endereço da wallet do usuário para o qual os tokens estão sendo cunhados, que não deve ser zero.
  • value: uint256 – A quantidade de tokens para hortelã.
requestMint
Este método pode ser chamado por qualquer usuário com a função de minter para enviar uma solicitação ao notário para criar uma quantidade especificada de tokens.
Parâmetros:
  • notary: string – O endereço da wallet do usuário do notário, que não deve 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_details: JSON – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.

    Você especifica o parâmetro info_details em outro formato se estiver usando o Visual Studio Code versus a CLI ou uma coleção Postman.

    Código do Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveMint
Este método pode ser chamado por um aprovador com a função de notário para aprovar uma solicitação de hortelã para tokens ERC-20.
Parâmetros:
  • opId: string – O ID da operação da solicitação de hortelã.
rejectMint
Este método pode ser chamado por um aprovador com a função de notário para rejeitar uma solicitação de hortelã para tokens ERC-20.
Parâmetros:
  • opId: string – O ID da operação da solicitação de hortelã.

Métodos de Comportamento de Token - Comportamento Queimável

burn
Este método queima tokens ERC-20. Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • account: string – O endereço da wallet do usuário para o qual os tokens estão sendo gravados, que não deve ser zero.
  • value: uint256 – A quantidade de tokens a serem gravados.
burnFrom
Este método pode ser chamado por qualquer usuário com uma permissão delegada.
Parâmetros:
  • account: string – O endereço da wallet da conta da qual os tokens serão gravados, que não deve ser zero.
  • value: uint256 – A quantidade de tokens a serem gravados.
requestBurn
Este método pode ser chamado por qualquer usuário com uma função de queimador para aprovar uma solicitação de gravação para tokens ERC-20.
Parâmetros:
  • notary: string – O endereço da wallet do usuário do notário, que não deve 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_details: JSON – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.

    Você especifica o parâmetro info_details em outro formato se estiver usando o Visual Studio Code versus a CLI ou uma coleção Postman.

    Código do Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveBurn
Esse método pode ser chamado por um aprovador com a função de notário para aprovar uma solicitação de gravação para tokens ERC-20.
Parâmetros:
  • opId: string – O ID de operação da solicitação de gravação.
rejectBurn
Esse método pode ser chamado por um aprovador com a função de notário para rejeitar uma solicitação de gravação para tokens ERC-20.
Parâmetros:
  • opId: string – O ID de operação da solicitação de gravação.

Métodos de Comportamento de Token - Comportamento Transferível

transfer
Este método pode ser chamado por qualquer usuário com tokens para transferi-los para outro usuário.
Parâmetros:
  • to: string – O endereço da wallet do receptor, que não deve ser zero.
  • value: uint256 – A quantidade de tokens a serem transferidos.
batchTransfer
Este método pode ser chamado por qualquer usuário com tokens para transferi-los em lotes para outros usuários.
Parâmetros:
  • toList: string[] – Uma lista de endereços da wallet dos destinatários.
  • amounts: uint256[] – Uma lista da quantidade de tokens a serem transferidos.

Métodos de Comportamento de Token - Comportamento Delegável

allowance
Este método pode ser chamado por qualquer usuário que possua tokens para delegar outro usuário para gastá-los.
Parâmetros:
  • owner: string – O endereço da wallet do proprietário do token, que não deve ser zero.
  • spender: string – O endereço da wallet do gastador de token, que não deve ser zero.
Retorna:
  • Um valor uint256 da quantidade de tokens delegados a serem gastos.
approve
Este método pode ser chamado por qualquer usuário que possua tokens para definir o valor que um gastador delegado pode gastar.
Parâmetros:
  • spender: string – O endereço da wallet do gastador de token, que não deve ser zero.
  • value: uint256 – A quantidade de tokens que o gastador tem permissão de gastar.
transferFrom
Este método pode ser chamado por um usuário com uma permissão delegada para transferir tokens para outro usuário.
Parâmetros:
  • from: string – O endereço da wallet do remetente, que não deve ser zero.
  • to: string – O endereço da wallet do receptor, que não deve ser zero.
  • value: uint256 – A quantidade de tokens a serem transferidos.

Métodos de Comportamento de Token - Comportamento Pausável

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

Métodos de Comportamento de Token - Comportamento Mantível

hold
Este método pode ser chamado por qualquer usuário com tokens para solicitar uma transferência de token.
Parâmetros:
  • to: string – O endereço da wallet do receptor, que não deve ser zero.
  • notary: string – O endereço da wallet do usuário do notário, que não deve 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_details: JSON – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.

    Você especifica o parâmetro info_details em outro formato se estiver usando o Visual Studio Code versus a CLI ou uma coleção Postman.

    Código do Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

holdFrom
Este método pode ser chamado por um usuário delegado com uma permissão para armazenar tokens do endereço da wallet de outro usuário. Este método requer o comportamento delegável.
Parâmetros:
  • fromAccount: string – O endereço da wallet do usuário cujos tokens serão mantidos, que não deve ser zero.
  • toAccount: string – O endereço da wallet do receptor, que não deve ser zero.
  • notary: string – O endereço da wallet do usuário do notário, que não deve 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_details: JSON – Um objeto que especifica a categoria (category) e a descrição (description) da solicitação.

    Você especifica o parâmetro info_details em outro formato se estiver usando o Visual Studio Code versus a CLI ou uma coleção Postman.

    Código do Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

executeHold
Esse método pode ser chamado por um aprovador com a função de notário para aprovar uma solicitação de retenção.
Parâmetros:
  • amount: uint256 – A quantidade de tokens a serem aprovados para transferência.
  • opId: string – O ID da operação da solicitação de retenção.
releaseHold
Esse método pode ser chamado por um aprovador com a função de notário para rejeitar uma solicitação de retenção.
Parâmetros:
  • opId: string – O ID da operação da solicitação de retenção.
updateNotary
Este método pode ser chamado por um aprovador com a função de notário para atualizar o notário para uma solicitação especificada.
Parâmetros:
  • opId: string – O ID da operação da solicitação de retenção.
  • newNotary: string – O endereço da wallet do novo usuário do notário, que não deve ser zero.
getOnHoldBalanceWithOperationId
Este método obtém o saldo de retenção para um ID de operação especificado. Este método só 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 de retenção.
Retorna:
  • Um valor uint256 do saldo de retenção.
getOnHoldDetailsWithOperationId
Este método obtém os detalhes de retenção de um ID de operação especificado. Este método só 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 de retenção.
Retorna:
  • Um objeto hold, com as seguintes informações.
    • to: address – O endereço da wallet do receptor.
    • notary: address – O endereço da wallet do notário.
    • 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.
getAccountOnHoldBalance
Este método obtém o saldo de retenção de uma conta especificada. Este método só 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: string – O endereço da wallet da conta a ser verificada, que não deve ser zero.
Retorna:
  • Um valor uint256 do saldo de retenção.

Métodos de Comportamento de Token - Comportamento de Aprovação de Vários Níveis

createOrupdateAccountPolicy
Esse método pode ser chamado por um Token Admin ou Org Admin para criar ou atualizar uma política para uma conta especificada.
Parâmetros:
  • accountPolicyId – O sistema gera esse ID a partir dos campos orgId e userId especificados. Você não fornece este campo manualmente.
  • orgId – O ID do provedor de serviços de associação (MSP) do usuário para o qual a política será criada.
  • userId – O nome de usuário ou o ID de e-mail do usuário para o qual a política será criada.
  • kycCompliance – Um valor de string (true ou false) que indica se a conta atende aos requisitos de KYC (Know Your Customer).
  • amlCompliance – Um valor de string (true ou false) que indica se a conta atende aos requisitos de AML (Anti-Money Laundering).
  • riskScore – A pontuação de risco associada à conta, que é usada para avaliação de conformidade.
  • restrictionFlag – Um valor de string (true ou false) que indica se a conta está sujeita a transferências restritas. Se definido como verdadeiro, as transferências diretas seguirão os limites do período de restrição de transferência e as transferências retidas seguirão o limite de política de aprovação mais baixo.
getAccountPolicyById
Este método obtém detalhes da política de conta para um ID de política especificado. Esse método pode ser chamado por um Token Admin ou Token Auditor, ou Org Admin ou Org Auditor da organização cuja política de conta será extraída.
Parâmetros:
  • accountPolicyId: string – O ID exclusivo da política da conta.
Retorna:
  • accountPolicyId – O sistema gera esse ID a partir dos campos orgId e userId especificados. Você não fornece este campo manualmente.
  • orgId – O ID do provedor de serviços de associação (MSP) do usuário.
  • userId – O nome de usuário ou ID de e-mail do usuário.
  • kycCompliance – Um valor de string (true ou false) que indica se a conta atende aos requisitos de KYC (Know Your Customer).
  • amlCompliance – Um valor de string (true ou false) que indica se a conta atende aos requisitos de AML (Anti-Money Laundering).
  • riskScore – A pontuação de risco associada à conta, que é usada para avaliação de conformidade.
  • restrictionFlag – Um valor de string (true ou false) que indica se a conta está sujeita a transferências restritas. Se definido como verdadeiro, as transferências diretas seguirão os limites do período de restrição de transferência e as transferências retidas seguirão o limite de política de aprovação mais baixo.
getAccountPolicyById
Este método obtém detalhes da política de conta para um usuário especificado. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • who: address – O endereço da wallet do usuário.
Retorna:
  • A string accountPolicyId.
deleteAccountPolicyById
Este método exclui uma política para um ID de política especificado. Esse método pode ser chamado por uma Token Admin ou Org Admin da organização que inclui o usuário cuja política de conta será excluída.
Parâmetros:
  • accountPolicyId – O ID exclusivo da política da conta.
Retorna:
  • A string accountPolicyId.
createOrupdateApprovalPolicy
Esse método pode ser chamado por um Token Admin.
Parâmetros:
  • approvalPolicyId – O sistema gera esse ID. Você não fornece este campo manualmente.
  • transactionLowerLimit – O valor mínimo da transação ao qual a política de aprovação se aplica.
  • transactionUpperLimit – O valor máximo da transação ao qual a política de aprovação se aplica.
  • numberOfApprovalsRequired – O número total de aprovações necessárias para que a transação possa ser concluída.
  • approverDetails – Uma lista de aprovadores junto com sua sequência de aprovação atribuída, que define a ordem obrigatória para aprovações.
  • version – A versão da política de aprovação. Use 0 ao criar uma nova política.
  • status – Ativo ou inativo.
getApprovalPolicyById
Este método obtém detalhes da política de aprovação para um ID de política especificado. Esse método pode ser chamado por um Token Admin ou Token Auditor.
Parâmetros:
  • approvalPolicyId: string – O ID da política de aprovação exclusivo.
Retorna:
  • approvalPolicyId – O sistema gera esse ID.
  • transactionLowerLimit – O valor mínimo da transação ao qual a política de aprovação se aplica.
  • transactionUpperLimit – O valor máximo da transação ao qual a política de aprovação se aplica.
  • numberOfApprovalsRequired – O número total de aprovações necessárias para que a transação possa ser concluída.
  • approverDetails – Uma lista de aprovadores junto com sua sequência de aprovação atribuída, que define a ordem obrigatória para aprovações.
  • version – A versão da política de aprovação.
  • status – Ativo ou inativo.
deleteApprovalPolicy
Este método exclui uma política para um ID de política especificado. Esse método pode ser chamado por um Token Admin.
Parâmetros:
  • approvalPolicyId: string – O ID da política de aprovação exclusivo.
getApprovalTransactionsById
Este método obtém o saldo em retenção de uma conta especificada. Esse método pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • opId: string – O ID da operação para a solicitação de retenção.
Retorna:
  • Um objeto approvalTransactions.
Exemplo de Valor de Retorno:
{
"approvalTransactionId": "",
"approvalPolicyId": "",
"approvalPolicyVersion": "",
"fromAccount": "",
"toAccount": "",
"totalApprovals": "",
"numberaOfApprovalsRequired": "",
"status": "",
"approverDetails": ""
}
getApprovalStatusByOperationId
Este método obtém detalhes de aprovação para uma solicitação de retenção especificada. Esse método pode ser chamado por uma Token Admin, Token Auditor, Org Admin ou Org Auditor.
Parâmetros:
  • opId: string – O ID da operação para a solicitação de retenção.
Exemplo de Valor de Retorno:
{
"approvalWorkflowExists": "",
"activePolicyFound": "",
"receivedApprovals": "",
"requiredApprovals": "",
"approvalRequirementMet": "",
"nextApprovalSequence": "",
"nextApprover": "",
"workflowStatus": "",
"approvalPolicyId": "",
"approvalPolicyVersion": ""
}
approveTransaction
Um aprovador pode usar esse método para aprovar uma transação de retenção.
Parâmetros:
  • opId: string – O ID da operação para a solicitação de retenção.
  • amount: uint256 – O valor a ser aprovado.
rejectTransaction
Um notário pode usar esse método para rejeitar uma transação de retenção.
Parâmetros:
  • opId: string – O ID da operação para a solicitação de retenção.
getTransferRestriction
Este método retorna a configuração de restrição de transferência atual, incluindo os limites de transação inferior e superior. Esse método pode ser chamado por um Token Admin ou Token Auditor.
Parâmetros:
  • account: address – O endereço da wallet do usuário para o qual verificar o saldo em espera. O endereço não deve ser zero.
Retorna:
  • Um objeto transferRestriction.
Exemplo de Valor de Retorno:
transactionLowerLimit: 0transactionUpperLimit: 100
setOrupdateTransferRestriction
Este método atualiza a configuração de restrição de transferência definindo novos limites de transação inferior e superior. Esse método pode ser chamado por um Token Admin.
Parâmetros:
  • transactionLowerLimit: uint256 – O valor mínimo permitido da transação.
  • transactionUpperLimit: uint256 – O valor máximo permitido da transação.

Métodos de Gerenciamento de Contexto

setTokenContext
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.
getTokenContext
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 da 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.