emit
Concepts
Section titled “Concepts”Behaviour
Section titled “Behaviour”- Read a transaction from
read_ptr - Validate the transaction against the emission rules
- Emit the transaction into consensus when valid
- Write canonical transaction hash to
write_ptr
With the HooksUpdate2 amendment, use prepare() before emit() to automatically inject all required emission fields (Account, Sequence, SigningPubKey, Fee, EmitDetails, etc.) from a partial transaction.
- This function emits the provided transaction JSON.
- On success, it returns the emitted transaction hashes.
- If there is an error, it returns an error code.
Definition
Section titled “Definition”int64_t emit ( uint32_t write_ptr, uint32_t write_len, uint32_t read_ptr, uint32_t read_len);function emit( txJson: Record<string, any> | Transaction ): ErrorCode | ByteArrayExample
Section titled “Example”uint8_t emithash[32];if (emit(SBUF(emithash), SBUF(tx)) < 0) rollback(SBUF("hook: emit failed"), __LINE__);const emitResult = emit(txJson)if(typeof emitResult === 'number') rollback("Failed to emit!", 1)Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| write_ptr | uint32_t | Pointer to a buffer to write the transaction hash to |
| write_len | uint32_t | The size of the buffer to write the transaction hash to (should be 32.) |
| read_ptr | uint32_t | Pointer to the transaction to emit |
| read_len | uint32_t | The length of the transaction |
| Name | Type | Description |
|---|---|---|
| txJson | Record<string, any> | Transaction | The TX JSON to emit. |
Return Code
Section titled “Return Code”| Type | Description |
|---|---|
| int64_t | On success, the number of bytes of transaction hash written (32), or: If negative, an error: OUT_OF_BOUNDS- pointers/lengths specified outside of hook memory. PREREQUISITE_NOT_MET- etxn_reserve must be called firstTOO_MANY_EMITTED_TXN- the number of emitted transactions is now greater than the promise made when etxn_reserve was called earlierEMISSION_FAILURE- the transaction was malformed according to the emission rules. |
| Type | Description |
|---|---|
| ErrorCode | ByteArray | Returns an ErrorCode if there is an error, or an array of emitted transaction hashes on success. |