Modelo de transacciones confidenciales
La versión mejorada de Blockchain App Builder incluye un atributo de modelo que genera métodos adicionales para el modo confidencial.
Si incluye el parámetro confidential: true en el archivo de especificación para tokens que utilizan el estándar extendido Token Taxonomy Framework, Blockchain App Builder genera un código de cadena para su uso en modo confidencial, incluidas las siguientes versiones modificadas del estándar generado automáticamente y los métodos SDK (solo TypeScript).
Para obtener más información sobre las transacciones confidenciales y el escenario confidencial de la moneda digital del banco central mayorista (CBDC), consulte Moneda digital del banco central mayorista con transacciones confidenciales.
En la siguiente tabla se resumen los métodos que se generan al andamiar un proyecto de Marco de taxonomía de token en modo confidencial.
| Categoría de método | Método generado automáticamente | Método SDK | Descripción |
|---|---|---|---|
| Gestión del Control de Acceso | isTokenAdmin |
isUserTokenAdmin |
Devuelve true si el emisor de llamada es un administrador |
addTokenAdmin |
addTokenAdmin |
Agrega un administrador | |
removeTokenAdmin |
removeTokenAdmin |
Elimina un administrador | |
|
getAllTokenAdmins |
Devuelve todos los administradores | |
addOrgAdmin |
addOrgAdmin |
Agrega una administración de organización | |
removeOrgAdmin |
removeOrgAdmin |
Elimina un administrador de organización | |
|
getAllOrgAdmins |
Devuelve todos los administradores de organización | |
addTokenAuditor |
addTokenAuditor |
Agrega un auditor | |
removeTokenAuditor |
removeTokenAuditor |
Elimina un auditor | |
|
getAllTokenAuditors |
Devuelve todos los auditores | |
addOrgAuditor |
addOrgAuditor |
Agrega un auditor de organización | |
removeOrgAuditor |
removeOrgAuditor |
Elimina un auditor de organización | |
|
getAllOrgAuditors |
Devuelve todos los auditores de organización | |
| Gestión de tokens | |
getAllTokens |
Devuelve todos los activos de token |
|
getDecimals |
Devuelve el número de posiciones decimales para un token especificado. | |
|
history |
Devuelve el historial de un token | |
|
getTokensByName |
Devuelve todos los activos de token para un nombre de token especificado | |
| Gestión de cuentas | createAccount |
createAccount |
Crea una cuenta de usuario |
associateTokenToAccount |
associateToken |
Asocia una cuenta con un token | |
getAllAccounts |
getAllAccounts |
Devuelve detalles de todas las cuentas de usuario | |
getAllOrgAccounts |
getAllOrgAccounts |
Devuelve detalles de todas las cuentas de usuario de una organización | |
getAccountsByUser |
getAccountsByUser |
Devuelve todos los ID de cuenta de un usuario | |
getUserByAccountId |
getUserByAccountId |
Devuelve los detalles de usuario para un ID de cuenta | |
getAccount |
getAccountWithStatus |
Devuelve detalles de una cuenta de token | |
getAccountDetailsByCustomAccountId |
getAccountDetailsByCustomAccountId |
Devuelve los detalles de la cuenta para un ID de cuenta personalizado | |
getAccountBalance |
getAccountBalance |
Devuelve el saldo actual de una cuenta | |
getAccountStatus |
getAccountStatus |
Devuelve el estado de una cuenta. | |
getAccountStatusHistory |
history |
Devuelve el historial de una cuenta de token | |
activateAccount |
activateAccount |
Activa una cuenta de token | |
suspendAccount |
suspendAccount |
Suspende una cuenta de token | |
deleteAccount |
deleteAccount |
Suprime una cuenta de token | |
setMaxDailyAmount |
setMaxDailyAmount |
Define la cantidad máxima de tokens que un usuario puede transferir diariamente | |
setMaxDailyTransactionCount |
setMaxDailyTransactionCount |
Define el número máximo de transacciones que un usuario puede completar diariamente | |
getMaxDailyAmount |
getMaxDailyAmount |
Devuelve la cantidad máxima de tokens que un usuario puede transferir diariamente | |
getMaxDailyTransactionCount |
getMaxDailyTransactionCount |
Devuelve el número máximo de transacciones que un usuario puede completar diariamente | |
getAccountOnHoldBalance |
getAccountOnHoldBalance |
Devuelve el saldo actual retenido de una cuenta | |
| Gestión de Roles | addRole |
addRoleMember |
Agrega un rol a un usuario |
removeRole |
removeRoleMember |
Elimina un rol de un usuario | |
getAccountsByRole |
getAccountsByRole |
Devuelve ID de cuenta para un rol especificado | |
getOrgAccountsByRole |
getOrgAccountsByRole |
Devuelve ID de cuenta para un rol especificado en una organización | |
getUsersByRole |
getUsersByRole |
Devuelve una lista de usuarios para un rol especificado | |
getOrgUsersByRole |
getOrgUsersByRole |
Devuelve una lista de usuarios para un rol especificado en una organización | |
isInRole |
isInRole |
Devuelve si un usuario tiene un rol especificado | |
| Gestión de Transacciones | getAccountTransactionHistory |
getAccountTransactionHistory |
Devuelve el historial de transacciones de una cuenta |
getAccountTransactionHistoryWithFilters |
getAccountTransactionHistoryWithFilters |
Devuelve el historial de transacciones filtradas de una cuenta | |
getAccountTransactionHistoryWithFiltersFromRichHistDB |
getAccountTrxHistoryWithFiltersFromRichHistDB |
Devuelve el historial de transacciones filtrado de la base de datos de historial enriquecido para una cuenta | |
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB |
getOrgAccountsTrxHistoryWithFiltersFromRichHistDB |
Devuelve el historial de transacciones filtrado de la base de datos de historial enriquecido para una organización | |
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB |
getAllAccountsTrxHistoryWithFiltersFromRichHistDB |
Devuelve el historial de transacciones filtrado de la base de datos de historial enriquecido para todas las cuentas | |
consolidateRunningBalanceInTransactions |
consolidateRunningBalanceInTransactions |
Actualiza los saldos de cuenta en ejecución para las transacciones pendientes | |
processSendersAndReceivers |
processSendersAndReceivers |
Actualiza los saldos de cuenta durante las transferencias entre organizaciones | |
deleteHistoricalTransactions |
deleteTransactions |
Suprime las transacciones más antiguas | |
getTransactionById |
getTransactionById |
Devuelve el historial de un activo de transacción | |
| Comportamiento mínimo | requestMint |
|
Solicitudes que se emiten tokens |
approveMint |
|
Aprueba una solicitud de menta | |
rejectMint |
|
Rechaza una solicitud de menta | |
issueTokens |
issueTokens |
Tokens de menta | |
getTotalMintedTokens |
getTotalMintedTokens |
Devuelve el número total de tokens acuñados | |
getNetTokens |
getNetTokens |
Devuelve la cantidad neta de tokens disponibles | |
| Comportamiento transferible | transferTokens |
transferTokens |
Transferencias de tokens |
| Comportamiento retenible | holdTokens |
hold |
Pone un saldo de token en espera |
executeHoldTokens |
executeHold |
Completa una retención de token | |
releaseHoldTokens |
releaseHold |
Libera una retención de token | |
getOnHoldIds |
getOnHoldIds |
Devuelve todos los ID de retención de una cuenta | |
getOnHoldDetailsWithOperationId |
getOnHoldDetailsWithOperationId |
Devuelve los detalles de la transacción retenida para un ID de operación | |
getOnHoldBalanceWithOperationId |
getOnHoldBalanceWithOperationId |
Devuelve el saldo retenido de un ID de operación | |
| Comportamiento reproducible | requestBurn |
|
Solicitudes que destruyen tokens |
approveBurn |
|
Aprueba una solicitud de grabación | |
rejectBurn |
|
Rechaza una solicitud de grabación | |
| Traslados entre organizaciones | executeHoldTokensSender |
executeHoldTokensSender |
Deduce tokens de la cuenta de un remitente |
executeHoldTokensReceiver |
executeHoldTokensReceiver |
Acreditación de tokens en la cuenta de un receptor |
Métodos TypeScript modificados para código de cadena confidencial
Si incluye el parámetro confidential: true en el archivo de especificación para los tokens que utilizan el estándar extendido Token Taxonomy Framework, Blockchain App Builder genera versiones modificadas de los métodos estándar generados automáticamente, así como métodos adicionales.
-
isTokenAdmin - Este método devuelve el valor booleano
truesi el emisor de llamada de la función esToken Admin; de lo contrario, devuelvefalse. UnToken Admin,Token Auditor, cualquierOrg Admino cualquierOrg Auditorpuede llamar a esta función en cualquier otro usuario de la red blockchain. Otros usuarios pueden llamar a este método solo en sus propias cuentas. -
addTokenAdmin - Este método agrega un usuario como
Token Admindel código de cadena. Este método solo puede ser llamado por unToken Admindel código de cadena. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeTokenAdmin - Este método elimina un usuario como
Token Admindel código de cadena. Este método solo puede ser llamado por unToken Admindel código de cadena. -
addOrgAdmin - Este método agrega un usuario como
Org Adminde la organización. Este método solo puede ser llamado por unToken Admindel código de cadena o unOrg Adminde la organización especificada. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeOrgAdmin - Este método elimina un usuario como
Org Adminde la organización. Este método solo puede ser llamado por unToken Admindel código de cadena o por unOrg Adminde la organización especificada. -
addTokenAuditor - Este método agrega un usuario como
Token Auditordel código de cadena. Este método solo puede ser llamado por unToken Admindel código de cadena. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeTokenAuditor - Este método elimina un usuario como
Token Auditordel código de cadena. Este método solo puede ser llamado por unToken Admindel código de cadena. -
addOrgAuditor - Este método agrega un usuario como
Org Auditordel código de cadena. Este método solo puede ser llamado por unToken AdminoOrg Admindel código de cadena. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeOrgAuditor - Este método elimina un usuario como
Org Auditordel código de cadena. Este método solo puede ser llamado por unToken AdminoOrg Admindel código de cadena. -
createAccount - Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta se forma concatenando el tipo de activo y el ID de token y, a continuación, creando un hash SHA-256 en una concatenación del ID de organización y el ID de usuario. Este método solo lo puede llamar un
Token Admino unOrg Adminde la organización especificada. -
associateTokenToAccount - Este método asocia un token fungible a una cuenta. Este método solo puede ser llamado por un
Token Admindel código de cadena o por unOrg Adminde la organización relevante. -
getAllAccounts - Este método devuelve una lista de todas las cuentas. Este método solo se puede llamar mediante
Token AdminoToken Auditor. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform. -
getAllOrgAccounts - Este método devuelve una lista de todas las cuentas de token que pertenecen a una organización especificada. Este método solo puede ser llamado por
Token AdminoToken Auditor, o por unOrg AdminoOrg Auditorde la organización especificada. -
getAccountsByUser - Este método devuelve una lista de todos los IDs de cuenta para un ID de organización y un ID de usuario especificados. Este método solo puede ser llamado por
Token AdminoToken Auditor, porOrg AdminoOrg Auditorde la organización especificada, o porAccount Ownerespecificado en los parámetros. -
getUserByAccountId - Este método devuelve los detalles del usuario (
org_idyuser_id) para una cuenta especificada. Este método puede ser llamado porToken AdminoToken Auditor, o por unOrg AdminoOrg Auditorde la organización especificada. -
getAccount - Este método devuelve los detalles de una cuenta especificada. Este método solo se puede llamar mediante
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
getAccountDetailsByCustomAccountId - Este método devuelve los detalles de un ID de cuenta personalizado especificado. Este método solo puede ser llamado por
Token AdminoToken Auditor, o porOrg AdminoOrg Auditorde la organización especificada. -
getAccountBalance - Este método devuelve el saldo actual de una cuenta especificada. Este método solo se puede llamar mediante
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
getAccountStatus - Este método obtiene el estado actual de la cuenta de token. Este método puede ser llamado por el
Token Admindel código de cadena, unOrg Adminde la organización especificada o por el propietario de la cuenta de token. -
getAccountStatusHistory - Este método obtiene el historial del estado de la cuenta. Este método puede ser llamado por el
Token Admindel código de cadena, unOrg Adminde la organización especificada o por el propietario de la cuenta de token. -
activateAccount - Este método activa una cuenta de token. Este método solo puede ser llamado por un
Token Admindel código de cadena o unOrg Adminde la organización especificada. Las cuentas eliminadas no se pueden activar. -
suspendAccount - Este método suspende una cuenta de token. Este método solo puede ser llamado por un
Token Admindel código de cadena o unOrg Adminde la organización especificada. Después de suspender una cuenta, no puede completar ninguna operación que actualice la cuenta. No se puede suspender una cuenta eliminada. -
deleteAccount - Este método suprime una cuenta de token. Este método solo puede ser llamado por un
Token Admindel código de cadena o unOrg Adminde la organización especificada. Después de eliminar una cuenta, no puede completar ninguna operación que actualice la cuenta. La cuenta eliminada tiene un estado final y no se puede cambiar a ningún otro estado. Para eliminar una cuenta, el saldo de cuenta y el saldo retenido deben ser cero. -
setMaxDailyAmount - Este método define el valor
max_daily_amountpara una cuenta especificada. Este método solo puede ser llamado por unToken Admindel código de cadena o unOrg Adminde la organización especificada. -
setMaxDailyTransactionCount - Este método define el valor
max_daily_transactionspara una cuenta especificada. Este método solo puede ser llamado por unToken Admindel código de cadena o unOrg Adminde la organización especificada. -
getMaxDailyAmount - Este método obtiene el valor
max_daily_amountpara una cuenta especificada. Este método solo puede ser llamado por unToken AdminoToken Auditordel código de cadena o unOrg AdminoOrg Auditorde la organización especificada. -
getMaxDailyTransactionCount - Este método obtiene el valor
max_daily_transactionspara una cuenta especificada. Este método solo puede ser llamado por unToken AdminoToken Auditordel código de cadena o unOrg AdminoOrg Auditorde la organización especificada. -
getAccountOnHoldBalance - Este método devuelve el saldo actual retenido para una cuenta especificada. Este método solo se puede llamar mediante
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
addRole - Este método agrega un rol a un usuario y token especificados. Este método solo puede ser llamado por un
Token Admindel código de cadena o por unOrg Adminde la organización especificada que también tenga el rol especificado. -
removeRole - Este método elimina un rol de un usuario y token especificados. Este método solo puede ser llamado por un
Token Admindel código de cadena o por unOrg Adminde la organización especificada que también tenga el rol especificado. -
getAccountsByRole - Este método devuelve una lista de todos los ID de cuenta para un rol y token especificados. Este método solo se puede llamar mediante
Token AdminoToken Auditor. -
getOrgAccountsByRole - Este método devuelve una lista de todos los ID de cuenta para un rol, token y organización especificados. Este método solo puede ser llamado por
Token AdminoToken Auditor, o por unOrg AdminoOrg Auditorde la organización especificada. -
getUsersByRole - Este método devuelve una lista de todos los usuarios para un rol y token especificados. Este método solo se puede llamar mediante
Token AdminoToken Auditor. -
getOrgUsersByRole - Este método devuelve una lista de todos los usuarios para un rol, token y organización especificados. Este método solo puede ser llamado por
Token AdminoToken Auditor, o por unOrg AdminoOrg Auditorde la organización especificada. -
isInRole - Este método devuelve un valor booleano para indicar si un usuario tiene un rol especificado. Este método solo se puede llamar mediante
Token AdminoToken Auditor,AccountOwnerde la cuenta o unOrg AdminoOrg Auditorde la organización especificada. -
getAccountTransactionHistory - Este método devuelve una matriz de detalles del historial de transacciones de la cuenta para una cuenta especificada. Este método solo puede ser llamado por
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
getAccountTransactionHistoryWithFilters - Este método devuelve una matriz filtrada de detalles del historial de transacciones de la cuenta para un usuario y token especificados. Este método solo puede ser llamado por
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. Este método solo se puede llamar cuando está conectado a una red remota de Oracle Blockchain Platform. -
getAccountTransactionHistoryWithFiltersFromRichHistDB - Este método recupera el historial de transacciones de la base de datos de historial enriquecido. Este método solo puede ser llamado por
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB - Este método recupera el historial de transacciones de la base de datos de historial enriquecido para la organización especificada. Este método solo puede ser llamado por
Token AdminoToken Auditor, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB - Este método recupera el historial de transacciones de la base de datos de historial enriquecido para todas las organizaciones. Este método solo puede ser llamado por
Token AdminoToken Auditor. -
deleteHistoricalTransactions - Este método suprime las transacciones más antiguas de la base de datos de estado. Este método solo se puede llamar mediante
Token Admin. -
getTransactionById - Este método devuelve el historial de un activo
Transaction. Este método solo puede ser llamado por unToken AdminoToken Auditor, por unOrg AdminoOrg Auditorde la organización especificada, o por un participante de la transacción (emisor, destinatario o notario). -
consolidateRunningBalanceInTransactions - Este método calcula los saldos de cuenta en ejecución y guarda los valores actualizados en los pares de clave/valor de transacción. Normalmente, los administradores del sistema llaman a este método mediante un programador de proxy REST. Este método solo se puede llamar mediante
Token AdminoOrg Admin. -
processSendersAndReceivers - Este método calcula y actualiza los saldos de cuenta de token que se distribuyen en los pares de clave/valor de remitente y receptor que se crearon durante las transferencias entre organizaciones y, a continuación, suprime los pares de clave/valor de remitente y receptor, que ya no se utilizan. Normalmente, los administradores del sistema llaman a este método mediante un programador de proxy REST. Este método solo se puede llamar mediante
Token AdminoOrg Admin. -
requestMint - Este método puede ser llamado por un minter para enviar una solicitud al notario minter para crear una cantidad especificada de tokens.
-
approveMint - Este método puede ser llamado por un notario de minter para aprobar una solicitud de acuñación.
-
rejectMint - Este método puede ser llamado por un notario de minter para rechazar una solicitud de acuñación.
-
issueTokens - Este método acuña tokens, que luego son propiedad del emisor de llamada del método.
-
getTotalMintedTokens - Este método devuelve el número total de tokens acuñados para un token especificado. Este método solo se puede llamar mediante
Token Admin,Token Auditor,Org AdminoOrg Auditor. -
getNetTokens - Este método devuelve el número neto total de tokens disponibles en el sistema para un token especificado. El total neto de tokens es la cantidad de tokens que quedan después de que los tokens se queman. En forma de ecuación: tokens netos = tokens totales acuñados - tokens totales quemados. Si no se queman tokens, el número de tokens netos es igual al total de tokens acuñados. Este método solo se puede llamar mediante
Token Admin,Token Auditor,Org AdminoOrg Auditor. -
transferTokens - Este método transfiere tokens del emisor de llamada a una cuenta especificada.
-
holdTokens - Este método crea una retención en nombre del emisor de llamada (el propietario de los tokens) con la cuenta
to_account_id. La cuenta notarial especificada es responsable de completar o liberar la retención. Cuando se crea la retención, el saldo de token especificado del pagador se retiene. Un saldo retenido no se puede transferir hasta que la retención se haya completado o liberado. -
executeHoldTokens - Este método completa una retención de un token. Una cantidad de tokens previamente retenidos por un propietario de token se transfiere a un receptor. Si el valor
quantityes menor que el valor de retención real, el importe restante vuelve a estar disponible para el propietario original de los tokens. Este método solo puede ser llamado por el IDAccountOwnercon el rolnotarypara el ID de operación especificado. La retención solo la puede completar el notario. -
releaseHoldTokens - Este método libera una retención de tokens. La transferencia no se ha completado y todos los tokens retenidos están disponibles de nuevo para el propietario original. Este método puede ser llamado por el ID
AccountOwnercon el rolnotarydentro del límite de tiempo especificado o por el pagador, el beneficiario o el notario después del límite de tiempo especificado. -
getOnHoldIds - Este método devuelve una lista de todos los IDs de retención de una cuenta especificada. Este método se puede llamar mediante un
Token AdminoToken Auditordel código de cadena, unOrg AdminoOrg Auditorde la organización especificada o elAccountOwnerde la cuenta. -
getOnHoldDetailsWithOperationId - Este método devuelve los detalles de la transacción retenida para un token e ID de operación especificados. Este método puede ser llamado por un
Token AdminoToken Auditordel código de cadena, o por un participante de transacción (emisor, destinatario, notario). -
getOnHoldBalanceWithOperationId - Este método devuelve el saldo retenido para un token e ID de operación especificados. Este método puede ser llamado por un
Token AdminoToken Auditordel código de cadena, o por un participante de transacción (emisor, destinatario, notario). -
requestBurn - Este método puede ser llamado por un quemador para enviar una solicitud al notario del quemador para destruir una cantidad especificada de tokens.
-
approveBurn - Este método puede ser llamado por un notario del quemador para aprobar una solicitud de grabación.
-
rejectBurn - Este método puede ser llamado por un notario de quemadores para rechazar una solicitud de quemado.
TypeScript Métodos para transferencias entre organizaciones
Las transferencias entre organizaciones tienen dos partes: en primer lugar, el importe se carga del remitente y, a continuación, el importe se abona al receptor. Las dos API siguientes se llaman juntas como una transacción atómica mediante la API de confirmación en dos fases del proxy de REST de Oracle Blockchain Platform. Las transferencias confidenciales se realizan de esta manera porque las recopilaciones de datos privados de las dos organizaciones son distintas y no se puede acceder a ellas en una sola transacción.
Ambas transacciones se envían mediante la API de confirmación en dos fases del proxy de REST. Para obtener más información, consulte Llamada a transacción atómica.
https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/atomicTransactions. Debe enviar todas las cabeceras esenciales, incluidas las siguientes.- Content-Type: application/json
- Confidential-Transaction: trueEn el cuerpo de la solicitud, incluya los métodos executeHoldTokensSendery executeHoldTokensReceiver como se muestra en la siguiente solicitud.{
"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 - Este método solo puede ser llamado por el usuario con el rol de notario para el ID de operación especificado. Este método es la primera parte de la aprobación de un traslado entre organizaciones. El importe especificado se deduce de la cuenta del remitente.
-
executeHoldTokensReceiver - Este método solo puede ser llamado por el usuario con el rol de notario para el ID de operación especificado. Este método es la segunda parte de la aprobación de un traslado entre organizaciones. El importe especificado se acredita en la cuenta del receptor.
Métodos de SDK de TypeScript modificados para código de cadena confidencial
Si incluye el parámetro confidential: true en el archivo de especificación para tokens que utilizan el estándar extendido Token Taxonomy Framework, Blockchain App Builder genera versiones modificadas de los métodos estándar de SDK, así como métodos adicionales.
-
isUserTokenAdmin - Este método devuelve el valor booleano
truesi el emisor de llamada de la función es unToken Admin. De lo contrario, el método devuelvefalse. -
addTokenAdmin - Este método agrega un usuario como
Token Admindel código de cadena de token. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeTokenAdmin - Este método elimina un usuario como
Token Admindel código de cadena de token. -
getAllTokenAdmins - Este método devuelve una lista de todos los usuarios que son
Token Admindel código de cadena. -
addOrgAdmin - Este método agrega un usuario como
Org Adminde la organización. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeOrgAdmin - Este método elimina un usuario como
Org Adminde la organización. -
getAllOrgAdmins - Este método devuelve una lista de todos los usuarios que son
Org Adminde una organización. -
addTokenAuditor - Este método agrega un usuario como
Token Auditordel código de cadena. Puesto que el valoruser_idse almacena en el libro mayor público, no utilice ninguna información de identificación personal (PII) para el valoruser_id. -
removeTokenAuditor - Este método elimina un usuario como
Token Auditordel código de cadena. -
getAllTokenAuditors - Este método devuelve todos los
Token Auditorsdel código de cadena. -
addOrgAuditor - Este método agrega un usuario como
Org Auditordel código de cadena. -
removeOrgAuditor - Este método elimina un usuario como
Org Auditordel código de cadena. -
getAllOrgAuditors - Este método devuelve todos los
Org Auditorsdel código de cadena. -
getAllTokens - Este método devuelve todos los activos de token guardados en la base de datos de estado. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
getDecimals - Este método devuelve el número de decimales disponibles para un token fraccionario. Si no se especifica el comportamiento
divisible, el valor por defecto es 0. -
history - Este método devuelve el historial para el token especificado.
-
getTokensByName - Este método devuelve todos los activos de token con el nombre especificado. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
createAccount - Este método crea una cuenta para un usuario y token especificados. Todos los usuarios que tengan tokens en cualquier momento deben tener una cuenta.
-
associateToken - Este método asocia un token fungible a una cuenta.
-
getAllAccounts - Este método devuelve una lista de todas las cuentas. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
getAllOrgAccounts - Este método devuelve una lista de todas las cuentas de token que pertenecen a una organización especificada.
-
getAccountsByUser - Este método devuelve una lista de todos los ID de cuenta para un usuario y una organización especificados.
-
getUserByAccountId - Este método devuelve los detalles de usuario de una cuenta especificada.
-
getAccountWithStatus - Este método devuelve los detalles de la cuenta para un usuario y token especificados.
-
getAccountDetailsByCustomAccountId - Este método devuelve todos los detalles de cuenta de token para una organización y un ID de cuenta especificados.
-
getAccountBalance - Este método devuelve el saldo de la cuenta para una cuenta especificada.
-
getAccountStatus - Este método obtiene el estado actual de la cuenta de token.
-
history (Account Status) - Este método obtiene el historial del estado de la cuenta.
-
activateAccount - Este método activa una cuenta de token. Las cuentas eliminadas no se pueden activar.
-
suspendAccount - Este método suspende una cuenta de token. Después de suspender una cuenta, no puede completar ninguna operación que actualice la cuenta. No se puede suspender una cuenta eliminada.
-
deleteAccount - Este método suprime una cuenta de token. Después de eliminar una cuenta, no puede completar ninguna operación que actualice la cuenta. La cuenta eliminada tiene un estado final y no se puede cambiar a ningún otro estado. Para eliminar una cuenta, el saldo de cuenta y el saldo retenido deben ser cero.
-
setMaxDailyAmount - Este método define el valor
max_daily_amountpara una cuenta especificada. -
setMaxDailyTransactionCount - Este método define el valor
max_daily_transactionspara una cuenta especificada. -
getMaxDailyAmount - Este método obtiene el valor
max_daily_amount(el importe máximo que se puede transferir diariamente) para una cuenta especificada. -
getMaxDailyTransactionCount - Este método obtiene el valor
max_daily_transactions(número máximo de transacciones permitidas por día) para una cuenta especificada. -
getAccountOnHoldBalance - Este método devuelve el saldo retenido de una cuenta especificada.
-
addRoleMember - Este método agrega un rol a una cuenta especificada.
-
removeRoleMember - Este método elimina un rol de una cuenta especificada.
-
getAccountsByRole - Este método devuelve una lista de todas las cuentas para un rol y token especificados.
-
getOrgAccountsByRole - Este método devuelve información sobre todas las cuentas que tienen un rol especificado en una organización especificada.
-
getUsersByRole - Este método devuelve una lista de todos los usuarios para un rol y token especificados.
-
getOrgUsersByRole - Este método devuelve información sobre todos los usuarios que tienen un rol especificado en una organización especificada.
-
isInRole - Este método indica si un usuario tiene un rol especificado.
-
getAccountTransactionHistory - Este método devuelve una matriz de los detalles del historial de transacciones de una cuenta especificada.
-
getAccountTransactionHistoryWithFilters - Este método devuelve una matriz de los detalles del historial de transacciones de una cuenta especificada. Este método solo se puede llamar cuando está conectado a la red remota de Oracle Blockchain Platform.
-
getAccountTrxHistoryWithFiltersFromRichHistDB - Este método devuelve una matriz de los detalles del historial de transacciones de la base de datos de historial enriquecido.
-
getOrgAccountsTrxHistoryWithFiltersFromRichHistDB - Este método devuelve una matriz de los detalles del historial de transacciones de una organización especificada de la base de datos de historial enriquecido.
-
getAllAccountsTrxHistoryWithFiltersFromRichHistDB - Este método devuelve una matriz de los detalles del historial de transacciones de todas las organizaciones de la base de datos de historial enriquecido.
-
consolidateRunningBalanceInTransactions - Este método calcula los saldos de cuenta en ejecución y guarda los valores actualizados en los pares de clave/valor de transacción. Normalmente, los administradores del sistema llaman a este método mediante un programador de proxy REST.
-
processSendersAndReceivers - Este método calcula y actualiza los saldos de cuenta de token que se distribuyen en los pares de clave/valor de remitente y receptor que se crearon durante las transferencias entre organizaciones y, a continuación, suprime los pares de clave/valor de remitente y receptor, que ya no se utilizan. Normalmente, los administradores del sistema llaman a este método mediante un programador de proxy REST.
-
deleteTransactions - Este método suprime las transacciones más antiguas de la base de datos de estado.
-
getTransactionById - Este método devuelve el historial de un activo
Transaction. -
issueTokens - Minters puede llamar a este método para crear una cantidad específica de tokens.
-
getTotalMintedTokens - Este método devuelve el número total de tokens acuñados.
-
getNetTokens - Este método devuelve la cantidad neta de tokens que están disponibles en el sistema. Los tokens netos son la cantidad de tokens que quedan después de que los tokens se queman. En forma de ecuación: tokens netos = tokens totales acuñados - tokens totales quemados. Si no se queman tokens, el número de tokens netos es igual al total de tokens acuñados.
-
transferTokens - Este método transfiere tokens del emisor de llamada a una cuenta especificada. El emisor de llamada del método debe tener una cuenta. La cantidad debe estar dentro de los valores decimales especificados por el parámetro
decimaldel comportamientodivisibleen el archivo de especificación. -
hold - Este método es utilizado por el minter para enviar una solicitud al notario minter para crear una cantidad especificada de tokens. La cuenta notarial especificada es responsable de completar o liberar la retención.
-
executeHold - Los notarios pueden llamar a este método para aprobar una operación de retención, que puede ser uno de tres tipos: menta, quemadura o transferencia.
-
releaseHold - Los notarios pueden llamar a este método para rechazar una operación de retención, que puede ser uno de tres tipos: menta, quemadura o transferencia.
-
getOnHoldIds - Este método devuelve una lista de todos los IDs de retención de una cuenta especificada.
-
getOnHoldDetailsWithOperationId - Este método devuelve los detalles de la transacción retenida para un token e ID de operación especificados.
-
getOnHoldBalanceWithOperationId - Este método devuelve el saldo retenido para un token e ID de operación especificados. Este método puede ser llamado por cualquiera.
TypeScript Métodos de SDK para transferencias entre organizaciones
Las transferencias entre organizaciones tienen dos partes: en primer lugar, el importe se carga del remitente y, a continuación, el importe se abona al receptor. Las dos API siguientes se llaman juntas como una transacción atómica mediante la API de confirmación en dos fases del proxy de REST de Oracle Blockchain Platform. Las transferencias confidenciales se realizan de esta manera porque las recopilaciones de datos privados de las dos organizaciones son distintas y no se puede acceder a ellas en una sola transacción.
-
executeHoldTokensSender - Este método solo puede ser llamado por el usuario con el rol de notario para el ID de operación especificado. Este método es la primera parte de la aprobación de un traslado entre organizaciones. El importe especificado se deduce de la cuenta del remitente.
-
executeHoldTokensReceiver - Este método solo puede ser llamado por el usuario con el rol de notario para el ID de operación especificado. Este método es la segunda parte de la aprobación de un traslado entre organizaciones. El importe especificado se acredita en la cuenta del receptor.