mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 07:41:08 +00:00
Remove InherentsPool and introduce non-propagateable transactions. (#2695)
* Remove InherentsPool. * Introduce transactions that are not propagated over the network. * Bump spec version. * Use separate flag for propagation. * Fix tests.
This commit is contained in:
committed by
Gavin Wood
parent
8d378cb293
commit
25b9c12c20
@@ -34,8 +34,9 @@ use substrate_client::{
|
||||
impl_runtime_apis,
|
||||
};
|
||||
use runtime_primitives::{
|
||||
ApplyResult, transaction_validity::TransactionValidity,
|
||||
ApplyResult,
|
||||
create_runtime_str,
|
||||
transaction_validity::TransactionValidity,
|
||||
traits::{
|
||||
BlindCheckable, BlakeTwo256, Block as BlockT, Extrinsic as ExtrinsicT,
|
||||
GetNodeBlockType, GetRuntimeBlockType, AuthorityIdFor, Verify,
|
||||
@@ -121,14 +122,18 @@ impl BlindCheckable for Extrinsic {
|
||||
Err(runtime_primitives::BAD_SIGNATURE)
|
||||
}
|
||||
},
|
||||
Extrinsic::IncludeData(data) => Ok(Extrinsic::IncludeData(data)),
|
||||
Extrinsic::IncludeData(_) => Err(runtime_primitives::BAD_SIGNATURE),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ExtrinsicT for Extrinsic {
|
||||
fn is_signed(&self) -> Option<bool> {
|
||||
Some(true)
|
||||
if let Extrinsic::IncludeData(_) = *self {
|
||||
Some(false)
|
||||
} else {
|
||||
Some(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,6 +366,16 @@ cfg_if! {
|
||||
|
||||
impl client_api::TaggedTransactionQueue<Block> for Runtime {
|
||||
fn validate_transaction(utx: <Block as BlockT>::Extrinsic) -> TransactionValidity {
|
||||
if let Extrinsic::IncludeData(data) = utx {
|
||||
return TransactionValidity::Valid {
|
||||
priority: data.len() as u64,
|
||||
requires: vec![],
|
||||
provides: vec![data],
|
||||
longevity: 1,
|
||||
propagate: false,
|
||||
};
|
||||
}
|
||||
|
||||
system::validate_transaction(utx)
|
||||
}
|
||||
}
|
||||
@@ -499,6 +514,16 @@ cfg_if! {
|
||||
|
||||
impl client_api::TaggedTransactionQueue<Block> for Runtime {
|
||||
fn validate_transaction(utx: <Block as BlockT>::Extrinsic) -> TransactionValidity {
|
||||
if let Extrinsic::IncludeData(data) = utx {
|
||||
return TransactionValidity::Valid {
|
||||
priority: data.len() as u64,
|
||||
requires: vec![],
|
||||
provides: vec![data],
|
||||
longevity: 1,
|
||||
propagate: false,
|
||||
};
|
||||
}
|
||||
|
||||
system::validate_transaction(utx)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,6 +190,7 @@ pub fn validate_transaction(utx: Extrinsic) -> TransactionValidity {
|
||||
requires,
|
||||
provides,
|
||||
longevity: 64,
|
||||
propagate: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user