mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 11:41:04 +00:00
Fix transaction submission for hex (#259)
* Fix transaction submission for hex * Fix grumbles.
This commit is contained in:
@@ -20,7 +20,9 @@ use std::sync::Arc;
|
||||
|
||||
use client::{self, Client};
|
||||
use extrinsic_pool::api::{Error, ExtrinsicPool};
|
||||
use codec::Slicable;
|
||||
|
||||
use primitives::Bytes;
|
||||
use runtime_primitives::{generic, traits::Block as BlockT};
|
||||
use state_machine;
|
||||
|
||||
@@ -35,8 +37,11 @@ build_rpc_trait! {
|
||||
/// Substrate authoring RPC API
|
||||
pub trait AuthorApi<Hash, Extrinsic> {
|
||||
/// Submit extrinsic for inclusion in block.
|
||||
#[rpc(name = "author_submitRichExtrinsic")]
|
||||
fn submit_rich_extrinsic(&self, Extrinsic) -> Result<Hash>;
|
||||
/// Submit hex-encoded extrinsic for inclusion in block.
|
||||
#[rpc(name = "author_submitExtrinsic")]
|
||||
fn submit_extrinsic(&self, Extrinsic) -> Result<Hash>;
|
||||
fn submit_extrinsic(&self, Bytes) -> Result<Hash>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +60,6 @@ impl<B, E, Block: BlockT, P> Author<B, E, Block, P> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
impl<B, E, Block, P, Ex, Hash> AuthorApi<Hash, Ex> for Author<B, E, Block, P> where
|
||||
B: client::backend::Backend<Block> + Send + Sync + 'static,
|
||||
E: client::CallExecutor<Block> + Send + Sync + 'static,
|
||||
@@ -63,8 +67,13 @@ impl<B, E, Block, P, Ex, Hash> AuthorApi<Hash, Ex> for Author<B, E, Block, P> wh
|
||||
client::error::Error: From<<<B as client::backend::Backend<Block>>::State as state_machine::backend::Backend>::Error>,
|
||||
P: ExtrinsicPool<Ex, generic::BlockId<Block>, Hash>,
|
||||
P::Error: 'static,
|
||||
Ex: Slicable,
|
||||
{
|
||||
fn submit_extrinsic(&self, xt: Ex) -> Result<Hash> {
|
||||
fn submit_extrinsic(&self, xt: Bytes) -> Result<Hash> {
|
||||
self.submit_rich_extrinsic(Ex::decode(&mut &xt[..]).ok_or(error::Error::from(error::ErrorKind::BadFormat))?)
|
||||
}
|
||||
|
||||
fn submit_rich_extrinsic(&self, xt: Ex) -> Result<Hash> {
|
||||
let best_block_hash = self.client.info().unwrap().chain.best_hash;
|
||||
self.pool
|
||||
.submit(generic::BlockId::hash(best_block_hash), vec![xt])
|
||||
|
||||
Reference in New Issue
Block a user