Saltar al contenido principal

Endpoints de Smart Contract

Obtener Contrato​

Retorna metadatos sobre un smart contract específico desplegado en una blockchain determinada. Esto se utiliza típicamente para inspeccionar la dirección del contrato, información de despliegue, versión y detalles del VM/runtime.

Solicitud

GET /blockchains/{blockchainId}/contracts/{address}

Para un node ejecutándose en https://tn-w-1.uledger.net/, la URL completa es:
https://tn-w-1.uledger.net//blockchains/{blockchainId}/contracts/{address}

Parámetros de ruta

  • blockchainId – El identificador de la blockchain (uno de los valores retornados por GET /blockchains).
  • address – La dirección del contrato on-chain a inspeccionar.

Respuesta

La respuesta contiene metadatos del contrato. Los campos exactos dependen del node y la configuración del VM, pero comúnmente incluyen:

  • blockchainId – ID de la blockchain donde está desplegado el contrato.
  • address – Dirección del contrato.
  • creator – Dirección que desplegó el contrato (si se registra).
  • deploymentTxId – ID de la transaction que creó el contrato.
  • codeHash – Hash del código o artefacto del contrato.
  • vmType – Tipo de VM/runtime del contrato.
  • version – Versión del contrato, si el versionado está habilitado.
  • status – Estado actual del contrato (ej. ACTIVE, PAUSED, UPGRADED).
  • metadata – Metadatos adicionales opcionales definidos por su despliegue.

Ejemplo de respuesta

{

"blockchainId": "{blockchainId}",
"address": "{contractAddress}",
"creator": "{creatorAddress}",
"deploymentTxId": "{deploymentTransactionId}",
"codeHash": "c5b21c4e8f6c4d7e8f3d...",
"vmType": "uledgervm-v1",
"version": 3,
"status": "ACTIVE",
"metadata": {
"name": "ExampleContract",
"description": "Demo contract used for documentation",
"tags": ["demo", "test"]
}
}
curl -X GET -L "https://tn-w-1.uledger.net//blockchains/{blockchainId}/contracts/{address}" | jq

Obtener Estado del Contrato​

Retorna la instantánea del estado actual de un smart contract en una blockchain determinada. La estructura del estado es definida por el contrato y típicamente se expone como un objeto JSON o mapa de clave-valor.

Solicitud

GET /blockchains/{blockchainId}/contracts/{address}/state

Para un node ejecutándose en http://my.node1.uledger.io, la URL completa es:
http://my.node1.uledger.io/blockchains/{blockchainId}/contracts/{address}/state

Parámetros de ruta

  • blockchainId – El identificador de la blockchain.
  • address – La dirección del contrato cuyo estado desea inspeccionar.

Respuesta

La respuesta contiene el último estado on-chain del contrato. La estructura exacta está determinada por el contrato, pero un patrón típico es:

  • blockchainId – ID de la cadena donde reside el contrato.
  • address – Dirección del contrato.
  • version – Número de versión/estado actual del contrato.
  • state – Objeto JSON que representa el estado del contrato.

Ejemplo de respuesta

{

"blockchainId": "{blockchainId}",
"address": "{contractAddress}",
"version": 3,
"state": {
"owner": "{ownerAddress}",
"totalSupply": "1000000",
"balances": {
"{ownerAddress}": "750000",
"{otherAddress}": "250000"
},
"paused": false
}
}
curl -X GET -L "http://my.node1.uledger.io/blockchains/{blockchainId}/contracts/{address}/state" | jq

Obtener Traza / Logs del Contrato​

Retorna la traza de ejecución o los logs de una llamada específica al contrato, identificada por la transaction que invocó el contrato. Esto es útil para depuración y observación de eventos emitidos.

Solicitud

GET /blockchains/{blockchainId}/contracts/{address}/trace/{transactionId}

Para un node ejecutándose en http://my.node1.uledger.io, la URL completa es:
http://my.node1.uledger.io/blockchains/{blockchainId}/contracts/{address}/trace/{transactionId}

Parámetros de ruta

  • blockchainId – El identificador de la blockchain.
  • address – Dirección del contrato que procesó la transaction.
  • transactionId – La transaction cuya traza de ejecución del contrato desea obtener.

Respuesta

El formato de la respuesta depende de la configuración de su node, pero una estructura típica es:

  • blockchainId, address, transactionId – Contexto de la traza.
  • events – Array de eventos del contrato/entradas de log emitidas durante la ejecución.
  • trace – Información opcional de traza de ejecución de bajo nivel.

Ejemplo de respuesta

{

"blockchainId": "{blockchainId}",
"address": "{contractAddress}",
"transactionId": "{transactionId}",
"events": [
{
"name": "Transfer",
"timestamp": "2025-11-11T20:25:01Z",
"indexedArgs": {
"from": "{fromAddress}",
"to": "{toAddress}"
},
"data": {
"amount": "1000"
}
},
{
"name": "BalanceUpdated",
"timestamp": "2025-11-11T20:25:01Z",
"data": {
"owner": "{toAddress}",
"newBalance": "26000"
}
}
],
"trace": {
"steps": 42,
"gasUsed": 12345
}
}
curl -X GET -L "http://my.node1.uledger.io/blockchains/{blockchainId}/contracts/{address}/trace/{transactionId}" | jq