19 releases (9 breaking)

new 0.10.0 Apr 17, 2024
0.8.0 Mar 18, 2024
0.6.7 Nov 21, 2023
0.4.0 Feb 14, 2021
0.1.1 Jun 5, 2020

#2421 in Magic Beans

Download history 71/week @ 2023-12-22 13/week @ 2023-12-29 44/week @ 2024-01-05 88/week @ 2024-01-12 53/week @ 2024-01-19 83/week @ 2024-01-26 82/week @ 2024-02-02 195/week @ 2024-02-09 225/week @ 2024-02-16 184/week @ 2024-02-23 162/week @ 2024-03-01 217/week @ 2024-03-08 397/week @ 2024-03-15 258/week @ 2024-03-22 259/week @ 2024-03-29 442/week @ 2024-04-05

1,399 downloads per month
Used in 34 crates (14 directly)

Apache-2.0

13KB
277 lines

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

Dependencies

~18–32MB
~526K SLoC