Ensemble de chaînes de code du marché des obligations

Oracle Blockchain Platform Digital Assets Edition comprend un exemple de code de chaîne pour le scénario de marché NFT lié.

Le code de chaîne du marché des obligations prend en charge la gestion et le trading d'obligations, représentées par des jetons fractionnaires non fongibles (NFT). Vous pouvez utiliser des méthodes de code de chaîne pour émettre, acheter, échanger et échanger des NFT d'obligations dans un environnement décentralisé.

L'ensemble de code de chaîne du marché des obligations est téléchargeable à partir de la console Oracle Blockchain Platform et comprend les composants suivants.
  • BondMarketplace.zip, un fichier d'archives contenant le code de chaîne packagé pour le déploiement.
  • BondMarketplace.yaml, un fichier de spécification que vous pouvez utiliser avec Blockchain App Builder pour balayer le code de chaîne WholesaleCBDC.
  • BondMarketplace_postman_collection.json, une collection Postman qui vous permet de tester les API dans le code de chaîne.
  • README.md, un guide étape par étape pour l'utilisation du code de chaîne.

Pour obtenir l'ensemble de code de chaîne du marché des obligations, dans la console des ressources numériques d'Oracle Blockchain Platform, cliquez sur l'onglet Ressources numériques, puis sélectionnez Application Bond Marketplace.

Fichier de spécification

Le fichier de spécification du marché des obligations (Bond_Marketplace.yml) est basé sur le fichier de spécification ERC-1155 étendu. Il inclut un attribut model, qui génère le code de chaîne propre à l'application. Dans ce cas, model: bond crée des méthodes supplémentaires pour l'application Marketplace d'obligations lorsque le code de chaîne est généré. En outre, des paramètres spécifiques doivent être définis dans la section des métadonnées du fichier.
#
# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
#
 
# Token asset to manage the complete lifecycle of a Bond in a primary Bond marketplace.  

assets:
    - name: Bond #Asset name
      type: token #Asset type
      standard: erc1155+   # Token standard
      events: true # Supports event code generation for non-GET methods
      model: bond # Supports creation of additional methods for Primary Bond marketplace
      
      anatomy:
          type: nonfungible # Token type
          unit: fractional  #Token unit
      
      behavior: # Bond token behaviors
        - divisible:                                  
        - mintable:                   
        - transferable
        - burnable                
        - roles:
            minter_role_name: minter
            burner_role_name: burner
      
      properties:  # Custom asset attributes for non-fungible Bond token.

          - name: status # Custom asset attribute maintains the status of the Bond.
            type: string
            mandatory: true
               
            
      metadata: # To maintain the metadata on-chain, this tag will be used. Users won't be able to update the metadata attribute values after the bond token is minted.
          
          - name: ISIN # A unique alphanumeric code that identifies a specific bond internationally.
            type: string
            mandatory: true
 
          - name: Segment # The classification of bonds based on issuer type or purpose, such as corporate, government, sovereign, or green bonds.
            type: string
 
          - name: Issuer # The entity, such as a corporation or government, that issues the bond.
            type: string
            mandatory: true
          
          - name: FaceValue # The principal amount of the bond that will be repaid at maturity.
            type: number
            mandatory: true

          - name: IssueSize # The total monetary value or quantity of bonds issued by the issuer.
            type: number
            mandatory: true

          - name: CouponRate # The annual interest rate that the bond pays, typically as a percentage of the face value.
            type: float 
            mandatory: true 

          - name: InterestPaymentType # Specifies whether the bond pays simple or compound interest.
            type: string
            mandatory: true
            validate: /^\\s*(simple)\\s*$/

          - name: InterestFrequency # The regularity with which interest payments are made, such as monthly, quarterly, annually or at maturity.
            type: string
            mandatory: true
            validate: /^\s*["]?((monthly|quarterly|annually|at maturity)\s*)["]?\s*$/

          - name: IssueDate # The date when the bond was initially issued.
            type: date
            mandatory: true 

          - name: MaturityDate # The date on which the bond’s principal amount will be repaid to the bondholder.
            type: date
            mandatory: true    
 
customMethods:

Tableau 4-1 : Paramètres de métadonnées pour le fichier de spécification du marché des obligations

Entrée Description
name: ISIN

Chaîne qui est un code alphanumérique unique de 12 caractères qui identifie une liaison.

name: Segment

Chaîne qui représente le type de segment de la liaison.

name: Issuer

Chaîne qui représente l'émetteur de l'obligation.

name: FaceValue

Nombre représentant la valeur faciale (prix) du jeton de liaison.

name: IssueSize

Nombre représentant la taille d'émission (quantité totale) de l'obligation.

name: CouponRate Nombre représentant le taux de coupon (taux d'intérêt) de l'obligation. Il doit s'agir d'un taux annuel.
name: InterestPaymentType Chaîne représentant le type de paiement d'intérêts. La seule valeur prise en charge est simple.
name: InterestFrequency Chaîne qui représente la fréquence d'intérêt du jeton de liaison. La liste suivante présente les valeurs prises en charge.
  • monthly
  • quarterly
  • annually
  • at maturity
name: IssueDate Date qui représente la date d'émission de l'obligation.
name: MaturityDate Date qui représente la date d'échéance de l'obligation.