18 releases (11 breaking)

0.13.0 Jun 26, 2024
0.10.0 Apr 17, 2024
0.8.0 Mar 18, 2024
0.6.7 Nov 21, 2023
0.1.1 Jun 5, 2020

#88 in Magic Beans

Download history 40/week @ 2024-03-19 6/week @ 2024-03-26 108/week @ 2024-04-02 138/week @ 2024-04-09 139/week @ 2024-04-16 7/week @ 2024-05-21 95/week @ 2024-05-28 58/week @ 2024-06-04 7/week @ 2024-06-11 169/week @ 2024-06-25 20/week @ 2024-07-02

197 downloads per month

Apache-2.0

51KB
1K SLoC

open-runtime-module-library

Crates.io codecov GitHub

The Open Runtime Module Library (ORML) is a community maintained collection of Substrate runtime modules.

Runtime Modules Overview

Utility

  • auction
    • Implements a generalized auction interface, used by Acala for liquidation auctions.
  • authority
    • Allow more advanced permission configuration such as timelock for governance actions.
  • gradually-update
    • Provides way to adjust numeric parameter gradually over a period of time.
  • oracle
    • Allow offchain oracle providers to feed data to be consumed by onchain pallets.
  • rewards
    • Implements ability to calculate and distribute token staking rewards.
  • traits
    • Implements various utility traits including BasicCurrency, MultiCurrency, Auction and more. Used by other ORML pallets.

Tokens

  • asset-registry
    • Register asset / token metadata including name, decimals, and XCM Location
    • Partially based on the Acala’s asset-registry pallet, which includes some Acala specific code (e.g. EVM+) so not suitable for other teams.
  • currencies
    • Provide an unified interface to combine pallet-balances and orml-tokens
  • nft
    • Provide a non-fungible-token implementation
  • payments
    • This pallet allows users to create secure reversible payments that keep funds locked in a merchant’s account until the off-chain goods are confirmed to be received. Each payment gets assigned its own judge that can help resolve any disputes between the two parties.
  • tokens
    • Implements fungible tokens pallet with compatibility with Substrate tokens abstractions
  • vesting
    • Provides scheduled balance locking mechanism, in a graded vesting way.

XCM

  • xcm-support
    • Provides supporting traits, types and implementations, to support cross-chain message(XCM) integration with ORML modules.
  • xcm
    • Provides a way for governance body to dispatch XCM.
  • xtokens
    • Provide crosschain token transfer functionality.
    • Used by multiple parachains for their XCM token transfer implementation.

Benchmarking

  • benchmarking
    • Fork of frame-benchmarking in Substrate to allow implement runtime specific benchmarks

Example

Checkout orml-workshop for example usage.

Development

Makefile targets

  • make check
    • Type check the code, without std feature, excluding tests.
  • make check-tests
    • Type check the code, with std feature, including tests.
  • make test
    • Run tests.

Cargo.toml

ORML use Cargo.dev.toml to avoid workspace conflicts with project cargo config. To use cargo commands in ORML workspace, create Cargo.toml by running

  • cp Cargo.dev.toml Cargo.toml, or
  • make Cargo.toml, or
  • change the command to make dev-check etc which does the copy. (For the full list of make commands, check Makefile)

Web3 Foundation Grant Project

ORML is part of the bigger Open-Web3-Stack initiative, that is currently under a General Grant from Web3 Foundation. See Application details here. The 1st milestone has been delivered.

Projects using ORML

In alphabetical order


lib.rs:

Macro for benchmarking a Substrate runtime. A fork of frame-benchmarking pallet.

Dependencies

~20–36MB
~594K SLoC