#currency #currencies #module #system #multi-currency #native #adapter

no-std orml-currencies

Provide MultiCurrency implementation using pallet-balances and orml-tokens module

20 releases (2 stable)

new 1.1.0 Dec 10, 2024
1.0.0 Aug 1, 2024
0.13.0 Jun 26, 2024
0.8.0 Mar 18, 2024
0.1.1 Jun 5, 2020

#330 in Magic Beans

Download history 5/week @ 2024-08-22 4/week @ 2024-08-29 26/week @ 2024-09-12 27/week @ 2024-09-19 26/week @ 2024-09-26 5/week @ 2024-10-03 1/week @ 2024-10-31 118/week @ 2024-12-05

118 downloads per month
Used in pallet-mixer

Apache-2.0 and GPL-3.0-only

140KB
3K SLoC

Currencies Module

Overview

The currencies module provides a mixed currencies system, by configuring a native currency which implements BasicCurrencyExtended, and a multi-currency which implements MultiCurrency.

It also provides an adapter, to adapt frame_support::traits::Currency implementations into BasicCurrencyExtended.

The currencies module provides functionality of both MultiCurrencyExtended and BasicCurrencyExtended, via unified interfaces, and all calls would be delegated to the underlying multi-currency and base currency system. A native currency ID could be set by Config::GetNativeCurrencyId, to identify the native currency.


lib.rs:

Currencies Module

Overview

The currencies module provides a mixed currencies system, by configuring a native currency which implements BasicCurrencyExtended, and a multi-currency which implements MultiCurrency.

It also provides an adapter, to adapt frame_support::traits::Currency implementations into BasicCurrencyExtended.

The currencies module provides functionality of both MultiCurrencyExtended and BasicCurrencyExtended, via unified interfaces, and all calls would be delegated to the underlying multi-currency and base currency system. A native currency ID could be set by Config::GetNativeCurrencyId, to identify the native currency.

Implementations

The currencies module provides implementations for following traits.

  • MultiCurrency - Abstraction over a fungible multi-currency system.
  • MultiCurrencyExtended - Extended MultiCurrency with additional helper types and methods, like updating balance by a given signed integer amount.

Interface

Dispatchable Functions

  • transfer - Transfer some balance to another account, in a given currency.
  • transfer_native_currency - Transfer some balance to another account, in native currency set in Config::NativeCurrency.
  • update_balance - Update balance by signed integer amount, in a given currency, root origin required.

Dependencies

~20–34MB
~566K SLoC