Skip to content

mmostafas/open-runtime-module-library

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 MultiLocation
    • 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

  • bencher
    • Benchmarking tool using cargo bench for benchmarking
  • benchmarking
    • Fork of frame-benchmarking in Substrate to allow implement runtime specific benchmarks
  • weight-gen
    • Weight meter file generation
  • weight-meter
    • A low overhead dynamic weight meter

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

About

Substrate Open Runtime Module Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.5%
  • Other 0.5%