1 个不稳定版本
| 0.0.1 | 2023 年 10 月 13 日 |
|---|
#5 在 #hooks 中
110KB
2K SLoC
hooks-rs
Rust 中的 XRPL 挂钩。
[!警告] 仓库尚未准备就绪。请自行判断是否使用。
先决条件
- 安装 Rust 夜间版本。
- 构建并在您的
PATH中使hook-cleaner可用。 - 从 binaryen 仓库安装
wasm-opt并使其在您的PATH中可用。
示例
查看 示例。
文档(进行中)
本书目前涵盖的内容很少,但您可以看看: https://9oelm.github.io/hooks-rs/
支持的功能
控制
-
accept -
rollback
实用工具
-
util_raddr -
util_accid -
util_verify -
util_sha512h -
util_keylet
序列化
-
sto_subfield -
sto_subarray -
sto_emplace -
sto_erase -
sto_validate
已发出的交易
-
etxn_burden -
etxn_details -
etxn_fee_base -
etxn_nonce -
etxn_reserve -
etxn_generation -
emit
浮点数
-
float_set -
float_multiply -
float_mulratio -
float_negate -
float_compare -
float_sum -
float_sto -
float_sto_set -
float_invert -
float_divide -
float_one -
float_exponent -
float_mantissa -
float_sign -
float_int -
float_root -
float_log
分类账
-
fee_base -
ledger_seq -
ledger_last_hash -
ledger_last_time -
ledger_nonce -
ledger_keylet
挂钩上下文
-
hook_account -
hook_hash -
hook_param -
hook_param_set -
hook_skip -
hook_pos -
hook_again
槽
-
slot -
slot_clear -
slot_count -
slot_set -
slot_size -
slot_subarray -
slot_subfield -
slot_type -
xpop_slot -
slot_float
状态
-
state -
state_set -
state_foreign -
state_foreign_set
跟踪
-
trace -
trace_num -
trace_float
原始交易
-
otxn_burden -
otxn_field -
otxn_generation -
otxn_id -
otxn_type -
otxn_slot -
otxn_param -
meta_slot
C 绑定
最新头文件可以在 https://github.com/XRPLF/hook-macros 找到
致谢
- 这是一个长时间未维护的 otov4its/xrpl-hooks 的分支。
- 大量示例和代码已从 dangell7 的仓库中采用。
贡献
C API中仍有许多部分尚未得到支持。目前的首要任务是将它们全部实现。
如果你已经勾选了下面的所有复选框,你可以继续创建PR。
- 你实现了一些之前不存在的功能。
- 你已经创建了一个集成测试来证明它的工作。请参阅
/tests文件夹查看现有的集成测试示例。目前,每个集成测试都会覆盖可测试的最小单元“块”,因为钩子在没有与实际XRPL节点建立连接的情况下无法进行测试,无论它是在本地Docker容器中还是在测试网的节点中。因此,集成测试有点像单元测试,但仍会连接到实际的XRPL节点来运行钩子,以查看它是否真正工作。确保在钩子执行前后,所有由钩子引起的状态变化都被正确断言。 - 你在
/examples文件夹中创建了一个示例。示例钩子文件应该包含如何使用你添加的功能的最小示例。同时,使用这个示例作为函数的文档,以便它可以在生成的文档中显示。 - CI测试通过。除非所有工作流程都显示绿色勾选,否则PR可能不会被审阅。
- PR有足够的描述说明它添加或更改的内容。PR的标题通常会遵循语义提交信息约定。不必太担心提交信息本身,因为它们将被压缩。
请记住,这个存储库是两个了不起概念的独特组合:Rust和Hooks。这两个对于普通大众来说都不容易也不熟悉。如果你不确定从哪里开始,可能从这本书开始,这将给你一些起点。
无运行时依赖。
~0–1.8MB
~36K SLoC