Skip to content

otxn_param

  • Look up the value for a named parameter specified in read_ptr on the originating transaction (ttINVOKE only).
  • Write the parameter’s value to write_ptr
int64_t otxn_param (
uint32_t write_ptr,
uint32_t write_len,
uint32_t read_ptr,
uint32_t read_len
);
uint8_t pname[] = {0xCAU, 0xFEU};
uint8_t pvalue[32];
int64_t value_len =
otxn_param(pvalue, 32, pname, 2);
NameTypeDescription
write_ptruint32_tPointer to a buffer of a suitable size to store the output. Should be at least 32 bytes.
write_lenuint32_tLength of the output buffer.
read_ptruint32_tPointer to a buffer containing the parameter’s name
read_lenuint32_tLength of the parameter’s name
TypeDescription
int64_t

The number of bytes written

If negative, an error:
OUT_OF_BOUNDS
- pointers/lengths specified outside of hook memory.

DOESNT_EXIST
- The specified paramater doesn’t exist or is null

TOO_SMALL
- The parameter name can’t be null

TOO_BIG
- The parameter name is greater than 32 bytes