Skip to content

Conversation

@georgepisaltu
Copy link
Contributor

@georgepisaltu georgepisaltu commented Mar 13, 2024

Original PR #2280 reverted in #3665

This PR reintroduces the reverted functionality with additional changes, related effort here. Description is copied over from the original PR

First part of Extrinsic Horizon

Introduces a new trait TransactionExtension to replace SignedExtension. Introduce the idea of transactions which obey the runtime's extensions and have according Extension data (né Extra data) yet do not have hard-coded signatures.

Deprecate the terminology of "Unsigned" when used for transactions/extrinsics owing to there now being "proper" unsigned transactions which obey the extension framework and "old-style" unsigned which do not. Instead we have General for the former and Bare for the latter. (Ultimately, the latter will be phased out as a type of transaction, and Bare will only be used for Inherents.)

Types of extrinsic are now therefore:

  • Bare (no hardcoded signature, no Extra data; used to be known as "Unsigned")
    • Bare transactions (deprecated): Gossiped, validated with ValidateUnsigned (deprecated) and the _bare_compat bits of TransactionExtension (deprecated).
    • Inherents: Not gossiped, validated with ProvideInherent.
  • Extended (Extra data): Gossiped, validated via TransactionExtension.
    • Signed transactions (with a hardcoded signature) in extrinsic v4.
    • General transactions (without a hardcoded signature) in extrinsic v5.

TransactionExtension differs from SignedExtension because:

  • A signature on the underlying transaction may validly not be present.
  • It may alter the origin during validation.
  • pre_dispatch is renamed to prepare and need not contain the checks present in validate.
  • validate and prepare is passed an Origin rather than a AccountId.
  • validate may pass arbitrary information into prepare via a new user-specifiable type Val.
  • AdditionalSigned/additional_signed is renamed to Implicit/implicit. It is encoded for the entire transaction and passed in to each extension as a new argument to validate. This facilitates the ability of extensions to acts as underlying crypto.

There is a new DispatchTransaction trait which contains only default function impls and is impl'ed for any TransactionExtension impler. It provides several utility functions which reduce some of the tedium from using TransactionExtension (indeed, none of its regular functions should now need to be called directly).

Three transaction version discriminator ("versions") are now permissible (RFC here) in extrinsic version 5:

  • 0b00000100 or 0b00000101: Bare (used to be called "Unsigned"): contains Signature or Extra (extension data). After bare transactions are no longer supported, this will strictly identify an Inherents only. Available in both extrinsic versions 4 and 5.
  • 0b10000100: Old-school "Signed" Transaction: contains Signature, Extra (extension data) and an extension version byte, introduced as part of RFC99. Still available as part of extrinsic v4.
  • 0b01000101: New-school "General" Transaction: contains Extra (extension data) and an extension version byte, as per RFC99, but no Signature. Only available in extrinsic v5.

For the New-school General Transaction, it becomes trivial for authors to publish extensions to the mechanism for authorizing an Origin, e.g. through new kinds of key-signing schemes, ZK proofs, pallet state, mutations over pre-authenticated origins or any combination of the above.

UncheckedExtrinsic still maintains encode/decode backwards compatibility with extrinsic version 4, where the first byte was encoded as:

  • 0b00000100 - Unsigned transactions
  • 0b10000100 - Old-school Signed transactions, without the extension version byte

Now, UncheckedExtrinsic contains a Preamble and the actual call. The Preamble describes the type of extrinsic as follows:

/// A "header" for extrinsics leading up to the call itself. Determines the type of extrinsic and
/// holds any necessary specialized data.
#[derive(Eq, PartialEq, Clone)]
pub enum Preamble<Address, Signature, Extension> {
	/// An extrinsic without a signature or any extension. This means it's either an inherent or
	/// an old-school "Unsigned" (we don't use that terminology any more since it's confusable with
	/// the general transaction which is without a signature but does have an extension).
	///
	/// NOTE: In the future, once we remove `ValidateUnsigned`, this will only serve Inherent
	/// extrinsics and thus can be renamed to `Inherent`.
	Bare(ExtrinsicVersion),
	/// An old-school transaction extrinsic which includes a signature of some hard-coded crypto.
	/// Available only on extrinsic version 4.
	Signed(Address, Signature, ExtensionVersion, Extension),
	/// A new-school transaction extrinsic which does not include a signature by default. The
	/// origin authorization, through signatures or other means, is performed by the transaction
	/// extension in this extrinsic. Available starting with extrinsic version 5.
	General(ExtensionVersion, Extension),
}

Code Migration

NOW: Getting it to build

Wrap your SignedExtensions in AsTransactionExtension. This should be accompanied by renaming your aggregate type in line with the new terminology. E.g. Before:

/// The SignedExtension to the basic transaction logic.
pub type SignedExtra = (
	/* snip */
	MySpecialSignedExtension,
);
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic =
	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;

After:

/// The extension to the basic transaction logic.
pub type TxExtension = (
	/* snip */
	AsTransactionExtension<MySpecialSignedExtension>,
);
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic =
	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;

You'll also need to alter any transaction building logic to add a .into() to make the conversion happen. E.g. Before:

fn construct_extrinsic(
		/* snip */
) -> UncheckedExtrinsic {
	let extra: SignedExtra = (
		/* snip */
		MySpecialSignedExtension::new(/* snip */),
	);
	let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
	let signature = payload.using_encoded(|e| sender.sign(e));
	UncheckedExtrinsic::new_signed(
		/* snip */
		Signature::Sr25519(signature),
		extra,
	)
}

After:

fn construct_extrinsic(
		/* snip */
) -> UncheckedExtrinsic {
	let tx_ext: TxExtension = (
		/* snip */
		MySpecialSignedExtension::new(/* snip */).into(),
	);
	let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
	let signature = payload.using_encoded(|e| sender.sign(e));
	UncheckedExtrinsic::new_signed(
		/* snip */
		Signature::Sr25519(signature),
		tx_ext,
	)
}

SOON: Migrating to TransactionExtension

Most SignedExtensions can be trivially converted to become a TransactionExtension. There are a few things to know.

  • Instead of a single trait like SignedExtension, you should now implement two traits individually: TransactionExtensionBase and TransactionExtension.
  • Weights are now a thing and must be provided via the new function fn weight.

TransactionExtensionBase

This trait takes care of anything which is not dependent on types specific to your runtime, most notably Call.

  • AdditionalSigned/additional_signed is renamed to Implicit/implicit.
  • Weight must be returned by implementing the weight function. If your extension is associated with a pallet, you'll probably want to do this via the pallet's existing benchmarking infrastructure.

TransactionExtension

Generally:

  • pre_dispatch is now prepare and you should not reexecute the validate functionality in there!
  • You don't get an account ID any more; you get an origin instead. If you need to presume an account ID, then you can use the trait function AsSystemOriginSigner::as_system_origin_signer.
  • You get an additional ticket, similar to Pre, called Val. This defines data which is passed from validate into prepare. This is important since you should not be duplicating logic from validate to prepare, you need a way of passing your working from the former into the latter. This is it.
  • This trait takes a Call type parameter. Call is the runtime call type which used to be an associated type; you can just move it to become a type parameter for your trait impl.
  • There's no AccountId associated type any more. Just remove it.

Regarding validate:

  • You get three new parameters in validate; all can be ignored when migrating from SignedExtension.
  • validate returns a tuple on success; the second item in the tuple is the new ticket type Self::Val which gets passed in to prepare. If you use any information extracted during validate (off-chain and on-chain, non-mutating) in prepare (on-chain, mutating) then you can pass it through with this. For the tuple's last item, just return the origin argument.

Regarding prepare:

  • This is renamed from pre_dispatch, but there is one change:
  • FUNCTIONALITY TO VALIDATE THE TRANSACTION NEED NOT BE DUPLICATED FROM validate!!
  • (This is different to SignedExtension which was required to run the same checks in pre_dispatch as in validate.)

Regarding post_dispatch:

  • Since there are no unsigned transactions handled by TransactionExtension, Pre is always defined, so the first parameter is Self::Pre rather than Option<Self::Pre>.

If you make use of SignedExtension::validate_unsigned or SignedExtension::pre_dispatch_unsigned, then:

  • Just use the regular versions of these functions instead.
  • Have your logic execute in the case that the origin is None.
  • Ensure your transaction creation logic creates a General Transaction rather than a Bare Transaction; this means having to include all TransactionExtensions' data.
  • ValidateUnsigned can still be used (for now) if you need to be able to construct transactions which contain none of the extension data, however these will be phased out in stage 2 of the Transactions Horizon, so you should consider moving to an extension-centric design.

@paritytech-review-bot paritytech-review-bot bot requested a review from a team March 13, 2024 19:39
@georgepisaltu georgepisaltu changed the title George/restore gav tx ext FRAME: Reintroduce TransactionExtension as a replacement for SignedExtension Mar 13, 2024
@georgepisaltu georgepisaltu added the T1-FRAME This PR/Issue is related to core FRAME, the framework. label Mar 13, 2024
undercover-cactus added a commit to Moonsong-Labs/storage-hub that referenced this pull request Apr 23, 2025
undercover-cactus added a commit to Moonsong-Labs/storage-hub that referenced this pull request Apr 23, 2025
lrazovic pushed a commit to Polimec/polimec-node that referenced this pull request May 2, 2025
## What?

closes #446

 **Tasks**
 
 * [x]  Review [release notes for stable2412](https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412) for breaking changes. Also check the release notes of the versions before (with a focus on `stable2409` and `1.14.0`).
* [x]  Update Polkadot SDK dependencies to `stable2412`.
* [x]  Update [ORML](https://github.com/open-web3-stack/open-runtime-module-library) dependencies to the according version.
* [x]  Test node and runtime compatibility (e.g., compile-time errors, runtime APIs, storage migrations).
* [x]  Audit custom pallets for deprecated or changed SDK interfaces.
* [x]  Update benchmarks (if applicable) for weight calculations.
 
 **Additional Context**

 * The `Treasury::propose_spend(...)` integrations tests needs a rework, since that extrinsic is now deprecated, and it should be replaced by `Treasury::sped_local(...)`. We can ignore these tests for now and re-add them in a later PR.

## Why?

Release analysis posts [here](https://forum.polkadot.network/tag/release-analysis).

Some notable PRs:

- Replaces `SignedExtra` with new `TransactionExtension`. This requires us to reimplement the custom `CheckNonce` as a follow up PR - paritytech/polkadot-sdk#3685 
- XCM V5 is now `latest`, so `v4` xcm types are replaced with `v5` - paritytech/polkadot-sdk#4826 - 
- merges `xcm-fee-payment-runtime-api` module into the new `xcm-runtime-apis` - paritytech/polkadot-sdk#4857
- remove `sp-std` dependency, replace with `alloc` or `core`
## How?

## Testing?
 
* [x]  Pallet Unit Testing (e.g.  `cargo t -p pallet-funding`)
* [x]  Integration Tests (e.g. `cargo t -p integration-tests`)
* [x] [Try Runtime CLI,](https://github.com/paritytech/try-runtime-cli) to test if we have to run any migration in this upgrade.
 
## Screenshots (optional)

<details>
    <summary>Syncing with mainnet `polimec`</summary>
    <img width="1542" alt="Screenshot 2025-02-06 at 1 16 29" src="https://github.com/user-attachments/assets/7d14b32a-498f-4c4c-be5d-ccbda832d362" />
</details>
undercover-cactus added a commit to Moonsong-Labs/storage-hub that referenced this pull request May 21, 2025
* rename `state_version` to `system_version` for xcm-simulator

* replace 'sp_runtime::RuntimeString' with 'alloc::string::String' (see paritytech/polkadot-sdk#5693)

* missed a place to rename state_version to system_version

* update dry_run_call to include xcm result version (see paritytech/polkadot-sdk#7438)

* introduce SelectCore into the runtime for the parachain system pallet (see paritytech/polkadot-sdk#8153)

* introduce DoneSlashHandler in the runtime for the balances pallet and set it empty because we are not using it (see paritytech/polkadot-sdk#5623)

* introduce WeightInfo type for transaction pallets which is part of the biggest change regarding the TransactionExtension (see paritytech/polkadot-sdk#3685)

* fix conversion from String to str

* replicate the changes in xcm-simulator

* DispatchInfo is now DispatchEventInfo in the client (see paritytech/polkadot-sdk#3685)

* sc_offchain::Offchainworker::new() now return Result fix (see paritytech/polkadot-sdk#5919)

* Update TransactionPool build to work with the new pool struct (see paritytech/polkadot-sdk#4639)

* fix instant sealing command

* enable runtime upgrade in dev mode (see paritytech/polkadot-sdk#6885)

* check for default backend network when starting node

* fix unresolved import in benchmarking

* fix format error in benchmarking

* fix mock pallets

* fixing xcm simulator

* forgot to save file before commit

* fix xcm test

* upgrade @PolkaDot to 15.10.2; fix typegen;

* update utils polkadot deps

* attempting to fix zombienet

* use a more recent polkadot binary

* install stable2412 binary in CI too

* fix fee in reaping account test

* typegen

* fix last test

* remove console.log; use rpc_port config everywhere

* spec version updated in test

---------

Co-authored-by: Facundo Farall <[email protected]>
dnjscksdn98 added a commit to bifrost-platform/bifrost-node that referenced this pull request Jul 29, 2025
alstjd0921 pushed a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 10, 2025
alstjd0921 added a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 10, 2025
* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <[email protected]>
alstjd0921 added a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 10, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* fix: correctly use mocha with tsx (#133)

---------

Co-authored-by: dnjscksdn98 <[email protected]>
alstjd0921 added a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 11, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* fix: correctly use mocha with tsx (#133)

* chore: version (#134)

---------

Co-authored-by: dnjscksdn98 <[email protected]>
margaretphillips96627margaretphillips added a commit to margaretphillips96627margaretphillips/storage-hub that referenced this pull request Oct 6, 2025
* rename `state_version` to `system_version` for xcm-simulator

* replace 'sp_runtime::RuntimeString' with 'alloc::string::String' (see paritytech/polkadot-sdk#5693)

* missed a place to rename state_version to system_version

* update dry_run_call to include xcm result version (see paritytech/polkadot-sdk#7438)

* introduce SelectCore into the runtime for the parachain system pallet (see paritytech/polkadot-sdk#8153)

* introduce DoneSlashHandler in the runtime for the balances pallet and set it empty because we are not using it (see paritytech/polkadot-sdk#5623)

* introduce WeightInfo type for transaction pallets which is part of the biggest change regarding the TransactionExtension (see paritytech/polkadot-sdk#3685)

* fix conversion from String to str

* replicate the changes in xcm-simulator

* DispatchInfo is now DispatchEventInfo in the client (see paritytech/polkadot-sdk#3685)

* sc_offchain::Offchainworker::new() now return Result fix (see paritytech/polkadot-sdk#5919)

* Update TransactionPool build to work with the new pool struct (see paritytech/polkadot-sdk#4639)

* fix instant sealing command

* enable runtime upgrade in dev mode (see paritytech/polkadot-sdk#6885)

* check for default backend network when starting node

* fix unresolved import in benchmarking

* fix format error in benchmarking

* fix mock pallets

* fixing xcm simulator

* forgot to save file before commit

* fix xcm test

* upgrade @PolkaDot to 15.10.2; fix typegen;

* update utils polkadot deps

* attempting to fix zombienet

* use a more recent polkadot binary

* install stable2412 binary in CI too

* fix fee in reaping account test

* typegen

* fix last test

* remove console.log; use rpc_port config everywhere

* spec version updated in test

---------

Co-authored-by: Facundo Farall <[email protected]>
dominic5perezd added a commit to dominic5perezd/storage-hub that referenced this pull request Oct 10, 2025
* rename `state_version` to `system_version` for xcm-simulator

* replace 'sp_runtime::RuntimeString' with 'alloc::string::String' (see paritytech/polkadot-sdk#5693)

* missed a place to rename state_version to system_version

* update dry_run_call to include xcm result version (see paritytech/polkadot-sdk#7438)

* introduce SelectCore into the runtime for the parachain system pallet (see paritytech/polkadot-sdk#8153)

* introduce DoneSlashHandler in the runtime for the balances pallet and set it empty because we are not using it (see paritytech/polkadot-sdk#5623)

* introduce WeightInfo type for transaction pallets which is part of the biggest change regarding the TransactionExtension (see paritytech/polkadot-sdk#3685)

* fix conversion from String to str

* replicate the changes in xcm-simulator

* DispatchInfo is now DispatchEventInfo in the client (see paritytech/polkadot-sdk#3685)

* sc_offchain::Offchainworker::new() now return Result fix (see paritytech/polkadot-sdk#5919)

* Update TransactionPool build to work with the new pool struct (see paritytech/polkadot-sdk#4639)

* fix instant sealing command

* enable runtime upgrade in dev mode (see paritytech/polkadot-sdk#6885)

* check for default backend network when starting node

* fix unresolved import in benchmarking

* fix format error in benchmarking

* fix mock pallets

* fixing xcm simulator

* forgot to save file before commit

* fix xcm test

* upgrade @PolkaDot to 15.10.2; fix typegen;

* update utils polkadot deps

* attempting to fix zombienet

* use a more recent polkadot binary

* install stable2412 binary in CI too

* fix fee in reaping account test

* typegen

* fix last test

* remove console.log; use rpc_port config everywhere

* spec version updated in test

---------

Co-authored-by: Facundo Farall <[email protected]>
evm-dragonmm3 added a commit to evm-dragonmm3/bifrost-node that referenced this pull request Dec 10, 2025
* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <[email protected]>
evm-dragonmm3 added a commit to evm-dragonmm3/bifrost-node that referenced this pull request Dec 10, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* fix: correctly use mocha with tsx (#133)

---------

Co-authored-by: dnjscksdn98 <[email protected]>
evm-dragonmm3 added a commit to evm-dragonmm3/bifrost-node that referenced this pull request Dec 10, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <[email protected]>

* fix: correctly use mocha with tsx (#133)

* chore: version (#134)

---------

Co-authored-by: dnjscksdn98 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T1-FRAME This PR/Issue is related to core FRAME, the framework.

Projects

Status: Audited

Development

Successfully merging this pull request may close these issues.