mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 15:47:58 +00:00
Produce block always on updated transaction pool state (#5227)
* make sure return ready iterator once state is updated * update sc_basic_authorship tests * update node tests * fix manual seal * actually fix service test * add tests * Update client/basic-authorship/src/basic_authorship.rs Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * helper function * review suggestions * warning and continue * add debug log * use futures::chennel::oneshot * use declaration bound * no option for updated_at * no allocation * ready_at / ready * Update client/transaction-pool/src/lib.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/transaction-pool/src/lib.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/transaction-pool/src/lib.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/transaction-pool/src/lib.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/transaction-pool/src/lib.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/transaction-pool/src/lib.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
@@ -397,6 +397,7 @@ mod tests {
|
||||
use sc_service::AbstractService;
|
||||
use crate::service::{new_full, new_light};
|
||||
use sp_runtime::traits::IdentifyAccount;
|
||||
use sp_transaction_pool::{MaintainedTransactionPool, ChainEvent};
|
||||
|
||||
type AccountPublic = <Signature as Verify>::Signer;
|
||||
|
||||
@@ -414,7 +415,21 @@ mod tests {
|
||||
let dummy_runtime = ::tokio::runtime::Runtime::new().unwrap();
|
||||
let block_factory = |service: &<Factory as service::ServiceFactory>::FullService| {
|
||||
let block_id = BlockId::number(service.client().chain_info().best_number);
|
||||
let parent_header = service.client().header(&block_id).unwrap().unwrap();
|
||||
let parent_header = service.client().best_header(&block_id)
|
||||
.expect("db error")
|
||||
.expect("best block should exist");
|
||||
|
||||
futures::executor::block_on(
|
||||
service.transaction_pool().maintain(
|
||||
ChainEvent::NewBlock {
|
||||
is_new_best: true,
|
||||
id: block_id.clone(),
|
||||
retracted: vec![],
|
||||
header: parent_header,
|
||||
},
|
||||
)
|
||||
);
|
||||
|
||||
let consensus_net = ConsensusNetwork::new(service.network(), service.client().clone());
|
||||
let proposer_factory = consensus::ProposerFactory {
|
||||
client: service.client().clone(),
|
||||
@@ -464,6 +479,8 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
// It is "ignored", but the node-cli ignored tests are running on the CI.
|
||||
// This can be run locally with `cargo test --release -p node-cli test_sync -- --ignored`.
|
||||
#[ignore]
|
||||
fn test_sync() {
|
||||
let keystore_path = tempfile::tempdir().expect("Creates keystore path");
|
||||
@@ -504,6 +521,18 @@ mod tests {
|
||||
let parent_header = service.client().header(&parent_id).unwrap().unwrap();
|
||||
let parent_hash = parent_header.hash();
|
||||
let parent_number = *parent_header.number();
|
||||
|
||||
futures::executor::block_on(
|
||||
service.transaction_pool().maintain(
|
||||
ChainEvent::NewBlock {
|
||||
is_new_best: true,
|
||||
id: parent_id.clone(),
|
||||
retracted: vec![],
|
||||
header: parent_header.clone(),
|
||||
},
|
||||
)
|
||||
);
|
||||
|
||||
let mut proposer_factory = sc_basic_authorship::ProposerFactory::new(
|
||||
service.client(),
|
||||
service.transaction_pool()
|
||||
|
||||
Reference in New Issue
Block a user