Saltearse al contenido

otxn_field

  • Busca el campo sf especificado en la transacción origen
  • Escribe la versión serializada del campo en el buffer de salida
int64_t otxn_field (
uint32_t write_ptr,
uint32_t write_len,
uint32_t field_id
);
int64_t account_field_len =
otxn_field(account_field, 20, sfAccount);
NombreTipoDescripción
write_ptruint32_tPuntero a un buffer adecuado para almacenar la salida
write_lenuint32_tLongitud del buffer de salida
field_iduint32_t

Código sf del campo que se desea obtener.

Para calcularlo manualmente: toma el type serializado y desplázalo a los 16 bits más altos de un uint32_t, luego coloca el field en los 16 bits más bajos.

Ejemplo:
sfEmitNoncetype=5, field=11 → 0x050BU

TipoDescripción
int64_t

Número de bytes escritos

Si es negativo, error:
OUT_OF_BOUNDS
- punteros fuera de la memoria del hook

TOO_SMALL
- el buffer de salida es demasiado pequeño

INVALID_FIELD
- el field_id no es válido

DOESNT_EXIST
- el campo no existe en la transacción origen