mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 02:57:57 +00:00
548955a73f
* BlockId removal: refactor: HeaderBackend::header It changes the arguments of: - `HeaderBackend::header`, - `Client::header`, - `PeersClient::header` - `ChainApi::block_header` methods from: `BlockId<Block>` to: `Block::Hash` This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292) * non-trivial usages of haeder(block_id) refactored This may required introduction of dedicated function: header_for_block_num * fmt * fix * doc fixed * ".git/.scripts/fmt.sh" * BlockId removal: refactor: HeaderBackend::expect_header It changes the arguments of `HeaderBackend::expect_header` method from: `BlockId<Block>` to: `Block::Hash` * ".git/.scripts/fmt.sh" * readme updated * ".git/.scripts/fmt.sh" * fix Co-authored-by: parity-processbot <>
32 lines
942 B
Markdown
32 lines
942 B
Markdown
Basic implementation of block-authoring logic.
|
|
|
|
# Example
|
|
|
|
```rust
|
|
// The first step is to create a `ProposerFactory`.
|
|
let mut proposer_factory = ProposerFactory::new(client.clone(), txpool.clone(), None);
|
|
|
|
// From this factory, we create a `Proposer`.
|
|
let proposer = proposer_factory.init(
|
|
&client.header(client.chain_info().genesis_hash).unwrap().unwrap(),
|
|
);
|
|
|
|
// The proposer is created asynchronously.
|
|
let proposer = futures::executor::block_on(proposer).unwrap();
|
|
|
|
// This `Proposer` allows us to create a block proposition.
|
|
// The proposer will grab transactions from the transaction pool, and put them into the block.
|
|
let future = proposer.propose(
|
|
Default::default(),
|
|
Default::default(),
|
|
Duration::from_secs(2),
|
|
);
|
|
|
|
// We wait until the proposition is performed.
|
|
let block = futures::executor::block_on(future).unwrap();
|
|
println!("Generated block: {:?}", block.block);
|
|
```
|
|
|
|
|
|
License: GPL-3.0-or-later WITH Classpath-exception-2.0
|