不可替代的令牌框架包装器 API 程序包

Oracle Blockchain Platform Digital Assets Edition 包含一个包装 API 程序包,该程序包扩展了 REST API,以支持特定于可收集 NFT 市场的操作。

包装器 API 程序包使用 API 网关服务和 OCI 函数部署专为可收集的市场应用设计的 API 路由。可从 Oracle Blockchain Platform 控制台下载不可替代的令牌框架包装器 API 程序包,其中包含以下组件。
  • NFTCollectiblesWithERC721WrapperAPI.zip,包含包装器 API 程序包(包括部署所需的 Terraform 脚本)的归档文件。将此文件部署到 Oracle Cloud Infrastructure (OCI) 上的资源管理器堆栈,以便为包装器 API 创建必要的 Oracle 资源。
  • NFTCollectiblesWithERC721_WrapperAPI.postman_collection.json,一个 Postman 集合,可用于测试部署的包装器 API。该集合包括预配置的请求,其中包含与包装器 API 程序包中定义的 API 相对应的端点和有效负载。

包装器 API

activateAccount
原始方法名称:activateAccount
此 POST 方法会激活令牌账户。此方法只能由管理员调用。对于在账户状态功能之前创建的任何账户,必须调用此方法才能查看账户状态为“有效”。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回:
  • 成功时,指定令牌账户的账户状态对象的 JSON 表示形式。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "db0738d4a44f6d9c80b24fce7c518c07023f7be19edaa69b272eaf7886b4b925",
        "payload": {
            "assetType": "oaccountStatus",
            "status_id": "oaccountStatus~d5814d96d8517ac31727d60aace0519c58a425892ab0d378fcfb0a35771f65ae",
            "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
            "status": "active"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 194
    }
}
addTokenAdmin
原始方法名称:addTokenAdmin
此 POST 方法将用户添加为链代码的 Token Admin。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "sameOrgEndorser": true
}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • sameOrgEndorser: boolean —一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回:
  • 成功时,将出现一条消息,其中包含作为链代码的 Token Admin 添加的用户的详细信息。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg":"Successfully added Admin (orgId: Org1MSP, userId: User1)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 190
    }
}
addRole
原始方法名称:addRole
此方法将角色添加到指定的用户和令牌。
有效负载:
{
    "role": "role value (for example minter / burner)",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • role: string —要添加到指定用户的角色的名称。
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully added role 'minter' to Account Id: oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d (Org-Id: Org1MSP, User-Id: admin)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
addTokenSysRole
原始方法名称:addTokenSysRole
此方法将 Org Admins 添加到令牌链代码。
有效负载:
{
    "role": "role value (for example vault)",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • role: string —要添加到指定用户的角色的名称。
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "96a84dffcb9156f7271dfb414e8c43b540595044cf9145f5fd56e9873797fc4a",
        "payload": {
            "msg": "Successfully added Org Admin (Org_Id: CB, User_Id: cb)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 197
    }
}
balanceOf
原始方法名称:balanceOf
此 GET 方法返回指定用户持有的 NFT 总数。此方法只能由链代码的 Token Admin 或账户所有者调用。
查询:
/balanceOf?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload":  {
            "totalNfts": 0
        },
        "encode": "JSON"
    }
}
buy
原始方法名称:buy
此 POST 方法购买正在销售的令牌。
有效负载:
{
    "fromOrgId": "from_org_id value",
    "fromUserId": "from_user_id value",
    "toOrgId": "to_org_id value",
    "toUserId": "to_user_id value",
    "nonfungibleTokenId": "nonfungible_token_id value",
    "amountPaid": 1,
    "endorsers": {{endorsers}}
}
参数:
  • fromOrgId: string —当前组织中发件人(所有者)的成员服务提供商 (MSP) ID。
  • fromUserId: string —发件人(所有者)的用户名或电子邮件 ID。
  • toOrgId: string —当前组织中接收方的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • nonfungibleTokenId: string- 要购买的令牌的 ID。
  • amountPaid: number —令牌的价格。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Token ID: 'monalisa' has been successfully transferred to UserID :oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
createAccount
原始方法名称:createAccount
此方法为指定的用户和令牌创建帐户。必须为在任何时候都具有令牌的任何用户创建账户。账户跟踪用户拥有的 NFT 数。帐户 ID 是字母数字字符集,前缀为 oaccount~,后跟当前网络组织中用户的成员服务提供商 ID (orgId) 的 SHA-256 散列、实例所有者或登录实例的用户的用户名或电子邮件 ID (userId) 以及常量字符串 nft。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "tokenType": "nonfungible",
    "endorsers": {{endorsers}}
}
参数:
  • orgId —要为其创建账户的用户的成员服务提供商 (MSP) ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。
  • userId —用户的用户名或电子邮件 ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。
  • tokenType: TokenType- 令牌的类型,必须为 fungible
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "assetType": "oaccount",
            "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "bapAccountVersion": 0,
            "userId": "admin",
            "orgId": "Org1MSP",
            "tokenType": "nonfungible",
            "noOfNfts": 0
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
createArtCollectionToken
原始方法名称:createArtCollectionToken
此 POST 方法创建 (mint) NFT。资产和关联的属性保存在状态数据库中。此事务处理的调用方必须具有令牌账户。此事务处理的调用方将成为 NFT 的所有者。如果令牌规范文件包括 behaviorsroles 部分和 rolesminter_role_name 属性,则事务处理的调用方必须具有 minter 角色。否则,任何调用方都可以 mint NFT。
有效负载:
{
    "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"metadata\":{\"Painting_Name\":\"Painting_Name value\",\"Description\":\"Description value\",\"Painter_Name\":\"Painter_Name value\"},\"Price\":999,\"On_Sale_Flag\":true}",
    "sameOrgEndorser": true
}
参数:
  • tokenAsset: <Token Class> —要铸币的令牌资产。有关令牌资产属性的更多信息,请参见输入规范文件。
  • sameOrgEndorser: boolean —一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "metadata": {
                "painting_name": "Mona_Lisa",
                "description": "Mona Lisa Painting",
                "image": "monalisa.jpeg",
                "painter_name": "Leonardo_da_Vinci"
            },
            "assetType": "otoken",
            "tokenId": "monalisa",
            "tokenName": "artcollection",
            "tokenDesc": "token description",
            "symbol": "ART",
            "tokenStandard": "erc721+",
            "tokenType": "nonfungible",
            "tokenUnit": "whole",
            "behaviors": [
                "indivisible",
                "singleton",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 20000
            },
            "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "creationDate": "2022-04-05T08:30:42.000Z",
            "isBurned": false,
            "tokenUri": "\"https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg\"",
            "price": 100,
            "on_sale_flag": false
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
deleteAccount
原始方法名称:deleteAccount
此 POST 方法删除令牌账户。账户被删除后,账户处于最终状态,无法更新或更改为任何其他状态。要删除帐户,帐户余额必须为零。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回:
  • 成功后,标记账户状态的 JSON 表示形式。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
          "assetType": "oaccountStatus",
          "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
          "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
          "status": "deleted"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
getAccountByUser
原始方法名称:getAccountByUser
此方法返回指定用户的帐户详细信息。此方法只能由链代码的 Token Admin 或帐户的 Account Owner 调用。
查询:
/getAccountByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
          "bapAccountVersion": 0,
          "assetType": "oaccount",
          "status": "active",
          "accountId": "oaccount~cc301bee057f14236a97d434909ec1084970921b008f6baab09c2a0f5f419a9a",
          "userId": "idcqa",
          "orgId": "appdev",
          "tokenType": "nonfungible",
          "noOfNfts": 0
        },
        "encode": "JSON"
    }
}
getAccountHistory
原始方法名称:getAccountHistory
此方法返回指定用户的帐户历史记录。这是异步方法。此方法只能由链代码的 Token Admin 或账户所有者调用。
查询:
/getAccountHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": [
            {
                "trxId": "6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4",
                "timeStamp": 1649151044,
                "value": {
                    "assetType": "oaccount",
                    "bapAccountVersion" : 5,
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 1
                }
            },
            {
                "trxId": "a605f1fa62e511c2945fce5437f983a5e70ec814b82520d3ecd2d81e3ecf53a3",
                "timeStamp": 1649151022,
                "value": {
                    "assetType": "oaccount",
                    "bapAccountVersion" : 4,
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 2
                }
            },
            {
                "trxId": "ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7",
                "timeStamp": 1649150910,
                "value": {
                    "assetType": "oaccount",
                    "bapAccountVersion" : 3,
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 1
                }
            },
            {
                "trxId": "cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb",
                "timeStamp": 1649149545,
                "value": {
                    "assetType": "oaccount",
                    "bapAccountVersion" : 2,
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 0
                }
            },
            {
                "trxId": "e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c",
                "timeStamp": 1649147442,
                "value": {
                    "assetType": "oaccount",
                    "bapAccountVersion" : 1,
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 1
                }
            },
            {
                "trxId": "d2d1f9c898707ae831e9361bc25da6369eac37b10c87dc04d18d6f3808222f08",
                "timeStamp": 1649137534,
                "value": {
                    "assetType": "oaccount",
                    "bapAccountVersion" : 0,
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 0
                }
            }
        ],
        "encode": "JSON"
    }
}
getAccountsByRole
原始方法名称:getAccountsByRole
此方法返回指定角色的所有帐户 ID 的列表。此方法只能由链代码的 Token Admin 调用。
查询:
/getAccountsByRole?role=role value (for example minter / burner)
参数:
  • role: string —要搜索的角色的名称。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "accounts": [
                "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d"
            ]
        },
        "encode": "JSON"
    }
}
getAccountsByTokenSysRole
原始方法名称:getAccountsByTokenSysRole
此方法返回指定 TokenSys 角色的所有帐户 ID 的列表。此方法只能由链代码的 Token Admin 调用。
查询:
/getAccountsByTokenSysRole?role=role value (for example vault)
参数:
  • role: string- 要搜索的 TokenSys 角色的名称。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "accountIds": [
                "oaccount~bf07f584a94be44781e49d9101bfaf58c6fbbe77a4dfebdb83c874c2caf03eba"
            ]
        },
        "encode": "JSON"
    }
}
getAccountStatus
原始方法名称:getAccountStatus
此 GET 方法检索令牌账户的当前状态。此方法可由链代码的 Token Admin 或令牌账户所有者调用。
查询:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回:
  • 成功后,标记账户状态的 JSON 表示形式。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "assetType": "oaccountStatus",
            "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
            "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
            "status": "active"
        },
        "encode": "JSON"
    }
}
getAccountStatusHistory
原始方法名称:getAccountStatusHistory
此 GET 方法检索帐户状态的历史记录。此方法可由链代码的 Token Admin 或令牌账户所有者调用。
查询:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回:
  • 成功后,以 JSON 格式显示账户状态历史记录。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
          {
            "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"
            }
          }
        ],
        "encode": "JSON"
    }
}
getAccountTransactionHistory
原始方法名称:getAccountTransactionHistory
此 GET 方法返回账户事务处理历史记录。此方法只能由链代码的 Token Admin 或账户所有者调用。
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4",
                "timestamp": "2022-04-05T09:30:44.000Z",
                "tokenId": "monalisa1",
                "noOfNfts": 1,
                "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "transactionType": "BURN"
            },
            {
                "transactionId": "otransaction~a605f1fa62e511c2945fce5437f983a5e70ec814b82520d3ecd2d81e3ecf53a3",
                "timestamp": "2022-04-05T09:30:22.000Z",
                "tokenId": "monalisa1",
                "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "transactionType": "MINT"
            },
            {
                "transactionId": "otransaction~ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7",
                "timestamp": "2022-04-05T09:28:30.000Z",
                "tokenId": "monalisa",
                "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba",
                "transactionType": "CREDIT"
            },
            {
                "transactionId": "otransaction~cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb",
                "timestamp": "2022-04-05T09:05:45.000Z",
                "tokenId": "monalisa",
                "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba",
                "transactionType": "DEBIT"
            },
            {
                "transactionId": "otransaction~e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c",
                "timestamp": "2022-04-05T08:30:42.000Z",
                "tokenId": "monalisa",
                "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "transactionType": "MINT"
            }
        ],
        "encode": "JSON"
    }
}
getAccountTransactionHistoryWithFilters
原始方法名称:getAccountTransactionHistoryWithFilters
此 GET 方法返回指定用户的帐户事务处理历史记录,按 PageSizeBookmarkstartTimeendTime 过滤。这是异步方法。只能在连接到远程 Oracle Blockchain Platform 网络时调用此方法。此方法只能由链代码的 Token Admin 或账户所有者调用。
/getAccountTransactionHistoryWithFilters?orgId={{bc-org-id}}&userId={{bc-user-id}}&filters={"pageSize":20,"bookmark":"","startTime":"2022-01-16T15:16:36+00:00","endTime":"2022-01-17T15:16:36+00:00"}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • filters: object-Filter 类的对象,包含四个属性:pageSizebookmarkstartTimeendTime
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4",
                "timestamp": "2022-04-05T09:30:44.000Z",
                "tokenId": "monalisa1",
                "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "transactionType": "BURN"
            },
            {
                "transactionId": "otransaction~a605f1fa62e511c2945fce5437f983a5e70ec814b82520d3ecd2d81e3ecf53a3",
                "timestamp": "2022-04-05T09:30:22.000Z",
                "tokenId": "monalisa1",
                "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "transactionType": "MINT"
            },
            {
                "transactionId": "otransaction~ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7",
                "timestamp": "2022-04-05T09:28:30.000Z",
                "tokenId": "monalisa",
                "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba",
                "transactionType": "CREDIT"
            },
            {
                "transactionId": "otransaction~cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb",
                "timestamp": "2022-04-05T09:05:45.000Z",
                "tokenId": "monalisa",
                "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba",
                "transactionType": "DEBIT"
            },
            {
                "transactionId": "otransaction~e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c",
                "timestamp": "2022-04-05T08:30:42.000Z",
                "tokenId": "monalisa",
                "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "transactionType": "MINT"
            }
        ],
        "encode": "JSON"
    }
}
getAllAccounts
原始方法名称:getAllAccounts
此 GET 方法返回所有用户帐户的详细信息。此方法只能由链代码的 Token Admin 调用。
查询:
/getAllAccounts
参数:
返回:
  • 成功后,将生成一个包含所有账户的 JSON 数组。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                "valueJson": {
                    "assetType": "oaccount",
                    "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "userId": "admin",
                    "orgId": "Org1MSP",
                    "tokenType": "nonfungible",
                    "noOfNfts": 1
                }   
            }
        ],
        "encode": "JSON"
    }
}
getAllLockedNFTs
原始方法名称:getAllLockedNFTs
此 GET 方法返回所有锁定的 NFT 的列表。此方法只能由链代码的 Token Admin 或 Vault 管理器(具有 TokenSys vault 角色的用户)调用。
查询:
/getAllLockedNFTs
参数:
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
           {
              "key":"token1",
              "valueJson":{
                 "assetType":"otoken",
                 "tokenId":"token1",
                 "tokenName":"artcollection",
                 "symbol":"ART",
                 "tokenStandard":"erc721+",
                 "tokenType":"nonfungible",
                 "tokenUnit":"whole",
                 "behaviors":[
                    "indivisible",
                    "singleton",
                    "mintable",
                    "transferable",
                    "lockable",
                    "burnable",
                    "roles"
                 ],
                 "roles":{
                    "minter_role_name":"minter"
                 },
                 "mintable":{
                    "max_mint_quantity":20000
                 },
                 "createdBy":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463",
                 "creationDate":"2023-10-20T10:26:29.000Z",
                 "owner":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463",
                 "isBurned":false,
                 "isLocked":true,
                 "tokenUri":"token1.example.com",
                 "price":120,
                 "on_sale_flag":false
              }
           }
        ],
        "encode": "JSON"
    }
}
getAllTokenAdmins
原始方法名称:getAllTokenAdmins
此方法返回链代码 Token Admin 的所有用户的列表。此方法只能由链代码的 Token Admin 调用。
查询:
/getAllTokenAdmins
参数:
返回:
  • 成功后,使用 JSON 格式的 admins 数组,其中包含 orgIduserId 对象。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "admins":[
                {
                    "orgId":"Org1MSP",
                    "userId":"admin"
                }
            ]
        },
        "encode": "JSON"
    }
}
getAllTokens
原始方法名称:getAllTokens
此方法返回保存在状态数据库中的所有标记资产。此方法只能由链代码的 Token Admin 调用。此方法使用 Berkeley DB SQL 丰富的查询,并且只能在连接到远程 Oracle Blockchain Platform 网络时调用。
查询:
/getAllTokens
参数:
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "monalisa",
                "valueJson": {
                    "metadata": {
                        "PaintingName": "Mona_Lisa",
                        "Description": "Mona Lisa Painting",
                        "Image": "monalisa.jpeg",
                        "PainterName": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa",
                    "tokenName": "ravinft",
                    "tokenDesc": "token Description",
                    "symbol": "PNT",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter",
                        "burner_role_name": "burner"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "creationDate": "2022-04-07T21:17:48.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "NftBasePrice": 100
                }
            },
            {
                "key": "monalisa1",
                "valueJson": {
                    "metadata": {
                        "PaintingName": "Mona_Lisa",
                        "Description": "Mona Lisa Painting",
                        "Image": "monalisa.jpeg",
                        "PainterName": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa1",
                    "tokenName": "ravinft",
                    "tokenDesc": "token Description",
                    "symbol": "PNT",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter",
                        "burner_role_name": "burner"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "creationDate": "2022-04-07T21:17:59.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "NftBasePrice": 100
                }
            }
        ],
        "encode": "JSON"
    }
}
getAllTokensByUser
原始方法名称:getAllTokensByUser
此 GET 方法返回指定用户拥有的所有令牌资产。此方法使用 Berkeley DB SQL 丰富的查询,并且只能在连接到远程 Oracle Blockchain Platform 网络时调用。此方法只能由链代码的 Token Admin 或账户所有者调用。
查询:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • org_id: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • user_id: string- 用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "monalisa",
                "valueJson": {
                    "metadata": {
                        "PaintingName": "Mona_Lisa",
                        "Description": "Mona Lisa Painting",
                        "Image": "monalisa.jpeg",
                        "PainterName": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa",
                    "tokenName": "ravinft",
                    "tokenDesc": "token Description",
                    "symbol": "PNT",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter",
                        "burner_role_name": "burner"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "creationDate": "2022-04-07T21:17:48.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "NftBasePrice": 100
                }
            },
            {
                "key": "monalisa1",
                "valueJson": {
                    "metadata": {
                        "PaintingName": "Mona_Lisa",
                        "Description": "Mona Lisa Painting",
                        "Image": "monalisa.jpeg",
                        "PainterName": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa1",
                    "tokenName": "ravinft",
                    "tokenDesc": "token Description",
                    "symbol": "PNT",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter",
                        "burner_role_name": "burner"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1",
                    "creationDate": "2022-04-07T21:17:59.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "NftBasePrice": 100
                }
            }
        ],
        "encode": "JSON"
    }
}
getLockedNFTsByOrg
原始方法名称:getLockedNFTsByOrg
此方法返回指定组织和(可选)指定用户的所有锁定不可替换标记的列表。此方法只能由链代码的 Token Admin 或 Vault 管理器(具有 TokenSys vault 角色的用户)调用。
查询:
/getLockedNFTsByOrg?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • org_id: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • user_id: string- 用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
           {
              "key":"token1",
              "valueJson":{
                 "assetType":"otoken",
                 "tokenId":"token1",
                 "tokenName":"artcollection",
                 "symbol":"ART",
                 "tokenStandard":"erc721+",
                 "tokenType":"nonfungible",
                 "tokenUnit":"whole",
                 "behaviors":[
                    "indivisible",
                    "singleton",
                    "mintable",
                    "transferable",
                    "lockable",
                    "burnable",
                    "roles"
                 ],
                 "roles":{
                    "minter_role_name":"minter"
                 },
                 "mintable":{
                    "max_mint_quantity":20000
                 },
                 "createdBy":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463",
                 "creationDate":"2023-10-20T10:26:29.000Z",
                 "owner":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463",
                 "isBurned":false,
                 "isLocked":true,
                 "tokenUri":"token1.examplecom",
                 "price":120,
                 "on_sale_flag":false
              }
           }
        ],
        "encode": "JSON"
    }
}
getTokenById
原始方法名称:getTokenById
如果标记存在于状态数据库中,则此方法将返回标记对象。此方法只能由链代码的 Token Admin 或令牌所有者调用。
查询:
/getTokenById?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 要获取的令牌的 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "metadata": {
                "painting_name": "Mona_Lisa",
                "description": "Mona Lisa Painting",
                "image": "monalisa.jpeg",
                "painter_name": "Leonardo_da_Vinci"
            },
            "assetType": "otoken",
            "tokenId": "monalisa",
            "tokenName": "artcollection",
            "tokenDesc": "token description",
            "symbol": "ART",
            "tokenStandard": "erc721+",
            "tokenType": "nonfungible",
            "tokenUnit": "whole",
            "behaviors": [
                "indivisible",
                "singleton",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 20000
            },
            "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "transferredBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "creationDate": "2022-04-05T08:30:42.000Z",
            "transferredDate": "2022-04-05T09:28:30.000Z",
            "isBurned": false,
            "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
            "price": 100,
            "on_sale_flag": true
        },
        "encode": "JSON"
    }
}
getTokenHistory
原始方法名称:getTokenHistory
此方法返回指定令牌 ID 的历史记录。这是异步方法。只能在连接到远程 Oracle Blockchain Platform 网络时调用此方法。任何人都可以调用此方法。
/getTokenHistory?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 令牌的 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "trxId": "ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7",
                "timeStamp": 1649150910,
                "value": {
                    "metadata": {
                        "painting_name": "Mona_Lisa",
                        "description": "Mona Lisa Painting",
                        "image": "monalisa.jpeg",
                        "painter_name": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa",
                    "tokenName": "artcollection",
                    "tokenDesc": "token description",
                    "symbol": "ART",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "transferredBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "creationDate": "2022-04-05T08:30:42.000Z",
                    "transferredDate": "2022-04-05T09:28:30.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "price": 100,
                    "on_sale_flag": true
                }
            },
            {
                "trxId": "cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb",
                "timeStamp": 1649149545,
                "value": {
                    "metadata": {
                        "painting_name": "Mona_Lisa",
                        "description": "Mona Lisa Painting",
                        "image": "monalisa.jpeg",
                        "painter_name": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa",
                    "tokenName": "artcollection",
                    "tokenDesc": "token description",
                    "symbol": "ART",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba",
                    "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "transferredBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "creationDate": "2022-04-05T08:30:42.000Z",
                    "transferredDate": "2022-04-05T09:05:45.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "price": 100,
                    "on_sale_flag": true
                }
            },
            {
                "trxId": "702e61cc8d6d2982521023d0d5f3195900f35e146d6a90ef66daae551e6075d2",
                "timeStamp": 1649147729,
                "value": {
                    "metadata": {
                        "painting_name": "Mona_Lisa",
                        "description": "Mona Lisa Painting",
                        "image": "monalisa.jpeg",
                        "painter_name": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa",
                    "tokenName": "artcollection",
                    "tokenDesc": "token description",
                    "symbol": "ART",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "creationDate": "2022-04-05T08:30:42.000Z",
                    "isBurned": false,
                    "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
                    "price": 100,
                    "on_sale_flag": true
                }
            },
            {
                "trxId": "e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c",
                "timeStamp": 1649147442,
                "value": {
                    "metadata": {
                        "painting_name": "Mona_Lisa",
                        "description": "Mona Lisa Painting",
                        "image": "monalisa.jpeg",
                        "painter_name": "Leonardo_da_Vinci"
                    },
                    "assetType": "otoken",
                    "tokenId": "monalisa",
                    "tokenName": "artcollection",
                    "tokenDesc": "token description",
                    "symbol": "ART",
                    "tokenStandard": "erc721+",
                    "tokenType": "nonfungible",
                    "tokenUnit": "whole",
                    "behaviors": [
                        "indivisible",
                        "singleton",
                        "mintable",
                        "transferable",
                        "burnable",
                        "roles"
                    ],
                    "roles": {
                        "minter_role_name": "minter"
                    },
                    "mintable": {
                        "max_mint_quantity": 20000
                    },
                    "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                    "creationDate": "2022-04-05T08:30:42.000Z",
                    "isBurned": false,
                    "tokenUri": "\"https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg\"",
                    "price": 100,
                    "on_sale_flag": false
                }
            }
        ]
        "encode": "JSON"
    }
}
getTransactionById
原始方法名称:getTransactionById
此方法返回指定事务处理 ID 的事务处理历史记录。这是异步方法。此方法只能由链代码的 Token Admin 调用。
查询:
/getTransactionById?transactionId=transactionId value
参数:
  • transactionId: string —事务处理的 ID,即前缀 otransaction~,后跟十六进制格式的 64 位散列。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4",
            "history": [
                {
                    "trxId": "6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4",
                    "timeStamp": 1649151044,
                    "value": {
                        "assetType": "otransaction",
                        "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4",
                        "tokenId": "monalisa1",
                        "fromAccountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                        "toAccountId": "",
                        "triggeredByAccountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
                        "transactionType": "BURN",
                        "timestamp": "2022-04-05T09:30:44.000Z",
                    }
                }
            ]
        },
        "encode": "JSON"
    }
}
getUserByAccountId
原始方法名称:getUserByAccountId
此 GET 方法返回指定账户的用户详细信息。
查询:
/getUserByAccountId?accountId=accountId value
参数:
  • accountId: string –帐户的 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
          "userId": "admin",
          "orgId": "Org1MSP"
        },
        "encode": "JSON"
    }
}
getUsersByRole
原始方法名称:getUsersByRole
此方法返回指定角色的所有用户的列表。
/getUsersByRole?role=role value (for example minter / burner)
参数:
  • role: string —要搜索的角色的名称。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "users": [
                {
                    "userId": "admin",
                    "orgId": "Org1MSP"
                }
            ]
        },
        "encode": "JSON"
    }
}
init
原始方法名称:init
部署链代码时将调用此方法。用户信息将保存为链代码的 Token Admin
有效负载:
{
    "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-admin-user}}\"}]"
}
参数:
  • adminList array- 由 {user_id, org_id} 信息组成的数组,用于指定令牌管理员列表。adminList 数组是必需参数。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "fdb7dc89832c8045a333823b77fa24ae628178148dc93b3550040e070d7cd807",
        "payload": "",
        "encode": "UTF-8",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 263
    }
}
isInRole
原始方法名称:isInRole
此 GET 方法返回布尔值以指示用户是否具有指定的角色。此方法只能由链代码的 Token Admin 或帐户的 Account Owner 调用。
查询:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • role: string —要搜索的角色的名称。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "result":"true"
        },
        "encode": "JSON"
    }
}
isInTokenSysRole
原始方法名称:isInTokenSysRole
此 GET 方法返回布尔值,以指示用户是否具有指定的 TokenSys 角色。此方法只能由链代码的 Token Admin 或帐户的 Account Owner 调用。
查询:
/isInTokenSysRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example vault)
参数:
  • role: string- 要搜索的 TokenSys 角色的名称。
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "result": true,
            "msg": "Account Id oaccount~bf07f584a94be44781e49d9101bfaf58c6fbbe77a4dfebdb83c874c2caf03eba (Org-Id: Org1MSP, User-Id: user1) has vault role"
        },
        "encode": "JSON"
    }
}
isNFTLocked
原始方法名称:isNFTLocked
此 GET 方法返回布尔值以指示指定的标记是否已锁定。此方法只能由链代码的 Token Admin、令牌所有者或 Vault 管理器(具有 TokenSys vault 角色的用户)调用。
查询:
/isNFTLocked?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 令牌的 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
           "isNFTLocked":true
        },
        "encode": "JSON"
    }
}
lockNFT
原始方法名称:lockNFT
此 POST 方法锁定指定的不可替换标记。要锁定令牌,必须存在具有 TokenSys vault 角色的用户,该用户充当 Vault 管理器。
有效负载:
{
    "tokenId": "{{bc-token-id}}",
    "sameOrgEndorser": true
}
参数:
  • tokenId: string- 要锁定的标记的 ID。
  • sameOrgEndorser: boolean —一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
           "assetType":"otoken",
           "tokenId":"token1",
           "tokenName":"artcollection",
           "symbol":"ART",
           "tokenStandard":"erc721+",
           "tokenType":"nonfungible",
           "tokenUnit":"whole",
           "behaviors":[
              "indivisible",
              "singleton",
              "mintable",
              "transferable",
              "lockable",
              "burnable",
              "roles"
           ],
           "roles":{
              "minter_role_name":"minter"
           },
           "mintable":{
              "max_mint_quantity":20000
           },
           "createdBy":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463",
           "creationDate":"2023-10-20T10:26:29.000Z",
           "owner":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463",
           "isBurned":false,
           "isLocked":true,
           "tokenUri":"token1.example.com",
           "price":120,
           "on_sale_flag":false
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
name
原始方法名称:name
此 GET 方法返回令牌类的名称。任何人都可以调用此方法。
查询:
/name
参数: 无
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {"tokenName": "artcollection"},
        "encode": "JSON"
    }
}
ownerOf
原始方法名称:ownerOf
此 GET 方法返回指定令牌 ID 所有者的账户 ID。任何人都可以调用此方法。
查询:
/ownerOf?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 令牌的 ID。
返回:
  • 所有者账户 ID 的 JSON 对象。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "owner": "oaccount~d6d22c3167e3c6ab9ee5653e1a008c37c20cc47ebb0229ca0aedfafe64c675b8"
        },
        "encode": "JSON"
    }
}
post
原始方法名称:post
此 POST 方法为指定价格发布要销售的令牌。
有效负载:
{
    "tokenId": "{{bc-token-id}}",
    "sellingPrice": 1,
    "endorsers": {{endorsers}}
}
参数:
  • tokenId: string- 令牌的 ID。
  • sellingPrice: number —令牌的价格。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Token ID: 'monalisa'  has been posted for selling in the marketplace"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
removeRole
原始方法名称:removeRole
此方法将角色从指定用户中删除。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "role": "role value (for example minter / burner)",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • role: string- 要从指定用户删除的角色的名称。mintableburnable 行为对应于规范文件的 minter_role_nameburner_role_name 属性。
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully removed role 'minter' from Account Id: oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba (Org-Id: Org1MSP, User-Id: user1)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
removeTokenAdmin
原始方法名称:removeTokenAdmin
此 POST 方法将用户删除为链代码的 Token Admin。此方法只能由链代码的 Token Admin 调用。管理员无法自行删除。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "sameOrgEndorser": true
}
参数:
  • org_id: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • user_id: string- 用户的用户名或电子邮件 ID。
  • sameOrgEndorser: boolean —一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully removed Admin (orgId: Org1MSP, userId: User1)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
removeTokenSysRole
原始方法名称:removeTokenSysRole
此方法从指定用户和令牌中删除 TokenSys 角色。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "role": "role value (for example vault)",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • role: string- 要从指定用户删除的 TokenSys 角色的名称。
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully removed role 'vault' from Account Id: oaccount~bf07f584a94be44781e49d9101bfaf58c6fbbe77a4dfebdb83c874c2caf03eba (Org-Id: Org1MSP, User-Id: user1)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
safeTransferFrom
原始方法名称:safeTransferFrom
这是一个异步函数。此 POST 方法将指定 NFT 的所有权从调用方转移到其他帐户。此方法包括以下验证:
  • 标记存在且未刻录。
  • 发件人账户和接收者账户存在且不是同一账户。
  • 发件人账户拥有令牌。
  • 函数的调用者是发送者。
有效负载:
{
    "fromOrgId": "fromOrgId value",
    "fromUserId": "fromUserId value",
    "toOrgId": "toOrgId value",
    "toUserId": "toUserId value",
    "tokenId": "{{bc-token-id}}",
    "data": "data value",
    "endorsers": {{endorsers}}
}
参数:
  • fromOrgId: string —当前组织中发件人和令牌所有者的成员服务提供商 (MSP) ID。
  • fromUserId: string- 发件人和令牌所有者的用户名或电子邮件 ID。
  • toOrgId: string —当前组织中接收方的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • tokenId: string- 要传输的令牌的 ID。
  • data: string —要在事务处理记录中存储的可选附加信息。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully transferred NFT token: 'monalisa' from Account-Id:     oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d (Org-Id: Org1MSP, User-Id: admin) to Account-Id: oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba (Org-Id: Org1MSP, User-Id: user1)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
suspendAccount
原始方法名称:suspendAccount
此方法将暂停可替换令牌账户。如果在分类账中未找到 accountStatus 值,则会引发错误。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • orgId: string —当前组织中用户的成员服务提供商 (MSP) ID。
  • userId: string —用户的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "assetType": "oaccountStatus",
            "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
            "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
            "status": "suspended"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
symbol
原始方法名称:symbol
此方法返回令牌类的符号。任何人都可以调用此方法。
查询:
/symbol
参数:
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "symbol": "PNT"
        },
        "encode": "JSON"
    }
}
tokenURI
原始方法名称:tokenURI
此方法返回指定令牌的 URI。任何人都可以调用此方法。
查询:
/tokenURI?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 令牌的 ID。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {   
            "tokenURI": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\.ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg"
        },
        "encode": "JSON"
    }
}
totalNetSupply
原始方法名称:totalNetSupply
此 GET 方法返回铸造令牌总数减去已刻录令牌数。此方法只能由链代码的 Token Admin 调用。
/totalNetSupply
参数:
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "totalNetSupply": 1
        },
        "encode": "JSON"
    }
}
totalSupply
原始方法名称:totalSupply
此 GET 方法返回铸造标记的总数。此方法只能由链代码的 Token Admin 调用。
查询:
/totalSupply
参数:
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "totalSupply": 3
        },
        "encode": "JSON"
    }
}
transferFrom
原始方法名称:transferFrom
这是一个异步函数。此方法将指定 NFT 的所有权从发件人账户转移到接收者账户。呼叫者有责任传递正确的参数。此方法可由任何用户调用,而不仅仅是令牌所有者。此方法包括以下验证:
  • 标记存在且未刻录。
  • 发件人账户和接收者账户存在且不是同一账户。
  • 发件人账户拥有令牌。
有效负载:
{
    "fromOrgId": "fromOrgId value",
    "fromUserId": "fromUserId value",
    "toOrgId": "toOrgId value",
    "toUserId": "toUserId value",
    "tokenId": "{{bc-token-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • fromOrgId: string —当前组织中发件人的成员服务提供商 (MSP) ID。
  • fromUserId: string —发件人的用户名或电子邮件 ID。
  • toOrgId: string —当前组织中接收方的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • tokenId: string- 要传输的令牌的 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully transferred NFT token: 'monalisa' from Account-Id: oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba (Org-Id: Org1MSP, User-Id: user1) to Account-Id: oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d (Org-Id: Org1MSP, User-Id: admin)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
transferTokenSysRole
原始方法名称:transferTokenSysRole
此方法将 TokenSys 角色从用户转移到其他用户。
有效负载:
{
    "role": "role value (for example vault)",
    "fromOrgId": "fromOrgId value",
    "fromUserId": "fromUserId value",
    "toOrgId": "toOrgId value",
    "toUserId": "toUserId value",
    "endorsers": {{endorsers}}
}
参数:
  • role: string- 要传输的 TokenSys 角色的名称。
  • fromOrgId: string —当前组织中发件人的成员服务提供商 (MSP) ID。
  • fromUserId: string —发件人的用户名或电子邮件 ID。
  • toOrgId: string —当前组织中接收方的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "msg": "Successfully transfered role 'vault' from Account Id: ouaccount~f4e311528f03fffa7810753d643f66289ff6c9080fcf839902f28a1d3aff1789 (Org-Id: Org1MSP, User-Id: user1) to Account Id: ouaccount~ae5be2ae8f98d6d32f5d02b43877d987114e7937c7bacbc30390dcce09996a19 (Org-Id: Org1MSP, User-Id: user2)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}
updateArtCollectionToken
原始方法名称:updateArtCollectionToken
此方法更新令牌属性。创建令牌资产后,只有令牌所有者可以更新令牌定制属性。如果用户既是令牌所有者,又是令牌的创建者,他们还可以更新 TokenDesc 属性。无法更新令牌元数据。必须将所有令牌属性传递到此方法,即使您只想更新某些属性也是如此。
有效负载:
{
    "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"Price\":999,\"On_Sale_Flag\":true}",
    "sameOrgEndorser": true
}
参数:
  • tokenAsset: <Token Class> —要更新的令牌资产。有关令牌资产属性的更多信息,请参见输入规范文件。
  • endorsers: string[] —必须为事务处理背书的对等方数组(例如 peer1peer2)。
返回值示例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed",
        "payload": {
            "metadata": {
                "painting_name": "Mona_Lisa",
                "description": "Mona Lisa Painting",
                "image": "monalisa.jpeg",
                "painter_name": "Leonardo_da_Vinci"
            },
            "assetType": "otoken",
            "tokenId": "monalisa",
            "tokenName": "artcollection",
            "tokenDesc": "token description",
            "symbol": "ART",
            "tokenStandard": "erc721+",
            "tokenType": "nonfungible",
            "tokenUnit": "whole",
            "behaviors": [
                "indivisible",
                "singleton",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 20000
            },
            "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
            "creationDate": "2022-04-05T08:30:42.000Z",
            "isBurned": false,
            "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\.ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg",
            "price": 100,
            "on_sale_flag": true
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 193
    }
}