emit
Conceptos
Sección titulada «Conceptos»Comportamiento
Sección titulada «Comportamiento»- Lee una transacción de
read_ptr - Valida la transacción contra las reglas de emisión
- Emite la transacción al consenso cuando es válida
- Escribe el hash canónico de la transacción en
write_ptr
Con la enmienda HooksUpdate2, usa prepare() antes de emit() para inyectar automáticamente todos los campos de emisión requeridos (Account, Sequence, SigningPubKey, Fee, EmitDetails, etc.) a partir de una transacción parcial.
- Esta función emite el JSON de transacción proporcionado.
- En caso de éxito, devuelve los hashes de la transacción emitida.
- Si hay un error, devuelve un código de error.
Definición
Sección titulada «Definición»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 | ByteArrayEjemplo
Sección titulada «Ejemplo»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)Parámetros
Sección titulada «Parámetros»| Nombre | Tipo | Descripción |
|---|---|---|
| write_ptr | uint32_t | Puntero a un buffer donde escribir el hash de la transacción |
| write_len | uint32_t | El tamaño del buffer para escribir el hash de la transacción (debe ser 32) |
| read_ptr | uint32_t | Puntero a la transacción a emitir |
| read_len | uint32_t | La longitud de la transacción |
| Nombre | Tipo | Descripción |
|---|---|---|
| txJson | Record<string, any> | Transaction | El JSON de la transacción a emitir. |
Código de retorno
Sección titulada «Código de retorno»| Tipo | Descripción |
|---|---|
| int64_t | En caso de éxito, el número de bytes del hash de transacción escritos (32), o: Si es negativo, un error: OUT_OF_BOUNDS- punteros/longitudes especificados fuera de la memoria del hook. PREREQUISITE_NOT_MET- se debe llamar primero a etxn_reserveTOO_MANY_EMITTED_TXN- el número de transacciones emitidas es ahora mayor que la promesa hecha cuando se llamó a etxn_reserveEMISSION_FAILURE- la transacción estaba malformada según las reglas de emisión. |
| Tipo | Descripción |
|---|---|
| ErrorCode | ByteArray | Devuelve un ErrorCode si hay un error, o un array de hashes de la transacción emitida en caso de éxito. |