Package API wrapper Bond Marketplace

Oracle Blockchain Platform Digital Assets Edition inclut un package d'API de wrapper qui étend l'API REST pour prendre en charge les opérations propres à un marché NFT lié.

Le package d'API de wrapper utilise le service API Gateway et OCI Functions pour déployer des acheminements d'API spécifiquement pour gérer le cycle de vie NFT de Bond Marketplace. Le package d'API wrapper de bond marketplace peut être téléchargé à partir de la console Oracle Blockchain Platform. Il inclut un fichier d'archive contenant le package d'API wrapper, y compris les scripts Terraform requis pour le déploiement. Vous déployez ce fichier vers une pile Resource Manager sur Oracle Cloud Infrastructure (OCI) afin de créer les ressources Oracle nécessaires pour les API de wrapper. Elle inclut également une collection Postman qui vous permet de tester les API de wrapper déployées. La collection inclut des demandes préconfigurées avec des adresses et des charges utiles correspondant aux API définies dans le package d'API de wrapper.

API de wrapper

registerOrg
Nom de la méthode d'origine : registerOrg
Cette méthode POST enregistre une organisation dans le système. Cette méthode ne peut être appelée que par un administrateur de jeton.
Charge utile:
{
    "orgId": "{{bc-org-id}}",
    "orgName": "org_name value",
    "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • orgName: string – (Facultatif) Nom de l'organisation.
  • endorsers: string[] : tableau des pairs (par exemple, peer1, peer2) qui doivent approuver la transaction.
Exemple de valeur renvoyée :
{
    "assetType": "oorgregistry",
    "org_registry_id": "orgregistry",
    "registered_orgs": [
        {
            "org_id": "Org1MSP",
            "org_name": "Organisation name"
        }
    ]
}
getAllRegisteredOrgs
Nom de la méthode d'origine : getAllRegisteredOrgs
Cette méthode GET extrait les détails de toutes les organisations enregistrées. Cette méthode ne peut être appelée que par un administrateur de jeton.
Interroger :
/getAllRegisteredOrgs
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
[
    {
        "org_id": "Org1MSP",
        "org_name": "Organisation name"
    }
]
activateAccount
Nom de la méthode d'origine : activateAccount
Cette méthode POST active un compte de jeton. Cette méthode ne peut être appelée que par un administrateur ou un propriétaire de compte. Les comptes supprimés ne peuvent pas être activés.
Charge utile:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
Paramètres :
  • tokenId: string : ID du jeton.
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
Exemple de valeur renvoyée :
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
addTokenAdmin
Nom de la méthode d'origine : addTokenAdmin
Cette méthode POST ajoute d'autres administrateurs au code chaîne de jeton. Cette méthode ne peut être appelée que par l'administrateur de jeton du code chaîne.
Charge utile:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur ajouté en tant que Token Admin du code chaîne.
Exemple de valeur renvoyée :
{
  "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)"
}
addRole
Nom de la méthode d'origine : addRole
Cette méthode POST ajoute un rôle à un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Les jetons non fongibles sont indiqués par le nom du jeton. L'utilisateur spécifié doit avoir un compte de jeton non fongible. Le rôle spécifié doit exister dans le fichier de spécification pour le jeton.
Charge utile:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "role": "role minter/burner"
    "tokenDetails": "{"tokenName": "token name value"}"
    "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • role: string : nom du rôle à ajouter à l'utilisateur indiqué.
  • tokenDetails: TokenDetail : détails indiquant le jeton. Pour les jetons non fongibles, utilisez le format suivant :
    {"tokenName":"artCollection"}
Renvoie :
  • En cas de succès, un message contenant les détails du compte.
Exemple de valeur renvoyée :
{
  "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa)"
}
approveBondRedemption
Nom de la méthode d'origine : approveBondRedemption
Cette méthode POST ne peut être appelée que par le créateur de jeton pour approuver une demande de rachat de jetons de liaison. L'opération d'approbation transfère le NFT de l'obligation du compte du propriétaire (l'utilisateur qui a émis la demande) au compte du créateur, et transfère les jetons CBDC du créateur de l'obligation au compte du propriétaire. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les éléments orgId et userId corrects pour le transfert. Les valeurs orgId et userId doivent correspondre au compte du propriétaire du jeton qui a émis la demande de rachat, et la valeur de transfert du jeton CBDC doit être égale au prix de rachat calculé par le code chaîne lors de la génération de la demande de rachat.
Charge utile:
{
   "fromOrgId": "fromOrgId value",
   "fromUserId": "fromUserId value",
   "settlementId": "settlementId value",
   "tokenId": "{{bc-token-id}}",
   "CBDCTokenId": "CBDCTokenId value",
   "CBDCFromOrgId": "CBDCFromOrgId value",
   "CBDCFromUserId": "CBDCFromUserId value",
   "CBDCQuantity": 0,
   "CBDCRemark": "{\\\"category\\\":\\\"category value\\\",\\\"description\\\":\\\"description value\\\"}",
   "endorsers": {{endorsers}}
}
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • settlementId: string : ID de règlement pour l'opération d'échange.
  • tokenId: string : ID du jeton.
  • CBDCTokenId: string : ID du jeton dans le code chaîne CBDC.
  • CBDCOrgId: string : ID MSP de l'utilisateur dans le code chaîne CBDC.
  • CBDCUserId: string : nom utilisateur ou ID de courriel de l'utilisateur dans le code chaîne CBDC.
  • CBDCQuantity: string : quantité de jetons à transférer dans le code chaîne CBDC.
  • CBDCRemark: string : remarque pour le transfert dans le code chaîne CBDC, qui doit être au format indiqué précédemment.
Exemple de valeur renvoyée :
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
balanceOfBatch
Nom de la méthode d'origine : balanceOfBatch
Cette méthode GET termine une opération de batch qui obtient le solde des comptes de jetons. Les détails du compte sont indiqués dans trois listes distinctes d'ID d'organisation, d'ID utilisateur et d'ID de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne ou par des propriétaires de compte. Les propriétaires de compte ne peuvent voir les détails du solde que pour les comptes qu'ils possèdent.
Interroger :
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
Paramètres :
  • orgIds: string[] : liste des ID de fournisseur de services d'adhésion dans l'organisation actuelle.
  • userIds: string[] : liste des ID d'utilisateur ou d'e-mail.
  • tokenIds: string[] : liste des ID de jeton.
Exemple de valeur renvoyée :

Dans l'exemple suivant, l'ID de jeton FNFT représente un jeton non fongible fractionnaire et l'ID de jeton FT représente un jeton fongible.

[
    {
        "orgId": "appdev",
        "userId": "idcqa",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "tokenId": "FNFT",
        "balance": 100
    },
    {
        "orgId": "appdev",
        "userId": "idcqa",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
        "tokenId": "FT",
        "balance": 50
    },
    {
        "orgId": "appdev",
        "userId": "user1_minter",
        "userAccountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
        "tokenAccountId": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "tokenId": "FNFT",
        "balance": 10
    }
]
batchTransferFrom
Nom de la méthode d'origine : batchTransferFrom
Cette méthode POST termine une opération batch qui transfère les jetons spécifiés dans une liste d'ID de jeton d'un utilisateur à un autre.
Charge utile:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'expéditeur et du propriétaire du jeton dans l'organisation actuelle.
  • fromUserId: string : nom utilisateur ou ID de courriel de l'expéditeur et du propriétaire du jeton.
  • toOrgId: string – ID du prestataire de services d'adhésion (MSP) du destinataire dans l'organisation actuelle.
  • toUserId: string : nom d'utilisateur ou ID de courriel du destinataire.
  • tokenIds: string[] : liste des ID de jeton pour les jetons à transférer.
  • quantity: number[] : liste des quantités de jetons à transférer, correspondant au tableau d'ID de jeton.
Renvoie :
  • En cas de réussite, un message contenant les détails de chaque transfert de jeton.
Exemple de valeur renvoyée :
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    }
]
burnBatch
Nom de la méthode d'origine : burnBatch
Cette méthode POST désactive ou brûle les jetons spécifiés. Tout utilisateur doté du rôle de brûleur peut appeler cette méthode.
Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
Paramètres :
  • orgId: string – ID du fournisseur de services d'adhésion (MSP) dans l'organisation actuelle.
  • userId: string : nom utilisateur ou ID courriel.
  • tokenIds: string[] : liste des ID de jeton à graver
  • quantity: number[] : liste des quantités de jetons à graver, correspondant au tableau d'ID de jeton.
Renvoie :
  • En cas de réussite, un message contenant des détails sur les opérations de gravure.
Exemple de valeur renvoyée :
[
  {
    "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: idcqa)"
  },
  {
    "msg": "Successfully burned 5 tokens of tokenId: tokenOne from Account-ID oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa)"
  },
  {
    "msg": "Successfully burned 2 token share of tokenId: FNFT from Account-ID oaccount~87bcb699d507368ee3966cd03ee6d7736ffc55dde8c0f0e16b14866334ac504a (Org-Id: AutoF1377358917, User-Id: idcqa)"
  }
]
createAccount
Nom de la méthode d'origine : createAccount
Cette méthode POST crée un compte pour un utilisateur spécifié et les comptes de jetons associés pour les jetons. Un compte doit être créé pour tout utilisateur qui aura des jetons à tout moment. Le compte utilisateur suit le compte NFT et les comptes de jetons fongibles qu'un utilisateur détient. Les utilisateurs doivent avoir des comptes sur le réseau pour effectuer des opérations liées aux jetons. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.

Un compte utilisateur a un ID unique, qui est formé par un hachage SHA-256 du paramètre orgId et du paramètre userId.

Un utilisateur peut avoir plusieurs comptes de jetons fongibles avec des ID de compte uniques. Les ID de compte de jetons fongibles sont formés d'un hachage SHA-256 du paramètre orgId, du paramètre userId, de la chaîne constante ft séparée par le symbole tilde (~) et d'un nombre de compteurs qui signifie l'index du compte fongible créé séparé par le symbole tilde (~).

Un utilisateur ne peut avoir qu'un seul compte de jeton non fongible. Les ID de compte de jetons non fongibles sont uniques et sont formés par un hachage SHA-256 du paramètre orgId, du paramètre userId et de la chaîne constante nft, séparés par le symbole tilde (~). Tous les jetons non fongibles qu'un utilisateur possède, qu'ils soient entiers ou fractionnaires, sont liés à ce compte.

Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "ftAccount": true,
 "nftAccount": true,
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur pour lequel créer le compte. L'ID doit commencer par un caractère alphanumérique et peut inclure des lettres, des chiffres et des caractères spéciaux tels que des traits de soulignement (_), des points (.), des signes arobase (@) et des traits d'union (-).
  • userId : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur. L'ID doit commencer par un caractère alphanumérique et peut inclure des lettres, des chiffres et des caractères spéciaux tels que des traits de soulignement (_), des points (.), des signes arobase (@) et des traits d'union (-).
  • ftAccount: boolean : si la valeur est True, un compte de jeton fongible est créé et associé au compte utilisateur.
  • nftAccount: boolean : si la valeur est True, un compte de jeton non fongible est créé et associé au compte utilisateur.
Renvoie :
  • En cas de succès, objet JSON du compte créé.
Exemple de valeur renvoyée :
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae",
  "userId": "user1",
  "orgId": "appdev",
  "totalAccounts": 2,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58"
}
createAccountWithEnrollment
Nom de la méthode d'origine : createAccountWithEnrollment
Cette méthode POST crée une inscription pour un utilisateur dans le proxy REST de l'instance et crée un compte NFT dans le code chaîne du marché des obligations.
Charge utile:
{
 "orgId": "orgId value",
 "userId": "userId value"
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, objet JSON du compte créé.
Exemple de valeur renvoyée :
{
 "blockNumber": 44,
 "encode": "JSON",
 "payload": {
 "accountId": "ouaccount~1930ec223036c0fe2ea97c58fd9a8d2456d13c0fd0c98217ce075ceddb8add02",
 "assetType": "ouaccount",
 "associatedFtAccounts": [],
 "associatedNftAccount": "oaccount~03f8a6949f6c5c453354a4a8eed8503a39766085b476430e95ce305769fba861",
 "orgId": "BondMPTest",
 "totalAccounts": 1,
 "totalFtAccounts": 0,
 "userId": "u14"
 },
 "sourceURL": "bondmptest-oabcs1-iad.blockchain.ocp.example.com:20010",
 "txid": "9fa75a631f0de2ddf2ed85742dcc4d4b97b7afb0d3f9a07988e5cb9120ed633f"
}
createBondToken
Nom de la méthode d'origine : createBondToken
Cette méthode POST crée des jetons. Chaque jeton défini possède sa propre méthode de création. Pour les jetons non fongibles, l'appelant de cette méthode devient le propriétaire du NFT. Si le comportement roles est défini dans la propriété behaviors du modèle de jeton et qu'une valeur minter_role_name est indiquée, le compte de l'appelant doit avoir le rôle de mineur.
Charge utile:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"tokenMetadata\":{\"ISIN\":\"ISIN value\",\"Segment\":\"Segment value\",\"Issuer\":\"Issuer value\",\"FaceValue\":999,\"IssueSize\":999,\"CouponRate\":999,\"InterestPaymentType\":\"InterestPaymentType value\",\"InterestFrequency\":\"InterestFrequency value\",\"IssueDate\":\"2023-03-28T15:16:36+00:00\",\"MaturityDate\":\"2023-03-28T15:16:36+00:00\"},\"status\":\"status value\"}",
 "quantity": 1,
 "sameOrgEndorser": true
}
Paramètres :
  • tokenAsset: <Token Class> : ressource de jeton. Les propriétés de la ressource sont définies dans le fichier de modèle.
  • quantity: number : nombre de sèmes à extraire. La seule valeur prise en charge pour ce paramètre est 1.
Renvoie :
  • En cas de succès, objet JSON du compte créé.
Exemple de valeur renvoyée :
{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
createIDCSUser
Nom de la méthode d'origine : createIDCSUser
Cette méthode POST crée un utilisateur Identity Cloud Service dans la location indiquée par l'URL dans le fichier terraform.tfvars et affecte l'utilisateur au groupe d'utilisateurs indiqué.
Charge utile:
{
 "userName": "userName value",
 "firstName": "firstName value",
 "lastName": "lastName value",
 "email": "email value",
 "groupName": "groupName value"
}
Paramètres :
  • userName: string : ID de l'utilisateur.
  • firstName: string : nom de l'utilisateur.
  • lastName: string – Nom de l'utilisateur.
  • email: string – Adresse électronique de l'utilisateur.
  • groupName: string : nom du groupe Identity Cloud Service à affecter à l'utilisateur.
Exemple de valeur renvoyée :
{
 "status": "Success",
 "msg": "User user1 is created and assigned to the group BOND_ADMIN"
}
createTokenAccount
Nom de la méthode d'origine : createTokenAccount
Cette méthode POST crée un compte de jeton fongible ou non fongible à associer à un compte utilisateur.

Un utilisateur peut avoir plusieurs comptes de jetons fongibles avec des ID de compte uniques. Les ID de compte de jetons fongibles sont formés d'un hachage SHA-256 du paramètre orgId, du paramètre userId, de la chaîne constante ft séparée par le symbole tilde (~) et d'un nombre de compteurs qui signifie l'index du compte fongible créé séparé par le symbole tilde (~).

Un utilisateur ne peut avoir qu'un seul compte de jeton non fongible. Les ID de compte de jetons non fongibles sont uniques et sont formés par un hachage SHA-256 du paramètre orgId, du paramètre userId et de la chaîne constante nft, séparés par le symbole tilde (~). Tous les jetons non fongibles qu'un utilisateur possède, qu'ils soient entiers ou fractionnaires, sont liés à ce compte.

Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.

Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenType": "nonfungible",
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • tokenType: TokenType : type de compte de jeton à créer. Les seuls types de jeton pris en charge sont nonfungible et fungible.
Renvoie :
  • En cas de succès, objet JSON du compte de jeton créé.
Exemple de valeur renvoyée :
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": ""
}
createUserAccount
Nom de la méthode d'origine : createUserAccount
Cette méthode POST crée un compte pour l'utilisateur spécifié. Un compte doit être créé pour tout utilisateur qui aura des jetons à tout moment. Le compte utilisateur suit le compte NFT et les comptes de jetons fongibles dont dispose un utilisateur. Les utilisateurs doivent avoir des comptes sur le réseau pour effectuer des opérations liées aux jetons.

Un ID de compte est un hachage SHA-256 du paramètre orgId et du paramètre userId. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.

Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, objet JSON du compte utilisateur créé.
Exemple de valeur renvoyée :
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 0,
  "totalFtAccounts": 0,
  "associatedFtAccounts": [],
  "associatedNftAccount": ""
}
deleteAccount
Nom de la méthode d'origine : deleteAccount
Cette méthode POST supprime un compte de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Cette méthode génère une erreur si aucune valeur accountStatus n'est trouvée pour le compte dans le livre.
Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
getAccount
Nom de la méthode d'origine : getAccount
Cette méthode GET renvoie les détails du compte de jeton pour un utilisateur spécifié. Cette méthode ne peut être appelée que par une chaîne (Token Admin) du code chaîne ou par la chaîne (Account Owner) du compte.
Interroger :
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • tokenId?: string : pour un compte de jeton non fongible, chaîne vide. Pour un compte de jeton fongible, ID de jeton.
Renvoie :
  • En cas de succès, objet JSON qui inclut les détails du compte de jeton.
Exemple de valeur renvoyée
{
    "assetType": "oaccount",
    "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
    "userId": "user2",
    "orgId": "AppBldFFFFMay22",
    "tokenType": "nonfungible",
    "noOfNfts": 3
}
getAccountBondSummary
Nom de la méthode d'origine : getAccountBondSummary
Cette méthode GET renvoie un récapitulatif de compte pour l'utilisateur spécifié, y compris les détails des jetons achetés ou échangés et leurs prix d'achat et d'échange.
Interroger :
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, objet JSON qui inclut le récapitulatif du compte de jetons.
Exemple de valeur renvoyée
[
 {
   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
getAccountBondSummaryWithPagination
Nom de la méthode d'origine : getAccountBondSummaryWithPagination
Cette méthode GET renvoie un récapitulatif de compte pour l'utilisateur spécifié, y compris les détails des jetons achetés ou échangés et leurs prix d'achat et d'échange. Cette méthode peut renvoyer des résultats avec pagination basée sur les valeurs de taille de page et de signet, ainsi que filtrés par heure de début et heure de fin.
Interroger :
/getAccountBondSummary?orgId={{bc-org-id}}&userId={{bc-user-id}}&pageSize=1&bookmark={{bookmark}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : signet du résultat renvoyé.
Renvoie :
  • En cas de succès, objet JSON qui inclut le récapitulatif du compte de jetons.
Exemple de valeur renvoyée
[
 {

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
getAccountDetailsByUser
Nom de la méthode d'origine : getAccountDetailsByUser
Cette méthode GET renvoie un récapitulatif de compte pour un utilisateur spécifié et les détails des jetons fongibles et non fongibles associés à l'utilisateur. Cette méthode ne peut être appelée que par une chaîne (Token Admin) du code chaîne ou par la chaîne (Account Owner) du compte.
Interroger :
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, objet de compte JSON qui inclut et récapitule le compte pour l'utilisateur indiqué, ainsi que les détails des jetons fongibles et non fongibles associés à l'utilisateur. Pour les jetons fractionnaires non fongibles, la propriété tokenShare de la section associatedNFTs affiche le partage dont l'utilisateur est propriétaire.
Exemple de valeur renvoyée :
{
    "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
    "associatedFTAccounts": [
        {
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "tokenId": "FT",
            "balance": 50
        }
    ],
    "associatedNFTAccount": {
        "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "associatedNFTs": [
            {
                "nftTokenId": "FNFT",
                "tokenShare": 100
            },
            {
                "nftTokenId": "FNFT2",
                "tokenShare": 110
            },
            {
                "nftTokenId": "NFT"
            }
        ]
    }
}
getAccountStatus
Nom de la méthode d'origine : getAccountStatus
Cette méthode GET extrait le statut actuel du compte de jeton. Cette méthode peut être appelée par l'élément Token Admin du code chaîne ou par le propriétaire du compte de jeton.
Interroger :
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Nom de la méthode d'origine : getAccountStatusHistory
Cette méthode GET extrait l'historique du statut du compte. Cette méthode peut être appelée par l'élément Token Admin du code chaîne ou par le propriétaire du compte de jeton.
Interroger :
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, l'historique du statut du compte au format JSON.
Exemple de valeur renvoyée :
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2022-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2022-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
getAccountTransactionHistory
Nom de la méthode d'origine : getAccountTransactionHistory
Cette méthode GET renvoie l'historique des transactions de compte. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne ou par le propriétaire du compte.
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
[
    {
        "transactionId": "otransaction~3a6b23c3003626f3947e990eddbd7ac23398d2200e2eb3eac745e6ddfae140bc~7c88c736df38d5622512f1e8dcdd50710eb47c953f1ecb24ac44790a9e2f475b",
        "timestamp": "2023-06-06T14:48:08.000Z",
        "tokenId": "FNFT",
        "transactedAmount": 10,
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "transactionType": "DEBIT",
        "balance": 90
    },
    {
        "transactionId": "otransaction~3a6b23c3003626f3947e990eddbd7ac23398d2200e2eb3eac745e6ddfae140bc~178e3730bc5bee50d02f1464a4eebf733a051905f651e5789039adb4a3edc114",
        "timestamp": "2023-06-06T14:48:08.000Z",
        "tokenId": "NFT",
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "transactionType": "DEBIT"
    },
    {
        "transactionId": "otransaction~c369929e28e78de06c72d020f1418c9a154a7dd280b2e22ebb4ea4485e249124~a7cefb22ff39ee7e36967be71de27da6798548c872061a62dabc56d88d50b930",
        "timestamp": "2023-06-06T14:47:08.000Z",
        "tokenId": "NFT",
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "transactionType": "MINT"
    },
    {
        "transactionId": "otransaction~114a1bc78d04be48ee6dc140c32c042ee9481cb118959626f090eec744522422~e4eb15d9354f694230df8835ade012100d82aa43672896a2c7125a86e3048f9f",
        "timestamp": "2023-06-05T17:17:57.000Z",
        "tokenId": "FNFT",
        "transactedAmount": 100,
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "transactionType": "MINT",
        "balance": 100
    }
]
getAccountsByRole
Nom de la méthode d'origine : getAccountsByRole
Cette méthode GET renvoie la liste de tous les ID de compte pour un rôle et un jeton spécifiés.
Interroger :
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Paramètres :
  • role: string : nom du rôle à rechercher.
  • tokenDetail: JSON : pour les jetons fongibles, ID de jeton. Pour les jetons non fongibles, le nom de jeton obligatoire.
Exemple de valeur renvoyée :
{
  "accounts": [
    "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
    "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b"
  ]
}
getAllAccounts
Nom de la méthode d'origine : getAllAccounts
Cette méthode GET renvoie les détails de tous les comptes utilisateur. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
Interroger :
/getAllAccounts
Paramètres :
  • Aucun élément
Renvoie :
  • En cas de succès, un tableau JSON de tous les comptes.
Exemple de valeur renvoyée :
[
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
            "userId": "user2",
            "orgId": "appdev",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371"
        },
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
            "userId": "user1_minter",
            "orgId": "appdev",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446"
        },
    ]
getAllTokenAdmins
Nom de la méthode d'origine : getAllTokenAdmins
Cette méthode GET renvoie la liste de tous les utilisateurs qui sont un élément Token Admin du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
Interroger :
/getAllTokenAdmins
Paramètres :
  • Aucun élément
Renvoie :
  • En cas de réussite, tableau admins au format JSON contenant les objets orgId et userId.
Exemple de valeur renvoyée :
{
  "admins": [
    {
      "orgId": "appdev",
      "userId": "user2"
    },
    {
      "orgId": "appdev",
      "userId": "user1"
    }
  ]
}
getAllTokens
Nom de la méthode d'origine : getAllTokens
Cette méthode renvoie toutes les ressources de jeton enregistrées dans la base de données d'état. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Cette méthode utilise des requêtes enrichies Berkeley DB SQL et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
/getAllTokens
Paramètres :
  • Aucun élément
Renvoie :
  • Liste de toutes les ressources de jeton au format JSON.
Exemple de valeur renvoyée :
[{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "status value"
}]
getAllTokensByUser
Nom de la méthode d'origine : getAllTokensByUser
Cette méthode GET renvoie toutes les ressources de jeton détenues par un utilisateur spécifié. Cette méthode utilise des requêtes enrichies Berkeley DB SQL et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne ou par le propriétaire du compte.
Interroger :
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
[{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "status value"
}]
getAllTokensWithFilters
Nom de la méthode d'origine : getAllTokensWithFilters
L'administrateur peut appeler cette méthode GET pour extraire tous les jetons filtrés par statut.
Interroger :
/getAllTokensWithFilters?status=status&pageSize=pageSize&bookmark=bookmark
Paramètres :
  • status: string : statut du jeton, qui peut être CREATED ou POSTED.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : signet du résultat renvoyé.
Exemple de valeur renvoyée :
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Nom de la méthode d'origine : getTokenApprovalRequestByUser
Tout titulaire de compte peut appeler cette méthode GET pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de rachat) qu'il a effectuées.
Interroger :
/getTokenApprovalRequestByUser?status=status value
Paramètres :
  • status: string : statut de la demande, à savoir PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Nom de la méthode d'origine : getTokenApprovalRequestByUser
Tout titulaire de compte peut appeler cette méthode GET pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de rachat) qu'il a effectuées.
Interroger :
/getTokenApprovalRequestForUserByStatus?status=status value
Paramètres :
  • status: string : statut de la demande, à savoir PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenById
Nom de la méthode d'origine : getTokenById
Cette méthode GET renvoie un objet de jeton si le jeton est présent dans la base de données d'état. Pour les NFT fractionnaires, la liste des propriétaires est également renvoyée. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne ou du propriétaire du jeton.
Interroger :
/getTokenById?tokenId={{bc-token-id}}
Paramètres :
  • tokenId: string : ID du jeton à obtenir.
Exemple de valeur renvoyée :
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenHistory
Nom de la méthode d'origine : getTokenHistory
Cette méthode GET renvoie l'historique d'un ID de jeton spécifié.
Interroger :
/getTokenHistory?tokenId={{bc-token-id}}
Paramètres :
  • tokenId: string : ID du jeton.
Renvoie :
  • En cas de succès, tableau JSON contenant l'historique des jetons.
Exemple de valeur renvoyée :
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getUsersByRole
Nom de la méthode d'origine : getUsersByRole
Cette méthode renvoie la liste de tous les utilisateurs pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
Interroger :
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Paramètres :
  • role: string : nom du rôle à rechercher.
  • tokenDetail: JSON : pour les jetons fongibles, ID de jeton. Pour les jetons non fongibles, le nom de jeton obligatoire.
Exemple de valeur renvoyée :
{
    "users": [
        {
            "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
            "orgId": "appdev",
            "userId": "user2"
        },
        {
            "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
            "orgId": "appdev",
            "userId": "user1"
        }
    ]
}
init
Nom de la méthode d'origine : init
Cette méthode POST est appelée lorsque le code chaîne est instancié. Chaque élément Token Admin est identifié par les informations userId et orgId dans le paramètre adminList. userId est le nom utilisateur ou l'ID courriel du propriétaire de l'instance ou de l'utilisateur qui est connecté à l'instance. orgId est l'ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation réseau actuelle. Le paramètre adminList est obligatoire la première fois que vous déployez le code chaîne. Si vous mettez à niveau le code chaîne, transmettez une liste vide ([]). Si vous êtes l'utilisateur qui a initialement déployé le code chaîne, vous pouvez également indiquer de nouveaux administrateurs dans le paramètre adminList lorsque vous mettez à niveau le code chaîne. Toutes les autres informations du paramètre adminList sont ignorées lors des mises à niveau.
Charge utile:
{
 "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]"
}
Paramètres :
  • adminList array : tableau d'informations {orgId, userId} qui indique la liste des administrateurs de jetons. Le tableau adminList est un paramètre obligatoire.
Renvoie :
  • En cas de succès, message sans charge utile.
Exemple de valeur renvoyée :
{
}
isInRole
Nom de la méthode d'origine : isInRole
Cette méthode GET renvoie une valeur booléenne pour indiquer si un utilisateur a un rôle spécifié. Les jetons non fongibles sont indiqués par le nom du jeton. Cette méthode ne peut être appelée que par une chaîne (Token Admin) du code chaîne ou par la chaîne (Account Owner) du compte. L'utilisateur spécifié doit disposer d'un compte de jeton associé au jeton fongible ou d'un compte de jeton non fongible pour les rôles NFT. Le rôle spécifié doit exister dans le fichier de spécification pour le jeton.
Interroger :
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • role: string : nom du rôle à rechercher.
  • tokenDetails: TokenDetail : détails indiquant le jeton. Pour les jetons non fongibles, utilisez le format suivant :
    {"tokenName":"artCollection"}
Exemple de valeur renvoyée :
{
    "result": true,
    "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa) has minter role"
}
isTokenAdmin
Nom de la méthode d'origine : isTokenAdmin
Cette méthode GET renvoie la valeur booléenne true si l'appelant de la fonction est un Token Admin, sinon elle renvoie false. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • La méthode renvoie true si l'appelant est un Token Admin, sinon elle renvoie false.
Exemple de valeur renvoyée :
{"result": true}
mintBatch
Nom de la méthode d'origine : mintBatch
Cette méthode POST crée (minte) plusieurs jetons dans une opération batch. Cette méthode crée uniquement des jetons fongibles ou des jetons non fongibles fractionnaires.

Pour les jetons fongibles, si le rôle minter est défini dans le fichier de spécification, tout utilisateur doté du rôle minter peut appeler cette méthode. Sinon, n'importe quel utilisateur peut utiliser cette méthode pour extraire des jetons. Vous ne pouvez pas dépasser la propriété max_mint_quantity du jeton, si cette propriété a été spécifiée lors de la création ou de la mise à jour du jeton.

Pour les jetons non fongibles, si le rôle mineur est défini dans le fichier de spécification, tout utilisateur doté du rôle mineur peut appeler cette méthode. Sinon, n'importe quel utilisateur peut utiliser cette méthode pour extraire des jetons. En outre, l'appelant doit également être le créateur du jeton. Il n'y a pas de limite supérieure à la quantité de jetons non fongibles fractionnaires qui peuvent être extraits.

Vous ne pouvez pas utiliser cette méthode pour extraire un jeton non fongible entier.

Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • tokenIds: string[] : liste des ID de jeton pour lesquels extraire des jetons.
  • quantity: number[] : liste des quantités de jetons à extraire, correspondant au tableau d'ID de jeton.
Renvoie :
  • En cas de succès, objet JSON qui inclut des détails sur les jetons extraits.
Exemple de valeur renvoyée :
{
    "msg": "Successfully minted batch of tokens for User-Account-Id ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38 (Org-Id: appdev, User-Id: idcqa).",
    "details": [
        {
            "msg": "Successfully minted 100 tokens of fractional tokenId: plot55 to Org-Id: appdev, User-Id: idcqa"
        },
        {
            "msg": "Successfully minted 100 tokens of tokenId: loyalty to Token-Account-Id oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e"
        }
    ]
}
ownerOf
Nom de la méthode d'origine : ownerOf
Cette méthode GET renvoie l'ID de compte, l'ID d'organisation et l'ID utilisateur du propriétaire de l'ID de jeton spécifié. Tout le monde peut appeler cette méthode.
Interroger :
/ownerOf?tokenId={{bc-token-id}}
Paramètres :
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
[
    {
        "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
        "orgId": "Org1MSP",
        "userId": "admin"
    },
    {
        "accountId": "oaccount~74108eca702bab6d8548e740254f2cc7955d886885251d52d065042172a59db0",
        "orgId": "Org1MSP",
        "userId": "user"
    }
]
payInterest
Nom de la méthode d'origine : ownerOf
Cette méthode POST ne peut être appelée que par le créateur de jeton ou l'administrateur pour payer les intérêts gagnés sur le jeton d'obligation. Cette méthode ne peut être appelée que si la fréquence d'intérêt du jeton est 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 code chaîne en fonction du taux de coupon du jeton. L'opération d'achat transfère les jetons CBDC du compte de l'appelant vers le compte du propriétaire de l'obligation. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les éléments orgId et userId corrects pour le transfert. Les éléments orgId et userId doivent correspondre au propriétaire du jeton et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code chaîne de liaison.
Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenId": "{{bc-token-id}}",
 "orderId": "orderId value",
 "CBDCTokenId": "CBDCTokenId value",
 "CBDCFromOrgId": "CBDCFromOrgId value",
 "CBDCFromUserId": "CBDCFromUserId value",
 "CBDCQuantity": 0,
 "CBDCRemark": "{\\\"category\\\":\\\"category value\\\",\\\"description\\\":\\\"description value\\\"}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération.
  • CBDCTokenId: string : ID du jeton dans le code chaîne CBDC.
  • CBDCOrgId: string : ID MSP de l'utilisateur dans le code chaîne CBDC.
  • CBDCUserId: string : nom utilisateur ou ID de courriel de l'utilisateur dans le code chaîne CBDC.
  • CBDCQuantity: string : quantité de jetons à transférer dans le code chaîne CBDC.
  • CBDCRemark: string : remarque pour le transfert dans le code chaîne CBDC, qui doit être au format indiqué précédemment.
Exemple de valeur renvoyée :
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
postBondToken
Nom de la méthode d'origine : postBondToken
Cette méthode POST ne peut être appelée que par un créateur de jeton. La méthode soumet le jeton d'obligation pour inscription sur le marché. Lorsqu'un jeton est créé, son statut est initialement défini sur created. Cette méthode met à jour le statut sur posted. Les utilisateurs peuvent exécuter la méthode getAllTokensWithFilter pour extraire tous les NFT ayant le statut posted.
Charge utile:
{
 "tokenId": "{{bc-token-id}}",
 "sameOrgEndorser": true
}
Paramètres :
  • tokenId: string : ID du jeton à publier.
Exemple de valeur renvoyée :
{
         "isValid":true,
         "payload":{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
purchaseBondToken
Nom de la méthode d'origine : purchaseBondToken
Cette méthode POST peut être appelée par n'importe quel titulaire de compte pour acheter une NFT obligataire cotée. L'achat transfère la NFT obligataire 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. Pour cette raison, la méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les éléments orgId et userId corrects pour le transfert. Les valeurs orgId et userId doivent correspondre au créateur du jeton, et la valeur de transfert du jeton CBDC doit être égale à la valeur nominale du jeton d'obligation multipliée par la quantité achetée, plus les frais supplémentaires.
Charge utile:
{
 "tokenId": "{{bc-token-id}}",
 "quantity": 1,
 "orderId": "orderId value",
 "additionalFees": 1,
 "CBDCTokenId": "CBDCTokenId value",
 "CBDCFromOrgId": "CBDCFromOrgId value",
 "CBDCFromUserId": "CBDCFromUserId value",
 "CBDCQuantity": 0,
 "CBDCRemark": "{\\\"category\\\":\\\"category value\\\",\\\"description\\\":\\\"description value\\\"}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • tokenId: string : ID du jeton à acheter.
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • settlementId: string : ID de règlement de l'opération.
  • CBDCTokenId: string : ID du jeton dans le code chaîne CBDC.
  • CBDCOrgId: string : ID MSP de l'utilisateur dans le code chaîne CBDC.
  • CBDCUserId: string : nom utilisateur ou ID de courriel de l'utilisateur dans le code chaîne CBDC.
  • CBDCQuantity: string : quantité de jetons à transférer dans le code chaîne CBDC.
  • CBDCRemark: string : remarque pour le transfert dans le code chaîne CBDC, qui doit être au format indiqué précédemment.
Exemple de valeur renvoyée :
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
rejectBondRedemption
Nom de la méthode d'origine : rejectBondRedemption
Le créateur du jeton peut appeler cette méthode POST pour rejeter la demande d'échange. Les propriétaires de jetons peuvent relancer une demande d'échange en utilisant un autre ID de règlement.
Charge utile:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • settlementId: string : ID de règlement pour l'opération d'échange.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
removeRole
Nom de la méthode d'origine : removeRole
Cette méthode POST supprime un rôle d'un utilisateur et d'un jeton spécifiés. Les jetons fongibles sont spécifiés par l'ID de jeton. Les jetons non fongibles sont indiqués par le nom du jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "role": "role value (for example minter / burner)",
 "tokenDetail": "{\"tokenName\":\"tokenName value\"}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • role: string : nom du rôle à enlever de l'utilisateur indiqué.
  • tokenDetails: TokenDetail : détails indiquant le jeton. Pour les jetons non fongibles, utilisez le format suivant :
    {"tokenName":"artCollection"}
Exemple de valeur renvoyée :
{
  "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)"
}
removeTokenAdmin
Nom de la méthode d'origine : removeTokenAdmin
Cette méthode POST enlève un utilisateur en tant qu'utilisateur Token Admin du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Vous ne pouvez pas vous enlever vous-même en tant que Token Admin.
Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "sameOrgEndorser": true
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur qui a été enlevé en tant que Token Admin du code chaîne.
Exemple de valeur renvoyée :
{"msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)"}
requestBondRedemption
Nom de la méthode d'origine : requestBondRedemption
Cette méthode POST ne peut être appelée que par le propriétaire du jeton pour lancer une demande de remboursement de jetons d'obligation après maturité. Cette méthode implique également le calcul du prix de rachat par le code chaîne. 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.
Charge utile:
{
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "orderId": "orderId value",
 "additionalFees": 1,
 "endorsers": {{endorsers}}
}
Paramètres :
  • settlementId: string : ID de règlement pour l'opération d'échange.
  • tokenId: string : ID du jeton.
  • orderId: string – ID de commande pour l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix de rachat.
Exemple de valeur renvoyée :
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"bond1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11

}
safeBatchTransferFrom
Nom de la méthode d'origine : safeBatchTransferFrom
Cette méthode POST termine une opération batch qui transfère les jetons spécifiés dans une liste d'ID de jeton d'un utilisateur à un autre.

Pour les NFT, étant donné que la méthode transfère la propriété de la NFT, l'expéditeur de la NFT doit posséder le jeton.

Pour les NFT fractionnaires, si un utilisateur (y compris le créateur du jeton) transfère tous les partages qu'il possède, il perd la propriété du jeton. Si un partage d'un jeton est transféré à un utilisateur, cet utilisateur devient automatiquement l'un des propriétaires de la NFT fractionnaire.

L'appelant de la méthode doit être l'expéditeur spécifié.

{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'expéditeur et du propriétaire du jeton dans l'organisation actuelle.
  • fromUserId: string : nom utilisateur ou ID de courriel de l'expéditeur et du propriétaire du jeton.
  • toOrgId: string – ID du prestataire de services d'adhésion (MSP) du destinataire dans l'organisation actuelle.
  • toUserId: string : nom d'utilisateur ou ID de courriel du destinataire.
  • tokenIds: string[] : liste des ID de jeton pour les jetons à transférer.
  • quantity: number[] : liste des quantités de jetons à transférer, correspondant au tableau d'ID de jeton.
Renvoie :
  • En cas de réussite, un message contenant les détails de chaque transfert de jeton.
Exemple de valeur renvoyée :
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    }
]
suspendAccount
Nom de la méthode d'origine : suspendAccount
Cette méthode POST suspend un compte de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Une fois qu'un compte est suspendu, vous ne pouvez effectuer aucune opération de mise à jour du compte. Un compte supprimé ne peut pas être suspendu.
Charge utile:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, une représentation JSON du statut du compte de jeton.
Exemple de valeur renvoyée :
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
updateBondToken
Nom de la méthode d'origine : updateBondToken
Cette méthode POST met à jour les jetons. Chaque jeton défini possède sa propre méthode de mise à jour. Vous ne pouvez pas mettre à jour les métadonnées de jeton ou l'URI de jeton des jetons non fongibles. Cette méthode ne peut être appelée que par le propriétaire du jeton.
Charge utile:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"status\":\"status value\", \"tokenMetadata\":{\"ISIN\":\"ISIN value\",\"Segment\":\"Segment value\",\"Issuer\":\"Issuer value\",\"FaceValue\":999,\"IssueSize\":999,\"CouponRate\":999,\"InterestPaymentType\":\"InterestPaymentType value\",\"InterestFrequency\":\"InterestFrequency value\",\"IssueDate\":\"2023-03-28T15:16:36+00:00\",\"MaturityDate\":\"2023-03-28T15:16:36+00:00\"},\"status\":\"status value\"}",
 "sameOrgEndorser": true
}
Paramètres :
  • tokenAsset: <Token Class> : ressource de jeton. Les propriétés de la ressource sont définies dans le fichier de modèle.
Renvoie :
  • En cas de réussite, la ressource de jeton mise à jour au format JSON.
Exemple de valeur de retour (NFT entier)
{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "bond",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "nonfungible",
            "tokenUnit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner"
            },
            "mintable": {
                "max_mint_quantity": 0
            },
            "quantity": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
URI
Nom de la méthode d'origine : URI
Cette méthode renvoie l'URI d'un jeton spécifié.
Interroger :
/URI?tokenId={{bc-token-id}}
Paramètres :
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
    "tokenUri": "example.com"
}
Le tableau suivant présente le mapping entre les noms d'API de code chaîne et les adresses mises à jour. Pour plus d'informations sur l'API de code chaîne, reportez-vous à Projet de jeton TypeScript échafaudé dans Blockchain App Builder pour Oracle Blockchain Platform.
Adresse mise à jour Nom d'API de code chaîne TypeScript Nom d'API de code chaîne Go Type de méthode
activateAccount activateAccount ActivateAccount Méthode native ERC-1155
addAdmin addAdmin AddAdmin Méthode native ERC-1155
addRole addRole AddRole Méthode native ERC-1155
approveBondRedemption approveTokenRedemption ApproveTokenRedemption Modifié
balanceOfBatch balanceOfBatch BalanceOfBatch Méthode native ERC-1155
batchTransferFrom batchTransferFrom BatchTransferFrom Méthode native ERC-1155
burnBatch burnBatch BurnBatch Méthode native ERC-1155
createAccount createAccount CreateAccount Méthode native ERC-1155
createAccountWithEnrollment createAccountWithEnrollment CreateAccountWithEnrollment Ajoutée
createBondToken createBondToken CreateBondToken Méthode native ERC-1155
createIDCSUser createIDCSUser CreateIDCSUser Ajoutée
createTokenAccount createTokenAccount CreateTokenAccount Méthode native ERC-1155
createUserAccount createUserAccount CreateUserAccount Méthode native ERC-1155
deleteAccount deleteAccount DeleteAccount Méthode native ERC-1155
getAccount getAccount GetAccount Méthode native ERC-1155
getAccountBondSummary getAccountBondSummary GetAccountBondSummary Méthode du marché des obligations
getAccountBondSummaryWithPagination getAccountBondSummaryWithPagination GetAccountBondSummaryWithPagination Méthode du marché des obligations
getAccountDetailsByUser getAccountDetailsByUser GetAccountDetailsByUser Méthode native ERC-1155
getAccountStatus getAccountStatus GetAccountStatus Méthode native ERC-1155
getAccountStatusHistory getAccountStatusHistory GetAccountStatusHistory Méthode native ERC-1155
getAccountTransactionHistory getAccountTransactionHistory GetAccountTransactionHistory Méthode native ERC-1155
getAccountsByRole getAccountsByRole GetAccountsByRole Méthode native ERC-1155
getAllAccounts getAllAccounts GetAllAccounts Méthode native ERC-1155
getAllTokenAdmins getAllTokenAdmins GetAllTokenAdmins Méthode native ERC-1155
getAllTokens getAllTokens GetAllTokens Méthode native ERC-1155
getAllTokensByUser getAllTokensByUser GetAllTokensByUser Méthode native ERC-1155
getAllTokensWithFilters getAllTokensWithFilters GetAllTokensWithFilters Méthode du marché des obligations
getTokenApprovalRequestByUser getTokenApprovalRequestByUser GetTokenApprovalRequestByUser Méthode du marché des obligations
getTokenApprovalRequestForUserByStatus getTokenApprovalRequestForUserByStatus GetTokenApprovalRequestForUserByStatus Méthode du marché des obligations
getTokenById getTokenById GetTokenById Méthode native ERC-1155
getTokenHistory getTokenHistory GetTokenHistory Méthode native ERC-1155
getUsersByRole getUsersByRole GetUsersByRole Méthode native ERC-1155
init init Init Méthode native ERC-1155
isInRole isInRole IsInRole Méthode native ERC-1155
isTokenAdmin isTokenAdmin IsTokenAdmin Méthode native ERC-1155
mintBatch mintBatch MintBatch Méthode native ERC-1155
ownerOf ownerOf OwnerOf Méthode native ERC-1155
payInterest payInterest PayInterest Modifié
postBondToken postToken PostToken Méthode du marché des obligations
purchaseBondToken purchaseToken PurchaseToken Modifié
rejectBondRedemption rejectTokenRedemption RejectTokenRedemption Méthode du marché des obligations
removeRole removeRole RemoveRole Méthode native ERC-1155
removeTokenAdmin removeTokenAdmin RemoveTokenAdmin Méthode native ERC-1155
requestBondRedemption requestTokenRedemption RequestTokenRedemption Méthode du marché des obligations
safeBatchTransferFrom safeBatchTransferFrom SafeBatchTransferFrom Méthode native ERC-1155
suspendAccount suspendAccount SuspendAccount Méthode native ERC-1155
updateBondToken updateBondToken UpdateBondToken Méthode native ERC-1155
URI URI URI Méthode native ERC-1155