- Edição de Ativos Digitais do Oracle Blockchain Platform
- Estruturas de Token Genérico
- Estrutura de Token Combinada
- Pacote de API do Wrapper do Token Framework Combinado
Pacote de API do Wrapper do Token Framework Combinado
A Edição de Ativos Digitais do Oracle Blockchain Platform inclui um pacote de API wrapper que estende a API REST para oferecer suporte a operações específicas de um marketplace NFT colecionável.
NFTCollectiblesWithERC1155WrapperAPI.zip
, um arquivo compactado que contém o pacote de API do wrapper, incluindo os scripts do Terraform necessários para implantação. Você implanta esse arquivo em uma pilha do Resource Manager no OCI (Oracle Cloud Infrastructure) para criar os recursos Oracle necessários para as APIs do Wrapper.NFTCollectiblesWithERC1155_WrapperAPI.postman_collection.json
, uma coleção Postman que permite testar as APIs do wrapper implantado. A coleção inclui solicitações pré-configuradas com pontos finais e payloads que correspondem às APIs definidas no pacote de API do wrapper.
APIs Wrapper
-
activateAccount
- Nome do método original:
activateAccount
- Este método POST ativa uma conta de token. Este método só pode ser chamado por um administrador ou proprietário da conta. Para contas existentes em que um
accountStatus
não é encontrado no razão, o método retorna um objetoaccountStatus
com o status definido comoactive
. - Payload:
{ "tokenId": "{{bc-token-id}}", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
tokenId: string
– O ID do token.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Com êxito, uma representação JSON do objeto de status da conta atualizada para a conta de token fungível.
- Exemplo de Valor de Retorno:
{ "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "active" }
-
addTokenAdmin
- Nome do método original:
addTokenAdmin
- Este método POST adiciona um usuário como um
Token Admin
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Em caso de sucesso, uma mensagem que inclui detalhes do usuário que foi adicionado como um
Token Admin
do chaincode.
- Em caso de sucesso, uma mensagem que inclui detalhes do usuário que foi adicionado como um
- Exemplo de Valor de Retorno:
{ "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)" }
-
addRole
- Nome do método original:
addRole
- Esse método POST adiciona a atribuição ao usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode. Os tokens Fungíveis do parâmetro tokenDetails exigem o valortokenId
como entrada. Tokens não fungíveis exigem o tokenName como entrada, para que possamos usar o parâmetro tokenDetail para especificar detalhes de tokens fungíveis e não fungíveis de maneira diferente. - Payload:
{ "tokenId": "{{bc-token-id}}", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "role": "role minter/burner" "tokenDetails": "{"tokenName": "token name value"}" "endorsers": {{endorsers}} }
- Parâmetros:
tokenId: string
– O ID do token.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.role: string
– O nome da atribuição a ser adicionada ao usuário especificado.tokenDetails: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2)" }
-
associateFungibleTokenToAccount
- Nome do método original:
associateFungibleTokenToAccount
- Este método POST associa a conta de token fungível de um usuário a um token especificado.
- Payload:
{ "tokenId": "{{bc-token-id}}", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
tokenId: string
– O ID do token.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "assetType": "ouaccount", "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc", "userId": "user2", "orgId": "appdev", "totalAccounts": 1, "totalFtAccounts": 1, "associatedFtAccounts": [ { "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a", "tokenId": "tokenOne" } ], "associatedNftAccount": "" }
-
buyWithEthCoin
- Nome do método original:
buyWithEthCoin
- Qualquer proprietário de conta pode usar esse método POST para comprar um NFT usando Ethereum e transferir tokens de fidelidade como pontos de recompensa.
- Payload:
{ "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"}} }
- Parâmetros:
fromOrgId: string
– O ID do prestador de serviços de associação (MSP) do remetente (proprietário) na organização atual.fromUserId: string
– O nome de usuário ou o ID de e-mail do remetente (proprietário).toOrgId: string
– O ID do prestador de serviço de associação (MSP) do destinatário na organização atual.toUserId: string
– O nome do usuário ou o ID do e-mail do destinatário.nftId: string
– O ID do token a ser comprado.loyaltyId: string
– O ID do token fungível que representa pontos de fidelidade.ethQty: number
– O preço do token no Ethereum.loyaltyRewardQuantity: string
– A quantidade de pontos de fidelidade a serem transferidos.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "msg": "Token ID : 'artcollection1' has been successfully transferred to UserID : 'user1'" }
-
balanceOfBatch
- Nome do método original:
balanceOfBatch
- Este método GET conclui uma operação de lote que obtém os saldos das contas de token. Esse método só pode ser chamado por um
Token Admin
do chaincode ou pelo proprietário da conta. - Consulta:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
- Parâmetros:
orgIds: string[]
– Uma lista dos IDs do prestador de serviço de associação (MSP) na organização atual.userIds: string[]
– Uma lista do nome de usuário ou IDs de e-mail.tokenIds: string[]
– Uma lista dos IDs de token.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
batchTransferFrom
- Este método POST conclui uma operação em batch que transfere tokens especificados em uma lista de IDs de token de um usuário para outro. Esse método pode ser chamado por qualquer usuário.
- Payload:
{ "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "tokenIds": "[\"{{bc-token-id}}\"]", "quantity": "[quantity value]", "endorsers": {{endorsers}} }
- Parâmetros:
fromOrgId: string
– O ID do prestador de serviços de associação (MSP) do remetente.fromUserId: string
– O ID do usuário do remetente.toOrgId: string
– O ID do provedor de serviços de associação (MSP) do receptor.toUserId: string
– O ID do usuário do receptor.tokenIds: string[]
– Uma lista de IDs de token para os tokens a serem transferidos.quantity: number[]
– A lista de quantidades de tokens a serem transferidos, correspondente ao array do ID do token.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Com êxito, uma mensagem com detalhes para cada transferência de token.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
burnBatch
- Este método POST desativa ou queima os tokens fungíveis e não fungíveis especificados. Qualquer usuário com a função de gravador pode chamar esse método.
- Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenIds": "[\"{{bc-token-id}}\"]", "quantity": "[quantity value]", "sameOrgEndorser": true }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) na organização atual.userId: string
– O nome do usuário ou o ID do e-mail.tokenIds: string[]
– A lista de IDs de token a serem gravadosquantity: number[]
– A lista de quantidades de tokens a serem gravados, correspondente ao array do ID do token.sameOrgEndorser: boolean
– Um valor booliano que indica se os endossos da transação devem ser da mesma organização que o solicitante.
- Retorna:
- Em caso de sucesso, uma mensagem com detalhes sobre as operações de gravação.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
burnNFT
- Esse método POST desativa ou queima o token não fungível especificado e retorna um objeto de token e um histórico de token. Qualquer usuário com a função de gravador pode chamar esse método.
- Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenId": "{{bc-token-id}}", "sameOrgEndorser": true }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) na organização atual.userId: string
– O nome do usuário ou o ID do e-mail.tokenId: string
– O ID do token não fungível a ser gravadosameOrgEndorser: boolean
– Um valor booliano que indica se os endossos da transação devem ser da mesma organização que o solicitante.
- Retorna:
- Em caso de sucesso, um array JSON que contém uma mensagem sobre a operação de gravação.
- Exemplo de Valor de Retorno:
{ "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: user2)" }
-
createAccount
- Nome do método original:
createAccount
- Este método POST cria uma conta para um usuário especificado e contas de token associadas para tokens fungíveis ou não fungíveis. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. A conta de usuário rastreia a conta NFT e as contas de token fungíveis que um usuário mantém. Os usuários devem ter contas na rede para concluir operações relacionadas a token. Esse método só pode ser chamado por um
Token Admin
do chaincode.Uma conta de usuário tem um ID exclusivo, que é formado por um hash SHA-256 do parâmetro
orgId
e do parâmetrouserId
.Um usuário pode ter várias contas de token fungíveis com IDs de conta exclusivos. Os IDs de conta de token fungível são formados por um hash SHA-256 do parâmetro
orgId
, o parâmetrouserId
, a string constanteft
separada pelo símbolo til (~
) e um número de contador que significa o índice da conta fungível que está sendo criada separada pelo símbolo til (~
).Um usuário pode ter apenas uma conta de token não fungível. Os IDs de conta de token não fungíveis são exclusivos e são formados por um hash SHA-256 do parâmetro
orgId
, do parâmetrouserId
e da string constantenft
separada pelo símbolo til (~
). Todos os tokens não fungíveis que um usuário possui, sejam inteiros ou fracionários, estão vinculados a essa conta.Os IDs de contas de usuário começam com
ouaccount~
. Os IDs de conta de token começam comoaccount~
. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "ftAccount": true, "nftAccount": true, "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.ftAccount: boolean
– Se verdadeiro, uma conta de token fungível será criada e associada à conta do usuário.nftAccount: boolean
– Se verdadeiro, uma conta de token não fungível será criada e associada à conta do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "assetType": "ouaccount", "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae", "userId": "user1", "orgId": "appdev", "totalAccounts": 2, "totalFtAccounts": 1, "associatedFtAccounts": [ { "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b", "tokenId": "" } ], "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58" }
-
createArtCollectionToken
- Nome do método original:
createArtCollectionToken
- Este método POST cria (mints) um NFT. O ativo e as propriedades associadas são salvos no banco de dados de estado. O chamador desta transação deve ter uma conta de token. O chamador desta transação se torna o proprietário do NFT. Se o arquivo de especificação de token incluir a seção
roles
parabehaviors
e a propriedademinter_role_name
pararoles
, o chamador da transação deverá ter a atribuição de minter. Caso contrário, qualquer chamador pode cunhar NFTs. - Payload:
{ "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 }
- Parâmetros:
tokenAsset: <Token Class>
– O ativo de token a ser cunhado. Para obter mais informações sobre as propriedades do ativo de token, consulte o arquivo de especificação de entrada.quantity: number
– O número de tokens a serem cunhados. O único valor suportado para esse parâmetro é1
.sameOrgEndorser: boolean
– Um valor booliano que indica se os endossos da transação devem ser da mesma organização que o solicitante.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
createLoyaltyToken
- Este método POST cria tokens. Cada token definido tem seu próprio método de criação. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Payload:
{ "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}", "sameOrgEndorser": true }
- Parâmetros:
tokenAsset: <Token Class>
– O ativo de token. As propriedades do ativo são definidas no arquivo de modelo.sameOrgEndorser: boolean
– Um valor booliano que indica se os endossos da transação devem ser da mesma organização que o solicitante.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
createTokenAccount
- Este método POST cria uma conta de token fungível ou não fungível para associar a uma conta de usuário.
Um usuário pode ter várias contas de token fungíveis com IDs de conta exclusivos. Os IDs de conta de token fungível são formados por um hash SHA-256 do parâmetro
orgId
, o parâmetrouserId
, a string constanteft
separada pelo símbolo til (~
) e um número de contador que significa o índice da conta fungível que está sendo criada separada pelo símbolo til (~
).Um usuário pode ter apenas uma conta de token não fungível. Os IDs de conta de token não fungíveis são exclusivos e são formados por um hash SHA-256 do parâmetro
orgId
, do parâmetrouserId
e da string constantenft
separada pelo símbolo til (~
). Todos os tokens não fungíveis que um usuário possui, sejam inteiros ou fracionários, estão vinculados a essa conta.Esse método só pode ser chamado por um
Token Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenType": "nonfungible", "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.tokenType: TokenType
– O tipo de conta de token a ser criada. Os únicos tipos de token suportados sãononfungible
efungible
.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Com êxito, um objeto JSON da conta de token que foi criada.
- Exemplo de Valor de Retorno:
{ "assetType": "ouaccount", "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc", "userId": "user2", "orgId": "appdev", "totalAccounts": 1, "totalFtAccounts": 1, "associatedFtAccounts": [ { "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a", "tokenId": "" } ], "associatedNftAccount": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a" }
-
createUserAccount
- Nome do método original:
createUserAccount
- Este método POST cria uma conta para um usuário especificado. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. A conta de usuário rastreia a conta NFT e as contas de token fungíveis que um usuário tem. Os usuários devem ter contas na rede para concluir operações relacionadas a token.
Um ID de conta é um hash SHA-256 do parâmetro
orgId
e do parâmetrouserId
. Esse método só pode ser chamado por umToken Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Com êxito, um objeto JSON da conta de usuário que foi criado.
- Exemplo de Valor de Retorno:
{ "assetType": "ouaccount", "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc", "userId": "user2", "orgId": "appdev", "totalAccounts": 0, "totalFtAccounts": 0, "associatedFtAccounts": [], "associatedNftAccount": "" }
-
deleteAccount
- Nome do método original:
deleteAccount
- Este método POST exclui uma conta de token. Depois que uma conta é excluída, ela fica em um estado final e não pode ser atualizada nem alterada para nenhum outro estado. Para excluir uma conta, o saldo da conta deve ser zero. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de Valor de Retorno:
{ "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "deleted" }
-
exchangeToken
- Nome do método original:
exchangeToken
- Este método troca tokens entre contas especificadas. Este método suporta apenas a troca entre um NFT e um token fungível ou um token fungível e um NFT. O NFT pode ser inteiro ou fracionário. Esse método só pode ser chamado pelo proprietário da conta.
- Payload:
{ "fromTokenId": "fromTokenId value", "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "fromTokenQuantity": 1, "toTokenId": "toTokenId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "toTokenQuantity": 1, "endorsers": {{endorsers}} }
- Parâmetros:
fromTokenId: string
– O ID do token de propriedade do remetente.fromOrgId: string
– O ID do prestador de serviço de associação (MSP) do remetente na organização atual.fromUserId: string
– O nome do usuário ou o ID do e-mail do remetente.fromTokenQuantity: number
– A quantidade de tokens do remetente para troca com o receptor.toTokenId: string
– O ID do token de propriedade do receptor.toOrgId: string
– O ID do prestador de serviço de associação (MSP) do destinatário na organização atual.toUserId: string
– O nome do usuário ou o ID do e-mail do destinatário.toTokenQuantity: number
– A quantidade de tokens do destinatário a serem trocados com o remetente.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Retorna:
- Com êxito, uma mensagem com detalhes de troca de token.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
getAccount
- Este método GET retorna detalhes da conta de token para um usuário especificado. Esse método só pode ser chamado por um
Token Admin
do chaincode ou peloAccount Owner
da conta. - Consulta:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.
- Retorna:
- Em caso de sucesso, um objeto JSON que inclui detalhes da conta de token.
- Exemplo de Valor de Retorno
{ "assetType": "oaccount", "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371", "userId": "user2", "orgId": "AppBldFFFFMay22", "tokenType": "nonfungible", "noOfNfts": 3 }
-
getAccountDetailsByUser
- Nome do método original:
getAccountDetailsByUser
- Este método GET retorna detalhes da conta de um usuário especificado. Esse método só pode ser chamado por um
Token Admin
do chaincode ou peloAccount Owner
da conta. - Consulta:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
getAccountHistory
- Este método GET retorna o histórico da conta para uma conta de token especificada. Para contas NFT, o parâmetro
tokenId
deve estar vazio. Esse método só pode ser chamado peloToken Admin
do chaincode ou pelo proprietário da conta. - Consulta:
/getAccountHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}&tokenId={{bc-token-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.tokenId: string
– O ID do token fungível.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
getAccountStatus
- Este método GET recupera o status atual da conta de token. Esse método pode ser chamado pelo
Token Admin
do chaincode ou pelo proprietário da conta do token. - Consulta:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de Valor de Retorno:
{ "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "active" }
-
getAccountStatusHistory
- Nome do método original:
getAccountStatusHistory
- Este método GET recupera o histórico do status da conta. Esse método pode ser chamado pelo
Token Admin
do chaincode ou pelo proprietário da conta do token. - Consulta:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.
- Retorna:
- Com êxito, o histórico de status da conta no formato JSON.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
getAccountTransactionHistory
- Este método GET retorna o histórico de transações da conta. Esse método só pode ser chamado por um
Token Admin
do chaincode ou pelo proprietário da conta. - Consulta:
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
getAccountsByRole
- Esse método retorna uma lista de todos os IDs de contas para uma função especificada. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Consulta:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
- Parâmetros:
role: string
– O nome da atribuição a ser pesquisada.tokenDetails: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
- Exemplo de Valor de Retorno:
{ "accounts": [ "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a", "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b" ] }
-
getAllAccounts
- Nome do método original:
getAllAccounts
- Este método GET retorna detalhes de todas as contas de usuário. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Consulta:
/getAllAccounts
- Parâmetros:
- nenhuma
- Retorna:
- Com sucesso, um array JSON de todas as contas.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
getAllTokenAdmins
- Este método GET retorna uma lista de todos os usuários que são um
Token Admin
do chaincode. Esse método só pode ser chamado peloToken Admin
do chaincode. - Consulta:
/getAllTokenAdmins
- Parâmetros:
- nenhuma
- Retorna:
- Em caso de sucesso, um array
admins
no formato JSON que contém objetosorgId
euserId
.
- Em caso de sucesso, um array
- Exemplo de Valor de Retorno:
{ "admins": [ { "orgId": "appdev", "userId": "user2" }, { "orgId": "appdev", "userId": "user1" } ] }
-
getAllTokens
- Nome do método original:
getAllTokens
- Esse método GET retorna todos os ativos de token salvos no banco de dados de estado. Esse método só pode ser chamado por um
Token Admin
do chaincode. Esse método usa consultas ricas em SQL de BD Berkeley e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. - Consulta:
/getAllTokens
- Parâmetros:
- nenhuma
- Exemplo de Valor de Retorno:
[{ "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
- Nome do método original:
getAllTokensByUser
- Este método GET retorna todos os ativos de token pertencentes a um usuário especificado. Esse método usa consultas ricas em SQL de BD Berkeley e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. Esse método só pode ser chamado por um
Token Admin
do chaincode ou pelo proprietário da conta. - Consulta:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
org_id: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.user_id: string
– O nome do usuário ou o ID do e-mail do usuário.
- Exemplo de Valor de Retorno:
[{ "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
- Nome do método original:
getTokenById
- Esse método GET retornará um objeto de token se o token estiver presente no banco de dados de estado. Esse método só pode ser chamado por um
Token Admin
do chaincode ou do proprietário do token. Para NFTs fracionários, a resposta inclui a lista de proprietários de token. - Consulta:
/getTokenById?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token a ser obtido.
- Exemplo de Valor de Retorno:
[{ "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
- Nome do método original:
getTokenDecimal
- Esse método retorna o número de casas decimais para um token especificado. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Consulta:
/getTokenDecimal?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Exemplo de Valor de Retorno:
{ "msg": "Token Id: tokenOne has 2 decimal places." }
-
getTokenHistory
- Nome do método original:
getTokenHistory
- Este método GET retorna o histórico de um ID de token especificado. Qualquer um pode chamar esse método.
/getTokenHistory?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Exemplo de Valor de Retorno:
[{ "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
- Nome do método original:
getTokensByName
- Este método GET retorna todos os ativos de token para um nome de token especificado. Esse método usa consultas ricas em SQL de BD Berkeley e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Consulta:
/getTokensByName?tokenName=tokenName value
- Parâmetros:
tokenName: string
– O nome do token.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
getTransactionById
- Este método GET retorna o histórico de transações para um ID de transação especificado. Este é um método assíncrono. Esse método pode ser chamado por qualquer usuário.
- Consulta:
/getTransactionById?transactionId=transactionId value
- Parâmetros:
transactionId: string
– O id da transação, que é o prefixootransaction~
seguido pelo hash de 64 bits no formato hexadecimal.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
getUserByAccountId
- Este método GET retorna o ID da organização e o ID do usuário de um ID de conta especificado.
- Consulta:
/getUserByAccountId?accountId=accountId value
- Parâmetros:
accountId: string
– O ID da conta.
- Exemplo de Valor de Retorno:
{ "orgId": "AppBldFFFFMay22", "userId": "user2" }
-
getUsersByRole
- Nome do método original:
getUsersByRole
- Este método GET retorna uma lista de todos os usuários de uma atribuição especificada.
- Consulta:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
- Parâmetros:
role: string
– O nome da atribuição a ser pesquisada.tokenDetail: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
- Exemplo de Valor de Retorno:
{ "users": [ { "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a", "orgId": "appdev", "userId": "user2" }, { "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b", "orgId": "appdev", "userId": "user1" } ] }
-
init
- Nome do método original:
init
- Este método POST é chamado quando o chaincode é implantado. As informações do usuário são salvas como
Token Admin
do chaincode. - Payload:
{ "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]" }
- Parâmetros:
adminList array
– Um array de informações{user_id, org_id}
que especifica a lista de administradores de token. O arrayadminList
é um parâmetro obrigatório.
- Retorna:
- Em caso de sucesso, uma mensagem sem payload.
- Exemplo de Valor de Retorno:
{ }
-
isInRole
- Nome do método original:
isInRole
- Este método GET retorna um valor booliano para indicar se um usuário tem uma atribuição especificada. Esse método só pode ser chamado por um
Token Admin
do chaincode ou peloAccount Owner
da conta. - Consulta:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.role: string
– O nome da atribuição a ser pesquisada.tokenDetail: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
- Exemplo de Valor de Retorno:
{ "result": true, "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2) has minter role" }
-
isTokenAdmin
- Nome do método original:
isTokenAdmin
- Esse método GET retornará o valor booliano
true
se o chamador da função forToken Admin
; caso contrário, ele retornaráfalse
. Esse método só pode ser chamado por umToken Admin
do chaincode. - Consulta:
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.
- Retorna:
- O método retornará
true
se o chamador forToken Admin
; caso contrário, retornaráfalse
.
- O método retornará
- Exemplo de Valor de Retorno:
{ "result": true }
-
mintBatch
- Nome do método original:
mintBatch
- Este método POST cria (mints) vários tokens em uma operação em lote. Este método cria apenas tokens fungíveis ou tokens fracionários não fungíveis.
Para tokens fungíveis, se a função de minter for definida no arquivo de especificação, qualquer usuário com a função de minter poderá chamar esse método. Caso contrário, qualquer usuário poderá usar esse método para gerar tokens. Você não poderá cunhar mais do que a propriedade
max_mint_quantity
do token, se essa propriedade tiver sido especificada quando o token foi criado ou atualizado.Para tokens não fungíveis, se a função de minter for definida no arquivo de especificação, qualquer usuário com a função de minter poderá chamar esse método. Caso contrário, qualquer usuário poderá usar esse método para gerar tokens. Além disso, o chamador também deve ser o criador do token. Não há limite superior para a quantidade de tokens fracionários não fungíveis que podem ser cunhados.
Você não pode usar esse método para gerar um token não fungível inteiro.
- Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenIds": "[\"{{bc-token-id}}\"]", "quantity": "[quantity value]", "sameOrgEndorser": true }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.tokenIds: string[]
– A lista de IDs de token para os tokens de mint.quantity: number[]
– A lista de quantidades de tokens para mint, correspondente ao array do ID do token.sameOrgEndorser: boolean
– Um valor booliano que indica se os endossos da transação devem ser da mesma organização que o solicitante.
- Retorna:
- Em caso de sucesso, um objeto JSON que inclui detalhes sobre os tokens cunhados.
- Exemplo de Valor de Retorno:
{ "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" } ] }
-
name
- Nome do método original:
name
- Esse método GET retorna o nome da classe do token. Qualquer um pode chamar esse método.
- Consulta:
/name?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Exemplo de Valor de Retorno:
{ "tokenName": "artcollection" }
-
ownerOf
- Nome do método original:
ownerOf
- Este método GET retorna o ID da conta dos proprietários do ID do token especificado. Qualquer um pode chamar esse método.
- Consulta:
/ownerOf?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Retorna:
- Um objeto JSON dos IDs de conta dos proprietários.
- Exemplo de Valor de Retorno:
[ { "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "orgId": "Org1MSP", "userId": "admin" }, { "accountId": "oaccount~74108eca702bab6d8548e740254f2cc7955d886885251d52d065042172a59db0", "orgId": "Org1MSP", "userId": "user" } ]
-
post
- Nome do método original:
post
- Este método POST publica um token para venda por um preço especificado.
- Payload:
{ "tokenId": "{{bc-token-id}}", "sellingPrice": 1, "endorsers": {{endorsers}} }
- Parâmetros:
tokenId: string
– O ID do token.sellingPrice: number
– O preço do token.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "msg": "Token ID : 'artCollection1' has been posted for selling in the marketplace" }
-
removeRole
- Nome do método original:
removeRole
- Este método remove uma atribuição de um usuário especificado. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "role": "role value (for example minter / burner)", "tokenDetail": "{\"tokenName\":\"tokenName value\"}", "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.role: string
– O nome da atribuição a ser removida do usuário especificado.tokenDetail: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)" }
-
removeTokenAdmin
- Nome do método original:
removeTokenAdmin
- Este método POST remove um usuário como um
Token Admin
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. Um administrador não pode remover a si mesmo. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true }
- Parâmetros:
org_id: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.user_id: string
– O nome do usuário ou o ID do e-mail do usuário.sameOrgEndorser: boolean
– Um valor booliano que indica se os endossos da transação devem ser da mesma organização que o solicitante.
- Exemplo de Valor de Retorno:
{ "msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)" }
-
safeBatchTransferFrom
- Nome do método original:
safeBatchTransferFrom
- Este método POST transfere a propriedade dos tokens especificados do chamador para outra conta. O chamador deste método deve ser o remetente dos tokens e possuir os tokens especificados. Para NFTs fracionários, se um usuário transferir todos os seus compartilhamentos para outro usuário, ele perderá a propriedade do token.
- Payload:
{ "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "tokenIds": "[\"{{bc-token-id}}\"]", "quantity": "[quantity value]", "endorsers": {{endorsers}} }
- Parâmetros:
fromOrgId: string
– O ID do provedor de serviços de associação (MSP) do remetente e do proprietário do token na organização atual.fromUserId: string
– O nome do usuário ou o ID do e-mail do remetente e do proprietário do token.toOrgId: string
– O ID do prestador de serviço de associação (MSP) do destinatário na organização atual.toUserId: string
– O nome do usuário ou o ID do e-mail do destinatário.tokenIds: string[]
– Um array dos IDs dos tokens a serem transferidos.quantity: number[]
– A lista de quantidades de tokens a serem transferidos, correspondente ao array do ID do token.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
[ { "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
- Nome do método original:
suspendAccount
- Este método POST suspende uma conta de token fungível. Ele gerará um erro se um valor
accountStatus
não for encontrado no razão. Esse método só pode ser chamado por umToken Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome do usuário ou o ID do e-mail do usuário.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "suspended" }
-
totalNetSupply
- Nome do método original:
totalNetSupply
- Este método GET retorna o número total de tokens cunhados menos o número de tokens queimados. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Consulta (Tokens Fungíveis):
/totalNetSupply?tokenDetail={"tokenId":"{{bc-token-id}}"}
- Consulta (Tokens Não Funcionáveis):
/totalNetSupply?tokenDetail={"tokenName":"tokenName value"}
- Parâmetros:
tokenDetail: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
- Exemplo de Valor de Retorno:
{ "totalNetSupply": 105 }
-
totalSupply
- Nome do método original:
totalSupply
- Este método GET retorna o número total de tokens cunhados. Esse método só pode ser chamado por um
Token Admin
do chaincode. - Consulta (Tokens Fungíveis):
/totalSupply?tokenDetail={"tokenId":"{{bc-token-id}}"}
- Consulta (Tokens Não Funcionáveis):
/totalSupply?tokenDetail={"tokenName":"tokenName value"}
- Parâmetros:
tokenDetail: TokenDetail
– Os detalhes que especificam o token. Para tokens fungíveis, use o seguinte formato:
Para tokens não fungíveis, use o seguinte formato:{"tokenId":"token1"}
{"tokenName":"artCollection"}
- Exemplo de Valor de Retorno:
{ "totalSupply": 110 }
-
updateArtCollectionToken
- Nome do método original:
updateArtCollectionToken
- Este método POST atualiza as propriedades do token. Somente o proprietário do token pode chamar esse método. Para NFTs, os metadados do token e o URI do token não podem ser atualizados após o token ser cunhado.
- Payload:
{ "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 }
- Parâmetros:
tokenAsset: <Token Class>
– O ativo de token a ser atualizado. Para obter mais informações sobre as propriedades do ativo de token, consulte o arquivo de especificação de entrada.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
updateLoyaltyToken
- Este método POST atualiza as propriedades do token. Somente o proprietário do token pode chamar esse método. Para NFTs, os metadados do token e o URI do token não podem ser atualizados após o token ser cunhado.
- Payload:
{ "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}", "sameOrgEndorser": true }
- Parâmetros:
tokenAsset: <Token Class>
– O ativo de token a ser atualizado. Para obter mais informações sobre as propriedades do ativo de token, consulte o arquivo de especificação de entrada.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de Valor de Retorno:
{ "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
- Nome do método original:
URI
- Este método GET retorna o URI de um token especificado. Somente o criador de token pode chamar esse método.
- Consulta
/URI?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Exemplo de Valor de Retorno:
{ "tokenUri": "example.com" }