Read Transactions
A transaction is a request for a change on the blockchain, which can either be a transfer of VET or the execution of a contract's function. Each transaction is signed and submitted by a single entity and may contain multiple instructions, known as multi-clause, to interact with various recipients on the blockchain.
The most relevant information of a transaction includes:
id: The unique identifier of the transaction.
chainTag: Identifies the chain to which the transaction belongs.
blockRef: The block on which the call was based.
expiration: The maximum number of blocks within which the transaction must be included in the blockchain (based on
blockRef
), or it will fail.dependsOn: Requires this transaction id to be successful first before being included in the blockchain.
origin: The sender of the transaction.
meta: Information about the block where this transaction was included, providing more details about time and block through blockID, blockNumber, and blockTimestamp.
reverted: Indicates whether the transaction failed.
clauses: The instructions to be executed, including a list of the recipients to be called, the data sent, and potential VET transfer values.
outputs: Events that have been emitted as a result of the executed instructions.
A transaction's complete details are comprised of two main components:
The basic version, which includes all input data and details on how the transaction is stored.
The receipt, which lists all changes emitted by the blockchain, including:
the reverted flag,
the address of a newly deployed contract,
VET transfers,
events initiated by contracts.
Example snippet to access transaction details:
// get a single transaction
const txId =
'0xfc99fe103fccbe61b3c042c1da3499b883d1b17fb40160ed1170ad5e63751e07';
const tx = await thor.transactions.getTransaction(txId);
console.log(tx);
// load effected changes & outputs with the transaction
const txReceipt = await thor.transactions.getTransactionReceipt(txId);
console.log(txReceipt);
if your transaction is still pending, the receipt will be null
, so if you wish to wait for your transaction receipt you will need to use waitForTransactionReceipt instead.
// load effected changes & outputs with the transaction
const txReceipt = await thor.transactions.waitForTransactionReceipt(txId);
console.log(txReceipt);
Test it yourself:
Type definition and documentation of all attributes:
The same information is available using the JSON-API:
Successful Transaction: GET /transactions/{transactionId}
{
"id": "0xfc99fe103fccbe61b3c042c1da3499b883d1b17fb40160ed1170ad5e63751e07",
"type": 0,
"chainTag": 74,
"blockRef": "0x00bc614dda10f9e1",
"expiration": 720,
"clauses": [
{
"to": "0x0000000000000000000000000000456e65726779",
"value": "0x0",
"data": "0xa9059cbb00000000000000000000000011e1b586dd371471d0b52046ee3d4309a6c29c6c0000000000000000000000000000000000000000000000009087b2e881f47600"
}
],
"gasPriceCoef": 0,
"gas": 90000,
"origin": "0x2d7c8293b20344223668ed3fd88301381dc35ce0",
"delegator": null,
"nonce": "0xe83fd778763a5360",
"dependsOn": null,
"size": 193,
"meta": {
"blockID": "0x00bc614e285d68f8819b6dfdd729dad6fafbed9d2fdd65b57e4001a47d7f280c",
"blockNumber": 12345678,
"blockTimestamp": 1653978240
}
}
Successful Transaction Receipt: GET /transactions/{transactionId}/receipt
{
"gasUsed": 36582,
"gasPayer": "0x2d7c8293b20344223668ed3fd88301381dc35ce0",
"paid": "0x513a75a0fbbc000",
"reward": "0x185e567d1852000",
"reverted": false,
"meta": {
"blockID": "0x00bc614e285d68f8819b6dfdd729dad6fafbed9d2fdd65b57e4001a47d7f280c",
"blockNumber": 12345678,
"blockTimestamp": 1653978240,
"txID": "0xfc99fe103fccbe61b3c042c1da3499b883d1b17fb40160ed1170ad5e63751e07",
"txOrigin": "0x2d7c8293b20344223668ed3fd88301381dc35ce0"
},
"outputs": [
{
"contractAddress": null,
"events": [
{
"address": "0x0000000000000000000000000000456e65726779",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000002d7c8293b20344223668ed3fd88301381dc35ce0",
"0x00000000000000000000000011e1b586dd371471d0b52046ee3d4309a6c29c6c"
],
"data": "0x0000000000000000000000000000000000000000000000009087b2e881f47600"
}
],
"transfers": []
}
]
}
Unsuccessful Transaction Receipt: GET /transactions/{transactionId}/receipt
{
"gasUsed": 170831,
"gasPayer": "0x9bb6c24707fc314a3b01324df2841cf61fec58a5",
"paid": "0x17b522e4dc3f6000",
"reward": "0x71cbdab0edfd000",
"reverted": true,
"meta": {
"blockID": "0x01155656478ea00e7fd4f55a15cbb8124e504b7a874c0309b24dd90db2e5d500",
"blockNumber": 18175574,
"blockTimestamp": 1712283390,
"txID": "0xae4a0ce2423c49cdb286cdde6691bdc77e9d06e2f5a4d0c3205c79af7d89bf7b",
"txOrigin": "0x9bb6c24707fc314a3b01324df2841cf61fec58a5"
},
"outputs": []
}
Last updated
Was this helpful?