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