- Edição de Ativos Digitais do Oracle Blockchain Platform
- Estruturas de Token Genérico
- Estrutura de token não fungível
- Pacote de API do Wrapper do Token Não Fungível
Pacote de API do Wrapper do Token Não Fungível
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.
O pacote de API wrapper usa o serviço API Gateway e o OCI Functions para implantar rotas de API projetadas especificamente para o aplicativo de marketplace colecionável. O pacote de API do wrapper de estrutura de token não fungível pode ser transferido por download na console do Oracle Blockchain Platform e inclui os componentes a seguir.
NFTCollectiblesWithERC721WrapperAPI.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.NFTCollectiblesWithERC721_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 pode ser chamado apenas por um administrador. Para qualquer conta criada antes da funcionalidade de status da conta, você deve chamar esse método para ver o status da conta como ativo.
- 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 de usuário ou o ID de 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 para a conta de token especificada.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "db0738d4a44f6d9c80b24fce7c518c07023f7be19edaa69b272eaf7886b4b925", "payload": { "assetType": "oaccountStatus", "status_id": "oaccountStatus~d5814d96d8517ac31727d60aace0519c58a425892ab0d378fcfb0a35771f65ae", "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "status": "active" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 194 } }
-
addTokenAdmin
- Nome do método original:
addTokenAdmin
- Este método POST adiciona um usuário como um
Token Admin
do chaincode. Este método pode ser chamado somente por umToken Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "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 de usuário ou o ID de 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.
- 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg":"Successfully added Admin (orgId: Org1MSP, userId: User1)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 190 } }
-
addRole
- Nome do método original:
addRole
- Esse método adiciona a atribuição ao usuário e token especificados.
- Payload:
{ "role": "role value (for example minter / burner)", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
role: string
– O nome da atribuição a ser adicionada ao usuário especificado.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome de usuário ou o ID de 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully added role 'minter' to Account Id: oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d (Org-Id: Org1MSP, User-Id: admin)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
addTokenSysRole
- Nome do método original:
addTokenSysRole
- Esse método adiciona
Org Admins
ao chaincode do token. - Payload:
{ "role": "role value (for example vault)", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
role: string
– O nome da atribuição a ser adicionada ao usuário especificado.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome de usuário ou o ID de 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "96a84dffcb9156f7271dfb414e8c43b540595044cf9145f5fd56e9873797fc4a", "payload": { "msg": "Successfully added Org Admin (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 197 } }
-
balanceOf
- Nome do método original:
balanceOf
- Este método GET retorna o número total de NFTs que um usuário especificado mantém. Esse método só pode ser chamado por um
Token Admin
do chaincode ou pelo proprietário da conta. - Consulta:
/balanceOf?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 de usuário ou o ID de e-mail do usuário.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "totalNfts": 0 }, "encode": "JSON" } }
-
buy
- Nome do método original:
buy
- Este método POST compra um token que está à venda.
- Payload:
{ "fromOrgId": "from_org_id value", "fromUserId": "from_user_id value", "toOrgId": "to_org_id value", "toUserId": "to_user_id value", "nonfungibleTokenId": "nonfungible_token_id value", "amountPaid": 1, "endorsers": {{endorsers}} }
- 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.nonfungibleTokenId: string
– O ID do token a ser comprado.amountPaid: 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Token ID: 'monalisa' has been successfully transferred to UserID :oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
createAccount
- Nome do método original:
createAccount
- Esse método cria uma conta para um usuário e token especificados. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. As contas rastreiam o número de NFTs que um usuário possui. Um ID de conta é um conjunto alfanumérico de caracteres, prefixado com
oaccount~
e seguido por um hash SHA-256 do ID do provedor de serviços de associação (orgId
) do usuário na organização de rede atual, o nome de usuário ou o ID de e-mail (userId
) do proprietário da instância ou do usuário que está conectado à instância e a string constantenft
. Este método pode ser chamado somente por umToken Admin
do chaincode. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenType": "nonfungible", "endorsers": {{endorsers}} }
- Parâmetros:
orgId
– O ID do provedor de serviços de associação (MSP) do usuário para o qual a conta será criada. O ID deve começar com um caractere alfanumérico e pode incluir letras, números e caracteres especiais, como sublinhados (_), pontos (.), sinais (@) e hifens (-).userId
– O nome do usuário ou o ID do e-mail do usuário. O ID deve começar com um caractere alfanumérico e pode incluir letras, números e caracteres especiais, como sublinhados (_), pontos (.), sinais (@) e hifens (-).tokenType: TokenType
– O tipo de token, que deve serfungible
.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "assetType": "oaccount", "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "bapAccountVersion": 0, "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 0 }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
createArtCollectionToken
- 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\",\"metadata\":{\"Painting_Name\":\"Painting_Name value\",\"Description\":\"Description value\",\"Painter_Name\":\"Painter_Name value\"},\"Price\":999,\"On_Sale_Flag\":true}", "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.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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "isBurned": false, "tokenUri": "\"https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg\"", "price": 100, "on_sale_flag": false }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
deleteAccount
- 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. Este método pode ser chamado somente 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 de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "assetType": "oaccountStatus", "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "deleted" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
getAccountByUser
- Nome do método original:
getAccountByUser
- Este método 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:
/getAccountByUser?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 de usuário ou o ID de e-mail do usuário.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "status": "active", "accountId": "oaccount~cc301bee057f14236a97d434909ec1084970921b008f6baab09c2a0f5f419a9a", "userId": "idcqa", "orgId": "appdev", "tokenType": "nonfungible", "noOfNfts": 0 }, "encode": "JSON" } }
-
getAccountHistory
- Nome do método original:
getAccountHistory
- Este método retorna o histórico da conta de um usuário especificado. Este é um método assíncrono. Esse método só pode ser chamado pelo
Token Admin
do chaincode ou pelo proprietário da conta. - Consulta:
/getAccountHistory?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 de usuário ou o ID de e-mail do usuário.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": [ { "trxId": "6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4", "timeStamp": 1649151044, "value": { "assetType": "oaccount", "bapAccountVersion" : 5, "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 1 } }, { "trxId": "a605f1fa62e511c2945fce5437f983a5e70ec814b82520d3ecd2d81e3ecf53a3", "timeStamp": 1649151022, "value": { "assetType": "oaccount", "bapAccountVersion" : 4, "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 2 } }, { "trxId": "ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7", "timeStamp": 1649150910, "value": { "assetType": "oaccount", "bapAccountVersion" : 3, "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 1 } }, { "trxId": "cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb", "timeStamp": 1649149545, "value": { "assetType": "oaccount", "bapAccountVersion" : 2, "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 0 } }, { "trxId": "e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c", "timeStamp": 1649147442, "value": { "assetType": "oaccount", "bapAccountVersion" : 1, "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 1 } }, { "trxId": "d2d1f9c898707ae831e9361bc25da6369eac37b10c87dc04d18d6f3808222f08", "timeStamp": 1649137534, "value": { "assetType": "oaccount", "bapAccountVersion" : 0, "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 0 } } ], "encode": "JSON" } }
-
getAccountsByRole
- Nome do método original:
getAccountsByRole
- Esse método retorna uma lista de todos os IDs de contas para uma função especificada. Este método pode ser chamado somente por um
Token Admin
do chaincode. - Consulta:
/getAccountsByRole?role=role value (for example minter / burner)
- Parâmetros:
role: string
– O nome da função a ser pesquisada.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "accounts": [ "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d" ] }, "encode": "JSON" } }
-
getAccountsByTokenSysRole
- Nome do método original:
getAccountsByTokenSysRole
- Esse método retorna uma lista de todos os IDs de conta para uma atribuição
TokenSys
especificada. Este método pode ser chamado somente por umToken Admin
do chaincode. - Consulta:
/getAccountsByTokenSysRole?role=role value (for example vault)
- Parâmetros:
role: string
– O nome da atribuiçãoTokenSys
a ser pesquisada.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "accountIds": [ "oaccount~bf07f584a94be44781e49d9101bfaf58c6fbbe77a4dfebdb83c874c2caf03eba" ] }, "encode": "JSON" } }
-
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 de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, uma representação JSON do status da conta de token.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "assetType": "oaccountStatus", "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "active" }, "encode": "JSON" } }
-
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 de usuário ou o ID de e-mail do usuário.
- Retorna:
- Com êxito, o histórico de status da conta no formato JSON.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63", "timeStamp": "2022-12-02T10:39:14.000Z", "value": { "assetType": "oaccountStatus", "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "suspended" } }, { "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183", "timeStamp": "2022-12-02T10:37:50.000Z", "value": { "assetType": "oaccountStatus", "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "active" } } ], "encode": "JSON" } }
-
getAccountTransactionHistory
- 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. /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 de usuário ou o ID de e-mail do usuário.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4", "timestamp": "2022-04-05T09:30:44.000Z", "tokenId": "monalisa1", "noOfNfts": 1, "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "BURN" }, { "transactionId": "otransaction~a605f1fa62e511c2945fce5437f983a5e70ec814b82520d3ecd2d81e3ecf53a3", "timestamp": "2022-04-05T09:30:22.000Z", "tokenId": "monalisa1", "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "MINT" }, { "transactionId": "otransaction~ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7", "timestamp": "2022-04-05T09:28:30.000Z", "tokenId": "monalisa", "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba", "transactionType": "CREDIT" }, { "transactionId": "otransaction~cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb", "timestamp": "2022-04-05T09:05:45.000Z", "tokenId": "monalisa", "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba", "transactionType": "DEBIT" }, { "transactionId": "otransaction~e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c", "timestamp": "2022-04-05T08:30:42.000Z", "tokenId": "monalisa", "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "MINT" } ], "encode": "JSON" } }
-
getAccountTransactionHistoryWithFilters
- Nome do método original:
getAccountTransactionHistoryWithFilters
- Esse método GET retorna o histórico de transações da conta de um usuário especificado, filtrado por
PageSize
,Bookmark
,startTime
eendTime
. Este é um método assíncrono. Esse método só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. Esse método só pode ser chamado peloToken Admin
do chaincode ou pelo proprietário da conta. /getAccountTransactionHistoryWithFilters?orgId={{bc-org-id}}&userId={{bc-user-id}}&filters={"pageSize":20,"bookmark":"","startTime":"2022-01-16T15:16:36+00:00","endTime":"2022-01-17T15:16:36+00:00"}
- 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 de usuário ou o ID de e-mail do usuário.filters: object
– Um objeto da classe Filtro que contém quatro atributos:pageSize
,bookmark
,startTime
eendTime
.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4", "timestamp": "2022-04-05T09:30:44.000Z", "tokenId": "monalisa1", "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "BURN" }, { "transactionId": "otransaction~a605f1fa62e511c2945fce5437f983a5e70ec814b82520d3ecd2d81e3ecf53a3", "timestamp": "2022-04-05T09:30:22.000Z", "tokenId": "monalisa1", "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "MINT" }, { "transactionId": "otransaction~ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7", "timestamp": "2022-04-05T09:28:30.000Z", "tokenId": "monalisa", "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba", "transactionType": "CREDIT" }, { "transactionId": "otransaction~cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb", "timestamp": "2022-04-05T09:05:45.000Z", "tokenId": "monalisa", "transactedAccount": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba", "transactionType": "DEBIT" }, { "transactionId": "otransaction~e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c", "timestamp": "2022-04-05T08:30:42.000Z", "tokenId": "monalisa", "transactedAccount": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "MINT" } ], "encode": "JSON" } }
-
getAllAccounts
- Nome do método original:
getAllAccounts
- Este método GET retorna detalhes de todas as contas de usuário. Este método pode ser chamado somente 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:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "valueJson": { "assetType": "oaccount", "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "userId": "admin", "orgId": "Org1MSP", "tokenType": "nonfungible", "noOfNfts": 1 } } ], "encode": "JSON" } }
-
getAllLockedNFTs
- Nome do método original:
getAllLockedNFTs
- Este método GET retorna uma lista de todos os NFTs bloqueados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou pelo Vault Manager (o usuário com a atribuiçãoTokenSys vault
). - Consulta:
/getAllLockedNFTs
- Parâmetros:
- nenhuma
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key":"token1", "valueJson":{ "assetType":"otoken", "tokenId":"token1", "tokenName":"artcollection", "symbol":"ART", "tokenStandard":"erc721+", "tokenType":"nonfungible", "tokenUnit":"whole", "behaviors":[ "indivisible", "singleton", "mintable", "transferable", "lockable", "burnable", "roles" ], "roles":{ "minter_role_name":"minter" }, "mintable":{ "max_mint_quantity":20000 }, "createdBy":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463", "creationDate":"2023-10-20T10:26:29.000Z", "owner":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463", "isBurned":false, "isLocked":true, "tokenUri":"token1.example.com", "price":120, "on_sale_flag":false } } ], "encode": "JSON" } }
-
getAllTokenAdmins
- Nome do método original:
getAllTokenAdmins
- Esse método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode. Este método pode ser chamado somente 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:
{ "returnCode": "Success", "error": "", "result": { "payload": { "admins":[ { "orgId":"Org1MSP", "userId":"admin" } ] }, "encode": "JSON" } }
-
getAllTokens
- Nome do método original:
getAllTokens
- Esse método retorna todos os ativos de token salvos no banco de dados de estado. Este método pode ser chamado somente 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:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "monalisa", "valueJson": { "metadata": { "PaintingName": "Mona_Lisa", "Description": "Mona Lisa Painting", "Image": "monalisa.jpeg", "PainterName": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "ravinft", "tokenDesc": "token Description", "symbol": "PNT", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "creationDate": "2022-04-07T21:17:48.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "NftBasePrice": 100 } }, { "key": "monalisa1", "valueJson": { "metadata": { "PaintingName": "Mona_Lisa", "Description": "Mona Lisa Painting", "Image": "monalisa.jpeg", "PainterName": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa1", "tokenName": "ravinft", "tokenDesc": "token Description", "symbol": "PNT", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "creationDate": "2022-04-07T21:17:59.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "NftBasePrice": 100 } } ], "encode": "JSON" } }
-
getAllTokensByUser
- 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:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "monalisa", "valueJson": { "metadata": { "PaintingName": "Mona_Lisa", "Description": "Mona Lisa Painting", "Image": "monalisa.jpeg", "PainterName": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "ravinft", "tokenDesc": "token Description", "symbol": "PNT", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "creationDate": "2022-04-07T21:17:48.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "NftBasePrice": 100 } }, { "key": "monalisa1", "valueJson": { "metadata": { "PaintingName": "Mona_Lisa", "Description": "Mona Lisa Painting", "Image": "monalisa.jpeg", "PainterName": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa1", "tokenName": "ravinft", "tokenDesc": "token Description", "symbol": "PNT", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "createdBy": "oaccount~543c2258e351c3e7a40ea59b81e62154d38fbfc9d1b5b79f30ac5e08e7d0dfd1", "creationDate": "2022-04-07T21:17:59.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "NftBasePrice": 100 } } ], "encode": "JSON" } }
-
getLockedNFTsByOrg
- Nome do método original:
getLockedNFTsByOrg
- Este método retorna uma lista de todos os tokens não fungíveis bloqueados para uma organização especificada e, opcionalmente, um usuário especificado. Esse método só pode ser chamado por um
Token Admin
do chaincode ou pelo gerenciador de vault (o usuário com a atribuiçãoTokenSys vault
). - Consulta:
/getLockedNFTsByOrg?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:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key":"token1", "valueJson":{ "assetType":"otoken", "tokenId":"token1", "tokenName":"artcollection", "symbol":"ART", "tokenStandard":"erc721+", "tokenType":"nonfungible", "tokenUnit":"whole", "behaviors":[ "indivisible", "singleton", "mintable", "transferable", "lockable", "burnable", "roles" ], "roles":{ "minter_role_name":"minter" }, "mintable":{ "max_mint_quantity":20000 }, "createdBy":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463", "creationDate":"2023-10-20T10:26:29.000Z", "owner":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463", "isBurned":false, "isLocked":true, "tokenUri":"token1.examplecom", "price":120, "on_sale_flag":false } } ], "encode": "JSON" } }
-
getTokenById
- Nome do método original:
getTokenById
- Esse método 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. - Consulta:
/getTokenById?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token a ser obtido.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transferredBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "transferredDate": "2022-04-05T09:28:30.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "price": 100, "on_sale_flag": true }, "encode": "JSON" } }
-
getTokenHistory
- Nome do método original:
getTokenHistory
- Este método retorna o histórico de um ID de token especificado. Este é um método assíncrono. Esse método só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. 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:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "trxId": "ca4c07bf04240345de918cbf1f4f3da4b4d0ab044c5b8bea94343e427d9ed4e7", "timeStamp": 1649150910, "value": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transferredBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "transferredDate": "2022-04-05T09:28:30.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "price": 100, "on_sale_flag": true } }, { "trxId": "cfb52ffc8c34c7fd86210fcf8c5f53d9f92a056c45ed3a33671d638020c1f9cb", "timeStamp": 1649149545, "value": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transferredBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "transferredDate": "2022-04-05T09:05:45.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "price": 100, "on_sale_flag": true } }, { "trxId": "702e61cc8d6d2982521023d0d5f3195900f35e146d6a90ef66daae551e6075d2", "timeStamp": 1649147729, "value": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "price": 100, "on_sale_flag": true } }, { "trxId": "e7747b3001a170f88688620956320e9402e1dd8edad8afb4818a08a34647337c", "timeStamp": 1649147442, "value": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "isBurned": false, "tokenUri": "\"https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\ .ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg\"", "price": 100, "on_sale_flag": false } } ] "encode": "JSON" } }
-
getTransactionById
- Nome do método original:
getTransactionById
- Este método retorna o histórico de transações de um ID de transação especificado. Este é um método assíncrono. Este método pode ser chamado somente por um
Token Admin
do chaincode. - 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:
{ "returnCode": "Success", "error": "", "result": { "payload": { "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4", "history": [ { "trxId": "6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4", "timeStamp": 1649151044, "value": { "assetType": "otransaction", "transactionId": "otransaction~6ffd0d94f234c12444a5d5aa559563b59dff4d2280b573fea956dc632bdaf5d4", "tokenId": "monalisa1", "fromAccountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "toAccountId": "", "triggeredByAccountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "transactionType": "BURN", "timestamp": "2022-04-05T09:30:44.000Z", } } ] }, "encode": "JSON" } }
-
getUserByAccountId
- Nome do método original:
getUserByAccountId
- Este método GET retorna os detalhes do usuário de uma conta especificada.
- Consulta:
/getUserByAccountId?accountId=accountId value
- Parâmetros:
accountId: string
– O ID da conta.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "userId": "admin", "orgId": "Org1MSP" }, "encode": "JSON" } }
-
getUsersByRole
- Nome do método original:
getUsersByRole
- Esse método retorna uma lista de todos os usuários de uma atribuição especificada.
/getUsersByRole?role=role value (for example minter / burner)
- Parâmetros:
role: string
– O nome da função a ser pesquisada.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "users": [ { "userId": "admin", "orgId": "Org1MSP" } ] }, "encode": "JSON" } }
-
init
- Nome do método original:
init
- Esse método é 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-admin-user}}\"}]" }
- 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.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "fdb7dc89832c8045a333823b77fa24ae628178148dc93b3550040e070d7cd807", "payload": "", "encode": "UTF-8", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 263 } }
-
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)
- 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 de usuário ou o ID de e-mail do usuário.role: string
– O nome da função a ser pesquisada.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "result":"true" }, "encode": "JSON" } }
-
isInTokenSysRole
- Nome do método original:
isInTokenSysRole
- Esse método GET retorna um valor Booliano para indicar se um usuário tem uma atribuição
TokenSys
especificada. Esse método só pode ser chamado por umToken Admin
do chaincode ou peloAccount Owner
da conta. - Consulta:
/isInTokenSysRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example vault)
- Parâmetros:
role: string
– O nome da atribuiçãoTokenSys
a ser pesquisada.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome de usuário ou o ID de e-mail do usuário.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "result": true, "msg": "Account Id oaccount~bf07f584a94be44781e49d9101bfaf58c6fbbe77a4dfebdb83c874c2caf03eba (Org-Id: Org1MSP, User-Id: user1) has vault role" }, "encode": "JSON" } }
-
isNFTLocked
- Nome do método original:
isNFTLocked
- Este método GET retorna um valor Booliano para indicar se um token especificado está bloqueado. Esse método só pode ser chamado por um
Token Admin
do chaincode, do proprietário do token ou do gerenciador de vault (o usuário com a atribuiçãoTokenSys vault
). - Consulta:
/isNFTLocked?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "isNFTLocked":true }, "encode": "JSON" } }
-
lockNFT
- Nome do método original:
lockNFT
- Este método POST bloqueia um token não fungível especificado. Para bloquear um token, deve haver um usuário com a atribuição
TokenSys vault
, que atua como o gerenciador de vault. - Payload:
{ "tokenId": "{{bc-token-id}}", "sameOrgEndorser": true }
- Parâmetros:
tokenId: string
– O ID do token a ser bloqueado.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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "assetType":"otoken", "tokenId":"token1", "tokenName":"artcollection", "symbol":"ART", "tokenStandard":"erc721+", "tokenType":"nonfungible", "tokenUnit":"whole", "behaviors":[ "indivisible", "singleton", "mintable", "transferable", "lockable", "burnable", "roles" ], "roles":{ "minter_role_name":"minter" }, "mintable":{ "max_mint_quantity":20000 }, "createdBy":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463", "creationDate":"2023-10-20T10:26:29.000Z", "owner":"oaccount~208e3345ac84b4849f0d2648b2f2f018019886a1230f99304ebff1b6a7733463", "isBurned":false, "isLocked":true, "tokenUri":"token1.example.com", "price":120, "on_sale_flag":false }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
name
- 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
- Parâmetros: Nenhum
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": {"tokenName": "artcollection"}, "encode": "JSON" } }
-
ownerOf
- Nome do método original:
ownerOf
- Este método GET retorna o ID da conta do proprietário 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 do ID da conta do proprietário.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "owner": "oaccount~d6d22c3167e3c6ab9ee5653e1a008c37c20cc47ebb0229ca0aedfafe64c675b8" }, "encode": "JSON" } }
-
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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Token ID: 'monalisa' has been posted for selling in the marketplace" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
removeRole
- Nome do método original:
removeRole
- Este método remove uma atribuição de um usuário especificado. Este método pode ser chamado somente por um
Token Admin
do chaincode. - Payload:
{ "role": "role value (for example minter / burner)", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
role: string
– O nome da atribuição a ser removida do usuário especificado. Os comportamentosmintable
eburnable
correspondem às propriedadesminter_role_name
eburner_role_name
do arquivo de especificação.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome de usuário ou o ID de 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully removed role 'minter' from Account Id: oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba (Org-Id: Org1MSP, User-Id: user1)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
removeTokenAdmin
- Nome do método original:
removeTokenAdmin
- Este método POST remove um usuário como um
Token Admin
do chaincode. Este método pode ser chamado somente 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully removed Admin (orgId: Org1MSP, userId: User1)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
removeTokenSysRole
- Nome do método original:
removeTokenSysRole
- Esse método remove uma atribuição
TokenSys
de um usuário e token especificados. Este método pode ser chamado somente por umToken Admin
do chaincode. - Payload:
{ "role": "role value (for example vault)", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
role: string
– O nome da atribuiçãoTokenSys
a ser removida do usuário especificado.orgId: string
– O ID do prestador de serviço de associação (MSP) do usuário na organização atual.userId: string
– O nome de usuário ou o ID de 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully removed role 'vault' from Account Id: oaccount~bf07f584a94be44781e49d9101bfaf58c6fbbe77a4dfebdb83c874c2caf03eba (Org-Id: Org1MSP, User-Id: user1)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
safeTransferFrom
- Nome do método original:
safeTransferFrom
- Esta é uma função assíncrona. Este método POST transfere a propriedade do NFT especificado do chamador para outra conta. Este método inclui as seguintes validações:
- O token existe e não é queimado.
- A conta do remetente e a conta do recebedor existem e não são a mesma conta.
- A conta do remetente possui o token.
- O chamador da função é o remetente.
- Payload:
{ "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "tokenId": "{{bc-token-id}}", "data": "data 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.tokenId: string
– O ID do token a ser transferido.data: string
– Informações adicionais opcionais a serem armazenadas no registro de transação.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully transferred NFT token: 'monalisa' from Account-Id: oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d (Org-Id: Org1MSP, User-Id: admin) to Account-Id: oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba (Org-Id: Org1MSP, User-Id: user1)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
suspendAccount
- Nome do método original:
suspendAccount
- Este método suspende uma conta de token fungível. Ele gerará um erro se um valor
accountStatus
não for encontrado no razão. Este método pode ser chamado somente 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 de usuário ou o ID de 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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "assetType": "oaccountStatus", "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "suspended" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
symbol
- Nome do método original:
symbol
- Esse método retorna o símbolo da classe do token. Qualquer um pode chamar esse método.
- Consulta:
/symbol
- Parâmetros:
- nenhuma
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "symbol": "PNT" }, "encode": "JSON" } }
-
tokenURI
- Nome do método original:
tokenURI
- Esse método retorna o URI de um token especificado. Qualquer um pode chamar esse método.
- Consulta:
/tokenURI?tokenId={{bc-token-id}}
- Parâmetros:
tokenId: string
– O ID do token.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "tokenURI": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\.ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg" }, "encode": "JSON" } }
-
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. Este método pode ser chamado somente por um
Token Admin
do chaincode. /totalNetSupply
- Parâmetros:
- nenhuma
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "totalNetSupply": 1 }, "encode": "JSON" } }
-
totalSupply
- Nome do método original:
totalSupply
- Este método GET retorna o número total de tokens cunhados. Este método pode ser chamado somente por um
Token Admin
do chaincode. - Consulta:
/totalSupply
- Parâmetros:
- nenhuma
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "payload": { "totalSupply": 3 }, "encode": "JSON" } }
-
transferFrom
- Nome do método original:
transferFrom
- Esta é uma função assíncrona. Este método transfere a propriedade do NFT especificado de uma conta de remetente para uma conta de destinatário. É responsabilidade do chamador passar os parâmetros corretos. Esse método pode ser chamado por qualquer usuário, não apenas pelo proprietário do token. Este método inclui as seguintes validações:
- O token existe e não é queimado.
- A conta do remetente e a conta do recebedor existem e não são a mesma conta.
- A conta do remetente possui o token.
- Payload:
{ "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "tokenId": "{{bc-token-id}}", "endorsers": {{endorsers}} }
- Parâmetros:
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.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.tokenId: string
– O ID do token a ser transferido.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully transferred NFT token: 'monalisa' from Account-Id: oaccount~ec32cff8635a056f3dda3da70b1d6090d61f66c6a170c4a95fd008181f729dba (Org-Id: Org1MSP, User-Id: user1) to Account-Id: oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d (Org-Id: Org1MSP, User-Id: admin)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
transferTokenSysRole
- Nome do método original:
transferTokenSysRole
- Esse método transfere uma atribuição
TokenSys
de um usuário para outro. - Payload:
{ "role": "role value (for example vault)", "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "endorsers": {{endorsers}} }
- Parâmetros:
role: string
– O nome da atribuiçãoTokenSys
a ser transferida.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.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.endorsers: string[]
– Um array dos pares (por exemplo,peer1
,peer2
) que deve endossar a transação.
- Exemplo de valor de retorno:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "Successfully transfered role 'vault' from Account Id: ouaccount~f4e311528f03fffa7810753d643f66289ff6c9080fcf839902f28a1d3aff1789 (Org-Id: Org1MSP, User-Id: user1) to Account Id: ouaccount~ae5be2ae8f98d6d32f5d02b43877d987114e7937c7bacbc30390dcce09996a19 (Org-Id: Org1MSP, User-Id: user2)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }
-
updateArtCollectionToken
- Nome do método original:
updateArtCollectionToken
- Este método atualiza as propriedades do token. Após a criação de um ativo de token, somente o proprietário do token poderá atualizar as propriedades personalizadas do token. Se o usuário for proprietário do token e criador de um token, ele também poderá atualizar a propriedade
TokenDesc
. Os metadados do token não podem ser atualizados. Você deve passar todas as propriedades de token para esse método, mesmo que queira atualizar apenas determinadas propriedades. - Payload:
{ "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"Price\":999,\"On_Sale_Flag\":true}", "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:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "metadata": { "painting_name": "Mona_Lisa", "description": "Mona Lisa Painting", "image": "monalisa.jpeg", "painter_name": "Leonardo_da_Vinci" }, "assetType": "otoken", "tokenId": "monalisa", "tokenName": "artcollection", "tokenDesc": "token description", "symbol": "ART", "tokenStandard": "erc721+", "tokenType": "nonfungible", "tokenUnit": "whole", "behaviors": [ "indivisible", "singleton", "mintable", "transferable", "burnable", "roles" ], "roles": { "minter_role_name": "minter" }, "mintable": { "max_mint_quantity": 20000 }, "owner": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "createdBy": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d", "creationDate": "2022-04-05T08:30:42.000Z", "isBurned": false, "tokenUri": "https://bafybeid6pmpp62bongoip5iy2skosvyxh3gr7r2e35x3ctvawjco6ddmsq\\.ipfs.infura-ipfs.io/?filename=MonaLisa.jpeg", "price": 100, "on_sale_flag": true }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } }