#pallet #payment #blockchain #substrate

no-std pallet-skip-feeless-payment

Pallet to skip payments for calls annotated with feeless_if if the respective conditions are satisfied

15 major breaking releases

new 15.0.0 Apr 3, 2025
14.1.0 Jan 27, 2025
13.0.0 Sep 26, 2024
12.0.0 Jul 18, 2024
0.0.0 Nov 14, 2023

#738 in Magic Beans

Download history 20230/week @ 2024-12-17 5984/week @ 2024-12-24 12875/week @ 2024-12-31 21258/week @ 2025-01-07 33548/week @ 2025-01-14 27182/week @ 2025-01-21 24100/week @ 2025-01-28 27594/week @ 2025-02-04 34696/week @ 2025-02-11 29993/week @ 2025-02-18 4483/week @ 2025-02-25 2678/week @ 2025-03-04 3766/week @ 2025-03-11 2249/week @ 2025-03-18 2859/week @ 2025-03-25 2098/week @ 2025-04-01

11,561 downloads per month
Used in 15 crates (via polkadot-sdk)

GPL-3.0-only

2.5MB
40K SLoC

Skip Feeless Payment Pallet

This pallet allows runtimes that include it to skip payment of transaction fees for dispatchables marked by #[pallet::feeless_if].

Overview

It does this by wrapping an existing TransactionExtension implementation (e.g. pallet-transaction-payment) and checking if the dispatchable is feeless before applying the wrapped extension. If the dispatchable is indeed feeless, the extension is skipped and a custom event is emitted instead. Otherwise, the extension is applied as usual.

Integration

This pallet wraps an existing transaction payment pallet. This means you should both pallets in your construct_runtime macro and include this pallet's TransactionExtension (SkipCheckIfFeeless) that would accept the existing one as an argument.

Dependencies

~20–35MB
~578K SLoC