Serialize and output a field from the originating transaction
Find the specified sf
field in the originating transaction
Write the serialized version of the field to the output buffer
C
C
write_ptr
uint32_t
Pointer to a buffer of a suitable size to store the output.
write_len
uint32_t
Length of the output buffer.
field_id
uint32_t
The sf
code of the field you are searching for.
To compute this manually take the serialized type
and shift it into the 16 highest bits of uint32_t, then take the field
and place it in the 16 lowest bits.
For example:
sfEmitNonce
has type
5 and field
11 thus its value is 0x050BU
❗️ImportantThe field code is not written to the output buffer, only the payload of the field is.
At time of writing for Hooks Public Testnet,
STI_ACCOUNT
fields likesfAccount
are returned without the leading variable length byte.
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 field
INVALID_FIELD
- the sf
field_id was invalid
DOESNT_EXIST
- the field was not found in the originating transaction