Rooch Weekly 2023-06-19

Rooch's Development Progress

New features

  • Implemented event page in #267 (opens in a new tab).
  • Implemented corresponding APIs for #213 (opens in a new tab) RPC documentation functionality at #275 (opens in a new tab) and #299 (opens in a new tab).
  • Implemented a web version of the counter contract in #280 (opens in a new tab).
  • Added an integration testing tool in #282 (opens in a new tab), for how to use it, please refer to the description in the PR.
  • Implement rooch storage for storing Transaction, Block and other data, move store implementation from sequencer to rooch storage, move TransactionExecutionInfo from rooch type to moveos type, introduce InMemoryAccumulator and implement event accumulator root, see #287 (opens in a new tab).
  • Supports passing different types of parameters to the entry function. Supported types include: u8, u16, u32, u64, u128, u256, bool, object_id, string, address and vector<inner_type>. For detailed usage, please refer to PR #307 (opens in a new tab).
  • Implement cross-module private_generics attribute checking. When a module calls another module, it needs to check the generic parameter type of the function decorated with #[private_generics]. For details and examples, please refer to PR #298 (opens in a new tab).

Major refactoring

  • Assign different addresses to move-std, moveos-std, and rooch-framework modules. Using different addresses can avoid module naming conflicts and facilitate expansion. For example, moveos-std::bcs can wrap all the methods of move-std::bcs and add extension methods. This approach is also convenient for extending other built-in standard libraries or frameworks in the future, providing a good collaborative experience for ecosystem co-builders. See issue #245 (opens in a new tab) and Discord post (opens in a new tab) for a detailed discussion.
    • Add the code of the Move standard library move-stdlib in #266 (opens in a new tab), so that different libraries can generate their own genesis transactions, so as to realize the function of generating multiple genesis transactions.
    • Migrated rooch-framework from moveos/moveos-stdlib/rooch-framework to crate/rooch-framework at #270 (opens in a new tab). Migrate framework test cases from moveos/moveos-stdlib to crate/rooch-framework-tests. Introduce moveos_stdlib_builder and rooch-genesis. The examples use a native dependency of MoveosStdlib. Use 0x1 for move_std, 0x2 for moveos_std, and 0x3 for rooch_framework. The Move integration test exp file prints transaction output status.
  • Introduced Move module bindings and refactored transaction validators in #283 (opens in a new tab). Introduce Move module bindings to facilitate calling Move functions from Rust code. In the future, we can generate bindings via the ABI.

Improvements and fixes

Rooch Community Dev Meeting

  • Arrange the implementation of verifier related functions in Rooch v0.2.
  • Discusses account creation pre-execution functions and address mapping schemes.
  • Discusses when the RPC View type is required.
  • Discusses MoveState and ETH proxy.
  • Share introducing Move bindings in Rust.
  • Conference recording (opens in a new tab)