債券市集包裝程式 API 套件

Oracle Blockchain Platform Digital Assets Edition 包含一個包裝函式 API 套件,可延伸 REST API 以支援債券 NFT 市集特定的作業。

包裝程式 API 套裝程式使用 API 閘道服務和 OCI Functions 來部署專門用於管理債券市集 NFT 生命週期的 API 路由。可從 Oracle Blockchain Platform 主控台下載債券市集包裝函式 API 套件,並包含包含包裝函式 API 套件的封存檔案,包括部署所需的 Terraform 指令碼。您可以將此檔案部署到 Oracle Cloud Infrastructure (OCI) 上的資源管理程式堆疊,為包裝函式 API 建立必要的 Oracle 資源。它也包含一個 Postman 集合,可讓您測試部署的包裝函式 API。此集合包括端點和有效負載 (與包裝程式 API 套裝程式中定義的 API 對應) 的預先設定要求。

包裝函式 API

registerOrg
原始方法名稱:registerOrg
此 POST 方法會在系統中登錄組織。只有記號管理員才能呼叫此方法。
有效負載:
{
    "orgId": "{{bc-org-id}}",
    "orgName": "org_name value",
    "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • orgName: string – (選擇性) 組織的名稱。
  • endorsers: string[] – 必須為交易背書的對等體陣列 (例如 peer1peer2)。
傳回值範例:
{
    "assetType": "oorgregistry",
    "org_registry_id": "orgregistry",
    "registered_orgs": [
        {
            "org_id": "Org1MSP",
            "org_name": "Organisation name"
        }
    ]
}
getAllRegisteredOrgs
原始方法名稱:getAllRegisteredOrgs
此 GET 方法會擷取所有已註冊組織的詳細資料。只有記號管理員才能呼叫此方法。
查詢:
/getAllRegisteredOrgs
參數:
傳回值範例:
[
    {
        "org_id": "Org1MSP",
        "org_name": "Organisation name"
    }
]
activateAccount
原始方法名稱:activateAccount
此 POST 方法會啟用記號帳戶。只有管理員或帳戶擁有者才能呼叫此方法。無法啟用已刪除的帳戶。
有效負載:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
參數:
  • tokenId: string – 記號的 ID。
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,指定權杖帳戶之帳戶狀態物件的 JSON 表示法。
傳回值範例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
addTokenAdmin
原始方法名稱:addTokenAdmin
此 POST 方法會新增其他管理員至記號鏈碼。只有鏈碼的權杖管理員才能呼叫此方法。
有效負載:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,會出現一則訊息,其中包含新增為鏈碼 Token Admin 的使用者詳細資料。
傳回值範例:
{
  "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)"
}
addRole
原始方法名稱:addRole
此 POST 方法會新增角色至指定的使用者和記號。只有鏈碼的 Token Admin 才能呼叫此方法。記號名稱指定了不可執行的記號。指定的使用者必須要有非有效的權杖帳戶。指定的角色必須存在於變數替代字的規格檔案中。
有效負載:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "role": "role minter/burner"
    "tokenDetails": "{"tokenName": "token name value"}"
    "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • role: string – 要新增至指定使用者的角色名稱。
  • tokenDetails: TokenDetail – 指定記號的詳細資訊。對於無法執行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值:
  • 成功時,包含帳戶詳細資訊的訊息。
傳回值範例:
{
  "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa)"
}
approveBondRedemption
原始方法名稱:approveBondRedemption
只有權杖建立者可以呼叫此 POST 方法,以核准贖回債券權杖的要求。核准作業會將債券 NFT 從擁有者的帳戶 (提出要求的使用者) 轉移至建立者的帳戶,並將債券建立者的 CBDC 權杖轉移至擁有者的帳戶。因此,必須在單元交易的相關資訊環境中執行此方法。此方法也會驗證傳輸程序,確保使用正確的 orgIduserId 呼叫適當的 CBDC 鏈碼來進行傳輸。orgIduserId 必須對應提出贖回要求的權杖擁有者的帳戶,且 CBDC 權杖移轉值必須等於在提出贖回要求時由鏈碼計算的兌換價格。
有效負載:
{
   "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}}
}
參數:
  • fromOrgId: string – 使用者的成員服務提供者 (MSP) ID。
  • fromUserId: string – 使用者的使用者名稱或電子郵件 ID。
  • settlementId: string – 兌換作業的結算 ID。
  • tokenId: string – 記號的 ID。
  • CBDCTokenId: string – CBDC 鏈碼中記號的 ID。
  • CBDCOrgId: string – CBDC 鏈碼中使用者的 MSP ID。
  • CBDCUserId: string – CBDC 鏈碼中使用者的使用者名稱或電子郵件 ID。
  • CBDCQuantity: string - 要在 CBDC 鏈碼中移轉的權杖數量。
  • CBDCRemark: string – CBDC 鏈碼中傳輸的註記,該註記必須採用先前顯示的格式。
傳回值範例:
{
   "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
原始方法名稱:balanceOfBatch
此 GET 方法會完成取得權杖帳戶餘額的批次作業。帳戶詳細資料指定於三個不同的組織 ID、使用者 ID 與憑證 ID 清單。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。帳戶擁有者只能查看自己擁有的帳戶的餘額詳細資料。
查詢:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
參數:
  • orgIds: string[] – 目前組織中的會員服務提供者 (MSP) ID 清單。
  • userIds: string[] – 使用者名稱或電子郵件 ID 的清單。
  • tokenIds: string[] – 記號 ID 的清單。
傳回值範例:

在下列範例中,記號 ID FNFT 代表分數不可變的記號,而記號 ID FT 代表一個可變的記號。

[
    {
        "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
原始方法名稱:batchTransferFrom
此 POST 方法會完成批次作業,該作業會將記號 ID 清單中指定的記號從某個使用者傳輸到另一個使用者。
有效負載:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
參數:
  • fromOrgId: string – 目前組織中寄件者與權杖擁有者的成員服務提供者 (MSP) ID。
  • fromUserId: string – 寄件者與權杖擁有者的使用者名稱或電子郵件 ID。
  • toOrgId: string – 目前組織中接收者的成員服務提供者 (MSP) ID。
  • toUserId: string – 接收者的使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 要傳輸之記號的記號 ID 清單。
  • quantity: number[] – 對應至記號 ID 陣列的要傳輸記號數量清單。
傳回值:
  • 成功時,會出現一則訊息,其中包含每個記號傳輸的詳細資訊。
傳回值範例:
[
    {
        "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
原始方法名稱:burnBatch
此 POST 方法會停用或燒錄指定的記號。具有燒錄機角色的所有使用者都可以呼叫此方法。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
參數:
  • orgId: string – 目前組織中的會員服務提供者 (MSP) ID。
  • userId: string – 使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 要燒錄的記號 ID 清單
  • quantity: number[] – 要燒錄的記號數量清單,對應至記號 ID 陣列。
傳回值:
  • 成功時,會出現一則訊息,其中包含有關燒錄作業的詳細資訊。
傳回值範例:
[
  {
    "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
原始方法名稱:createAccount
此 POST 方法會為指定的使用者建立帳戶,並為記號建立關聯的記號帳戶。必須為任何需要記號的使用者建立帳戶。使用者帳戶會追蹤使用者持有的 NFT 帳戶和有趣的權杖帳戶。使用者必須在網路中擁有帳戶,才能完成權杖相關作業。只有鏈碼的 Token Admin 才能呼叫此方法。

使用者帳戶具有唯一的 ID,由 orgId 參數的 SHA-256 雜湊與 userId 參數組成。

使用者可以有多個具有唯一帳戶 ID 的有趣記號帳戶。有趣的記號帳戶 ID 是由 orgId 參數的 SHA-256 雜湊、userId 參數、以波狀符號 (~) 分隔的常數字串 ft,以及一個計數器編號,代表以波狀符號 (~) 分隔建立的有趣帳戶索引。

使用者只能有一個不可執行的權杖帳戶。不可套用的記號帳戶 ID 是唯一的,由 orgId 參數的 SHA-256 雜湊、userId 參數,以及以波狀符號 (~) 分隔的常數字串 nft 組成。使用者擁有的所有不可變記號 (不論是全部或小數) 都會連結至此帳戶。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "ftAccount": true,
 "nftAccount": true,
 "endorsers": {{endorsers}}
}
參數:
  • orgId – 要為其建立帳戶之使用者的會員服務提供者 (MSP) ID。ID 必須以數字或英文字母字元為開頭,而且可以包含英文字母、數字以及特殊字元,例如底線 (_)、句號 (.)、@ 符號以及連字號 (-)。
  • userId – 使用者的使用者名稱或電子郵件 ID。ID 必須以數字或英文字母字元為開頭,而且可以包含英文字母、數字以及特殊字元,例如底線 (_)、句號 (.)、@ 符號以及連字號 (-)。
  • ftAccount: boolean – 若為 true,則會建立有趣的權杖帳戶並與使用者帳戶建立關聯。
  • nftAccount: boolean – 若為 true,則會建立不可變的權杖帳戶並與使用者帳戶建立關聯。
傳回值:
  • 成功時,所建立帳戶的 JSON 物件。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae",
  "userId": "user1",
  "orgId": "appdev",
  "totalAccounts": 2,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58"
}
createAccountWithEnrollment
原始方法名稱:createAccountWithEnrollment
此 POST 方法會為執行處理的 REST 代理主機中的使用者建立註冊,並在債券市集鏈碼中建立 NFT 帳戶。
有效負載:
{
 "orgId": "orgId value",
 "userId": "userId value"
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,所建立帳戶的 JSON 物件。
傳回值範例:
{
 "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
原始方法名稱:createBondToken
此 POST 方法會建立記號。每個定義的記號都有自己的建立方法。對於不可變的記號,此方法的呼叫程式會成為 NFT 的擁有者。如果變數替代字模型 behaviors 特性中已定義 roles 行為且已指定 minter_role_name,則呼叫者帳戶必須具有 minter 角色。
有效負載:
{
 "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
}
參數:
  • tokenAsset: <Token Class> – 記號資產。資產的性質在模型檔案中定義。
  • quantity: number – 要提示的記號數目。此參數唯一支援的值是 1
傳回值:
  • 成功時,所建立帳戶的 JSON 物件。
傳回值範例:
{
            "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
原始方法名稱:createIDCSUser
此 POST 方法會在 terraform.tfvars 檔案中由 URL 指定的租用戶中建立 Identity Cloud Service 使用者,並將該使用者指派給指定的使用者群組。
有效負載:
{
 "userName": "userName value",
 "firstName": "firstName value",
 "lastName": "lastName value",
 "email": "email value",
 "groupName": "groupName value"
}
參數:
  • userName: string – 使用者的 ID。
  • firstName: string - 使用者的名字。
  • lastName: string – 使用者的姓。
  • email: string – 使用者的電子郵件地址。
  • groupName: string – 要指派給使用者的 Identity Cloud Service 群組名稱。
傳回值範例:
{
 "status": "Success",
 "msg": "User user1 is created and assigned to the group BOND_ADMIN"
}
createTokenAccount
原始方法名稱:createTokenAccount
此 POST 方法會建立一個有趣或無法執行的權杖帳戶,以與使用者帳戶建立關聯。

使用者可以有多個具有唯一帳戶 ID 的有趣記號帳戶。有趣的記號帳戶 ID 是由 orgId 參數的 SHA-256 雜湊、userId 參數、以波狀符號 (~) 分隔的常數字串 ft,以及一個計數器編號,代表以波狀符號 (~) 分隔建立的有趣帳戶索引。

使用者只能有一個不可執行的權杖帳戶。不可套用的記號帳戶 ID 是唯一的,由 orgId 參數的 SHA-256 雜湊、userId 參數,以及以波狀符號 (~) 分隔的常數字串 nft 組成。使用者擁有的所有不可變記號 (不論是全部或小數) 都會連結至此帳戶。

只有鏈碼的 Token Admin 才能呼叫此方法。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenType": "nonfungible",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenType: TokenType – 要建立的權杖帳戶類型。唯一支援的記號類型為 nonfungiblefungible
傳回值:
  • 成功時,已建立的權杖帳戶 JSON 物件。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": ""
}
createUserAccount
原始方法名稱:createUserAccount
此 POST 方法會為指定的使用者建立帳戶。必須為任何需要記號的使用者建立帳戶。使用者帳戶會追蹤 NFT 帳戶,以及使用者擁有的有趣記號帳戶。使用者必須在網路中擁有帳戶,才能完成權杖相關作業。

帳戶 ID 是 orgId 參數和 userId 參數的 SHA-256 雜湊。只有鏈碼的 Token Admin 才能呼叫此方法。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,已建立使用者帳戶的 JSON 物件。
傳回值範例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 0,
  "totalFtAccounts": 0,
  "associatedFtAccounts": [],
  "associatedNftAccount": ""
}
deleteAccount
原始方法名稱:deleteAccount
此 POST 方法會刪除記號帳戶。只有鏈碼的 Token Admin 才能呼叫此方法。如果在分類帳中找不到帳戶的 accountStatus 值,則此方法會發出錯誤。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,代表權杖帳戶狀態的 JSON。
傳回值範例:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
getAccount
原始方法名稱:getAccount
此 GET 方法會傳回指定使用者的記號帳戶詳細資訊。只有鏈碼的 Token Admin 或帳戶的 Account Owner 才能呼叫此方法。
查詢:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenId?: string – 對於不可變的權杖帳戶,字串空白。對於有趣的權杖帳戶,權杖 ID。
傳回值:
  • 成功時,包含權杖帳戶詳細資訊的 JSON 物件。
傳回值範例
{
    "assetType": "oaccount",
    "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
    "userId": "user2",
    "orgId": "AppBldFFFFMay22",
    "tokenType": "nonfungible",
    "noOfNfts": 3
}
getAccountBondSummary
原始方法名稱:getAccountBondSummary
此 GET 方法會傳回指定使用者的帳戶摘要,包括已購買或已兌換權杖的明細,以及其購買與兌換價格。
查詢:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,包含權杖帳戶摘要的 JSON 物件。
傳回值範例
[
 {
   "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
原始方法名稱:getAccountBondSummaryWithPagination
此 GET 方法會傳回指定使用者的帳戶摘要,包括已購買或已兌換權杖的明細,以及其購買與兌換價格。此方法可以根據分頁大小和書籤值傳回結果,也可以依開始時間和結束時間篩選。
查詢:
/getAccountBondSummary?orgId={{bc-org-id}}&userId={{bc-user-id}}&pageSize=1&bookmark={{bookmark}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • pageSize: number – 傳回之結果的頁面大小。
  • bookmark: string – 傳回之結果的書籤。
傳回值:
  • 成功時,包含權杖帳戶摘要的 JSON 物件。
傳回值範例
[
 {

   "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
原始方法名稱:getAccountDetailsByUser
此 GET 方法會傳回指定使用者的帳戶摘要,以及與使用者關聯之有趣和不可行記號的詳細資訊。只有鏈碼的 Token Admin 或帳戶的 Account Owner 才能呼叫此方法。
查詢:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,JSON 帳戶物件會包含指定使用者的帳戶摘要,以及與使用者相關聯的有趣且不可執行的權杖明細。對於小數的不可變記號,associatedNFTs 區段中的 tokenShare 特性會顯示使用者擁有的共用。
傳回值範例:
{
    "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
原始方法名稱:getAccountStatus
此 GET 方法會擷取權杖帳戶的目前狀態。此方法可由鏈碼的 Token Admin 或記號帳戶擁有者呼叫。
查詢:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,代表權杖帳戶狀態的 JSON。
傳回值範例:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
原始方法名稱:getAccountStatusHistory
此 GET 方法會擷取帳戶狀態的歷史記錄。此方法可由鏈碼的 Token Admin 或記號帳戶擁有者呼叫。
查詢:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,帳戶狀態歷史記錄為 JSON 格式。
傳回值範例:
[
  {
    "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
原始方法名稱:getAccountTransactionHistory
此 GET 方法會傳回帳戶交易歷史記錄。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值範例:
[
    {
        "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
原始方法名稱:getAccountsByRole
此 GET 方法會傳回指定角色和記號之所有帳戶 ID 的清單。
查詢:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
參數:
  • role: string – 要搜尋的角色名稱。
  • tokenDetail: JSON – 對於有趣的記號,記號 ID。對於無法執行的記號,需要記號名稱。
傳回值範例:
{
  "accounts": [
    "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
    "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b"
  ]
}
getAllAccounts
原始方法名稱:getAllAccounts
此 GET 方法會傳回所有使用者帳戶的詳細資料。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getAllAccounts
參數:
傳回值:
  • 成功時,所有帳戶的 JSON 陣列。
傳回值範例:
[
        {
            "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
原始方法名稱:getAllTokenAdmins
此 GET 方法會傳回鏈碼為 Token Admin 的所有使用者清單。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getAllTokenAdmins
參數:
傳回值:
  • 成功時,JSON 格式的 admins 陣列包含 orgIduserId 物件。
傳回值範例:
{
  "admins": [
    {
      "orgId": "appdev",
      "userId": "user2"
    },
    {
      "orgId": "appdev",
      "userId": "user1"
    }
  ]
}
getAllTokens
原始方法名稱:getAllTokens
此方法會傳回狀態資料庫中儲存的所有記號資產。只有鏈碼的 Token Admin 才能呼叫此方法。此方法使用 Berkeley DB SQL 豐富查詢,而且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。
/getAllTokens
參數:
傳回值:
  • JSON 格式的所有權杖資產清單。
傳回值範例:
[{
            "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
原始方法名稱:getAllTokensByUser
此 GET 方法會傳回指定使用者擁有的所有權杖資產。此方法使用 Berkeley DB SQL 豐富查詢,而且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。只有鏈碼的 Token Admin 或帳戶擁有者才能呼叫此方法。
查詢:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值範例:
[{
            "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
原始方法名稱:getAllTokensWithFilters
管理員可以呼叫此 GET 方法,擷取依狀態篩選的所有權杖。
查詢:
/getAllTokensWithFilters?status=status&pageSize=pageSize&bookmark=bookmark
參數:
  • status: string – 記號的狀態,可以是 CREATEDPOSTED
  • pageSize: number – 傳回之結果的頁面大小。
  • bookmark: string – 傳回之結果的書籤。
傳回值範例:
[{
            "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
原始方法名稱:getTokenApprovalRequestByUser
任何帳戶持有人皆可呼叫此 GET 方法,以取得其所提出之所有權杖核准要求 (兌換要求) 的明細。
查詢:
/getTokenApprovalRequestByUser?status=status value
參數:
  • status: string – 要求的狀態,可以是 PENDINGREJECTEDAPPROVED
傳回值範例:
[
   {
      "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
原始方法名稱:getTokenApprovalRequestByUser
任何帳戶持有人皆可呼叫此 GET 方法,以取得其所提出之所有權杖核准要求 (兌換要求) 的明細。
查詢:
/getTokenApprovalRequestForUserByStatus?status=status value
參數:
  • status: string – 要求的狀態,可以是 PENDINGREJECTEDAPPROVED
傳回值範例:
[
   {
      "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
原始方法名稱:getTokenById
如果權杖出現在狀態資料庫中,則此 GET 方法會傳回權杖物件。若為小數 NFT,也會傳回擁有者清單。只有鏈碼的 Token Admin 或記號擁有者才能呼叫此方法。
查詢:
/getTokenById?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 要取得之記號的 ID。
傳回值範例:
[{
            "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
原始方法名稱:getTokenHistory
此 GET 方法會傳回所指定記號 ID 的歷史記錄。
查詢:
/getTokenHistory?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值:
  • 成功時,包含權杖歷史記錄的 JSON 陣列。
傳回值範例:
[{
            "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
原始方法名稱:getUsersByRole
此方法會傳回指定角色和記號之所有使用者的清單。只有鏈碼的 Token Admin 才能呼叫此方法。
查詢:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
參數:
  • role: string – 要搜尋的角色名稱。
  • tokenDetail: JSON – 對於有趣的記號,記號 ID。對於無法執行的記號,需要記號名稱。
傳回值範例:
{
    "users": [
        {
            "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
            "orgId": "appdev",
            "userId": "user2"
        },
        {
            "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
            "orgId": "appdev",
            "userId": "user1"
        }
    ]
}
init
原始方法名稱:init
建立鏈碼時,會呼叫此 POST 方法。每個 Token Admin 都是由 adminList 參數中的 userIdorgId 資訊來識別。userId 是執行處理擁有者或登入執行處理之使用者的使用者名稱或電子郵件 ID。orgId 是目前網路組織中使用者的成員服務提供者 (MSP) ID。第一次部署鏈碼時,必須輸入 adminList 參數。如果您要升級鏈碼,請傳送空白清單 ([])。如果您是初始部署鏈碼的使用者,您也可以在升級鏈碼時,在 adminList 參數中指定新的管理員。升級時會忽略 adminList 參數中的任何其他資訊。
有效負載:
{
 "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]"
}
參數:
  • adminList array – 指定權杖管理員清單的 {orgId, userId} 資訊陣列。adminList 陣列是必要參數。
傳回值:
  • 成功時,訊息沒有有效負載 (Payload)。
傳回值範例:
{
}
isInRole
原始方法名稱:isInRole
此 GET 方法會傳回布林值,以指出使用者是否具有指定的角色。記號名稱指定了不可執行的記號。只有鏈碼的 Token Admin 或帳戶的 Account Owner 才能呼叫此方法。指定的使用者必須要有一個與真菌記號關聯的記號帳戶,或是 NFT 角色的不可變記號帳戶。指定的角色必須存在於變數替代字的規格檔案中。
查詢:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • role: string – 要搜尋的角色名稱。
  • tokenDetails: TokenDetail – 指定記號的詳細資訊。對於無法執行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
    "result": true,
    "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa) has minter role"
}
isTokenAdmin
原始方法名稱:isTokenAdmin
如果函數的呼叫程式是 Token Admin,則此 GET 方法會傳回布林值 true,否則會傳回 false。只有鏈碼的 Token Admin 才能呼叫此方法。
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 如果呼叫程式是 Token Admin,則方法會傳回 true,否則會傳回 false
傳回值範例:
{"result": true}
mintBatch
原始方法名稱:mintBatch
此 POST 方法會在批次作業中建立 (mints) 多個記號。此方法只會建立有趣的記號或小數的不可行記號。

對於有趣的記號,如果規格檔案中定義了探勘器角色,則任何具有探勘器角色的使用者都可以呼叫此方法。如果沒有,任何使用者都可以使用此方法來提示記號。如果在建立或更新記號時指定了該特性,您就不能超過記號的 max_mint_quantity 特性。

對於無法執行的記號,如果在規格檔案中定義了小工具角色,則任何具有小工具角色的使用者都可以呼叫此方法。如果沒有,任何使用者都可以使用此方法來提示記號。此外,呼叫者也必須是記號的建立者。對於可進行靜音的小數不可變記號數量,沒有上限。

您無法使用此方法來提示整個不可執行的記號。

有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 提示記號的記號 ID 清單。
  • quantity: number[] – 對應至記號 ID 陣列的記號數量清單。
傳回值:
  • 成功時,包含預期記號詳細資訊的 JSON 物件。
傳回值範例:
{
    "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
原始方法名稱:ownerOf
此 GET 方法會傳回所指定記號 ID 之擁有者的帳戶 ID、組織 ID 和使用者 ID。任何人都可以呼叫這個方法。
查詢:
/ownerOf?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值範例:
[
    {
        "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
        "orgId": "Org1MSP",
        "userId": "admin"
    },
    {
        "accountId": "oaccount~74108eca702bab6d8548e740254f2cc7955d886885251d52d065042172a59db0",
        "orgId": "Org1MSP",
        "userId": "user"
    }
]
payInterest
原始方法名稱:ownerOf
只有權杖建立者或管理員才能呼叫此 POST 方法,以支付債券權杖所賺取的利息。權杖的利息頻率為每月、每季或每年時,才能呼叫此方法。如果利息頻率為到期,則無法支付利息。利息由鏈碼根據權杖的息票利率計算。採購作業會將來電者帳戶的 CBDC 權杖轉移至債券擁有者的帳戶。因此,此方法必須在單元交易的相關資訊環境中執行。此方法也會驗證傳輸程序,確保使用正確的 orgIduserId 呼叫適當的 CBDC 鏈碼來進行傳輸。orgIduserId 必須對應記號擁有者,且 CBDC 記號傳輸值必須等於債券鏈碼所計算的利息。
有效負載:
{
 "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}}
}
參數:
  • orgId: string – 使用者的成員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • tokenId: string – 記號的 ID。
  • orderId: string – 作業的順序 ID。
  • CBDCTokenId: string – CBDC 鏈碼中記號的 ID。
  • CBDCOrgId: string – CBDC 鏈碼中使用者的 MSP ID。
  • CBDCUserId: string – CBDC 鏈碼中使用者的使用者名稱或電子郵件 ID。
  • CBDCQuantity: string - 要在 CBDC 鏈碼中移轉的權杖數量。
  • CBDCRemark: string – CBDC 鏈碼中傳輸的註記,該註記必須採用先前顯示的格式。
傳回值範例:
{
   "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
原始方法名稱:postBondToken
權杖建立者只能呼叫此 POST 方法。此方法會送出在市集中列出的連結記號。建立記號時,其狀態一開始會設為 created。此方法會將狀態更新為 posted。使用者可以執行 getAllTokensWithFilter 方法來擷取所有狀態為 posted 的 NFT。
有效負載:
{
 "tokenId": "{{bc-token-id}}",
 "sameOrgEndorser": true
}
參數:
  • tokenId: string – 要張貼之記號的 ID。
傳回值範例:
{
         "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
原始方法名稱:purchaseBondToken
任何帳戶持有人均可呼叫此 POST 方法,以購買列出的債券 NFT。採購會將債券 NFT 從建立者的帳戶轉移至呼叫者的帳戶,並將 CBDC 權杖從呼叫者的帳戶轉移至建立者的帳戶。因此,必須在單元交易的相關資訊環境中執行方法。此方法還會驗證轉移程序,確保使用正確的 orgIduserId 呼叫適當的 CBDC 鏈碼進行轉移。orgIduserId 必須對應權杖建立者,且 CBDC 權杖傳輸值必須等於債券權杖的面值乘以購買的數量,再加上額外的費用。
有效負載:
{
 "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}}
}
參數:
  • tokenId: string – 要購買之記號的 ID。
  • orgId: string – 使用者的成員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • settlementId: string – 作業的結算 ID。
  • CBDCTokenId: string – CBDC 鏈碼中記號的 ID。
  • CBDCOrgId: string – CBDC 鏈碼中使用者的 MSP ID。
  • CBDCUserId: string – CBDC 鏈碼中使用者的使用者名稱或電子郵件 ID。
  • CBDCQuantity: string - 要在 CBDC 鏈碼中移轉的權杖數量。
  • CBDCRemark: string – CBDC 鏈碼中傳輸的註記,該註記必須採用先前顯示的格式。
傳回值範例:
{
   "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
原始方法名稱:rejectBondRedemption
權杖建立者可以呼叫此 POST 方法來拒絕兌換要求。權杖擁有者可以使用不同的結算 ID 再次提出贖回要求。
有效負載:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "endorsers": {{endorsers}}
}
參數:
  • fromOrgId: string – 使用者的成員服務提供者 (MSP) ID。
  • fromUserId: string – 使用者的使用者名稱或電子郵件 ID。
  • settlementId: string – 兌換作業的結算 ID。
  • tokenId: string – 記號的 ID。
傳回值範例:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
removeRole
原始方法名稱:removeRole
此 POST 方法會從指定的使用者和記號移除角色。變數替代字是由變數替代字 ID 指定。記號名稱指定了不可執行的記號。只有鏈碼的 Token Admin 才能呼叫此方法。
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "role": "role value (for example minter / burner)",
 "tokenDetail": "{\"tokenName\":\"tokenName value\"}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
  • role: string – 要從指定使用者移除的角色名稱。
  • tokenDetails: TokenDetail – 指定記號的詳細資訊。對於無法執行的記號,請使用下列格式:
    {"tokenName":"artCollection"}
傳回值範例:
{
  "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)"
}
removeTokenAdmin
原始方法名稱:removeTokenAdmin
此 POST 方法會移除使用者作為鏈碼的 Token Admin。只有鏈碼的 Token Admin 才能呼叫此方法。您無法將自己移除為 Token Admin
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "sameOrgEndorser": true
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,會顯示一則訊息,其中包含被移除為鏈碼 Token Admin 的使用者詳細資料。
傳回值範例:
{"msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)"}
requestBondRedemption
原始方法名稱:requestBondRedemption
只有權杖擁有者才能呼叫此 POST 方法,以提出在到期後贖回債券權杖的要求。此方法也涉及依鏈碼計算贖回價格。兌換要求只能針對使用者擁有之連結權杖的全部數量提出。使用者可以根據不同的結算 ID 提出多個兌換要求,但單詞建立者只能核准一個。
有效負載:
{
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "orderId": "orderId value",
 "additionalFees": 1,
 "endorsers": {{endorsers}}
}
參數:
  • settlementId: string – 兌換作業的結算 ID。
  • tokenId: string – 記號的 ID。
  • orderId: string – 採購作業的訂單 ID。
  • additionalFees: number – 要新增至兌換價格的額外費用。
傳回值範例:
{
         "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
原始方法名稱:safeBatchTransferFrom
此 POST 方法會完成批次作業,該作業會將記號 ID 清單中指定的記號從某個使用者傳輸到另一個使用者。

若為 NFT,因為方法會傳輸 NFT 的所有權,所以 NFT 的寄件者必須擁有該記號。

對於分數 NFT,如果使用者 (包括記號的建立者) 傳輸他們擁有的所有共用,則他們會失去記號的所有權。如果將記號的任何份額轉移給使用者,則該使用者會自動成為分數 NFT 的其中一個擁有者。

方法的呼叫程式必須是指定的傳送程式。

{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
參數:
  • fromOrgId: string – 目前組織中寄件者與權杖擁有者的成員服務提供者 (MSP) ID。
  • fromUserId: string – 寄件者與權杖擁有者的使用者名稱或電子郵件 ID。
  • toOrgId: string – 目前組織中接收者的成員服務提供者 (MSP) ID。
  • toUserId: string – 接收者的使用者名稱或電子郵件 ID。
  • tokenIds: string[] – 要傳輸之記號的記號 ID 清單。
  • quantity: number[] – 對應至記號 ID 陣列的要傳輸記號數量清單。
傳回值:
  • 成功時,會出現一則訊息,其中包含每個記號傳輸的詳細資訊。
傳回值範例:
[
    {
        "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
原始方法名稱:suspendAccount
這個 POST 方法會暫停一個記號帳戶。只有鏈碼的 Token Admin 才能呼叫此方法。帳戶暫停之後,您就無法完成任何更新帳戶的作業。刪除的帳戶無法暫停。
有效負載:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
參數:
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。
  • userId: string – 使用者的使用者名稱或電子郵件 ID。
傳回值:
  • 成功時,代表權杖帳戶狀態的 JSON。
傳回值範例:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
updateBondToken
原始方法名稱:updateBondToken
此 POST 方法會更新記號。每個定義的記號都有自己的更新方法。您無法更新權杖描述資料或無法產生權杖的權杖 URI。記號擁有者才能呼叫此方法。
有效負載:
{
 "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
}
參數:
  • tokenAsset: <Token Class> – 記號資產。資產的性質在模型檔案中定義。
傳回值:
  • 更新的權杖資產成功時,JSON 格式。
傳回值範例 (整個 NFT)
{
            "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
原始方法名稱:URI
此方法會傳回所指定記號的 URI。
查詢:
/URI?tokenId={{bc-token-id}}
參數:
  • tokenId: string – 記號的 ID。
傳回值範例:
{
    "tokenUri": "example.com"
}
下表顯示鏈碼 API 名稱與更新的端點之間的對應。如需鏈碼 API 的詳細資訊,請參閱 Oracle Blockchain Platform 的區塊鏈 App 產生器中的 Scaffolded TypeScript Token Project
更新的端點 TypeScript 鏈碼 API 名稱 Go 鏈碼 API 名稱 方法類型
activateAccount activateAccount ActivateAccount 原生 ERC-1155 方法
addAdmin addAdmin AddAdmin 原生 ERC-1155 方法
addRole addRole AddRole 原生 ERC-1155 方法
approveBondRedemption approveTokenRedemption ApproveTokenRedemption 已修改
balanceOfBatch balanceOfBatch BalanceOfBatch 原生 ERC-1155 方法
batchTransferFrom batchTransferFrom BatchTransferFrom 原生 ERC-1155 方法
burnBatch burnBatch BurnBatch 原生 ERC-1155 方法
createAccount createAccount CreateAccount 原生 ERC-1155 方法
createAccountWithEnrollment createAccountWithEnrollment CreateAccountWithEnrollment 新增項目
createBondToken createBondToken CreateBondToken 原生 ERC-1155 方法
createIDCSUser createIDCSUser CreateIDCSUser 新增項目
createTokenAccount createTokenAccount CreateTokenAccount 原生 ERC-1155 方法
createUserAccount createUserAccount CreateUserAccount 原生 ERC-1155 方法
deleteAccount deleteAccount DeleteAccount 原生 ERC-1155 方法
getAccount getAccount GetAccount 原生 ERC-1155 方法
getAccountBondSummary getAccountBondSummary GetAccountBondSummary 債券市集法
getAccountBondSummaryWithPagination getAccountBondSummaryWithPagination GetAccountBondSummaryWithPagination 債券市集法
getAccountDetailsByUser getAccountDetailsByUser GetAccountDetailsByUser 原生 ERC-1155 方法
getAccountStatus getAccountStatus GetAccountStatus 原生 ERC-1155 方法
getAccountStatusHistory getAccountStatusHistory GetAccountStatusHistory 原生 ERC-1155 方法
getAccountTransactionHistory getAccountTransactionHistory GetAccountTransactionHistory 原生 ERC-1155 方法
getAccountsByRole getAccountsByRole GetAccountsByRole 原生 ERC-1155 方法
getAllAccounts getAllAccounts GetAllAccounts 原生 ERC-1155 方法
getAllTokenAdmins getAllTokenAdmins GetAllTokenAdmins 原生 ERC-1155 方法
getAllTokens getAllTokens GetAllTokens 原生 ERC-1155 方法
getAllTokensByUser getAllTokensByUser GetAllTokensByUser 原生 ERC-1155 方法
getAllTokensWithFilters getAllTokensWithFilters GetAllTokensWithFilters 債券市集法
getTokenApprovalRequestByUser getTokenApprovalRequestByUser GetTokenApprovalRequestByUser 債券市集法
getTokenApprovalRequestForUserByStatus getTokenApprovalRequestForUserByStatus GetTokenApprovalRequestForUserByStatus 債券市集法
getTokenById getTokenById GetTokenById 原生 ERC-1155 方法
getTokenHistory getTokenHistory GetTokenHistory 原生 ERC-1155 方法
getUsersByRole getUsersByRole GetUsersByRole 原生 ERC-1155 方法
init init Init 原生 ERC-1155 方法
isInRole isInRole IsInRole 原生 ERC-1155 方法
isTokenAdmin isTokenAdmin IsTokenAdmin 原生 ERC-1155 方法
mintBatch mintBatch MintBatch 原生 ERC-1155 方法
ownerOf ownerOf OwnerOf 原生 ERC-1155 方法
payInterest payInterest PayInterest 已修改
postBondToken postToken PostToken 債券市集法
purchaseBondToken purchaseToken PurchaseToken 已修改
rejectBondRedemption rejectTokenRedemption RejectTokenRedemption 債券市集法
removeRole removeRole RemoveRole 原生 ERC-1155 方法
removeTokenAdmin removeTokenAdmin RemoveTokenAdmin 原生 ERC-1155 方法
requestBondRedemption requestTokenRedemption RequestTokenRedemption 債券市集法
safeBatchTransferFrom safeBatchTransferFrom SafeBatchTransferFrom 原生 ERC-1155 方法
suspendAccount suspendAccount SuspendAccount 原生 ERC-1155 方法
updateBondToken updateBondToken UpdateBondToken 原生 ERC-1155 方法
URI URI URI 原生 ERC-1155 方法