Modelo de Transações Confidenciais
A versão aprimorada do Blockchain App Builder inclui um atributo de modelo que gera métodos adicionais para o modo confidencial.
Se você incluir o parâmetro confidential: true no arquivo de especificação para tokens que usam o padrão Token Taxonomy Framework estendido, o Blockchain App Builder gerará chaincode para uso no modo confidencial, incluindo as seguintes versões modificadas do padrão geradas automaticamente e os métodos SDK (somente TypeScript).
Para obter mais informações sobre transações confidenciais e o cenário de moeda digital do banco central atacadista confidencial (CBDC), consulte Moeda Digital do Banco Central Atacadista com Transações Confidenciais.
A tabela a seguir resume os métodos que são gerados quando você efetua um projeto do Token Taxonomy Framework no modo confidencial.
| Categoria do Método | Método gerado automaticamente | Método SDK | Descrição |
|---|---|---|---|
| Gerenciamento de Controle de Acesso | isTokenAdmin |
isUserTokenAdmin |
Retorna verdadeiro se o chamador for um Administrador |
addTokenAdmin |
addTokenAdmin |
Adiciona um Administrador | |
removeTokenAdmin |
removeTokenAdmin |
Remove um Admin | |
|
getAllTokenAdmins |
Retorna todos os Administradores | |
addOrgAdmin |
addOrgAdmin |
Adiciona um Administrador da Organização | |
removeOrgAdmin |
removeOrgAdmin |
Remove um administrador da organização | |
|
getAllOrgAdmins |
Retorna todos os Administradores da Organização | |
addTokenAuditor |
addTokenAuditor |
Adiciona um Auditor | |
removeTokenAuditor |
removeTokenAuditor |
Remove um Auditor | |
|
getAllTokenAuditors |
Retorna todos os Auditores | |
addOrgAuditor |
addOrgAuditor |
Adiciona um Auditor da organização | |
removeOrgAuditor |
removeOrgAuditor |
Remove um Auditor da organização | |
|
getAllOrgAuditors |
Retorna todos os Auditores da Organização | |
| Gerenciamento de Token | |
getAllTokens |
Retorna todos os ativos de token |
|
getDecimals |
Retorna o número de casas decimais para um token especificado | |
|
history |
Retorna o histórico de um token | |
|
getTokensByName |
Retorna todos os ativos de token para um nome de token especificado | |
| Gerenciamento de Contas | createAccount |
createAccount |
Cria uma conta de usuário |
associateTokenToAccount |
associateToken |
Associa uma conta a um token | |
getAllAccounts |
getAllAccounts |
Retorna detalhes de todas as contas de usuário | |
getAllOrgAccounts |
getAllOrgAccounts |
Retorna detalhes de todas as contas de usuário em uma organização | |
getAccountsByUser |
getAccountsByUser |
Retorna todos os IDs de conta de um usuário | |
getUserByAccountId |
getUserByAccountId |
Retorna detalhes do usuário para um ID de conta | |
getAccount |
getAccountWithStatus |
Retorna detalhes de uma conta de token | |
getAccountDetailsByCustomAccountId |
getAccountDetailsByCustomAccountId |
Retorna detalhes da conta para um ID de conta personalizado | |
getAccountBalance |
getAccountBalance |
Retorna o saldo atual de uma conta | |
getAccountStatus |
getAccountStatus |
Retorna o status de uma conta | |
getAccountStatusHistory |
history |
Retorna o histórico de uma conta de token | |
activateAccount |
activateAccount |
Ativa uma conta de token | |
suspendAccount |
suspendAccount |
Suspende uma conta de token | |
deleteAccount |
deleteAccount |
Exclui uma conta de token | |
setMaxDailyAmount |
setMaxDailyAmount |
Define a quantidade máxima de tokens que um usuário pode transferir diariamente | |
setMaxDailyTransactionCount |
setMaxDailyTransactionCount |
Define o número máximo de transações que um usuário pode concluir diariamente | |
getMaxDailyAmount |
getMaxDailyAmount |
Retorna a quantidade máxima de tokens que um usuário pode transferir diariamente | |
getMaxDailyTransactionCount |
getMaxDailyTransactionCount |
Retorna o número máximo de transações que um usuário pode concluir diariamente | |
getAccountOnHoldBalance |
getAccountOnHoldBalance |
Retorna o saldo atual em retenção de uma conta | |
| Gerenciamento de Atribuições | addRole |
addRoleMember |
Adiciona uma atribuição a um usuário |
removeRole |
removeRoleMember |
Remove uma atribuição de um usuário | |
getAccountsByRole |
getAccountsByRole |
Retorna IDs de conta para uma função especificada | |
getOrgAccountsByRole |
getOrgAccountsByRole |
Retorna IDs de conta para uma função especificada em uma organização | |
getUsersByRole |
getUsersByRole |
Retorna uma lista de usuários para uma atribuição especificada | |
getOrgUsersByRole |
getOrgUsersByRole |
Retorna uma lista de usuários para uma função especificada em uma organização | |
isInRole |
isInRole |
Retorna se um usuário tem uma função especificada | |
| Gerenciador de Transação | getAccountTransactionHistory |
getAccountTransactionHistory |
Retorna o histórico de transações de uma conta |
getAccountTransactionHistoryWithFilters |
getAccountTransactionHistoryWithFilters |
Retorna o histórico de transações filtradas de uma conta | |
getAccountTransactionHistoryWithFiltersFromRichHistDB |
getAccountTrxHistoryWithFiltersFromRichHistDB |
Retorna o histórico de transações filtradas do banco de dados de histórico avançado de uma conta | |
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB |
getOrgAccountsTrxHistoryWithFiltersFromRichHistDB |
Retorna o histórico de transações filtradas do banco de dados de histórico avançado de uma organização | |
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB |
getAllAccountsTrxHistoryWithFiltersFromRichHistDB |
Retorna o histórico de transações filtradas do banco de dados de histórico avançado para todas as contas | |
consolidateRunningBalanceInTransactions |
consolidateRunningBalanceInTransactions |
Atualiza saldos de conta em execução para transações pendentes | |
processSendersAndReceivers |
processSendersAndReceivers |
Atualiza saldos de conta durante transferências interorganizações | |
deleteHistoricalTransactions |
deleteTransactions |
Exclui transações mais antigas | |
getTransactionById |
getTransactionById |
Retorna o histórico de um ativo de transação | |
| Comportamento Mintable | requestMint |
|
Solicitações de emissão de tokens |
approveMint |
|
Aprova uma solicitação de moeda | |
rejectMint |
|
Rejeita uma solicitação de moeda | |
issueTokens |
issueTokens |
Tokens de hortelã | |
getTotalMintedTokens |
getTotalMintedTokens |
Retorna o número total de tokens cunhados | |
getNetTokens |
getNetTokens |
Retorna a quantidade líquida de tokens disponíveis | |
| Comportamento Transferível | transferTokens |
transferTokens |
Tokens de transferências |
| Comportamento de Retenção | holdTokens |
hold |
Coloca um saldo de token em espera |
executeHoldTokens |
executeHold |
Conclui uma retenção de token | |
releaseHoldTokens |
releaseHold |
Libera uma retenção de token | |
getOnHoldIds |
getOnHoldIds |
Retorna todos os IDs de retenção de uma conta | |
getOnHoldDetailsWithOperationId |
getOnHoldDetailsWithOperationId |
Retorna os detalhes da transação em retenção para um ID da operação | |
getOnHoldBalanceWithOperationId |
getOnHoldBalanceWithOperationId |
Retorna o saldo em retenção de um ID de operação | |
| Comportamento Queimável | requestBurn |
|
Solicita que tokens sejam destruídos |
approveBurn |
|
Aprova uma solicitação de gravação | |
rejectBurn |
|
Rejeita uma solicitação de gravação | |
| Transferências Interorganizações | executeHoldTokensSender |
executeHoldTokensSender |
Deduz tokens da conta de um remetente |
executeHoldTokensReceiver |
executeHoldTokensReceiver |
Credita tokens à conta de um destinatário |
Métodos Modificados TypeScript para Código de Cadeia Confidencial
Se você incluir o parâmetro confidential: true no arquivo de especificação para tokens que usam o padrão Token Taxonomy Framework estendido, o Blockchain App Builder gerará versões modificadas dos métodos gerados automaticamente, bem como métodos adicionais.
-
isTokenAdmin - Este método retornará o valor Booliano
truese o chamador da função for umToken Admin, caso contrário, retornaráfalse. UmToken Admin,Token Auditor, qualquerOrg Adminou qualquerOrg Auditorpode chamar essa função em qualquer outro usuário na rede blockchain. Outros usuários só podem chamar esse método em suas próprias contas. -
addTokenAdmin - Este método adiciona um usuário como um
Token Admindo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeTokenAdmin - Este método remove um usuário como um
Token Admindo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
addOrgAdmin - Esse método adiciona um usuário como um
Org Adminda organização. Esse método só pode ser chamado por umToken Admindo chaincode ou umOrg Adminda organização especificada. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeOrgAdmin - Este método remove um usuário como um
Org Adminda organização. Esse método só pode ser chamado por umaToken Admindo chaincode ou por umaOrg Adminda organização especificada. -
addTokenAuditor - Este método adiciona um usuário como um
Token Auditordo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeTokenAuditor - Este método remove um usuário como um
Token Auditordo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
addOrgAuditor - Este método adiciona um usuário como um
Org Auditordo chaincode. Esse método só pode ser chamado por umaToken AdminouOrg Admindo chaincode. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeOrgAuditor - Este método remove um usuário como um
Org Auditordo chaincode. Esse método só pode ser chamado por umaToken AdminouOrg Admindo chaincode. -
createAccount - Este método cria uma conta para um usuário e token especificados. É necessário criar uma conta para qualquer usuário que tenha tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é formado pela concatenação do tipo de ativo e do ID do token e, em seguida, pela criação de um hash SHA-256 sobre uma concatenação do ID da organização e do ID do usuário. Esse método só pode ser chamado por uma
Token Adminou por umaOrg Adminda organização especificada. -
associateTokenToAccount - Este método associa um token fungível a uma conta. Esse método só pode ser chamado por um
Token Admindo código de cadeia ou por umOrg Adminda organização relevante. -
getAllAccounts - Esse método retorna uma lista de todas as contas. Esse método só pode ser chamado por uma
Token AdminouToken Auditor. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. -
getAllOrgAccounts - Este método retorna uma lista de todas as contas de token que pertencem a uma organização especificada. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda organização especificada. -
getAccountsByUser - Este método retorna uma lista de todos os IDs de conta para um ID organização e ID usuário especificados. Esse método só pode ser chamado pelo
Token AdminouToken Auditor, peloOrg AdminouOrg Auditorda organização especificada ou peloAccount Ownerespecificado nos parâmetros. -
getUserByAccountId - Este método retorna detalhes do usuário (
org_ideuser_id) para uma conta especificada. Esse método pode ser chamado por umaToken AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda organização especificada. -
getAccount - Este método retorna detalhes de uma conta especificada. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, umaOrg AdminouOrg Auditorda organização especificada ou aAccountOwnerda conta. -
getAccountDetailsByCustomAccountId - Este método retorna detalhes para um ID de conta personalizado especificado. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda organização especificada. -
getAccountBalance - Este método retorna o saldo atual de uma conta especificada. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, umaOrg AdminouOrg Auditorda organização especificada ou aAccountOwnerda conta. -
getAccountStatus - Este método obtém o status atual da conta de token. Esse método pode ser chamado pelo
Token Admindo chaincode, peloOrg Adminda organização especificada ou pelo proprietário da conta de token. -
getAccountStatusHistory - Este método obtém o histórico do status da conta. Esse método pode ser chamado pelo
Token Admindo chaincode, peloOrg Adminda organização especificada ou pelo proprietário da conta de token. -
activateAccount - Este método ativa uma conta de token. Esse método só pode ser chamado por um
Token Admindo chaincode ou umOrg Adminda organização especificada. Não é possível ativar contas excluídas. -
suspendAccount - Este método suspende uma conta de token. Esse método só pode ser chamado por um
Token Admindo chaincode ou umOrg Adminda organização especificada. Após a suspensão de uma conta, não será possível concluir nenhuma operação que atualize a conta. Não é possível suspender uma conta excluída. -
deleteAccount - Este método exclui uma conta de token. Esse método só pode ser chamado por um
Token Admindo chaincode ou umOrg Adminda organização especificada. Depois que uma conta for excluída, você não poderá concluir nenhuma operação que atualize a conta. A conta excluída está em um estado final e não pode ser alterada para nenhum outro estado. Para excluir uma conta, o saldo da conta e o saldo em retenção devem ser zero. -
setMaxDailyAmount - Este método define o valor
max_daily_amountpara uma conta especificada. Esse método só pode ser chamado por umToken Admindo chaincode ou umOrg Adminda organização especificada. -
setMaxDailyTransactionCount - Este método define o valor
max_daily_transactionspara uma conta especificada. Esse método só pode ser chamado por umToken Admindo chaincode ou umOrg Adminda organização especificada. -
getMaxDailyAmount - Esse método obtém o valor
max_daily_amountpara uma conta especificada. Esse método só pode ser chamado por umToken AdminouToken Auditordo chaincode ou por umOrg AdminouOrg Auditorda organização especificada. -
getMaxDailyTransactionCount - Esse método obtém o valor
max_daily_transactionspara uma conta especificada. Esse método só pode ser chamado por umToken AdminouToken Auditordo chaincode ou por umOrg AdminouOrg Auditorda organização especificada. -
getAccountOnHoldBalance - Este método retorna o saldo atual em retenção para uma conta especificada. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, umaOrg AdminouOrg Auditorda organização especificada ou aAccountOwnerda conta. -
addRole - Este método adiciona uma atribuição a um usuário e token especificados. Esse método só pode ser chamado por um
Token Admindo chaincode ou por umOrg Adminda organização especificada que também possui a função especificada. -
removeRole - Este método remove uma atribuição de um usuário e token especificados. Esse método só pode ser chamado por um
Token Admindo chaincode ou por umOrg Adminda organização especificada que também possui a função especificada. -
getAccountsByRole - Este método retorna uma lista de todos os IDs de conta para uma função e token especificados. Esse método só pode ser chamado por uma
Token AdminouToken Auditor. -
getOrgAccountsByRole - Este método retorna uma lista de todos os IDs de conta para uma função, token e organização especificados. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda organização especificada. -
getUsersByRole - Este método retorna uma lista de todos os usuários para uma atribuição e um token especificados. Esse método só pode ser chamado por uma
Token AdminouToken Auditor. -
getOrgUsersByRole - Este método retorna uma lista de todos os usuários para uma função, token e organização especificados. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda organização especificada. -
isInRole - Este método retorna um valor booliano para indicar se um usuário tem uma função especificada. Esse método só pode ser chamado por uma
Token AdminouToken Auditor, aAccountOwnerda conta ou umaOrg AdminouOrg Auditorda organização especificada. -
getAccountTransactionHistory - Este método retorna uma matriz de detalhes do histórico de transações da conta para uma conta especificada. Esse método só pode ser chamado pelo
Token AdminouToken Auditor, umOrg AdminouOrg Auditorda organização especificada ou peloAccountOwnerda conta. -
getAccountTransactionHistoryWithFilters - Este método retorna um array filtrado de detalhes do histórico de transações da conta para um usuário e token especificados. Esse método só pode ser chamado pelo
Token AdminouToken Auditor, umOrg AdminouOrg Auditorda organização especificada ou peloAccountOwnerda conta. Esse método só pode ser chamado quando conectado a uma rede remota do Oracle Blockchain Platform. -
getAccountTransactionHistoryWithFiltersFromRichHistDB - Este método extrai o histórico de transações do banco de dados de histórico avançado. Esse método só pode ser chamado pelo
Token AdminouToken Auditor, umOrg AdminouOrg Auditorda organização especificada ou peloAccountOwnerda conta. -
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB - Este método extrai o histórico de transações do banco de dados de histórico avançado para a organização especificada. Esse método só pode ser chamado pelo
Token AdminouToken Auditor, umOrg AdminouOrg Auditorda organização especificada ou peloAccountOwnerda conta. -
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB - Este método extrai o histórico de transações do banco de dados de histórico avançado para todas as organizações. Esse método só pode ser chamado pelo
Token Adminou peloToken Auditor. -
deleteHistoricalTransactions - Este método exclui transações mais antigas do banco de dados de estado. Esse método só pode ser chamado por um
Token Admin. -
getTransactionById - Este método retorna o histórico de um ativo
Transaction. Este método só pode ser chamado por umToken AdminouToken Auditor, por umOrg AdminouOrg Auditorda organização especificada ou por um participante da transação (remetente, destinatário ou notário). -
consolidateRunningBalanceInTransactions - Este método calcula os saldos de conta em execução e salva os valores atualizados nos pares de chave/valor da transação. Geralmente, os administradores do sistema chamam esse método usando um agendador de proxy REST. Esse método só pode ser chamado por uma
Token AdminouOrg Admin. -
processSendersAndReceivers - Este método calcula e atualiza os saldos da conta de token que são distribuídos nos pares de chave/valor do remetente e do destinatário que foram criados durante transferências interorganizações e, em seguida, exclui os pares de chave/valor do remetente e do destinatário, que não são mais usados. Geralmente, os administradores do sistema chamam esse método usando um agendador de proxy REST. Esse método só pode ser chamado por uma
Token AdminouOrg Admin. -
requestMint - Este método pode ser chamado por um mineiro para enviar uma solicitação ao notário do mineiro para criar uma quantidade especificada de tokens.
-
approveMint - Este método pode ser chamado por um notário mineiro para aprovar uma solicitação de cunhagem.
-
rejectMint - Este método pode ser chamado por um notário mineiro para rejeitar uma solicitação de cunhagem.
-
issueTokens - Este método cunha tokens, que são então de propriedade do chamador do método.
-
getTotalMintedTokens - Este método retorna o número total de tokens cunhados para um token especificado. Esse método só pode ser chamado por uma
Token Admin,Token Auditor,Org AdminouOrg Auditor. -
getNetTokens - Este método retorna o número líquido total de tokens disponíveis no sistema para um token especificado. O total de tokens líquidos é a quantidade de tokens restantes após os tokens serem gravados. Em forma de equação: tokens líquidos = total de tokens cunhados - total de tokens gravados. Se nenhum token for gravado, o número de tokens líquidos será igual ao total de tokens cunhados. Esse método só pode ser chamado por uma
Token Admin,Token Auditor,Org AdminouOrg Auditor. -
transferTokens - Este método transfere tokens do chamador para uma conta especificada.
-
holdTokens - Esse método cria uma retenção em nome do chamador (o proprietário dos tokens) com a conta
to_account_id. A conta do notário especificada é responsável por concluir ou liberar a retenção. Quando a retenção é criada, o saldo de token especificado do pagador é colocado em retenção. Um saldo retido não pode ser transferido até que a retenção seja concluída ou liberada. -
executeHoldTokens - Este método conclui uma retenção em um token. Uma quantidade de tokens mantidos anteriormente por um proprietário de token é transferida para um destinatário. Se o valor
quantityfor menor que o valor de retenção real, o valor restante será disponibilizado novamente para o proprietário original dos tokens. Esse método só pode ser chamado pelo IDAccountOwnercom a atribuiçãonotarypara o ID da operação especificado. A retenção só pode ser concluída pelo notário. -
releaseHoldTokens - Este método libera uma retenção de tokens. A transferência não foi concluída e todos os tokens retidos estão disponíveis novamente para o proprietário original. Esse método pode ser chamado pelo ID
AccountOwnercom a funçãonotarydentro do limite de tempo especificado ou pelo pagador, favorecido ou notário após o limite de tempo especificado. -
getOnHoldIds - Este método retorna uma lista de todos os IDs de retenção de uma conta especificada. Esse método pode ser chamado por um
Token AdminouToken Auditordo chaincode, umOrg AdminouOrg Auditorda organização especificada ou oAccountOwnerda conta. -
getOnHoldDetailsWithOperationId - Este método retorna os detalhes da transação em retenção para um ID e token de operação especificados. Este método pode ser chamado por um
Token AdminouToken Auditordo chaincode, ou por um participante da transação (remetente, destinatário, notário). -
getOnHoldBalanceWithOperationId - Este método retorna o saldo em retenção para um ID e token de operação especificados. Este método pode ser chamado por um
Token AdminouToken Auditordo chaincode, ou por um participante da transação (remetente, destinatário, notário). -
requestBurn - Este método pode ser chamado por um queimador para enviar uma solicitação ao notário do queimador para destruir uma quantidade especificada de tokens.
-
approveBurn - Este método pode ser chamado por um notário do queimador para aprovar uma solicitação de gravação.
-
rejectBurn - Este método pode ser chamado por um notário de queimador para rejeitar um pedido de queima.
TypeScript Métodos para Transferências Interorganizacionais
As transferências interorganizações têm duas partes: primeiro o valor é debitado do remetente e, em seguida, o valor é creditado ao recebedor. As duas APIs a seguir são chamadas juntas como uma transação atômica usando a API de commit de duas fases do proxy REST do Oracle Blockchain Platform. As transferências confidenciais são feitas desta forma porque as coleções de dados privados das duas organizações são distintas e não podem ser acessadas em uma única transação.
Ambas as transações são enviadas usando a API de commit de duas fases do proxy REST. Para obter mais informações, consulte Chamar Transação Atômica.
https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/atomicTransactions. Você deve enviar todos os cabeçalhos essenciais, incluindo os seguintes.- Content-Type: application/json
- Confidential-Transaction: trueNo corpo da solicitação, inclua os métodos executeHoldTokensSendere executeHoldTokensReceiver, conforme mostrado na solicitação a seguir.{
"transactions": [
{
"chaincode": "<chaincode>",
"args": [
"executeHoldTokensSender"
],
"timeout": 6000,
"sync": true,
"transientMap": {
"args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
},
"endorsers" : <Sender's endorsers List>,
"channel":"<channel name>"
},
{
"chaincode": "<chaincode name>",
"args": [
"executeHoldTokensReceiver"
],
"timeout": 6000,
"sync": true,
"transientMap": {
"args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
},
"endorsers" : <Recipient endorsers List>,
"channel":"<channelName>"
}
],
"isolationLevel": "readCommitted",
"prepareTimeout": 10000,
"copyInputsToTransientMap": true,
"sync": true,
"parallelPrepare": true
}{
"transactions": [
{
"chaincode": "WholesaleCBDCConfidential",
"args": [
"executeHoldTokensSender"
],
"timeout": 6000,
"sync": true,
"transientMap": {
"args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
},
"endorsers" : ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009"],
"channel":"default"
},
{
"chaincode": "WholesaleCBDCConfidential",
"args": [
"executeHoldTokensReceiver"
],
"timeout": 6000,
"sync": true,
"transientMap": {
"args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
},
"endorsers" : ["org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"],
"channel":"default"
}
],
"isolationLevel": "readCommitted",
"prepareTimeout": 10000,
"copyInputsToTransientMap": true,
"sync": true,
"parallelPrepare": true
}-
executeHoldTokensSender - Esse método só pode ser chamado pelo usuário com a função de notário para o ID da operação especificado. Esse método é a primeira parte de uma aprovação de uma transferência entre organizações. O valor especificado é deduzido da conta do remetente.
-
executeHoldTokensReceiver - Esse método só pode ser chamado pelo usuário com a função de notário para o ID da operação especificado. Esse método é a segunda parte de uma aprovação de uma transferência entre organizações. O valor especificado é creditado na conta do recebedor.
Métodos SDK TypeScript Modificados para Código de Cadeia Confidencial
Se você incluir o parâmetro confidential: true no arquivo de especificação para tokens que usam o padrão Token Taxonomy Framework estendido, o Blockchain App Builder gerará versões modificadas dos métodos SDK padrão, bem como métodos adicionais.
-
isUserTokenAdmin - Este método retornará o valor Booliano
truese o chamador da função for umToken Admin. Caso contrário, o método retornaráfalse. -
addTokenAdmin - Esse método adiciona um usuário como
Token Admindo código de cadeia do token. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeTokenAdmin - Esse método remove um usuário como um
Token Admindo chaincode do token. -
getAllTokenAdmins - Este método retorna uma lista de todos os usuários que são um
Token Admindo chaincode. -
addOrgAdmin - Esse método adiciona um usuário como um
Org Adminda organização. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeOrgAdmin - Este método remove um usuário como um
Org Adminda organização. -
getAllOrgAdmins - Esse método retorna uma lista de todos os usuários que são um
Org Adminde uma organização. -
addTokenAuditor - Este método adiciona um usuário como um
Token Auditordo chaincode. Como o valoruser_idé armazenado no razão público, não use nenhuma informação de identificação pessoal (PII) para o valoruser_id. -
removeTokenAuditor - Este método remove um usuário como um
Token Auditordo chaincode. -
getAllTokenAuditors - Este método retorna todos os
Token Auditorsdo chaincode. -
addOrgAuditor - Este método adiciona um usuário como um
Org Auditordo chaincode. -
removeOrgAuditor - Este método remove um usuário como um
Org Auditordo chaincode. -
getAllOrgAuditors - Este método retorna todos os
Org Auditorsdo chaincode. -
getAllTokens - Este método retorna todos os ativos de token salvos no banco de dados de estado. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
getDecimals - Este método retorna o número de casas decimais disponíveis para um token fracionário. Se o comportamento
divisiblenão estiver especificado, o valor padrão será 0. -
history - Este método retorna o histórico do token especificado.
-
getTokensByName - Este método retorna todos os ativos de token com o nome especificado. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
createAccount - Este método cria uma conta para um usuário e token especificados. Todo usuário que tem tokens em qualquer ponto deve ter uma conta.
-
associateToken - Este método associa um token fungível a uma conta.
-
getAllAccounts - Esse método retorna uma lista de todas as contas. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
getAllOrgAccounts - Este método retorna uma lista de todas as contas de token que pertencem a uma organização especificada.
-
getAccountsByUser - Este método retorna uma lista de todos os IDs de conta de um usuário e organização especificados.
-
getUserByAccountId - Este método retorna os detalhes do usuário de uma conta especificada.
-
getAccountWithStatus - Este método retorna detalhes da conta para um usuário e token especificados.
-
getAccountDetailsByCustomAccountId - Este método retorna todos os detalhes da conta de token para uma organização e um ID de conta especificados.
-
getAccountBalance - Este método retorna o saldo da conta para uma conta especificada.
-
getAccountStatus - Este método obtém o status atual da conta de token.
-
history (Account Status) - Este método obtém o histórico do status da conta.
-
activateAccount - Este método ativa uma conta de token. Não é possível ativar contas excluídas.
-
suspendAccount - Este método suspende uma conta de token. Após a suspensão de uma conta, não será possível concluir nenhuma operação que atualize a conta. Não é possível suspender uma conta excluída.
-
deleteAccount - Este método exclui uma conta de token. Depois que uma conta for excluída, você não poderá concluir nenhuma operação que atualize a conta. A conta excluída está em um estado final e não pode ser alterada para nenhum outro estado. Para excluir uma conta, o saldo da conta e o saldo em retenção devem ser zero.
-
setMaxDailyAmount - Este método define o valor
max_daily_amountpara uma conta especificada. -
setMaxDailyTransactionCount - Este método define o valor
max_daily_transactionspara uma conta especificada. -
getMaxDailyAmount - Esse método obtém o valor
max_daily_amount(o valor máximo que pode ser transferido diariamente) para uma conta especificada. -
getMaxDailyTransactionCount - Esse método obtém o valor
max_daily_transactions(o número máximo de transações permitidas por dia) para uma conta especificada. -
getAccountOnHoldBalance - Este método retorna o saldo em retenção de uma conta especificada.
-
addRoleMember - Esse método adiciona uma atribuição a uma conta especificada.
-
removeRoleMember - Este método remove uma atribuição de uma conta especificada.
-
getAccountsByRole - Este método retorna uma lista de todas as contas para uma atribuição e um token especificados.
-
getOrgAccountsByRole - Este método retorna informações sobre todas as contas que têm uma função especificada em uma organização especificada.
-
getUsersByRole - Este método retorna uma lista de todos os usuários para uma atribuição e um token especificados.
-
getOrgUsersByRole - Este método retorna informações sobre todos os usuários que têm uma função especificada em uma organização especificada.
-
isInRole - Este método indica se um usuário tem uma função especificada.
-
getAccountTransactionHistory - Este método retorna uma matriz dos detalhes do histórico de transações de uma conta especificada.
-
getAccountTransactionHistoryWithFilters - Este método retorna uma matriz dos detalhes do histórico de transações de uma conta especificada. Esse método só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
getAccountTrxHistoryWithFiltersFromRichHistDB - Este método retorna um array dos detalhes do histórico de transações do banco de dados do histórico avançado.
-
getOrgAccountsTrxHistoryWithFiltersFromRichHistDB - Este método retorna um array dos detalhes do histórico de transações de uma organização especificada no banco de dados do histórico avançado.
-
getAllAccountsTrxHistoryWithFiltersFromRichHistDB - Este método retorna um array dos detalhes do histórico de transações para todas as organizações do banco de dados do histórico avançado.
-
consolidateRunningBalanceInTransactions - Este método calcula os saldos de conta em execução e salva os valores atualizados nos pares de chave/valor da transação. Geralmente, os administradores do sistema chamam esse método usando um agendador de proxy REST.
-
processSendersAndReceivers - Este método calcula e atualiza os saldos da conta de token que são distribuídos nos pares de chave/valor do remetente e do destinatário que foram criados durante transferências interorganizações e, em seguida, exclui os pares de chave/valor do remetente e do destinatário, que não são mais usados. Geralmente, os administradores do sistema chamam esse método usando um agendador de proxy REST.
-
deleteTransactions - Este método exclui transações mais antigas do banco de dados de estado.
-
getTransactionById - Este método retorna o histórico de um ativo
Transaction. -
issueTokens - Os mineiros podem chamar esse método para criar uma quantidade especificada de tokens.
-
getTotalMintedTokens - Este método retorna o número total de tokens cunhados.
-
getNetTokens - Este método retorna a quantidade líquida de tokens que estão disponíveis no sistema. Os tokens líquidos são a quantidade de tokens restantes após os tokens serem gravados. Em forma de equação: tokens líquidos = total de tokens cunhados - total de tokens gravados. Se nenhum token for gravado, o número de tokens líquidos será igual ao total de tokens cunhados.
-
transferTokens - Este método transfere tokens do chamador para uma conta especificada. O chamador do método deve ter uma conta. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetro
decimaldo comportamentodivisibleno arquivo de especificação. -
hold - Este método é usado pelo mineiro para enviar uma solicitação ao notário do mineiro para criar uma quantidade especificada de tokens. A conta do notário especificada é responsável por concluir ou liberar a retenção.
-
executeHold - Os notários podem chamar esse método para aprovar uma operação de retenção, que pode ser um dos três tipos: hortelã, queimadura ou transferência.
-
releaseHold - Os notários podem chamar esse método para rejeitar uma operação de retenção, que pode ser um dos três tipos: hortelã, queimadura ou transferência.
-
getOnHoldIds - Este método retorna uma lista de todos os IDs de retenção de uma conta especificada.
-
getOnHoldDetailsWithOperationId - Este método retorna os detalhes da transação em retenção para um ID e token de operação especificados.
-
getOnHoldBalanceWithOperationId - Este método retorna o saldo em retenção para um ID e token de operação especificados. Este método pode ser chamado por qualquer pessoa.
TypeScript Métodos do SDK para Transferências Interorganizacionais
As transferências interorganizações têm duas partes: primeiro o valor é debitado do remetente e, em seguida, o valor é creditado ao recebedor. As duas APIs a seguir são chamadas juntas como uma transação atômica usando a API de commit de duas fases do proxy REST do Oracle Blockchain Platform. As transferências confidenciais são feitas desta forma porque as coleções de dados privados das duas organizações são distintas e não podem ser acessadas em uma única transação.
-
executeHoldTokensSender - Esse método só pode ser chamado pelo usuário com a função de notário para o ID da operação especificado. Esse método é a primeira parte de uma aprovação de uma transferência entre organizações. O valor especificado é deduzido da conta do remetente.
-
executeHoldTokensReceiver - Esse método só pode ser chamado pelo usuário com a função de notário para o ID da operação especificado. Esse método é a segunda parte de uma aprovação de uma transferência entre organizações. O valor especificado é creditado na conta do recebedor.