组合的令牌框架包装 API 包

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

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

包装 API

registerOrg
原始方法名称:registerOrg
此 POST 方法在系统中注册组织。此方法只能由令牌管理员调用。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "orgName": "org_name value",
    "endorsers": {{endorsers}}
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • orgName: string-(可选)组织名称。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
    "assetType": "oorgregistry",
    "org_registry_id": "orgregistry",
    "registered_orgs": [
        {
            "org_id": "Org1MSP",
            "org_name": "Organization name"
        }
    ]
}
getAllRegisteredOrgs
原始方法名称:getAllRegisteredOrgs
此 GET 方法检索所有注册组织的详细信息。此方法只能由令牌管理员调用。
查询:
/getAllRegisteredOrgs
参数:
返回值示例:
[
    {
        "org_id": "Org1MSP",
        "org_name": "Organization name"
    }
]
activateAccount
原始方法名称:activateAccount
此 POST 方法激活令牌帐户。此方法只能由管理员或账户所有者调用。对于在分类帐中未找到 accountStatus 的现有帐户,该方法返回状态设置为 activeaccountStatus 对象。
有效负载:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • tokenId: string- 令牌的 ID。
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功后,可互换令牌账户的已更新账户状态对象的 JSON 表示形式。
返回值示例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
addTokenAdmin
原始方法名称:addTokenAdmin
此 POST 方法将用户添加为链代码的 Token Admin。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功后,将包含作为链代码的 Token Admin 添加的用户详细信息的消息。
返回值示例:
{
  "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)"
}
addRole
原始方法名称:addRole
此 POST 方法将角色添加到指定的用户和令牌。此方法只能由链代码的 Token Admin 调用。tokenDetails 参数 Fungible 标记需要输入 tokenId 值。非可换代币需要输入 tokenName,以实现我们使用 tokenDetail 参数以不同方式指定可换代币和非可换代代币的详细信息。
有效负载:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "role": "role minter/burner"
    "tokenDetails": "{"tokenName": "token name value"}"
    "endorsers": {{endorsers}}
}
参数:
  • tokenId: string- 令牌的 ID。
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • role: string- 要添加到指定用户的角色的名称。
  • tokenDetails: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
  "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a 
(Org-Id: appdev, User-Id: user2)"
}
associateFungibleTokenToAccount
原始方法名称: associateFungibleTokenToAccount
此 POST 方法将用户的可交换令牌帐户与指定的令牌关联。
有效负载:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • tokenId: string- 令牌的 ID。
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": "tokenOne"
    }
  ],
  "associatedNftAccount": ""
}
buyWithEthCoin
原始方法名称:buyWithEthCoin
任何账户所有者都可以使用此 POST 方法使用以太坊购买 NFT,并将忠诚度代币作为奖励积分。
有效负载:
{
   "fromOrgId":"from_org_id value",
   "fromUserId":"from_user_id value",
   "toOrgId":"to_org_id value",
   "toUserId":"to_user_id value",
   "nftId":"[\"nft_id value\"]",
   "loyaltyId":"[\"loyalty_id value\"]",
   "ethQty":"[eth_qty value]",
   "loyaltyRewardQuantity":"[loyalty_reward_quantity value]",
   "endorsers":{{"endorsers"}}
}
参数:
  • fromOrgId: string- 当前组织中发送方(所有者)的成员资格服务提供商 (MSP) ID。
  • fromUserId: string- 发件人(所有者)的用户名或电子邮件 ID。
  • toOrgId: string- 当前组织中接收者的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • nftId: string- 要购买的令牌的 ID。
  • loyaltyId: string - 表示忠诚度积分的可替换令牌的 ID。
  • ethQty: number –以太坊中令牌的价格。
  • loyaltyRewardQuantity: string - 要转移的忠诚度点数。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
  "msg": "Token ID : 'artcollection1' has been successfully transferred to UserID : 'user1'"
}
balanceOfBatch
原始方法名称:balanceOfBatch
此 GET 方法完成获取令牌账户余额的批处理操作。此方法只能由链代码的 Token Admin 或帐户所有者调用。
查询:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
参数:
  • orgIds: string[]- 当前组织中的成员服务提供商 (Membership Service Provider,MSP) ID 的列表。
  • userIds: string[]- 用户名或电子邮件 ID 的列表。
  • tokenIds: string[]- 令牌 ID 的列表。
返回值示例:
[
    {
        "orgId": "AppBldFFFFMay22",
        "userId": "user2",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "tokenId": "FNFT",
        "balance": 100
    },
    {
        "orgId": "AppBldFFFFMay22",
        "userId": "user2",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
        "tokenId": "FT",
        "balance": 50
    },
    {
        "orgId": "AppBldFFFFMay22",
        "userId": "example_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- 发件人的成员资格服务提供商 (membership service provider,MSP) ID。
  • fromUserId: string- 发件人的用户 ID。
  • toOrgId: string- 接收者的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户 ID。
  • tokenIds: string[]- 要传输的令牌的令牌 ID 列表。
  • quantity: number[]- 要传输的令牌数量的列表,对应于令牌 ID 数组。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功后,将显示一条消息,其中包含每个令牌传输的详细信息。
返回值示例:
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    }
]
burnBatch
原始方法名称:burnBatch
此 POST 方法将停用或刻录指定的可替换和不可替换标记。具有刻录角色的任何用户都可以调用此方法。
有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
参数:
  • orgId: string- 当前组织中的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户名或电子邮件 ID。
  • tokenIds: string[]- 要燃烧的令牌 ID 的列表
  • quantity: number[]- 要消耗的令牌数量的列表,对应于令牌 ID 数组。
  • sameOrgEndorser: boolean –一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回:
  • 成功后,将显示一条消息,其中包含有关刻录操作的详细信息。
返回值示例:
[
  {
    "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: user2)"
  },
  {
    "msg": "Successfully burned 5 tokens of tokenId: tokenOne from Account-ID oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2)"
  },
  {
    "msg": "Successfully burned 2 token share of tokenId: FNFT from Account-ID oaccount~87bcb699d507368ee3966cd03ee6d7736ffc55dde8c0f0e16b14866334ac504a (Org-Id: AutoF1377358917, User-Id: user2)"
  }
]
burnNFT
原始方法名称:burnNFT
此 POST 方法将停用或刻录指定的不可替换令牌,并返回令牌对象和令牌历史记录。具有刻录角色的任何用户都可以调用此方法。
有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenId": "{{bc-token-id}}",
 "sameOrgEndorser": true
}
参数:
  • orgId: string- 当前组织中的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户名或电子邮件 ID。
  • tokenId: string- 要燃烧的非同质令牌的 ID
  • sameOrgEndorser: boolean –一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回:
  • 成功后,包含有关刻录操作的消息的 JSON 数组。
返回值示例:
{
    "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: user2)"
  }
createAccount
原始方法名称:createAccount
此 POST 方法为指定用户和关联的令牌帐户创建可变或不可变令牌的帐户。必须为在任何时候将具有令牌的任何用户创建账户。用户帐户跟踪 NFT 帐户和用户持有的可变令牌帐户。用户必须在网络中具有帐户才能完成与令牌相关的操作。此方法只能由链代码的 Token Admin 调用。

用户帐户具有唯一的 ID,该 ID 由 orgId 参数和 userId 参数的 SHA-256 散列构成。

用户可以具有多个具有唯一账户 ID 的可替换令牌账户。可替换令牌帐户 ID 由 orgId 参数的 SHA-256 散列、userId 参数、由波浪号 (~) 分隔的常量字符串 ft 和表示由波浪号 (~) 分隔创建的可替换帐户索引的计数器编号构成。

用户只能有一个不可替代的令牌账户。非易变令牌帐户 ID 是唯一的,由 orgId 参数的 SHA-256 散列、userId 参数和以波浪号 (~) 分隔的常量字符串 nft 构成。用户拥有的所有非可换代币(无论是整数还是小数)都将链接到此账户。

用户帐户 ID 以 ouaccount~ 开头。标记帐户 ID 以 oaccount~ 开头。

有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "ftAccount": true,
 "nftAccount": true,
 "endorsers": {{endorsers}}
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • ftAccount: boolean- 如果为 true,将创建可变令牌帐户并将其与用户帐户关联。
  • nftAccount: boolean- 如果为 true,将创建不可替换的令牌帐户并将其与用户帐户关联。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae",
  "userId": "user1",
  "orgId": "appdev",
  "totalAccounts": 2,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58"
}
createArtCollectionToken
原始方法名称:createArtCollectionToken
此 POST 方法创建 (mint) NFT。资产和关联的属性保存在状态数据库中。此事务处理的调用者必须具有令牌账户。此事务处理的调用方将成为 NFT 的所有者。如果令牌规范文件包括 behaviorsroles 部分和 rolesminter_role_name 属性,则事务处理的调用方必须具有 minter 角色。否则,任何调用方都可以生成 NFT。
有效负载:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"tokenMetadata\":{\"Painting_Name\":\"Painting_Name value\",\"Description\":\"Description value\",\"Painter_Name\":\"Painter_Name value\"},\"Price\":999,\"On_Sale_Flag\":true}",
 "quantity": 1,
 "sameOrgEndorser": true
}
参数:
  • tokenAsset: <Token Class>- 要铸造的令牌资产。有关令牌资产属性的更多信息,请参见输入规范文件。
  • quantity: number- 要铸造的标记数。此参数唯一支持的值是 1
  • sameOrgEndorser: boolean –一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回值示例:
{
            "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"
}
createLoyaltyToken
原始方法名称:createLoyaltyToken
此 POST 方法创建令牌。所定义的每个标记都有其自己的创建方法。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}",
 "sameOrgEndorser": true
}
参数:
  • tokenAsset: <Token Class>- 令牌资产。资产的属性在模型文件中定义。
  • sameOrgEndorser: boolean –一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回值示例:
{
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "loyalty",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "fungible",
            "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"
}
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- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • tokenType: TokenType- 要创建的令牌帐户的类型。唯一支持的标记类型是 nonfungiblefungible
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功时,已创建的令牌账户的 JSON 对象。
返回值示例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a"
}
createUserAccount
原始方法名称:createUserAccount
此 POST 方法为指定的用户创建帐户。必须为在任何时候将具有令牌的任何用户创建账户。用户帐户跟踪 NFT 帐户和用户拥有的可替换令牌帐户。用户必须在网络中具有帐户才能完成与令牌相关的操作。

帐户 ID 是 orgId 参数和 userId 参数的 SHA-256 散列。此方法只能由链代码的 Token Admin 调用。

有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功后,创建的用户帐户的 JSON 对象。
返回值示例:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 0,
  "totalFtAccounts": 0,
  "associatedFtAccounts": [],
  "associatedNftAccount": ""
}
deleteAccount
原始方法名称:deleteAccount
此 POST 方法将删除令牌帐户。在删除帐户后,该帐户处于最终状态,无法更新或更改为任何其他状态。要删除帐户,帐户余额必须为零。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功时,标记帐户状态的 JSON 表示形式。
返回值示例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
exchangeToken
原始方法名称:exchangeToken
此方法在指定帐户之间交换令牌。此方法仅支持在 NFT 和可交换令牌或可交换令牌与 NFT 之间进行交换。NFT 可以是整数或小数。此方法只能由账户所有者调用。
有效负载:
{
 "fromTokenId": "fromTokenId value",
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "fromTokenQuantity": 1,
 "toTokenId": "toTokenId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "toTokenQuantity": 1,
 "endorsers": {{endorsers}}
}
参数:
  • fromTokenId: string- 发送方拥有的令牌的 ID。
  • fromOrgId: string- 当前组织中发件人的成员资格服务提供商 (MSP) ID。
  • fromUserId: string- 发件人的用户名或电子邮件 ID。
  • fromTokenQuantity: number –发送方与接收方交换的令牌数量。
  • toTokenId: string- 接收方拥有的令牌的 ID。
  • toOrgId: string- 当前组织中接收者的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • toTokenQuantity: number - 从接收方到与发送方交换的令牌数量。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回:
  • 成功后,将显示包含令牌交换详细信息的消息。
返回值示例:
{
    "msg": "Succesfully exchanged 10 tokens of type nonfungible with tokenId: [r1] from Account oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (OrgId: AppBldFFFFMay22, UserId: user2) to 10 tokens of type fungible with tokenId: [loy1] from Account oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (OrgId: AppBldFFFFMay22, UserId: example_minter)"
}
getAccount
原始方法名称:getAccount
此 GET 方法返回指定用户的令牌帐户详细信息。此方法只能由链代码的 Token Admin 或帐户的 Account Owner 调用。
查询:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
返回:
  • 成功后,包含令牌账户详细信息的 JSON 对象。
返回值示例
{
    "assetType": "oaccount",
    "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
    "userId": "user2",
    "orgId": "AppBldFFFFMay22",
    "tokenType": "nonfungible",
    "noOfNfts": 3
}
getAccountDetailsByUser
原始方法名称:getAccountDetailsByUser
此 GET 方法返回指定用户的帐户详细信息。此方法只能由链代码的 Token Admin 或帐户的 Account Owner 调用。
查询:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
返回值示例:
{
    "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"
            }
        ]
    }
}
getAccountHistory
原始方法名称:getAccountHistory
此 GET 方法返回指定令牌帐户的帐户历史记录。对于 NFT 账户,tokenId 参数必须为空。此方法只能由链代码的 Token Admin 或帐户所有者调用。
查询:
/getAccountHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}&tokenId={{bc-token-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • tokenId: string- 可替换令牌的 ID。
返回值示例:
[
    {
        "trxId": "a2cfc6fc064334d6b9931cdf67193711ec2ff5c50a4714f11855fe7384f00e35",
        "timeStamp": "2023-06-06T14:44:31.000Z",
        "value": {
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "assetType": "oaccount",
            "balance": 100,
            "orgId": "AppBldFFFFMay22",
            "tokenId": "loy1",
            "tokenName": "loyalty",
            "tokenType": "fungible",
            "userId": "user2"
        }
    },
    {
        "trxId": "de483cf7505ae4e7018c4b604c3ab9327c2fb1f802d9408e22735667c1d6997f",
        "timeStamp": "2023-06-06T14:43:23.000Z",
        "value": {
            "assetType": "oaccount",
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "userId": "user2",
            "orgId": "AppBldFFFFMay22",
            "tokenType": "fungible",
            "tokenId": "loy1",
            "tokenName": "loyalty",
            "balance": 0
        }
    },
    {
        "trxId": "db053e653d3ad9aa5b7b6e04b7cd51aacfbb413272d857a155b60d2a6a12bf4d",
        "timeStamp": "2023-06-05T16:59:08.000Z",
        "value": {
            "assetType": "oaccount",
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "userId": "user2",
            "orgId": "AppBldFFFFMay22",
            "tokenType": "fungible",
            "tokenId": "",
            "balance": 0
        }
    }
]
getAccountStatus
原始方法名称:getAccountStatus
此 GET 方法检索令牌帐户的当前状态。链代码的 Token Admin 或令牌帐户所有者可以调用此方法。
查询:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
返回:
  • 成功时,标记帐户状态的 JSON 表示形式。
返回值示例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
原始方法名称:getAccountStatusHistory
此 GET 方法检索帐户状态的历史记录。链代码的 Token Admin 或令牌帐户所有者可以调用此方法。
查询:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
返回:
  • 成功后,账户状态历史记录采用 JSON 格式。
返回值示例:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2022-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2022-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
getAccountTransactionHistory
原始方法名称:getAccountTransactionHistory
此 GET 方法返回账户事务处理历史记录。此方法只能由链代码的 Token Admin 或帐户所有者调用。
查询:
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,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
此方法返回指定角色的所有帐户 ID 的列表。此方法只能由链代码的 Token Admin 调用。
查询:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
参数:
  • role: string- 要搜索的角色的名称。
  • tokenDetails: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
返回值示例:
{
  "accounts": [
    "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
    "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b"
  ]
}
getAllAccounts
原始方法名称:getAllAccounts
此 GET 方法返回所有用户帐户的详细信息。此方法只能由链代码的 Token Admin 调用。
查询:
/getAllAccounts
参数:
返回:
  • 成功后,所有帐户的 JSON 数组。
返回值示例:
[
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
            "userId": "user2",
            "orgId": "AppBldFFFFMay22",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371"
        },
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
            "userId": "example_minter",
            "orgId": "AppBldFFFFMay22",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446"
        },
    ]
getAllTokenAdmins
原始方法名称:getAllTokenAdmins
此 GET 方法返回链代码为 Token Admin 的所有用户的列表。此方法只能由链代码的 Token Admin 调用。
查询:
/getAllTokenAdmins
参数:
返回:
  • 成功后,包含 orgIduserId 对象的 JSON 格式的 admins 数组。
返回值示例:
{
  "admins": [
    {
      "orgId": "appdev",
      "userId": "user2"
    },
    {
      "orgId": "appdev",
      "userId": "user1"
    }
  ]
}
getAllTokens
原始方法名称:getAllTokens
此 GET 方法返回保存在状态数据库中的所有令牌资产。此方法只能由链代码的 Token Admin 调用。此方法使用 Berkeley DB SQL 丰富的查询,并且只能在连接到远程 Oracle Blockchain Platform 网络时调用。
查询:
/getAllTokens
参数:
返回值示例:
[{
            "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}}
参数:
  • org_id: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • user_id: 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"
}]
getTokenById
原始方法名称:getTokenById
如果令牌存在于状态数据库中,则此 GET 方法将返回令牌对象。此方法只能由链代码的 Token Admin 或令牌所有者调用。对于小数 NFT,响应包括令牌所有者的列表。
查询:
/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"
         }
]
getTokenDecimal
原始方法名称:getTokenDecimal
此方法返回指定标记的小数位数。此方法只能由链代码的 Token Admin 调用。
查询:
/getTokenDecimal?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 令牌的 ID。
返回值示例:
{
    "msg": "Token Id: tokenOne has 2 decimal places."
}
getTokenHistory
原始方法名称:getTokenHistory
此 GET 方法返回指定令牌 ID 的历史记录。任何人都可以调用此方法。
/getTokenHistory?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"
         }
]
getTokensByName
原始方法名称:getTokensByName
此 GET 方法返回指定标记名称的所有标记资产。此方法使用 Berkeley DB SQL 丰富的查询,并且只能在连接到远程 Oracle Blockchain Platform 网络时调用。此方法只能由链代码的 Token Admin 调用。
查询:
/getTokensByName?tokenName=tokenName value
参数:
  • tokenName: string- 令牌的名称。
返回值示例:
[
  {
    "key": "tokenOne",
    "valueJson": {
      "assetType": "otoken",
      "tokenId": "tokenOne",
      "tokenName": "moneytok",
      "tokenStandard": "erc1155+",
      "tokenType": "fungible",
      "tokenUnit": "fractional",
      "behaviors": [
        "divisible",
        "mintable",
        "transferable",
        "roles"
      ],
      "roles": {
        "minter_role_name": "minter",
        "burner_role_name": "burner"
      },
      "mintable": {
        "max_mint_quantity": 1000
      },
      "divisible": {
        "decimal": 2
      }
    }
  },
  {
    "key": "tokenTwo",
    "valueJson": {
      "assetType": "otoken",
      "tokenId": "tokenTwo",
      "tokenName": "moneytok",
      "tokenStandard": "erc1155+",
      "tokenType": "fungible",
      "tokenUnit": "fractional",
      "behaviors": [
        "divisible",
        "mintable",
        "transferable",
        "roles"
      ],
      "roles": {
        "minter_role_name": "minter",
        "burner_role_name": "burner"
      },
      "mintable": {
        "max_mint_quantity": 1000
      },
      "divisible": {
        "decimal": 2
      }
    }
  }
]
getTransactionById
原始方法名称:getTransactionById
此 GET 方法返回指定事务处理 ID 的事务处理历史记录。这是一种异步方法。此方法可由任何用户调用。
查询:
/getTransactionById?transactionId=transactionId value
参数:
  • transactionId: string- 事务处理的 ID,前缀为 otransaction~,后跟十六进制格式的 64 位散列。
返回值示例:
{
  "transactionId": "otransaction~9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe~33b59ce0c89e96c1e16449f24301581e8e71954f38ad977c7eb6f065e87f2a53",
  "history": [
    {
      "trxId": "9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe",
      "timeStamp": "2022-12-08T09:01:28.000Z",
      "value": {
        "assetType": "otransaction",
        "transactionId": "otransaction~9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe~33b59ce0c89e96c1e16449f24301581e8e71954f38ad977c7eb6f065e87f2a53",
        "tokenId": "tokenOne",
        "fromAccountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
        "toAccountId": "",
        "transactionType": "BURN",
        "amount": 5,
        "timestamp": "2022-12-08T09:01:28.000Z",
        "triggeredByUserAccountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc"
      }
    }
  ]
}
getUserByAccountId
原始方法名称:getUserByAccountId
此 GET 方法返回指定帐户 ID 的组织 ID 和用户 ID。
查询:
/getUserByAccountId?accountId=accountId value
参数:
  • accountId: string- 帐户的 ID。
返回值示例:
{
    "orgId": "AppBldFFFFMay22",
    "userId": "user2"
}
getUsersByRole
原始方法名称:getUsersByRole
此 GET 方法返回指定角色的所有用户的列表。
查询:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
参数:
  • role: string- 要搜索的角色的名称。
  • tokenDetail: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
返回值示例:
{
    "users": [
        {
            "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
            "orgId": "appdev",
            "userId": "user2"
        },
        {
            "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
            "orgId": "appdev",
            "userId": "user1"
        }
    ]
}
init
原始方法名称:init
部署链代码时会调用此 POST 方法。用户信息将另存为链代码的 Token Admin
有效负载:
{
 "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]"
}
参数:
  • adminList array-{user_id, org_id} 信息数组,用于指定令牌管理员的列表。adminList 数组是必需参数。
返回:
  • 成功后,将出现无有效负载的消息。
返回值示例:
{

}
isInRole
原始方法名称:isInRole
此 GET 方法返回布尔值以指示用户是否具有指定的角色。此方法只能由链代码的 Token Admin 或帐户的 Account Owner 调用。
查询:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • role: string- 要搜索的角色的名称。
  • tokenDetail: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
返回值示例:
{
    "result": true,
    "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2) has minter role"
}
isTokenAdmin
原始方法名称:isTokenAdmin
如果函数的调用方为 Token Admin,则此 GET 方法返回布尔值 true,否则返回 false。此方法只能由链代码的 Token Admin 调用。
查询:
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
返回:
  • 如果调用方为 Token Admin,则该方法返回 true,否则返回 false
返回值示例:
{
  "result": true
}
mintBatch
原始方法名称:mintBatch
此 POST 方法在批处理操作中创建 (mint) 多个标记。此方法仅创建可替换令牌或小数非可替换令牌。

对于可变令牌,如果 minter 角色在规范文件中定义,则具有 minter 角色的任何用户都可以调用此方法。如果没有,任何用户都可以使用此方法来创建标记。如果该属性是在创建或更新令牌时指定的,则不能超过令牌的 max_mint_quantity 属性。

对于非可换代币,如果在规范文件中定义了 minter 角色,则具有 minter 角色的任何用户都可以调用此方法。如果没有,任何用户都可以使用此方法来创建标记。此外,调用者还必须是令牌的创建者。可以铸造的小数非实物代币的数量没有上限。

不能使用此方法来模拟整个不可替换标记。

有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • tokenIds: string[]- 要为其生成标记的标记 ID 列表。
  • quantity: number[]- 与标记 ID 数组相对应的标记数量列表。
  • sameOrgEndorser: boolean –一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回:
  • 成功后,JSON 对象将包含铸造标记的详细信息。
返回值示例:
{
    "msg": "Successfully minted batch of tokens for User-Account-Id ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38 (Org-Id: AppBldFFFFMay22, User-Id: user2).",
    "details": [
        {
            "msg": "Successfully minted 100 tokens of fractional tokenId: plot55 to Org-Id: AppBldFFFFMay22, User-Id: user2"
        },
        {
            "msg": "Successfully minted 100 tokens of tokenId: loyalty to Token-Account-Id oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e"
        }
    ]
}
post
原始方法名称:post
此 POST 方法按指定价格发布要销售的令牌。
有效负载:
{
 "tokenId": "{{bc-token-id}}",
 "sellingPrice": 1,
 "endorsers": {{endorsers}}
}
参数:
  • tokenId: string- 令牌的 ID。
  • sellingPrice: number –令牌的价格。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
  "msg": "Token ID : 'artCollection1' has been posted for selling in the marketplace"          
}
removeRole
原始方法名称:removeRole
此方法从指定用户中删除角色。此方法只能由链代码的 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- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • role: string- 要从指定用户中删除的角色的名称。
  • tokenDetail: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
  "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)"
}
removeTokenAdmin
原始方法名称:removeTokenAdmin
此 POST 方法将用户删除为链代码的 Token Admin。此方法只能由链代码的 Token Admin 调用。管理员无法自行删除。
有效负载:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "sameOrgEndorser": true
}
参数:
  • org_id: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • user_id: string- 用户的用户名或电子邮件 ID。
  • sameOrgEndorser: boolean –一个布尔值,指示事务处理背书是否必须来自与请求者相同的组织。
返回值示例:
{
  "msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)"
}
safeBatchTransferFrom
原始方法名称:safeBatchTransferFrom
此 POST 方法将指定标记的所有权从调用方转移到另一个帐户。此方法的调用方必须是令牌的发送方,并且必须拥有指定的令牌。对于小数 NFT,如果用户将其所有共享资源传输给其他用户,则它们将失去令牌的所有权。
有效负载:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
参数:
  • fromOrgId: string- 当前组织中发送者和令牌所有者的成员资格服务提供商 (Membership Service Provider,MSP) ID。
  • fromUserId: string- 发件人和令牌所有者的用户名或电子邮件 ID。
  • toOrgId: string- 当前组织中接收者的成员服务提供商 (MSP) ID。
  • toUserId: string- 接收者的用户名或电子邮件 ID。
  • tokenIds: string[]- 要传输的令牌 ID 的数组。
  • quantity: number[]- 要传输的令牌数量的列表,对应于令牌 ID 数组。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)"
    }
]
suspendAccount
原始方法名称:suspendAccount
此 POST 方法暂停可变令牌帐户。如果未在分类帐中找到 accountStatus 值,则会引发错误。此方法只能由链代码的 Token Admin 调用。
有效负载:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
参数:
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。
  • userId: string- 用户的用户名或电子邮件 ID。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
totalNetSupply
原始方法名称:totalNetSupply
此 GET 方法返回铸造的令牌总数减去烧毁的令牌的数量。此方法只能由链代码的 Token Admin 调用。
查询(可变令牌):
/totalNetSupply?tokenDetail={"tokenId":"{{bc-token-id}}"}
查询(非易变令牌):
/totalNetSupply?tokenDetail={"tokenName":"tokenName value"}
参数:
  • tokenDetail: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
返回值示例:
{
    "totalNetSupply": 105
}
totalSupply
原始方法名称:totalSupply
此 GET 方法返回铸币的总数。此方法只能由链代码的 Token Admin 调用。
查询(可变令牌):
/totalSupply?tokenDetail={"tokenId":"{{bc-token-id}}"}
查询(非易变令牌):
/totalSupply?tokenDetail={"tokenName":"tokenName value"}
参数:
  • tokenDetail: TokenDetail- 指定标记的详细信息。对于可替换令牌,请使用以下格式:
    {"tokenId":"token1"}
    对于非易变标记,请使用以下格式:
    {"tokenName":"artCollection"}
返回值示例:
{
    "totalSupply": 110
}
updateArtCollectionToken
原始方法名称:updateArtCollectionToken
此 POST 方法更新令牌属性。只有令牌所有者可以调用此方法。对于 NFT,标记元数据和标记 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>- 要更新的标记资产。有关令牌资产属性的更多信息,请参见输入规范文件。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
            "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"
}
updateLoyaltyToken
原始方法名称:updateLoyaltyToken
此 POST 方法更新令牌属性。只有令牌所有者可以调用此方法。对于 NFT,标记元数据和标记 URI 在标记铸造后无法更新。
有效负载:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}",
 "sameOrgEndorser": true
}
参数:
  • tokenAsset: <Token Class>- 要更新的标记资产。有关令牌资产属性的更多信息,请参见输入规范文件。
  • endorsers: string[]- 必须背书事务处理的对等节点(例如 peer1peer2)的数组。
返回值示例:
{
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "tokenName": "loyalty",
            "tokenDesc": "tokenDesc value",
            "tokenStandard": "erc1155+",
            "tokenType": "fungible",
            "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
此 GET 方法返回指定标记的 URI。只有令牌创建者可以调用此方法。
查询
/URI?tokenId={{bc-token-id}}
参数:
  • tokenId: string- 令牌的 ID。
返回值示例:
{
    "tokenUri": "example.com"
}