Métodos de contrato de Bond Marketplace

El contrato de mercado de bonos incluye todos los métodos disponibles en el contrato ERC-1155 NFT ampliado y métodos adicionales que son específicos del escenario de mercado de bonos.

Métodos Generados Automáticamente por Solidity

El activo de mercado de bonos se basa en el estándar ERC-1155 extendido y admite todos los métodos genéricos para ese estándar. Para obtener más información sobre los métodos genéricos ERC-1155, consulte API de activos digitales.
postToken
Este método envía un token de bono para su inclusión en el mercado. Este método solo puede ser llamado por un creador de token. Cuando se crea un token, su estado se define inicialmente en created. Este método actualiza el estado a posted.
function postToken(uint256 tokenId) public
Parámetros:
  • tokenId: uint256: ID del token que se va a publicar.
purchaseToken
Este método compra una NFT de bonos listados, transfiriéndola desde la cuenta del creador a la cuenta del emisor de la llamada y transfiriendo tokens CBDC desde la cuenta del emisor de la llamada a la cuenta del creador. Este método puede ser llamado por cualquier titular de cuenta.
Este método se debe ejecutar en el contexto de una transacción atómica. En la versión actual, la atomicidad se debe manejar en una única red de Besu de Oracle Blockchain Platform. En otras palabras, el CBDC y los contratos de bonos deben formar parte de la misma red de Oracle Blockchain Platform Besu. La dirección de contrato del token CBDC se debe definir llamando al método setTokenContract. El método purchaseToken calcula automáticamente el valor de transferencia de token CBDC, que es igual al valor nominal del token de bono multiplicado por la cantidad que se compra.
function purchaseToken(
        address from,
        address to,
        uint256 tokenId,
        uint256 quantity,
        uint256 additionalFees,
        string calldata orderId
    ) public
Parámetros:
  • from: address: dirección de cartera del propietario del token.
  • to: address: dirección de cartera del destinatario.
  • tokenId: uint256: ID del token que se va a comprar.
  • quantity: uint256: cantidad de tokens que se van a comprar.
  • additionalFees: uint256 – Las tarifas adicionales para añadir al precio de compra.
  • orderId: string: ID de pedido de la operación de compra.
payInterest
Este método paga los intereses devengados en un token de bono. Solo puede ser llamado por el creador del token. La frecuencia de interés del token debe ser mensual, trimestral o anual. No se puede pagar el interés si la frecuencia de interés está al vencimiento. El interés se calcula por el contrato en función del tipo de cupón del token.
Dado que la operación de compra transfiere tokens CBDC desde la cuenta del emisor de la llamada a la cuenta del propietario del bono, este método se debe ejecutar en el contexto de una transacción atómica. En la versión actual, la atomicidad se debe manejar en una única red de Besu de Oracle Blockchain Platform. En otras palabras, el CBDC y los contratos de bonos deben formar parte de la misma red de Oracle Blockchain Platform Besu. La dirección de contrato del token CBDC se debe definir llamando al método setTokenContract.
function payInterest(address userAddress, uint256 tokenId) public
Parámetros:
  • userAddress: address: dirección de cartera del usuario.
  • tokenId: uint256: ID del token.
requestTokenRedemption
Este método plantea una solicitud de canje de tokens de bonos después del vencimiento. Solo puede ser llamado por el propietario del token. Este método también se utiliza para calcular el precio de rescate por el contrato. Las solicitudes de canje solo se pueden generar en la cantidad completa del token de bono que posee el usuario. Los usuarios pueden emitir varias solicitudes de canje basadas en diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
function requestTokenRedemption(
        string calldata settlementId,
        uint256 tokenId,
        string calldata orderId,
        uint256 additionalFees
    ) public
Parámetros:
  • settlementId: string: ID de liquidación de la operación de rescate.
  • tokenId: uint256: ID del token.
  • additionalFees: uint256 – Las tarifas adicionales para añadir al precio de canje.
  • orderId: string: ID de pedido de la operación de compra.
approveTokenRedemption
Este método aprueba una solicitud para el canje de tokens de bonos. Solo puede ser llamado por el creador del token.
Dado que la operación de canje transfiere la NFT de bono de la cuenta del propietario (el usuario que emitió la solicitud) a la cuenta del creador, este método se debe ejecutar en el contexto de una transacción atómica. En la versión actual, la atomicidad se debe manejar en una única red de Besu de Oracle Blockchain Platform. En otras palabras, el CBDC y los contratos de bonos deben formar parte de la misma red de Oracle Blockchain Platform Besu. La dirección de contrato del token CBDC se debe definir llamando al método setTokenContract.
function approveTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Parámetros:
  • fromAddress: address: dirección de cartera del usuario.
  • settlementId: string: ID de liquidación de la operación de rescate.
  • tokenId: uint256: ID del token.
rejectTokenRedemption
Este método rechaza una solicitud de canje de tokens de bonos. Solo puede ser llamado por el creador del token. Los propietarios de tokens pueden volver a generar una solicitud de canje mediante un ID de liquidación diferente.
function rejectTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Parámetros:
  • userAddress: address: dirección de cartera del usuario.
  • settlementId: string: ID de liquidación de la operación de rescate.
  • tokenId: uint256: ID del token.
getTokenRedemptionRequests
Este método obtiene los detalles de las solicitudes de canje de token. Puede ser llamado por cualquier titular de la cuenta.
function getTokenRedemptionRequests(
        address userAddress,
        uint256 tokenId,
        string calldata settlementId
    ) public view
Parámetros:
  • userAddress: address: dirección de cartera del usuario.
  • tokenId: uint256: ID del token.
  • settlementId: string: ID de liquidación de la operación de rescate.
getUserBondDetails
Este método obtiene un resumen de la cuenta que incluye los detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje. Puede ser llamado por cualquier titular de la cuenta.
function getUserBondDetails(
        address userAddress,
        uint256 tokenId
    ) public view
Parámetros:
  • userAddress: address: dirección de cartera del usuario.
  • tokenId: uint256: ID del token.