API de contrato de token ERC-20

Puede utilizar los siguientes métodos relacionados con la funcionalidad de token en los contratos de token ERC-20.

Métodos de configuración de token

__ERC20Token_init
Este método se llama cuando se despliega un contrato de token. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • name: string: nombre del token.
  • symbol: string: símbolo del token.
initializeERC20Token
Este método inicializa un token ERC-20. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • token: ERC20Token: estructura que define el token ERC-20, como se muestra en el siguiente ejemplo.
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
Este método obtiene un token ERC-20. Este método solo se puede llamar mediante Token Admin, Token Auditor, Org Admin o Org Auditor.
Parámetros:
  • Ninguno
Ejemplo de valor devuelto:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
decimals
Este método devuelve el número de decimales que se han configurado para un token. Este método solo se puede llamar mediante Token Admin, Token Auditor, Org Admin o Org Auditor.
Parámetros:
  • Ninguno
Devoluciones:
  • Valor uint8 que indica el número de decimales.
cap
Este método devuelve el valor de límite (el suministro total máximo) para un token ERC-20. Este método solo se puede llamar mediante Token Admin, Token Auditor, Org Admin o Org Auditor.
Parámetros:
  • Ninguno
Devoluciones:
  • Valor uint256 que indica el valor de límite.
balanceOf
Este método devuelve el saldo de token actual para un usuario especificado. Este método solo puede ser llamado por Token Admin o Token Auditor, o por Org Admin o Org Auditor de la organización especificada.
Parámetros:
  • userAddress: string: dirección de cartera del usuario, que no debe ser cero.
Devoluciones:
  • Valor uint256 que indica el saldo actual.

Métodos de comportamiento de token - Comportamiento minable

mint
Este método acuña tokens ERC-20. Cualquier usuario con el rol minter puede llamar a este método.
Parámetros:
  • to: string: dirección de cartera del usuario para el que se están acuñando los tokens, que no debe ser cero.
  • value: uint256: cantidad de tokens que se deben acuñar.
requestMint
Cualquier usuario con el rol minter puede llamar a este método para enviar una solicitud al notario para crear una cantidad especificada de tokens.
Parámetros:
  • notary: string: dirección de cartera del usuario de notario, que no debe ser cero.
  • amount: uint256: cantidad de tokens que se deben acuñar.
  • expiration: uint256: hora de caducidad de la solicitud en formato de época.
  • opId: string: ID de operación de la solicitud.
  • info_details: JSON: objeto que especifica la categoría (category) y la descripción (description) de la solicitud.

    Puede especificar el parámetro info_details en un formato diferente si utiliza Visual Studio Code frente a la CLI o una recopilación Postman.

    Código de Visual Studio: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveMint
Un aprobador con el rol de notario puede llamar a este método para aprobar una solicitud de moneda para tokens ERC-20.
Parámetros:
  • opId: string: ID de operación de la solicitud de moneda.
rejectMint
Un aprobador con el rol de notario puede llamar a este método para rechazar una solicitud de moneda para tokens ERC-20.
Parámetros:
  • opId: string: ID de operación de la solicitud de moneda.

Métodos de comportamiento de token - Comportamiento que se puede quemar

burn
Este método quema tokens ERC-20. Este método puede ser llamado por cualquier usuario con el rol de quemador.
Parámetros:
  • account: string: dirección de cartera del usuario para el que se están quemando los tokens, que no debe ser cero.
  • value: uint256: cantidad de tokens que se queman.
burnFrom
Este método puede ser llamado por cualquier usuario con una asignación delegada.
Parámetros:
  • account: string: dirección de la cartera de la cuenta desde la que se van a grabar los tokens, que no debe ser cero.
  • value: uint256: cantidad de tokens que se queman.
requestBurn
Cualquier usuario con un rol de quemador puede llamar a este método para aprobar una solicitud de quemado para tokens ERC-20.
Parámetros:
  • notary: string: dirección de cartera del usuario de notario, que no debe ser cero.
  • amount: uint256: cantidad de tokens que se queman.
  • expiration: uint256: hora de caducidad de la solicitud en formato de época.
  • opId: string: ID de operación de la solicitud.
  • info_details: JSON: objeto que especifica la categoría (category) y la descripción (description) de la solicitud.

    Puede especificar el parámetro info_details en un formato diferente si utiliza Visual Studio Code frente a la CLI o una recopilación Postman.

    Código de Visual Studio: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveBurn
Un aprobador con el rol de notario puede llamar a este método para aprobar una solicitud de grabación para tokens ERC-20.
Parámetros:
  • opId: string: ID de operación de la solicitud de grabación.
rejectBurn
Un aprobador con el rol de notario puede llamar a este método para rechazar una solicitud de grabación para tokens ERC-20.
Parámetros:
  • opId: string: ID de operación de la solicitud de grabación.

Métodos de comportamiento de token - Comportamiento transferible

transfer
Este método puede ser llamado por cualquier usuario con tokens para transferirlos a otro usuario.
Parámetros:
  • to: string: dirección de cartera del receptor, que no debe ser cero.
  • value: uint256: cantidad de tokens que se deben transferir.
batchTransfer
Cualquier usuario con tokens puede llamar a este método para transferirlos en lotes a otros usuarios.
Parámetros:
  • toList: string[]: lista de direcciones de cartera de los receptores.
  • amounts: uint256[]: lista de la cantidad de tokens que se van a transferir.

Métodos de comportamiento de token - Comportamiento delegable

allowance
Este método puede ser llamado por cualquier usuario que posea tokens para delegar a otro usuario para que los gaste.
Parámetros:
  • owner: string: dirección de cartera del propietario del token, que no debe ser cero.
  • spender: string: dirección de cartera del gastador de token, que no debe ser cero.
Devoluciones:
  • Valor uint256 de la cantidad de tokens delegados que se van a gastar.
approve
Este método puede ser llamado por cualquier usuario que posea tokens para establecer la cantidad que un gastador delegado puede gastar.
Parámetros:
  • spender: string: dirección de cartera del gastador de token, que no debe ser cero.
  • value: uint256: cantidad de tokens que el gastador puede gastar.
transferFrom
Este método puede ser llamado por un usuario con una asignación delegada para transferir tokens a otro usuario.
Parámetros:
  • from: string: dirección de cartera del remitente, que no debe ser cero.
  • to: string: dirección de cartera del receptor, que no debe ser cero.
  • value: uint256: cantidad de tokens que se deben transferir.

Métodos de comportamiento de token - Comportamiento utilizable

paused
Este método comprueba si un contrato está en pausa. Este método solo se puede llamar mediante Token Admin, Token Auditor, Org Admin o Org Auditor.
Parámetros:
  • Ninguno
pause
Este método pausa un contrato. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • Ninguno
unpause
Este método inicia un contrato en pausa. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • Ninguno

Métodos de comportamiento de token - Comportamiento retenible

hold
Cualquier usuario con tokens puede llamar a este método para solicitar una transferencia de token.
Parámetros:
  • to: string: dirección de cartera del receptor, que no debe ser cero.
  • notary: string: dirección de cartera del usuario de notario, que no debe ser cero.
  • amount: uint256: cantidad de tokens que se deben transferir.
  • expiration: uint256: hora de caducidad de la solicitud en formato de época.
  • opId: string: ID de operación de la solicitud.
  • holdType: string: tipo de retención. Por ejemplo, transfer.
  • info_details: JSON: objeto que especifica la categoría (category) y la descripción (description) de la solicitud.

    Puede especificar el parámetro info_details en un formato diferente si utiliza Visual Studio Code frente a la CLI o una recopilación Postman.

    Código de Visual Studio: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

holdFrom
Este método puede ser llamado por un usuario delegado con un permiso para retener tokens de la dirección de la cartera de otro usuario. Este método requiere el comportamiento delegable.
Parámetros:
  • fromAccount: string: dirección de cartera del usuario cuyos tokens se retendrán, que no debe ser cero.
  • toAccount: string: dirección de cartera del receptor, que no debe ser cero.
  • notary: string: dirección de cartera del usuario de notario, que no debe ser cero.
  • amount: uint256: cantidad de tokens que se deben transferir.
  • expiration: uint256: hora de caducidad de la solicitud en formato de época.
  • opId: string: ID de operación de la solicitud.
  • holdType: string: tipo de retención. Por ejemplo, transfer.
  • info_details: JSON: objeto que especifica la categoría (category) y la descripción (description) de la solicitud.

    Puede especificar el parámetro info_details en un formato diferente si utiliza Visual Studio Code frente a la CLI o una recopilación Postman.

    Código de Visual Studio: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

executeHold
Un aprobador con el rol de notario puede llamar a este método para aprobar una solicitud de retención.
Parámetros:
  • amount: uint256: cantidad de tokens que aprobar para la transferencia.
  • opId: string: ID de operación de la solicitud de retención.
releaseHold
Un aprobador con el rol de notario puede llamar a este método para rechazar una solicitud de retención.
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
updateNotary
Un aprobador con el rol de notario puede llamar a este método para actualizar el notario para una solicitud especificada.
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
  • newNotary: string: dirección de cartera del nuevo usuario de notario, que no debe ser cero.
getOnHoldBalanceWithOperationId
Este método obtiene el saldo de retención para un ID de operación especificado. Este método solo puede ser llamado por un Token Admin o Token Auditor, Org Admin o Org Auditor de la organización especificada, o por un participante de la transacción (emisor, destinatario, notario).
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
Devoluciones:
  • Un valor uint256 del saldo de retención.
getOnHoldDetailsWithOperationId
Este método obtiene los detalles de retención para un ID de operación especificado. Este método solo puede ser llamado por un Token Admin o Token Auditor, Org Admin o Org Auditor de la organización especificada, o por un participante de la transacción (emisor, destinatario, notario).
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
Devoluciones:
  • Un objeto hold, con la siguiente información.
    • to: address: dirección de cartera del receptor.
    • notary: address: dirección de cartera del notario.
    • amount: uint256: cantidad de tokens que se van a transferir.
    • expiration: uint256: hora de caducidad de la solicitud, en formato de época.
    • opId: string: ID de operación de la solicitud.
    • holdType: string: tipo de retención; por ejemplo, transfer.
    • info: infoDetails: objeto que especifica la categoría (category) y la descripción (description) de la solicitud.
getAccountOnHoldBalance
Este método obtiene el saldo de retención para una cuenta especificada. Este método solo puede ser llamado por un Token Admin o Token Auditor, Org Admin o Org Auditor de la organización especificada, o por un participante de la transacción (emisor, destinatario, notario).
Parámetros:
  • account: string: dirección de cartera de la cuenta que se va a comprobar, que no debe ser cero.
Devoluciones:
  • Un valor uint256 del saldo de retención.

Métodos de comportamiento de token - Comportamiento de aprobación de varios niveles

createOrupdateAccountPolicy
Este método puede ser llamado por Token Admin o Org Admin para crear o actualizar una política para una cuenta especificada.
Parámetros:
  • accountPolicyId: el sistema genera este ID a partir de los campos orgId y userId especificados. Este campo no se proporciona manualmente.
  • orgId: ID del proveedor de servicios de afiliación (MSP) del usuario para el que se va a crear la política.
  • userId: nombre de usuario o ID de correo electrónico del usuario para el que se va a crear la política.
  • kycCompliance: un valor de cadena (true o false) que indica si la cuenta cumple los requisitos de KYC (Know Your Customer).
  • amlCompliance: valor de cadena (true o false) que indica si la cuenta cumple los requisitos de AML (Antilavado de dinero).
  • riskScore: puntuación de riesgo asociada a la cuenta, que se utiliza para la evaluación de conformidad.
  • restrictionFlag: valor de cadena (true o false) que indica si la cuenta está sujeta a transferencias restringidas. Si se define en true, las transferencias directas siguen los límites de bloque de restricción de transferencia y las transferencias retenidas siguen el umbral de política de aprobación más bajo.
getAccountPolicyById
Este método obtiene los detalles de la política de cuenta para un ID de política especificado. Este método se puede llamar mediante Token Admin o Token Auditor, o bien mediante Org Admin o Org Auditor de la organización cuya política de cuenta se recuperará.
Parámetros:
  • accountPolicyId: string: ID de política de cuenta único.
Devoluciones:
  • accountPolicyId: el sistema genera este ID a partir de los campos orgId y userId especificados. Este campo no se proporciona manualmente.
  • orgId: ID del proveedor de servicios de membresía (MSP) del usuario.
  • userId: nombre de usuario o ID de correo electrónico del usuario.
  • kycCompliance: un valor de cadena (true o false) que indica si la cuenta cumple los requisitos de KYC (Know Your Customer).
  • amlCompliance: valor de cadena (true o false) que indica si la cuenta cumple los requisitos de AML (Antilavado de dinero).
  • riskScore: puntuación de riesgo asociada a la cuenta, que se utiliza para la evaluación de conformidad.
  • restrictionFlag: valor de cadena (true o false) que indica si la cuenta está sujeta a transferencias restringidas. Si se define en true, las transferencias directas siguen los límites de bloque de restricción de transferencia y las transferencias retenidas siguen el umbral de política de aprobación más bajo.
getAccountPolicyById
Este método obtiene los detalles de la política de cuenta para un usuario especificado. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • who: address: dirección de cartera del usuario.
Devoluciones:
  • La cadena accountPolicyId.
deleteAccountPolicyById
Este método suprime una política para un ID de política especificado. Este método puede ser llamado por Token Admin o Org Admin de la organización que incluye al usuario cuya política de cuenta se suprimirá.
Parámetros:
  • accountPolicyId: ID de política de cuenta único.
Devoluciones:
  • La cadena accountPolicyId.
createOrupdateApprovalPolicy
Este método se puede llamar mediante Token Admin.
Parámetros:
  • approvalPolicyId: el sistema genera este ID. Este campo no se proporciona manualmente.
  • transactionLowerLimit: importe mínimo de transacción al que se aplica la política de aprobación.
  • transactionUpperLimit: importe máximo de transacción al que se aplica la política de aprobación.
  • numberOfApprovalsRequired: número total de aprobaciones necesarias antes de que se pueda completar la transacción.
  • approverDetails: lista de aprobadores junto con la secuencia de aprobación asignada, que define el orden obligatorio para las aprobaciones.
  • version: versión de la política de aprobación. Utilice 0 al crear una nueva política.
  • status: activo o inactivo.
getApprovalPolicyById
Este método obtiene los detalles de la política de aprobación para un ID de política especificado. Este método se puede llamar mediante Token Admin o Token Auditor.
Parámetros:
  • approvalPolicyId: string: ID de política de aprobación único.
Devoluciones:
  • approvalPolicyId: el sistema genera este ID.
  • transactionLowerLimit: importe mínimo de transacción al que se aplica la política de aprobación.
  • transactionUpperLimit: importe máximo de transacción al que se aplica la política de aprobación.
  • numberOfApprovalsRequired: número total de aprobaciones necesarias antes de que se pueda completar la transacción.
  • approverDetails: lista de aprobadores junto con la secuencia de aprobación asignada, que define el orden obligatorio para las aprobaciones.
  • version: versión de la política de aprobación.
  • status: activo o inactivo.
deleteApprovalPolicy
Este método suprime una política para un ID de política especificado. Este método se puede llamar mediante Token Admin.
Parámetros:
  • approvalPolicyId: string: ID de política de aprobación único.
getApprovalTransactionsById
Este método obtiene el saldo retenido para una cuenta especificada. Este método se puede llamar mediante Token Admin, Token Auditor, Org Admin o Org Auditor.
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
Devoluciones:
  • Un objeto approvalTransactions.
Ejemplo de valor devuelto:
{
"approvalTransactionId": "",
"approvalPolicyId": "",
"approvalPolicyVersion": "",
"fromAccount": "",
"toAccount": "",
"totalApprovals": "",
"numberaOfApprovalsRequired": "",
"status": "",
"approverDetails": ""
}
getApprovalStatusByOperationId
Este método obtiene los detalles de aprobación de una solicitud de retención especificada. Este método se puede llamar mediante Token Admin, Token Auditor, Org Admin o Org Auditor.
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
Ejemplo de valor devuelto:
{
"approvalWorkflowExists": "",
"activePolicyFound": "",
"receivedApprovals": "",
"requiredApprovals": "",
"approvalRequirementMet": "",
"nextApprovalSequence": "",
"nextApprover": "",
"workflowStatus": "",
"approvalPolicyId": "",
"approvalPolicyVersion": ""
}
approveTransaction
Un aprobador puede utilizar este método para aprobar una transacción de retención.
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
  • amount: uint256: importe que se debe aprobar.
rejectTransaction
Un notario puede usar este método para rechazar una transacción de retención.
Parámetros:
  • opId: string: ID de operación de la solicitud de retención.
getTransferRestriction
Este método devuelve la configuración de restricción de transferencia actual, incluidos los límites de transacción inferior y superior. Este método se puede llamar mediante Token Admin o Token Auditor.
Parámetros:
  • account: address: dirección de cartera del usuario para comprobar el saldo retenido. La dirección no debe ser cero.
Devoluciones:
  • Un objeto transferRestriction.
Ejemplo de valor devuelto:
transactionLowerLimit: 0transactionUpperLimit: 100
setOrupdateTransferRestriction
Este método actualiza la configuración de restricción de transferencia mediante la definición de nuevos límites de transacción superior e inferior. Este método se puede llamar mediante Token Admin.
Parámetros:
  • transactionLowerLimit: uint256: importe mínimo de transacción permitido.
  • transactionUpperLimit: uint256: importe máximo de transacción permitido.

Métodos de Gestión de Contexto

setTokenContext
Este método define la dirección de contrato de token para el contrato de cuenta. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • tokenAddress: address: dirección de contrato del token desplegado, que no debe ser cero.
getTokenContext
Este método obtiene la dirección de contrato de token para el contrato de cuenta. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
Devoluciones
  • La dirección del contrato de token
setGovernanceContext
Este método define el contrato de gobernanza que se debe utilizar para gestionar el ciclo de vida de gobernanza para el contrato de cuenta. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • uuid: string: ID único definido por los activos digitales Token Admin antes del despliegue del contrato.
  • governance: address: dirección del contrato del contrato de gobernanza desplegado, que no debe ser cero.
getGovernanceContext
Este método obtiene los detalles del contexto del gobierno. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
Devoluciones
  • Un objeto governanceContext.
Ejemplo de valor devuelto:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Este método comprueba si el despliegue está activo. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
Devoluciones:
  • Valor booleano (verdadero o falso) que indica si el despliegue está activo.