Méthodes de contrat du marché des obligations

Le contrat du marché obligataire comprend toutes les méthodes disponibles dans le contrat prolongé ERC-1155 NFT et des méthodes supplémentaires spécifiques au scénario du marché obligataire.

Méthodes de Solidity générées automatiquement

L'actif du marché obligataire est basé sur la norme étendue ERC-1155 et prend en charge toutes les méthodes génériques pour cette norme. Pour plus d'informations sur les méthodes génériques ERC-1155, reportez-vous à API Digital Assets.
postToken
Cette méthode soumet un jeton d'obligation pour inscription sur le marché. Cette méthode ne peut être appelée que par un créateur de jeton. Lorsqu'un jeton est créé, son statut est initialement défini sur created. Cette méthode met à jour le statut sur posted.
function postToken(uint256 tokenId) public
Paramètres :
  • tokenId: uint256 : ID du jeton à publier.
purchaseToken
Cette méthode achète une NFT obligataire cotée, la transfère du compte du créateur vers le compte de l'appelant et transfère les jetons CBDC du compte de l'appelant vers le compte du créateur. Cette méthode peut être appelée par n'importe quel titulaire de compte.
Cette méthode doit être exécutée dans le contexte d'une transaction atomique. Dans la version actuelle, l'atomicité doit être gérée dans un seul réseau Oracle Blockchain Platform Besu. En d'autres termes, les contrats CBDC et obligataires doivent faire partie du même réseau Oracle Blockchain Platform Besu. L'adresse du contrat du jeton CBDC doit être définie en appelant la méthode setTokenContract. La méthode purchaseToken calcule automatiquement la valeur de transfert de jeton CBDC, qui est égale à la valeur nominale du jeton de liaison multipliée par la quantité achetée.
function purchaseToken(
        address from,
        address to,
        uint256 tokenId,
        uint256 quantity,
        uint256 additionalFees,
        string calldata orderId
    ) public
Paramètres :
  • from: address : adresse de portefeuille du propriétaire du jeton.
  • to: address : adresse de portefeuille du destinataire.
  • tokenId: uint256 : ID du jeton à acheter.
  • quantity: uint256 – Le montant des jetons à acheter.
  • additionalFees: uint256 – Les frais supplémentaires à ajouter au prix d'achat.
  • orderId: string – ID de commande pour l'opération d'achat.
payInterest
Cette méthode permet de payer les intérêts gagnés sur un jeton d'obligation. Il ne peut être appelé que par le créateur du jeton. La fréquence d'intérêt du jeton doit être mensuelle, trimestrielle ou annuelle. Les intérêts ne peuvent pas être payés si la fréquence des intérêts est à l'échéance. Les intérêts sont calculés par le contrat en fonction du taux de coupon du jeton.
Comme l'opération d'achat transfère des jetons CBDC du compte de l'appelant vers le compte du propriétaire de l'obligation, cette méthode doit être exécutée dans le contexte d'une transaction atomique. Dans la version actuelle, l'atomicité doit être gérée dans un seul réseau Oracle Blockchain Platform Besu. En d'autres termes, les contrats CBDC et obligataires doivent faire partie du même réseau Oracle Blockchain Platform Besu. L'adresse du contrat du jeton CBDC doit être définie en appelant la méthode setTokenContract.
function payInterest(address userAddress, uint256 tokenId) public
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur.
  • tokenId: uint256 : ID du jeton.
requestTokenRedemption
Cette méthode soulève une demande de remboursement de jetons d'obligations après l'échéance. Il ne peut être appelé que par le propriétaire du jeton. Cette méthode est également utilisée pour calculer le prix de rachat par contrat. Les demandes d'échange ne peuvent être émises que sur la totalité du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent générer plusieurs demandes d'échange en fonction de différents ID de règlement, mais une seule peut être approuvée par le créateur du jeton.
function requestTokenRedemption(
        string calldata settlementId,
        uint256 tokenId,
        string calldata orderId,
        uint256 additionalFees
    ) public
Paramètres :
  • settlementId: string : ID de règlement de l'opération d'échange.
  • tokenId: uint256 : ID du jeton.
  • additionalFees: uint256 – Les frais supplémentaires à ajouter au prix de rachat.
  • orderId: string – ID de commande pour l'opération d'achat.
approveTokenRedemption
Cette méthode approuve une demande de remboursement de jetons d'obligations. Il ne peut être appelé que par le créateur du jeton.
Etant donné que l'opération de remboursement transfère le NFT de l'obligation du compte du propriétaire (l'utilisateur qui a émis la demande) au compte du créateur, cette méthode doit être exécutée dans le contexte d'une transaction atomique. Dans la version actuelle, l'atomicité doit être gérée dans un seul réseau Oracle Blockchain Platform Besu. En d'autres termes, les contrats CBDC et obligataires doivent faire partie du même réseau Oracle Blockchain Platform Besu. L'adresse du contrat du jeton CBDC doit être définie en appelant la méthode setTokenContract.
function approveTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Paramètres :
  • fromAddress: address : adresse de portefeuille de l'utilisateur.
  • settlementId: string : ID de règlement de l'opération d'échange.
  • tokenId: uint256 : ID du jeton.
rejectTokenRedemption
Cette méthode rejette une demande de rachat de jetons obligataires. Il ne peut être appelé que par le créateur du jeton. Les propriétaires de jetons peuvent relancer une demande d'échange en utilisant un autre ID de règlement.
function rejectTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur.
  • settlementId: string : ID de règlement de l'opération d'échange.
  • tokenId: uint256 : ID du jeton.
getTokenRedemptionRequests
Cette méthode obtient les détails des demandes d'échange de jetons. Il peut être appelé par n'importe quel titulaire de compte.
function getTokenRedemptionRequests(
        address userAddress,
        uint256 tokenId,
        string calldata settlementId
    ) public view
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur.
  • tokenId: uint256 : ID du jeton.
  • settlementId: string : ID de règlement de l'opération d'échange.
getUserBondDetails
Cette méthode obtient un récapitulatif du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat. Il peut être appelé par n'importe quel titulaire de compte.
function getUserBondDetails(
        address userAddress,
        uint256 tokenId
    ) public view
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur.
  • tokenId: uint256 : ID du jeton.