6 releases (1 stable)
1.0.0 | Aug 1, 2024 |
---|---|
0.13.0 | Jun 26, 2024 |
0.12.0 | Jun 3, 2024 |
0.10.0 | Apr 17, 2024 |
0.8.0 | Mar 18, 2024 |
#6 in #quota
39 downloads per month
135KB
3K
SLoC
open-runtime-module-library
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
, ormake Cargo.toml
, or- change the command to
make dev-check
etc which does the copy. (For the full list ofmake
commands, checkMakefile
)
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
- Acala Network
- Ajuna Network
- Astar Network
- Bifrost Finance
- Bit.Country
- Centrifuge
- ChainX
- Composable
- Crust
- GameDAO Protocol
- HydraDX
- Interlay and Kintsugi
- InvArch and Tinkernet
- KodaDot: MetaPrime Network
- Laminar Chain
- Libra
- Listen
- Manta Network
- Mangata Finance
- Minterest
- Moonbeam
- OAK
- Parallel Finance
- PolkaFoundry Network
- Setheum Network
- Titan Network
- Valiu Liquidity Network
- Zeitgeist
- ZERO Network
lib.rs
:
Rate Limit
A module to provide rate limit for arbitrary type Key and integer type Value
Overview
This module is a utility to provide rate limiter for arbitrary type Key and integer type Value, which can config limit rule to produce quota and consume quota, and expose quota consuming checking and whitelist that can bypass checks.
Dependencies
~20–34MB
~564K SLoC