parent
9ad71b7baa
commit
fcccbf3b75
@ -362,18 +362,20 @@ impl Provider {
|
|||||||
signatures.push(signed_tx.signature());
|
signatures.push(signed_tx.signature());
|
||||||
let rsv: Vec<Signature> = signatures.into_iter().map(|sign| sign.into_electrum().into()).collect();
|
let rsv: Vec<Signature> = signatures.into_iter().map(|sign| sign.into_electrum().into()).collect();
|
||||||
// Create public transaction
|
// Create public transaction
|
||||||
|
let signer_account = self.signer_account.ok_or_else(|| ErrorKind::SignerAccountNotSet)?;
|
||||||
|
let state = self.client.state_at(BlockId::Latest).ok_or(ErrorKind::StatePruned)?;
|
||||||
|
let nonce = state.nonce(&signer_account)?;
|
||||||
let public_tx = self.public_transaction(
|
let public_tx = self.public_transaction(
|
||||||
desc.state.clone(),
|
desc.state.clone(),
|
||||||
&desc.original_transaction,
|
&desc.original_transaction,
|
||||||
&rsv,
|
&rsv,
|
||||||
desc.original_transaction.nonce,
|
nonce,
|
||||||
desc.original_transaction.gas_price
|
desc.original_transaction.gas_price
|
||||||
)?;
|
)?;
|
||||||
trace!(target: "privatetx", "Last required signature received, public transaction created: {:?}", public_tx);
|
trace!(target: "privatetx", "Last required signature received, public transaction created: {:?}", public_tx);
|
||||||
// Sign and add it to the queue
|
// Sign and add it to the queue
|
||||||
let chain_id = desc.original_transaction.chain_id();
|
let chain_id = desc.original_transaction.chain_id();
|
||||||
let hash = public_tx.hash(chain_id);
|
let hash = public_tx.hash(chain_id);
|
||||||
let signer_account = self.signer_account.ok_or_else(|| ErrorKind::SignerAccountNotSet)?;
|
|
||||||
let signature = self.accounts.sign(signer_account, hash)?;
|
let signature = self.accounts.sign(signer_account, hash)?;
|
||||||
let signed = SignedTransaction::new(public_tx.with_signature(signature, chain_id))?;
|
let signed = SignedTransaction::new(public_tx.with_signature(signature, chain_id))?;
|
||||||
match self.miner.import_own_transaction(&*self.client, signed.into()) {
|
match self.miner.import_own_transaction(&*self.client, signed.into()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user