mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Add hook header generators and CI verification workflow (#597)
This commit is contained in:
36
.github/workflows/verify-generated-headers.yml
vendored
Normal file
36
.github/workflows/verify-generated-headers.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name: Verify Generated Hook Headers
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
verify-generated-headers:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- target: hook/error.h
|
||||||
|
generator: ./hook/generate_error.sh
|
||||||
|
- target: hook/extern.h
|
||||||
|
generator: ./hook/generate_extern.sh
|
||||||
|
- target: hook/sfcodes.h
|
||||||
|
generator: bash ./hook/generate_sfcodes.sh
|
||||||
|
- target: hook/tts.h
|
||||||
|
generator: ./hook/generate_tts.sh
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: ${{ matrix.target }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Verify ${{ matrix.target }}
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
chmod +x hook/generate_*.sh || true
|
||||||
|
|
||||||
|
tmp=$(mktemp)
|
||||||
|
trap 'rm -f "$tmp"' EXIT
|
||||||
|
|
||||||
|
${{ matrix.generator }} > "$tmp"
|
||||||
|
diff -u ${{ matrix.target }} "$tmp"
|
||||||
@@ -12,8 +12,6 @@ accept(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
|
|||||||
extern int64_t
|
extern int64_t
|
||||||
rollback(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
|
rollback(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
|
||||||
|
|
||||||
// UTIL
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
util_raddr(
|
util_raddr(
|
||||||
uint32_t write_ptr,
|
uint32_t write_ptr,
|
||||||
@@ -56,8 +54,6 @@ util_keylet(
|
|||||||
uint32_t e,
|
uint32_t e,
|
||||||
uint32_t f);
|
uint32_t f);
|
||||||
|
|
||||||
// STO
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
sto_validate(uint32_t tread_ptr, uint32_t tread_len);
|
sto_validate(uint32_t tread_ptr, uint32_t tread_len);
|
||||||
|
|
||||||
@@ -85,8 +81,6 @@ sto_erase(
|
|||||||
uint32_t read_len,
|
uint32_t read_len,
|
||||||
uint32_t field_id);
|
uint32_t field_id);
|
||||||
|
|
||||||
// EMITTED TXN
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
etxn_burden(void);
|
etxn_burden(void);
|
||||||
|
|
||||||
@@ -112,8 +106,6 @@ emit(
|
|||||||
uint32_t read_ptr,
|
uint32_t read_ptr,
|
||||||
uint32_t read_len);
|
uint32_t read_len);
|
||||||
|
|
||||||
// FLOAT
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
float_set(int32_t exponent, int64_t mantissa);
|
float_set(int32_t exponent, int64_t mantissa);
|
||||||
|
|
||||||
@@ -174,8 +166,6 @@ float_log(int64_t float1);
|
|||||||
extern int64_t
|
extern int64_t
|
||||||
float_root(int64_t float1, uint32_t n);
|
float_root(int64_t float1, uint32_t n);
|
||||||
|
|
||||||
// LEDGER
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
fee_base(void);
|
fee_base(void);
|
||||||
|
|
||||||
@@ -200,8 +190,6 @@ ledger_keylet(
|
|||||||
uint32_t hread_ptr,
|
uint32_t hread_ptr,
|
||||||
uint32_t hread_len);
|
uint32_t hread_len);
|
||||||
|
|
||||||
// HOOK
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
hook_account(uint32_t write_ptr, uint32_t write_len);
|
hook_account(uint32_t write_ptr, uint32_t write_len);
|
||||||
|
|
||||||
@@ -233,8 +221,6 @@ hook_skip(uint32_t read_ptr, uint32_t read_len, uint32_t flags);
|
|||||||
extern int64_t
|
extern int64_t
|
||||||
hook_pos(void);
|
hook_pos(void);
|
||||||
|
|
||||||
// SLOT
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
slot(uint32_t write_ptr, uint32_t write_len, uint32_t slot);
|
slot(uint32_t write_ptr, uint32_t write_len, uint32_t slot);
|
||||||
|
|
||||||
@@ -262,8 +248,6 @@ slot_type(uint32_t slot_no, uint32_t flags);
|
|||||||
extern int64_t
|
extern int64_t
|
||||||
slot_float(uint32_t slot_no);
|
slot_float(uint32_t slot_no);
|
||||||
|
|
||||||
// STATE
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
state_set(
|
state_set(
|
||||||
uint32_t read_ptr,
|
uint32_t read_ptr,
|
||||||
@@ -300,8 +284,6 @@ state_foreign(
|
|||||||
uint32_t aread_ptr,
|
uint32_t aread_ptr,
|
||||||
uint32_t aread_len);
|
uint32_t aread_len);
|
||||||
|
|
||||||
// TRACE
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
trace(
|
trace(
|
||||||
uint32_t mread_ptr,
|
uint32_t mread_ptr,
|
||||||
@@ -316,8 +298,6 @@ trace_num(uint32_t read_ptr, uint32_t read_len, int64_t number);
|
|||||||
extern int64_t
|
extern int64_t
|
||||||
trace_float(uint32_t read_ptr, uint32_t read_len, int64_t float1);
|
trace_float(uint32_t read_ptr, uint32_t read_len, int64_t float1);
|
||||||
|
|
||||||
// OTXN
|
|
||||||
|
|
||||||
extern int64_t
|
extern int64_t
|
||||||
otxn_burden(void);
|
otxn_burden(void);
|
||||||
|
|
||||||
@@ -346,9 +326,8 @@ otxn_param(
|
|||||||
extern int64_t
|
extern int64_t
|
||||||
meta_slot(uint32_t slot_no);
|
meta_slot(uint32_t slot_no);
|
||||||
|
|
||||||
// featureHooks1
|
extern int64_t
|
||||||
|
xpop_slot(uint32_t slot_no_tx, uint32_t slot_no_meta);
|
||||||
extern int64_t xpop_slot(uint32_t, uint32_t);
|
|
||||||
|
|
||||||
#define HOOK_EXTERN
|
#define HOOK_EXTERN
|
||||||
#endif // HOOK_EXTERN
|
#endif // HOOK_EXTERN
|
||||||
|
|||||||
58
hook/generate_error.sh
Executable file
58
hook/generate_error.sh
Executable file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(dirname "$0")
|
||||||
|
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
|
||||||
|
|
||||||
|
ENUM_FILE="$SCRIPT_DIR/../src/ripple/app/hook/Enum.h"
|
||||||
|
|
||||||
|
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
|
||||||
|
echo '// Generated using generate_error.sh'
|
||||||
|
echo '#ifndef HOOK_ERROR_CODES'
|
||||||
|
sed -n '/enum hook_return_code/,/};/p' "$ENUM_FILE" |
|
||||||
|
awk '
|
||||||
|
function ltrim(s) { sub(/^[[:space:]]+/, "", s); return s }
|
||||||
|
function rtrim(s) { sub(/[[:space:]]+$/, "", s); return s }
|
||||||
|
function trim(s) { return rtrim(ltrim(s)) }
|
||||||
|
function emit(entry) {
|
||||||
|
entry = trim(entry)
|
||||||
|
if (entry == "")
|
||||||
|
return
|
||||||
|
gsub(/,[[:space:]]*$/, "", entry)
|
||||||
|
split(entry, parts, "=")
|
||||||
|
if (length(parts) < 2)
|
||||||
|
return
|
||||||
|
name = trim(parts[1])
|
||||||
|
value = trim(parts[2])
|
||||||
|
if (name == "" || value == "")
|
||||||
|
return
|
||||||
|
printf "#define %s %s\n", name, value
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
line = $0
|
||||||
|
if (line ~ /enum[[:space:]]+hook_return_code/)
|
||||||
|
next
|
||||||
|
if (line ~ /^[[:space:]]*\{/)
|
||||||
|
next
|
||||||
|
|
||||||
|
sub(/\/\/.*$/, "", line)
|
||||||
|
|
||||||
|
if (line ~ /^[[:space:]]*\};/) {
|
||||||
|
emit(buffer)
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line ~ /^[[:space:]]*$/)
|
||||||
|
next
|
||||||
|
|
||||||
|
buffer = buffer line " "
|
||||||
|
|
||||||
|
if (line ~ /,[[:space:]]*$/) {
|
||||||
|
emit(buffer)
|
||||||
|
buffer = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'
|
||||||
|
echo '#define HOOK_ERROR_CODES'
|
||||||
|
echo '#endif //HOOK_ERROR_CODES'
|
||||||
145
hook/generate_extern.sh
Executable file
145
hook/generate_extern.sh
Executable file
@@ -0,0 +1,145 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(dirname "$0")
|
||||||
|
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
|
||||||
|
|
||||||
|
APPLY_HOOK="$SCRIPT_DIR/../src/ripple/app/hook/applyHook.h"
|
||||||
|
|
||||||
|
{
|
||||||
|
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
|
||||||
|
echo '// Generated using generate_extern.sh'
|
||||||
|
echo '#include <stdint.h>'
|
||||||
|
echo '#ifndef HOOK_EXTERN'
|
||||||
|
echo
|
||||||
|
awk '
|
||||||
|
function trim(s) {
|
||||||
|
sub(/^[[:space:]]+/, "", s);
|
||||||
|
sub(/[[:space:]]+$/, "", s);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
function emit(ret, name, argc, argt, argn) {
|
||||||
|
attr = (name == "_g") ? " __attribute__((noduplicate))" : "";
|
||||||
|
if (!first)
|
||||||
|
printf("\n");
|
||||||
|
first = 0;
|
||||||
|
printf("extern %s%s\n", ret, attr);
|
||||||
|
if (argc == 0) {
|
||||||
|
printf("%s(void);\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (argc <= 3) {
|
||||||
|
line = argt[1] " " argn[1];
|
||||||
|
for (i = 2; i <= argc; ++i)
|
||||||
|
line = line ", " argt[i] " " argn[i];
|
||||||
|
printf("%s(%s);\n", name, line);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
printf("%s(\n", name);
|
||||||
|
for (i = 1; i <= argc; ++i) {
|
||||||
|
sep = (i < argc) ? "," : ");";
|
||||||
|
printf(" %s %s%s\n", argt[i], argn[i], sep);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function process(buffer, kind, payload, parts, n, i, arg, tokens, argc, argt, argn) {
|
||||||
|
if (kind == "func")
|
||||||
|
sub(/^DECLARE_HOOK_FUNCTION[[:space:]]*\(/, "", buffer);
|
||||||
|
else
|
||||||
|
sub(/^DECLARE_HOOK_FUNCNARG[[:space:]]*\(/, "", buffer);
|
||||||
|
buffer = trim(buffer);
|
||||||
|
sub(/\)[[:space:]]*$/, "", buffer);
|
||||||
|
n = split(buffer, parts, ",");
|
||||||
|
for (i = 1; i <= n; ++i)
|
||||||
|
parts[i] = trim(parts[i]);
|
||||||
|
ret = parts[1];
|
||||||
|
name = parts[2];
|
||||||
|
argc = 0;
|
||||||
|
delete argt;
|
||||||
|
delete argn;
|
||||||
|
for (i = 3; i <= n; ++i) {
|
||||||
|
arg = parts[i];
|
||||||
|
if (arg == "")
|
||||||
|
continue;
|
||||||
|
split(arg, tokens, /[[:space:]]+/);
|
||||||
|
if (length(tokens) < 2)
|
||||||
|
continue;
|
||||||
|
++argc;
|
||||||
|
argt[argc] = tokens[1];
|
||||||
|
argn[argc] = tokens[2];
|
||||||
|
}
|
||||||
|
emit(ret, name, argc, argt, argn);
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
first = 1;
|
||||||
|
in_block = 0;
|
||||||
|
in_macro = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
line = $0;
|
||||||
|
if (in_block) {
|
||||||
|
if (line ~ /\*\//) {
|
||||||
|
sub(/.*\*\//, "", line);
|
||||||
|
in_block = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
while (line ~ /\/\*/) {
|
||||||
|
if (line ~ /\/\*.*\*\//) {
|
||||||
|
gsub(/\/\*.*\*\//, "", line);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sub(/\/\*.*/, "", line);
|
||||||
|
in_block = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub(/\/\/.*$/, "", line);
|
||||||
|
line = trim(line);
|
||||||
|
if (line == "")
|
||||||
|
next;
|
||||||
|
|
||||||
|
if (!in_macro && line ~ /^DECLARE_HOOK_FUNCTION\(/) {
|
||||||
|
buffer = line;
|
||||||
|
kind = "func";
|
||||||
|
if (line ~ /\);[[:space:]]*$/) {
|
||||||
|
sub(/\);[[:space:]]*$/, "", buffer);
|
||||||
|
process(buffer, kind);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
in_macro = 1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if (!in_macro && line ~ /^DECLARE_HOOK_FUNCNARG\(/) {
|
||||||
|
buffer = line;
|
||||||
|
kind = "narg";
|
||||||
|
if (line ~ /\);[[:space:]]*$/) {
|
||||||
|
sub(/\);[[:space:]]*$/, "", buffer);
|
||||||
|
process(buffer, kind);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
in_macro = 1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if (in_macro) {
|
||||||
|
buffer = buffer " " line;
|
||||||
|
if (line ~ /\);[[:space:]]*$/) {
|
||||||
|
sub(/\);[[:space:]]*$/, "", buffer);
|
||||||
|
process(buffer, kind);
|
||||||
|
in_macro = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
' "$APPLY_HOOK"
|
||||||
|
|
||||||
|
echo '#define HOOK_EXTERN'
|
||||||
|
echo '#endif // HOOK_EXTERN'
|
||||||
|
}
|
||||||
@@ -1,8 +1,13 @@
|
|||||||
#/bin/bash
|
#!/bin/bash
|
||||||
RIPPLED_ROOT="../src/ripple"
|
set -eu
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(dirname "$0")
|
||||||
|
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
|
||||||
|
|
||||||
|
RIPPLED_ROOT="$SCRIPT_DIR/../src/ripple"
|
||||||
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
|
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
|
||||||
echo '// Generated using generate_sfcodes.sh'
|
echo '// Generated using generate_sfcodes.sh'
|
||||||
cat $RIPPLED_ROOT/protocol/impl/SField.cpp | grep -E '^CONSTRUCT_' |
|
cat "$RIPPLED_ROOT/protocol/impl/SField.cpp" | grep -E '^CONSTRUCT_' |
|
||||||
sed 's/UINT16,/1,/g' |
|
sed 's/UINT16,/1,/g' |
|
||||||
sed 's/UINT32,/2,/g' |
|
sed 's/UINT32,/2,/g' |
|
||||||
sed 's/UINT64,/3,/g' |
|
sed 's/UINT64,/3,/g' |
|
||||||
|
|||||||
38
hook/generate_tts.sh
Executable file
38
hook/generate_tts.sh
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(dirname "$0")
|
||||||
|
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
|
||||||
|
|
||||||
|
RIPPLED_ROOT="$SCRIPT_DIR/../src/ripple"
|
||||||
|
TX_FORMATS="$RIPPLED_ROOT/protocol/TxFormats.h"
|
||||||
|
|
||||||
|
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
|
||||||
|
echo '// Generated using generate_tts.sh'
|
||||||
|
sed -n '/enum TxType/,/};/p' "$TX_FORMATS" |
|
||||||
|
awk '
|
||||||
|
function ltrim(s) { sub(/^[[:space:]]+/, "", s); return s }
|
||||||
|
function rtrim(s) { sub(/[[:space:]]+$/, "", s); return s }
|
||||||
|
function trim(s) { return rtrim(ltrim(s)) }
|
||||||
|
|
||||||
|
/^[ \t]*tt[A-Z0-9_]+/ {
|
||||||
|
line = $0
|
||||||
|
deprecated = (line ~ /\[\[deprecated/)
|
||||||
|
gsub(/\[\[deprecated[^]]*\]\]/, "", line)
|
||||||
|
sub(/\/\/.*$/, "", line)
|
||||||
|
gsub(/,[[:space:]]*$/, "", line)
|
||||||
|
|
||||||
|
split(line, parts, "=")
|
||||||
|
if (length(parts) < 2)
|
||||||
|
next
|
||||||
|
|
||||||
|
name = trim(parts[1])
|
||||||
|
value = trim(parts[2])
|
||||||
|
if (name == "" || value == "")
|
||||||
|
next
|
||||||
|
|
||||||
|
prefix = deprecated ? "// " : ""
|
||||||
|
postfix = deprecated ? " // deprecated" : ""
|
||||||
|
printf "%s#define %s %s%s\n", prefix, name, value, postfix
|
||||||
|
}
|
||||||
|
'
|
||||||
@@ -108,6 +108,7 @@
|
|||||||
#define sfEmitParentTxnID ((5U << 16U) + 11U)
|
#define sfEmitParentTxnID ((5U << 16U) + 11U)
|
||||||
#define sfEmitNonce ((5U << 16U) + 12U)
|
#define sfEmitNonce ((5U << 16U) + 12U)
|
||||||
#define sfEmitHookHash ((5U << 16U) + 13U)
|
#define sfEmitHookHash ((5U << 16U) + 13U)
|
||||||
|
#define sfObjectID ((5U << 16U) + 14U)
|
||||||
#define sfBookDirectory ((5U << 16U) + 16U)
|
#define sfBookDirectory ((5U << 16U) + 16U)
|
||||||
#define sfInvoiceID ((5U << 16U) + 17U)
|
#define sfInvoiceID ((5U << 16U) + 17U)
|
||||||
#define sfNickname ((5U << 16U) + 18U)
|
#define sfNickname ((5U << 16U) + 18U)
|
||||||
@@ -132,6 +133,7 @@
|
|||||||
#define sfGovernanceFlags ((5U << 16U) + 99U)
|
#define sfGovernanceFlags ((5U << 16U) + 99U)
|
||||||
#define sfGovernanceMarks ((5U << 16U) + 98U)
|
#define sfGovernanceMarks ((5U << 16U) + 98U)
|
||||||
#define sfEmittedTxnID ((5U << 16U) + 97U)
|
#define sfEmittedTxnID ((5U << 16U) + 97U)
|
||||||
|
#define sfHookCanEmit ((5U << 16U) + 96U)
|
||||||
#define sfCron ((5U << 16U) + 95U)
|
#define sfCron ((5U << 16U) + 95U)
|
||||||
#define sfAmount ((6U << 16U) + 1U)
|
#define sfAmount ((6U << 16U) + 1U)
|
||||||
#define sfBalance ((6U << 16U) + 2U)
|
#define sfBalance ((6U << 16U) + 2U)
|
||||||
@@ -177,6 +179,8 @@
|
|||||||
#define sfHookParameterName ((7U << 16U) + 24U)
|
#define sfHookParameterName ((7U << 16U) + 24U)
|
||||||
#define sfHookParameterValue ((7U << 16U) + 25U)
|
#define sfHookParameterValue ((7U << 16U) + 25U)
|
||||||
#define sfBlob ((7U << 16U) + 26U)
|
#define sfBlob ((7U << 16U) + 26U)
|
||||||
|
#define sfRemarkValue ((7U << 16U) + 98U)
|
||||||
|
#define sfRemarkName ((7U << 16U) + 99U)
|
||||||
#define sfAccount ((8U << 16U) + 1U)
|
#define sfAccount ((8U << 16U) + 1U)
|
||||||
#define sfOwner ((8U << 16U) + 2U)
|
#define sfOwner ((8U << 16U) + 2U)
|
||||||
#define sfDestination ((8U << 16U) + 3U)
|
#define sfDestination ((8U << 16U) + 3U)
|
||||||
@@ -216,6 +220,7 @@
|
|||||||
#define sfHookDefinition ((14U << 16U) + 22U)
|
#define sfHookDefinition ((14U << 16U) + 22U)
|
||||||
#define sfHookParameter ((14U << 16U) + 23U)
|
#define sfHookParameter ((14U << 16U) + 23U)
|
||||||
#define sfHookGrant ((14U << 16U) + 24U)
|
#define sfHookGrant ((14U << 16U) + 24U)
|
||||||
|
#define sfRemark ((14U << 16U) + 97U)
|
||||||
#define sfGenesisMint ((14U << 16U) + 96U)
|
#define sfGenesisMint ((14U << 16U) + 96U)
|
||||||
#define sfActiveValidator ((14U << 16U) + 95U)
|
#define sfActiveValidator ((14U << 16U) + 95U)
|
||||||
#define sfImportVLKey ((14U << 16U) + 94U)
|
#define sfImportVLKey ((14U << 16U) + 94U)
|
||||||
@@ -236,6 +241,7 @@
|
|||||||
#define sfHookExecutions ((15U << 16U) + 18U)
|
#define sfHookExecutions ((15U << 16U) + 18U)
|
||||||
#define sfHookParameters ((15U << 16U) + 19U)
|
#define sfHookParameters ((15U << 16U) + 19U)
|
||||||
#define sfHookGrants ((15U << 16U) + 20U)
|
#define sfHookGrants ((15U << 16U) + 20U)
|
||||||
|
#define sfRemarks ((15U << 16U) + 97U)
|
||||||
#define sfGenesisMints ((15U << 16U) + 96U)
|
#define sfGenesisMints ((15U << 16U) + 96U)
|
||||||
#define sfActiveValidators ((15U << 16U) + 95U)
|
#define sfActiveValidators ((15U << 16U) + 95U)
|
||||||
#define sfImportVLKeys ((15U << 16U) + 94U)
|
#define sfImportVLKeys ((15U << 16U) + 94U)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// For documentation please see: https://xrpl-hooks.readme.io/reference/
|
// For documentation please see: https://xrpl-hooks.readme.io/reference/
|
||||||
|
// Generated using generate_tts.sh
|
||||||
#define ttPAYMENT 0
|
#define ttPAYMENT 0
|
||||||
#define ttESCROW_CREATE 1
|
#define ttESCROW_CREATE 1
|
||||||
#define ttESCROW_FINISH 2
|
#define ttESCROW_FINISH 2
|
||||||
@@ -8,6 +9,7 @@
|
|||||||
// #define ttNICKNAME_SET 6 // deprecated
|
// #define ttNICKNAME_SET 6 // deprecated
|
||||||
#define ttOFFER_CREATE 7
|
#define ttOFFER_CREATE 7
|
||||||
#define ttOFFER_CANCEL 8
|
#define ttOFFER_CANCEL 8
|
||||||
|
// #define ttCONTRACT 9 // deprecated
|
||||||
#define ttTICKET_CREATE 10
|
#define ttTICKET_CREATE 10
|
||||||
// #define ttSPINAL_TAP 11 // deprecated
|
// #define ttSPINAL_TAP 11 // deprecated
|
||||||
#define ttSIGNER_LIST_SET 12
|
#define ttSIGNER_LIST_SET 12
|
||||||
@@ -26,6 +28,7 @@
|
|||||||
#define ttNFTOKEN_CREATE_OFFER 27
|
#define ttNFTOKEN_CREATE_OFFER 27
|
||||||
#define ttNFTOKEN_CANCEL_OFFER 28
|
#define ttNFTOKEN_CANCEL_OFFER 28
|
||||||
#define ttNFTOKEN_ACCEPT_OFFER 29
|
#define ttNFTOKEN_ACCEPT_OFFER 29
|
||||||
|
#define ttCLAWBACK 30
|
||||||
#define ttURITOKEN_MINT 45
|
#define ttURITOKEN_MINT 45
|
||||||
#define ttURITOKEN_BURN 46
|
#define ttURITOKEN_BURN 46
|
||||||
#define ttURITOKEN_BUY 47
|
#define ttURITOKEN_BUY 47
|
||||||
@@ -33,6 +36,7 @@
|
|||||||
#define ttURITOKEN_CANCEL_SELL_OFFER 49
|
#define ttURITOKEN_CANCEL_SELL_OFFER 49
|
||||||
#define ttCRON 92
|
#define ttCRON 92
|
||||||
#define ttCRON_SET 93
|
#define ttCRON_SET 93
|
||||||
|
#define ttREMARKS_SET 94
|
||||||
#define ttREMIT 95
|
#define ttREMIT 95
|
||||||
#define ttGENESIS_MINT 96
|
#define ttGENESIS_MINT 96
|
||||||
#define ttIMPORT 97
|
#define ttIMPORT 97
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t read_ptr,
|
uint32_t read_ptr,
|
||||||
uint32_t read_len,
|
uint32_t read_len,
|
||||||
int64_t error_code);
|
int64_t error_code);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
util_raddr,
|
util_raddr,
|
||||||
@@ -97,6 +98,26 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t sread_len,
|
uint32_t sread_len,
|
||||||
uint32_t kread_ptr,
|
uint32_t kread_ptr,
|
||||||
uint32_t kread_len);
|
uint32_t kread_len);
|
||||||
|
DECLARE_HOOK_FUNCTION(
|
||||||
|
int64_t,
|
||||||
|
util_sha512h,
|
||||||
|
uint32_t write_ptr,
|
||||||
|
uint32_t write_len,
|
||||||
|
uint32_t read_ptr,
|
||||||
|
uint32_t read_len);
|
||||||
|
DECLARE_HOOK_FUNCTION(
|
||||||
|
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);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
sto_validate,
|
sto_validate,
|
||||||
@@ -133,25 +154,6 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t read_len,
|
uint32_t read_len,
|
||||||
uint32_t field_id);
|
uint32_t field_id);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
|
||||||
int64_t,
|
|
||||||
util_sha512h,
|
|
||||||
uint32_t write_ptr,
|
|
||||||
uint32_t write_len,
|
|
||||||
uint32_t read_ptr,
|
|
||||||
uint32_t read_len);
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
|
||||||
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);
|
|
||||||
DECLARE_HOOK_FUNCNARG(int64_t, etxn_burden);
|
DECLARE_HOOK_FUNCNARG(int64_t, etxn_burden);
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
@@ -214,7 +216,6 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
DECLARE_HOOK_FUNCTION(int64_t, float_invert, int64_t float1);
|
DECLARE_HOOK_FUNCTION(int64_t, float_invert, int64_t float1);
|
||||||
DECLARE_HOOK_FUNCTION(int64_t, float_divide, int64_t float1, int64_t float2);
|
DECLARE_HOOK_FUNCTION(int64_t, float_divide, int64_t float1, int64_t float2);
|
||||||
DECLARE_HOOK_FUNCNARG(int64_t, float_one);
|
DECLARE_HOOK_FUNCNARG(int64_t, float_one);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(int64_t, float_mantissa, int64_t float1);
|
DECLARE_HOOK_FUNCTION(int64_t, float_mantissa, int64_t float1);
|
||||||
DECLARE_HOOK_FUNCTION(int64_t, float_sign, int64_t float1);
|
DECLARE_HOOK_FUNCTION(int64_t, float_sign, int64_t float1);
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
@@ -226,17 +227,6 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
DECLARE_HOOK_FUNCTION(int64_t, float_log, int64_t float1);
|
DECLARE_HOOK_FUNCTION(int64_t, float_log, int64_t float1);
|
||||||
DECLARE_HOOK_FUNCTION(int64_t, float_root, int64_t float1, uint32_t n);
|
DECLARE_HOOK_FUNCTION(int64_t, float_root, int64_t float1, uint32_t n);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
|
||||||
int64_t,
|
|
||||||
hook_account,
|
|
||||||
uint32_t write_ptr,
|
|
||||||
uint32_t write_len);
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
|
||||||
int64_t,
|
|
||||||
hook_hash,
|
|
||||||
uint32_t write_ptr,
|
|
||||||
uint32_t write_len,
|
|
||||||
int32_t hook_no);
|
|
||||||
DECLARE_HOOK_FUNCNARG(int64_t, fee_base);
|
DECLARE_HOOK_FUNCNARG(int64_t, fee_base);
|
||||||
DECLARE_HOOK_FUNCNARG(int64_t, ledger_seq);
|
DECLARE_HOOK_FUNCNARG(int64_t, ledger_seq);
|
||||||
DECLARE_HOOK_FUNCNARG(int64_t, ledger_last_time);
|
DECLARE_HOOK_FUNCNARG(int64_t, ledger_last_time);
|
||||||
@@ -250,7 +240,6 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
ledger_nonce,
|
ledger_nonce,
|
||||||
uint32_t write_ptr,
|
uint32_t write_ptr,
|
||||||
uint32_t write_len);
|
uint32_t write_len);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
ledger_keylet,
|
ledger_keylet,
|
||||||
@@ -261,6 +250,17 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t hread_ptr,
|
uint32_t hread_ptr,
|
||||||
uint32_t hread_len);
|
uint32_t hread_len);
|
||||||
|
|
||||||
|
DECLARE_HOOK_FUNCTION(
|
||||||
|
int64_t,
|
||||||
|
hook_account,
|
||||||
|
uint32_t write_ptr,
|
||||||
|
uint32_t write_len);
|
||||||
|
DECLARE_HOOK_FUNCTION(
|
||||||
|
int64_t,
|
||||||
|
hook_hash,
|
||||||
|
uint32_t write_ptr,
|
||||||
|
uint32_t write_len,
|
||||||
|
int32_t hook_no);
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
hook_param_set,
|
hook_param_set,
|
||||||
@@ -270,7 +270,6 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t kread_len,
|
uint32_t kread_len,
|
||||||
uint32_t hread_ptr,
|
uint32_t hread_ptr,
|
||||||
uint32_t hread_len);
|
uint32_t hread_len);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
hook_param,
|
hook_param,
|
||||||
@@ -278,9 +277,7 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t write_len,
|
uint32_t write_len,
|
||||||
uint32_t read_ptr,
|
uint32_t read_ptr,
|
||||||
uint32_t read_len);
|
uint32_t read_len);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCNARG(int64_t, hook_again);
|
DECLARE_HOOK_FUNCNARG(int64_t, hook_again);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
hook_skip,
|
hook_skip,
|
||||||
@@ -355,6 +352,7 @@ DECLARE_HOOK_FUNCTION(
|
|||||||
uint32_t nread_len,
|
uint32_t nread_len,
|
||||||
uint32_t aread_ptr,
|
uint32_t aread_ptr,
|
||||||
uint32_t aread_len);
|
uint32_t aread_len);
|
||||||
|
|
||||||
DECLARE_HOOK_FUNCTION(
|
DECLARE_HOOK_FUNCTION(
|
||||||
int64_t,
|
int64_t,
|
||||||
trace,
|
trace,
|
||||||
|
|||||||
Reference in New Issue
Block a user