#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

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

#64 in #payment

Download history 11387/week @ 2024-12-29 20372/week @ 2025-01-05 31105/week @ 2025-01-12 28895/week @ 2025-01-19 24560/week @ 2025-01-26 27817/week @ 2025-02-02 31953/week @ 2025-02-09 32344/week @ 2025-02-16 9472/week @ 2025-02-23 3096/week @ 2025-03-02 3869/week @ 2025-03-09 2169/week @ 2025-03-16 2971/week @ 2025-03-23 2151/week @ 2025-03-30 2447/week @ 2025-04-06 2161/week @ 2025-04-13

9,857 downloads per month
Used in 36 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–34MB
~577K SLoC