mirror of
https://github.com/Xahau/xahaud.git
synced 2026-07-26 00:20:20 +00:00
The entropy-quality requirement becomes an explicit, required argument at every call site — there is deliberately no default and no network constant: - dice(sides) -> dice(sides, min_tier, min_count) - random(ptr, len) -> random(ptr, len, min_tier, min_count) - fairRng gates on freshness && tier >= min_tier && count >= min_count; the hard-coded 'EntropyCount >= 5' network constant is deleted — the hook author states what their application needs and gets TOO_LITTLE_ENTROPY when this ledger cannot meet it - WASM imports have no default parameters, so the old no-argument shape was really a hidden constant invisible at the call site; requiring the arguments makes weak-entropy acceptance (min_tier=1) a deliberate, reviewable opt-in rather than an accident - hook/extern.h and hook/sfcodes.h regenerated (CI-verified) - test hooks updated and recompiled; new test pins the requirement gate: dice(6, 3, 21) against count=20 returns TOO_LITTLE_ENTROPY
370 lines
6.9 KiB
C
370 lines
6.9 KiB
C
// For documentation please see: https://xrpl-hooks.readme.io/reference/
|
|
// Generated using generate_extern.sh
|
|
#include <stdint.h>
|
|
#ifndef HOOK_EXTERN
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern int32_t __attribute__((noduplicate))
|
|
_g(uint32_t guard_id, uint32_t maxiter);
|
|
|
|
extern int64_t
|
|
accept(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
|
|
|
|
extern int64_t
|
|
rollback(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
|
|
|
|
extern int64_t
|
|
util_raddr(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
util_accid(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
util_verify(
|
|
uint32_t dread_ptr,
|
|
uint32_t dread_len,
|
|
uint32_t sread_ptr,
|
|
uint32_t sread_len,
|
|
uint32_t kread_ptr,
|
|
uint32_t kread_len);
|
|
|
|
extern int64_t
|
|
util_sha512h(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
util_keylet(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t keylet_type,
|
|
uint32_t a,
|
|
uint32_t b,
|
|
uint32_t c,
|
|
uint32_t d,
|
|
uint32_t e,
|
|
uint32_t f);
|
|
|
|
extern int64_t
|
|
sto_validate(uint32_t tread_ptr, uint32_t tread_len);
|
|
|
|
extern int64_t
|
|
sto_subfield(uint32_t read_ptr, uint32_t read_len, uint32_t field_id);
|
|
|
|
extern int64_t
|
|
sto_subarray(uint32_t read_ptr, uint32_t read_len, uint32_t array_id);
|
|
|
|
extern int64_t
|
|
sto_emplace(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t sread_ptr,
|
|
uint32_t sread_len,
|
|
uint32_t fread_ptr,
|
|
uint32_t fread_len,
|
|
uint32_t field_id);
|
|
|
|
extern int64_t
|
|
sto_erase(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len,
|
|
uint32_t field_id);
|
|
|
|
extern int64_t
|
|
etxn_burden();
|
|
|
|
extern int64_t
|
|
etxn_details(uint32_t write_ptr, uint32_t write_len);
|
|
|
|
extern int64_t
|
|
etxn_fee_base(uint32_t read_ptr, uint32_t read_len);
|
|
|
|
extern int64_t
|
|
etxn_reserve(uint32_t count);
|
|
|
|
extern int64_t
|
|
etxn_generation();
|
|
|
|
extern int64_t
|
|
etxn_nonce(uint32_t write_ptr, uint32_t write_len);
|
|
|
|
extern int64_t
|
|
emit(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
float_set(int32_t exponent, int64_t mantissa);
|
|
|
|
extern int64_t
|
|
float_multiply(int64_t float1, int64_t float2);
|
|
|
|
extern int64_t
|
|
float_mulratio(
|
|
int64_t float1,
|
|
uint32_t round_up,
|
|
uint32_t numerator,
|
|
uint32_t denominator);
|
|
|
|
extern int64_t
|
|
float_negate(int64_t float1);
|
|
|
|
extern int64_t
|
|
float_compare(int64_t float1, int64_t float2, uint32_t mode);
|
|
|
|
extern int64_t
|
|
float_sum(int64_t float1, int64_t float2);
|
|
|
|
extern int64_t
|
|
float_sto(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t cread_ptr,
|
|
uint32_t cread_len,
|
|
uint32_t iread_ptr,
|
|
uint32_t iread_len,
|
|
int64_t float1,
|
|
uint32_t field_code);
|
|
|
|
extern int64_t
|
|
float_sto_set(uint32_t read_ptr, uint32_t read_len);
|
|
|
|
extern int64_t
|
|
float_invert(int64_t float1);
|
|
|
|
extern int64_t
|
|
float_divide(int64_t float1, int64_t float2);
|
|
|
|
extern int64_t
|
|
float_one();
|
|
|
|
extern int64_t
|
|
float_mantissa(int64_t float1);
|
|
|
|
extern int64_t
|
|
float_sign(int64_t float1);
|
|
|
|
extern int64_t
|
|
float_int(int64_t float1, uint32_t decimal_places, uint32_t abs);
|
|
|
|
extern int64_t
|
|
float_log(int64_t float1);
|
|
|
|
extern int64_t
|
|
float_root(int64_t float1, uint32_t n);
|
|
|
|
extern int64_t
|
|
fee_base();
|
|
|
|
extern int64_t
|
|
ledger_seq();
|
|
|
|
extern int64_t
|
|
ledger_last_time();
|
|
|
|
extern int64_t
|
|
ledger_last_hash(uint32_t write_ptr, uint32_t write_len);
|
|
|
|
extern int64_t
|
|
ledger_nonce(uint32_t write_ptr, uint32_t write_len);
|
|
|
|
extern int64_t
|
|
ledger_keylet(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t lread_ptr,
|
|
uint32_t lread_len,
|
|
uint32_t hread_ptr,
|
|
uint32_t hread_len);
|
|
|
|
extern int64_t
|
|
hook_account(uint32_t write_ptr, uint32_t write_len);
|
|
|
|
extern int64_t
|
|
hook_hash(uint32_t write_ptr, uint32_t write_len, int32_t hook_no);
|
|
|
|
extern int64_t
|
|
hook_param_set(
|
|
uint32_t read_ptr,
|
|
uint32_t read_len,
|
|
uint32_t kread_ptr,
|
|
uint32_t kread_len,
|
|
uint32_t hread_ptr,
|
|
uint32_t hread_len);
|
|
|
|
extern int64_t
|
|
hook_param(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
hook_again();
|
|
|
|
extern int64_t
|
|
hook_skip(uint32_t read_ptr, uint32_t read_len, uint32_t flags);
|
|
|
|
extern int64_t
|
|
hook_pos();
|
|
|
|
extern int64_t
|
|
slot(uint32_t write_ptr, uint32_t write_len, uint32_t slot);
|
|
|
|
extern int64_t
|
|
slot_clear(uint32_t slot);
|
|
|
|
extern int64_t
|
|
slot_count(uint32_t slot);
|
|
|
|
extern int64_t
|
|
slot_set(uint32_t read_ptr, uint32_t read_len, uint32_t slot);
|
|
|
|
extern int64_t
|
|
slot_size(uint32_t slot);
|
|
|
|
extern int64_t
|
|
slot_subarray(uint32_t parent_slot, uint32_t array_id, uint32_t new_slot);
|
|
|
|
extern int64_t
|
|
slot_subfield(uint32_t parent_slot, uint32_t field_id, uint32_t new_slot);
|
|
|
|
extern int64_t
|
|
slot_type(uint32_t slot_no, uint32_t flags);
|
|
|
|
extern int64_t
|
|
slot_float(uint32_t slot_no);
|
|
|
|
extern int64_t
|
|
state_set(
|
|
uint32_t read_ptr,
|
|
uint32_t read_len,
|
|
uint32_t kread_ptr,
|
|
uint32_t kread_len);
|
|
|
|
extern int64_t
|
|
state_foreign_set(
|
|
uint32_t read_ptr,
|
|
uint32_t read_len,
|
|
uint32_t kread_ptr,
|
|
uint32_t kread_len,
|
|
uint32_t nread_ptr,
|
|
uint32_t nread_len,
|
|
uint32_t aread_ptr,
|
|
uint32_t aread_len);
|
|
|
|
extern int64_t
|
|
state(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t kread_ptr,
|
|
uint32_t kread_len);
|
|
|
|
extern int64_t
|
|
state_foreign(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t kread_ptr,
|
|
uint32_t kread_len,
|
|
uint32_t nread_ptr,
|
|
uint32_t nread_len,
|
|
uint32_t aread_ptr,
|
|
uint32_t aread_len);
|
|
|
|
extern int64_t
|
|
trace(
|
|
uint32_t mread_ptr,
|
|
uint32_t mread_len,
|
|
uint32_t dread_ptr,
|
|
uint32_t dread_len,
|
|
uint32_t as_hex);
|
|
|
|
extern int64_t
|
|
trace_num(uint32_t read_ptr, uint32_t read_len, int64_t number);
|
|
|
|
extern int64_t
|
|
trace_float(uint32_t read_ptr, uint32_t read_len, int64_t float1);
|
|
|
|
extern int64_t
|
|
otxn_burden();
|
|
|
|
extern int64_t
|
|
otxn_field(uint32_t write_ptr, uint32_t write_len, uint32_t field_id);
|
|
|
|
extern int64_t
|
|
otxn_generation();
|
|
|
|
extern int64_t
|
|
otxn_id(uint32_t write_ptr, uint32_t write_len, uint32_t flags);
|
|
|
|
extern int64_t
|
|
otxn_type();
|
|
|
|
extern int64_t
|
|
otxn_slot(uint32_t slot_no);
|
|
|
|
extern int64_t
|
|
otxn_param(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
meta_slot(uint32_t slot_no);
|
|
|
|
extern int64_t
|
|
xpop_slot(uint32_t slot_no_tx, uint32_t slot_no_meta);
|
|
|
|
extern int64_t
|
|
prepare(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
xport_reserve(uint32_t count);
|
|
|
|
extern int64_t
|
|
xport(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t read_ptr,
|
|
uint32_t read_len);
|
|
|
|
extern int64_t
|
|
xport_cancel(uint32_t ticket_seq);
|
|
|
|
extern int64_t
|
|
dice(uint32_t sides, uint32_t min_tier, uint32_t min_count);
|
|
|
|
extern int64_t
|
|
random(
|
|
uint32_t write_ptr,
|
|
uint32_t write_len,
|
|
uint32_t min_tier,
|
|
uint32_t min_count);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#define HOOK_EXTERN
|
|
#endif // HOOK_EXTERN
|