Métodos de Contrato do Mercado de Títulos

O contrato de mercado de títulos inclui todos os métodos disponíveis no contrato ERC-1155 NFT estendido e métodos adicionais específicos para o cenário de mercado de títulos.

Métodos de Solidez Gerados Automaticamente

O ativo de mercado de títulos é baseado no padrão ERC-1155 estendido e suporta todos os métodos genéricos para esse padrão. Para obter mais informações sobre os métodos ERC-1155 genéricos, consulte APIs de Ativos Digitais.
postToken
Este método envia um token de título para listagem no marketplace. Este método pode ser chamado apenas por um criador de token. Quando um token é criado, seu status é inicialmente definido como created. Este método atualiza o status para posted.
function postToken(uint256 tokenId) public
Parâmetros:
  • tokenId: uint256 – O ID do token a ser publicado.
purchaseToken
Este método compra um NFT de título listado, transferindo-o da conta do criador para a conta do chamador e transferindo tokens CBDC da conta do chamador para a conta do criador. Este método pode ser chamado por qualquer titular de conta.
Este método deve ser executado no contexto de uma transação atômica. Na versão atual, a atomicidade deve ser tratada em uma única rede do Oracle Blockchain Platform Besu. Em outras palavras, os contratos de CBDC e títulos devem fazer parte da mesma rede Oracle Blockchain Platform Besu. O endereço do contrato do token CBDC deve ser definido chamando o método setTokenContract. O método purchaseToken calcula automaticamente o valor de transferência do token CBDC, que é igual ao valor nominal do token de título multiplicado pela quantidade que está sendo comprada.
function purchaseToken(
        address from,
        address to,
        uint256 tokenId,
        uint256 quantity,
        uint256 additionalFees,
        string calldata orderId
    ) public
Parâmetros:
  • from: address – O endereço da wallet do proprietário do token.
  • to: address – O endereço da wallet do destinatário.
  • tokenId: uint256 – O ID do token a ser comprado.
  • quantity: uint256 – A quantidade de tokens a serem comprados.
  • additionalFees: uint256 – As remunerações adicionais a serem adicionadas ao preço de compra.
  • orderId: string – O ID do pedido para a operação de compra.
payInterest
Este método paga juros ganhos em um token de título. Ele pode ser chamado apenas pelo criador do token. A frequência de juros do token deve ser mensal, trimestral ou anual. Os juros não podem ser pagos se a frequência dos juros estiver no vencimento. Os juros são calculados pelo contrato com base na taxa de cupom do token.
Como a operação de compra transfere tokens CBDC da conta do chamador para a conta do proprietário do título, esse método deve ser executado no contexto de uma transação atômica. Na versão atual, a atomicidade deve ser tratada em uma única rede do Oracle Blockchain Platform Besu. Em outras palavras, os contratos de CBDC e títulos devem fazer parte da mesma rede Oracle Blockchain Platform Besu. O endereço do contrato do token CBDC deve ser definido chamando o método setTokenContract.
function payInterest(address userAddress, uint256 tokenId) public
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário.
  • tokenId: uint256 – O ID do token.
requestTokenRedemption
Este método levanta uma solicitação para o resgate de tokens de títulos após o vencimento. Ele pode ser chamado apenas pelo proprietário do token. Este método também é usado para calcular o preço de resgate pelo contrato. As solicitações de resgate só podem ser geradas na quantidade inteira do token de título que o usuário possui. Os usuários podem gerar várias solicitações de resgate com base em diferentes IDs de liquidação, mas apenas uma pode ser aprovada pelo criador do token.
function requestTokenRedemption(
        string calldata settlementId,
        uint256 tokenId,
        string calldata orderId,
        uint256 additionalFees
    ) public
Parâmetros:
  • settlementId: string – O ID da liquidação da operação de resgate.
  • tokenId: uint256 – O ID do token.
  • additionalFees: uint256 – As remunerações adicionais a serem adicionadas ao preço de resgate.
  • orderId: string – O ID do pedido para a operação de compra.
approveTokenRedemption
Este método aprova uma solicitação para o resgate de tokens de títulos. Ele pode ser chamado apenas pelo criador do token.
Como a operação de resgate transfere a NFT do título da conta do proprietário (o usuário que emitiu a solicitação) para a conta do criador, esse método deve ser executado no contexto de uma transação atômica. Na versão atual, a atomicidade deve ser tratada em uma única rede do Oracle Blockchain Platform Besu. Em outras palavras, os contratos de CBDC e títulos devem fazer parte da mesma rede Oracle Blockchain Platform Besu. O endereço do contrato do token CBDC deve ser definido chamando o método setTokenContract.
function approveTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Parâmetros:
  • fromAddress: address – O endereço da wallet do usuário.
  • settlementId: string – O ID da liquidação da operação de resgate.
  • tokenId: uint256 – O ID do token.
rejectTokenRedemption
Este método rejeita uma solicitação para o resgate de tokens de títulos. Ele pode ser chamado apenas pelo criador do token. Os proprietários de token podem gerar uma solicitação de resgate novamente usando um ID de liquidação diferente.
function rejectTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário.
  • settlementId: string – O ID da liquidação da operação de resgate.
  • tokenId: uint256 – O ID do token.
getTokenRedemptionRequests
Este método obtém os detalhes das solicitações de resgate de token. Pode ser chamado por qualquer titular da conta.
function getTokenRedemptionRequests(
        address userAddress,
        uint256 tokenId,
        string calldata settlementId
    ) public view
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário.
  • tokenId: uint256 – O ID do token.
  • settlementId: string – O ID da liquidação da operação de resgate.
getUserBondDetails
Este método obtém um resumo da conta que inclui os detalhes dos tokens comprados ou resgatados e o preço de compra e o preço de resgate. Pode ser chamado por qualquer titular da conta.
function getUserBondDetails(
        address userAddress,
        uint256 tokenId
    ) public view
Parâmetros:
  • userAddress: address – O endereço da wallet do usuário.
  • tokenId: uint256 – O ID do token.