#hook #xrpl #xrp

nightly no-std hooks-rs

Rust 中的 XRP 分类账挂钩

1 个不稳定版本

0.0.1 2023 年 10 月 13 日

#5#hooks

MIT 许可证

110KB
2K SLoC

hooks-rs

Rust 中的 XRPL 挂钩。

[!警告] 仓库尚未准备就绪。请自行判断是否使用。

先决条件

示例

查看 示例

文档(进行中)

本书目前涵盖的内容很少,但您可以看看: 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 找到

致谢

贡献

C API中仍有许多部分尚未得到支持。目前的首要任务是将它们全部实现。

如果你已经勾选了下面的所有复选框,你可以继续创建PR。

  • 你实现了一些之前不存在的功能。
  • 你已经创建了一个集成测试来证明它的工作。请参阅 /tests 文件夹查看现有的集成测试示例。目前,每个集成测试都会覆盖可测试的最小单元“块”,因为钩子在没有与实际XRPL节点建立连接的情况下无法进行测试,无论它是在本地Docker容器中还是在测试网的节点中。因此,集成测试有点像单元测试,但仍会连接到实际的XRPL节点来运行钩子,以查看它是否真正工作。确保在钩子执行前后,所有由钩子引起的状态变化都被正确断言。
  • 你在 /examples 文件夹中创建了一个示例。示例钩子文件应该包含如何使用你添加的功能的最小示例。同时,使用这个示例作为函数的文档,以便它可以在生成的文档中显示。
  • CI测试通过。除非所有工作流程都显示绿色勾选,否则PR可能不会被审阅。
  • PR有足够的描述说明它添加或更改的内容。PR的标题通常会遵循语义提交信息约定。不必太担心提交信息本身,因为它们将被压缩。

请记住,这个存储库是两个了不起概念的独特组合:Rust和Hooks。这两个对于普通大众来说都不容易也不熟悉。如果你不确定从哪里开始,可能从这本书开始,这将给你一些起点。

无运行时依赖。

~0–1.8MB
~36K SLoC