Bond Marketplace-Vertragsmethoden

Der Anleihemarktvertrag umfasst alle Methoden, die im erweiterten ERC-1155 NFT-Vertrag verfügbar sind, und zusätzliche Methoden, die für das Anleihemarktszenario spezifisch sind.

Festigkeit Autogenerierte Methoden

Der Anleihemarktwert basiert auf dem erweiterten ERC-1155-Standard und unterstützt alle generischen Methoden für diesen Standard. Weitere Informationen zu den allgemeinen ERC-1155-Methoden finden Sie unter Digital Assets-APIs.
postToken
Mit dieser Methode wird ein Anleihe-Token zur Notierung auf dem Marktplatz weitergeleitet. Diese Methode kann nur von einem Token-Ersteller aufgerufen werden. Wenn ein Token erstellt wird, wird sein Status zunächst auf created gesetzt. Diese Methode aktualisiert den Status in posted.
function postToken(uint256 tokenId) public
Parameter:
  • tokenId: uint256: Die ID des zu postenden Tokens.
purchaseToken
Diese Methode kauft eine gelistete Anleihe NFT, überträgt sie vom Accoun des Erstellers auf das Konto des Anrufers und überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Erstellers. Diese Methode kann von jedem Kontoinhaber aufgerufen werden.
Diese Methode muss im Kontext einer atomaren Transaktion ausgeführt werden. In der aktuellen Version muss die Atomizität in einem einzigen Oracle Blockchain Platform Besu-Netzwerk verarbeitet werden. Mit anderen Worten: CBDC- und Anleiheverträge müssen Teil desselben Oracle Blockchain Platform Besu-Netzwerks sein. Die Vertragsadresse des CBDC-Tokens muss durch Aufruf der Methode setTokenContract festgelegt werden. Die Methode purchaseToken berechnet automatisch den CBDC-Tokenübertragungswert, der dem Nennwert des Anleihtokens multipliziert mit der gekauften Menge entspricht.
function purchaseToken(
        address from,
        address to,
        uint256 tokenId,
        uint256 quantity,
        uint256 additionalFees,
        string calldata orderId
    ) public
Parameter:
  • from: address: Die Wallet-Adresse des Tokeneigentümers.
  • to: address: Die Wallet-Adresse des Empfängers.
  • tokenId: uint256: Die ID des zu kaufenden Tokens.
  • quantity: uint256 – Die Anzahl der zu kaufenden Token.
  • additionalFees: uint256 – Die zusätzlichen Vergütungen, die dem Kaufpreis hinzuzufügen sind.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
payInterest
Diese Methode zahlt Zinsen, die auf einem Anleihe-Token verdient werden. Es kann nur vom Token-Ersteller aufgerufen werden. Die Zinshäufigkeit des Tokens muss monatlich, vierteljährlich oder jährlich sein. Zinsen können nicht gezahlt werden, wenn die Zinshäufigkeit fällig ist. Die Zinsen werden vom Vertrag basierend auf dem Kuponsatz des Tokens berechnet.
Da der Kaufvorgang CBDC-Token vom Konto des Aufrufers auf das Konto des Anleiheeigentümers überträgt, muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. In der aktuellen Version muss die Atomizität in einem einzigen Oracle Blockchain Platform Besu-Netzwerk verarbeitet werden. Mit anderen Worten: CBDC- und Anleiheverträge müssen Teil desselben Oracle Blockchain Platform Besu-Netzwerks sein. Die Vertragsadresse des CBDC-Tokens muss durch Aufruf der Methode setTokenContract festgelegt werden.
function payInterest(address userAddress, uint256 tokenId) public
Parameter:
  • userAddress: address: Die Wallet-Adresse des Benutzers.
  • tokenId: uint256: Die ID des Tokens.
requestTokenRedemption
Diese Methode löst eine Anforderung für die Einlösung von Anleihe-Token nach der Fälligkeit aus. Es kann nur vom Token-Eigentümer aufgerufen werden. Diese Methode wird auch verwendet, um den Einlösungspreis durch den Vertrag zu berechnen. Einlösungsanforderungen können nur für die gesamte Menge des Anleihtokens ausgelöst werden, für das der Benutzer verantwortlich ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs erstellen, aber nur eine kann vom Tokenersteller genehmigt werden.
function requestTokenRedemption(
        string calldata settlementId,
        uint256 tokenId,
        string calldata orderId,
        uint256 additionalFees
    ) public
Parameter:
  • settlementId: string: Die Abrechnungs-ID des Rücknahmevorgangs.
  • tokenId: uint256: Die ID des Tokens.
  • additionalFees: uint256 – Die zusätzlichen Vergütungen, die zum Einlösungspreis hinzuzufügen sind.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
approveTokenRedemption
Mit dieser Methode wird eine Anforderung zur Einlösung von Anleihe-Token genehmigt. Es kann nur vom Token-Ersteller aufgerufen werden.
Da der Einlösungsvorgang die Anleihe-NFT vom Konto des Eigentümers (dem Benutzer, der die Anforderung ausgelöst hat) auf das Konto des Erstellers überträgt, muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. In der aktuellen Version muss die Atomizität in einem einzigen Oracle Blockchain Platform Besu-Netzwerk verarbeitet werden. Mit anderen Worten: CBDC- und Anleiheverträge müssen Teil desselben Oracle Blockchain Platform Besu-Netzwerks sein. Die Vertragsadresse des CBDC-Tokens muss durch Aufruf der Methode setTokenContract festgelegt werden.
function approveTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Parameter:
  • fromAddress: address: Die Wallet-Adresse des Benutzers.
  • settlementId: string: Die Abrechnungs-ID des Rücknahmevorgangs.
  • tokenId: uint256: Die ID des Tokens.
rejectTokenRedemption
Diese Methode lehnt eine Anforderung zur Einlösung von Anleihe-Token ab. Es kann nur vom Token-Ersteller aufgerufen werden. Token-Eigentümer können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
function rejectTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
Parameter:
  • userAddress: address: Die Wallet-Adresse des Benutzers.
  • settlementId: string: Die Abrechnungs-ID des Rücknahmevorgangs.
  • tokenId: uint256: Die ID des Tokens.
getTokenRedemptionRequests
Diese Methode ruft die Details von Tokeneinlösungsanforderungen ab. Es kann von jedem Kontoinhaber aufgerufen werden.
function getTokenRedemptionRequests(
        address userAddress,
        uint256 tokenId,
        string calldata settlementId
    ) public view
Parameter:
  • userAddress: address: Die Wallet-Adresse des Benutzers.
  • tokenId: uint256: Die ID des Tokens.
  • settlementId: string: Die Abrechnungs-ID des Rücknahmevorgangs.
getUserBondDetails
Diese Methode erhält eine Kontenübersicht, die Details der gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Es kann von jedem Kontoinhaber aufgerufen werden.
function getUserBondDetails(
        address userAddress,
        uint256 tokenId
    ) public view
Parameter:
  • userAddress: address: Die Wallet-Adresse des Benutzers.
  • tokenId: uint256: Die ID des Tokens.