Output the canonical hash of the originating transaction
Behaviour
- Write the canonical hash of the originating transaction to the output buffer.
- If flags = 1 and the transaction is an EMIT_FAILURE transaction then write the canonical hash of the originating transaction that caused the emission.
Definition
int64_t otxn_id (
uint32_t write_ptr,
uint32_t write_len,
uint32_t flags
);
Example
uint8_t txn_id[32];
int64_t bytes_written =
otxn_id(txn_id, 32, 0);
Parameters
Name | Type | Description |
---|---|---|
write_ptr | uint32_t | Pointer to a buffer of to store the hash. |
write_len | uint32_t | Length of the output buffer. Should be at least 32 bytes. |
flags | uint32_t | If 0 :Write the canonical hash of the originating transaction. If 1 AND the originating transaction is an EMIT_FAILURE:Write the canonical hash of the emitting transaction. |
Return Code
Type | Description |
---|---|
int64_t | The number of bytes written If negative, an error: OUT_OF_BOUNDS - pointers/lengths specified outside of hook memory. TOO_SMALL - output buffer was not large enough to hold the serialized object |