-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Add documentation to SubmitSignedTransaction and actually make it work #4200
Conversation
…ctually make it work Squashed commit of the following: commit dc8d71c Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 16:29:33 2019 +0100 Split the method to avoid confusing type error message. commit 0c4c037 Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 16:19:55 2019 +0100 Make accounts optional, fix logic. commit d715f64 Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 10:06:20 2019 +0100 Remove warning. commit 3f38218 Merge: f85b890 368318c Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 07:08:05 2019 +0100 Merge branch 'master' into td-signed-transactions commit f85b890 Merge: f8c9540 d8d5da2 Author: Tomasz Drwięga <[email protected]> Date: Mon Dec 2 13:57:25 2019 +0100 Merge branch 'master' into td-signed-transactions commit f8c9540 Author: Tomasz Drwięga <[email protected]> Date: Mon Nov 25 17:34:52 2019 +0100 Forgotten import. commit a645b90 Author: Tomasz Drwięga <[email protected]> Date: Mon Nov 25 17:32:10 2019 +0100 Fix naming and bounds. commit bc28c60 Author: Tomasz Drwięga <[email protected]> Date: Mon Nov 25 17:01:05 2019 +0100 Add documentation to signed transactions and actually make them work.
8a0e597
to
8755539
Compare
@tomusdrw is this merge correct? |
Yup, thanks! Could I get a second review on this? @bkchr maybe if you have some time? 😈 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just "some" nitpicks.
bin/node/executor/tests/basic.rs
Outdated
@@ -0,0 +1,837 @@ | |||
// Copyright 2018-2019 Parity Technologies (UK) Ltd. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// Copyright 2018-2019 Parity Technologies (UK) Ltd. | |
// Copyright 2018-2020 Parity Technologies (UK) Ltd. |
use node_testing::keyring::*; | ||
|
||
mod common; | ||
use self::common::{*, sign}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use self::common::{*, sign}; | |
use self::common::*; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't work as there is a conflict with glob imports (common
and keystore
), so we need to define sign
explicitly.
bin/node/executor/tests/basic.rs
Outdated
mod common; | ||
use self::common::{*, sign}; | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Co-Authored-By: Bastian Köcher <[email protected]>
@bkchr convinced me to change |
* session: runtime api for generating session membership proofs * grandpa: add runtime api for creating equivocation report txs * grandpa: submit signed equivocation report transactions * grandpa: use proper equivocation report type * grandpa: report equivocations * grandpa: validate equivocation proof * grandpa: update to finality-grandpa 0.9.1 * grandpa: fix encoding of session membership proof * grandpa: initialize set id session mapping for genesis session * grandpa: fix bug in set_id session validation * fix compilation * cleanup from merge conflicts * cleanup crate tomls * grandpa: refactor equivocation handling to separate trait * node-template: fix compilation * fix test compilation * bump finality-grandpa to v0.10.2 * rpc: fix runtime version test * CHERRY-PICK #4200: Add documentation to SubmitSignedTransaction and actually make it work Squashed commit of the following: commit dc8d71c Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 16:29:33 2019 +0100 Split the method to avoid confusing type error message. commit 0c4c037 Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 16:19:55 2019 +0100 Make accounts optional, fix logic. commit d715f64 Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 10:06:20 2019 +0100 Remove warning. commit 3f38218 Merge: f85b890 368318c Author: Tomasz Drwięga <[email protected]> Date: Tue Dec 3 07:08:05 2019 +0100 Merge branch 'master' into td-signed-transactions commit f85b890 Merge: f8c9540 d8d5da2 Author: Tomasz Drwięga <[email protected]> Date: Mon Dec 2 13:57:25 2019 +0100 Merge branch 'master' into td-signed-transactions commit f8c9540 Author: Tomasz Drwięga <[email protected]> Date: Mon Nov 25 17:34:52 2019 +0100 Forgotten import. commit a645b90 Author: Tomasz Drwięga <[email protected]> Date: Mon Nov 25 17:32:10 2019 +0100 Fix naming and bounds. commit bc28c60 Author: Tomasz Drwięga <[email protected]> Date: Mon Nov 25 17:01:05 2019 +0100 Add documentation to signed transactions and actually make them work. * grandpa: skip block initialization on report submission method * primitives: allow transaction pool access by default for offchain calls * grandpa: unused parameters * grandpa: remove unused method * grandpa: enable equivocation reporting * grandpa: add workaround for parameter encoding * grandpa: fix localized_payload calls in tests * fix submit_report_equivocation_extrinsic in runtimes * node: fix submit transaction test compilation * node: bump spec_version * rpc: fix api version test * grandpa: allow custom equivocation offence type * grandpa: add test for authorities::next_change_height * grandpa: cleanup report_equivocation function * node: move reporting app crypto to node-primitives * grandpa: move equivocation traits to own module * grandpa: rename app-crypto crate import * grandpa: export equivocation types * node: bump spec_version * grandpa: rename EquivocationReport to EquivocationProof * grandpa: add missing docs to primitives * grandpa: add missing docs to equivocation * node: fix compilation * grandpa: add missing docs to pallet * node: bump spec_version * fix whitespace * grandpa: return error on offence reporting * grandpa: expose session and validator count in proofs through traits * grandpa: use strong key in module KeyOwnerProofSystem * grandpa: move key ownership proof to grandpa runtime api * grandpa: remove unnecessary cloning when checking equivocation proof * grandpa: make report_equivocation a method in Environment * support: implement KeyOwnerProofSystem for () * grandpa: move KeyOwnerProofSystem to module trait * test-utils: fix runtime compilation * grandpa: fix test compilation * grandpa: fix test compilation after merge * grandpa: simplify transaction submission types * grandpa: validate equivocation report in signed extension * client: fix test * node: use ValidateEquivocationReport signed extension * grandpa: expose key ownership proof under opaque type * grandpa: better docs on key ownership proofs * grandpa: add note about signed extension * grandpa: add ValidateEquivocationReport::new * grandpa: remove skip_initialize_block from runtime api * grandpa: use new offchain transaction submission API * grandpa: take set_id in generate_key_ownership_proof * grandpa: update to finality-grandpa v0.12.2 * grandpa: cleanup usages of AuthoritySet::current * grandpa: fix test * grandpa: add mocking utilities for equivocation reporting * grandpa: add test for equivocation reporting * grandpa: move SetIdSession initialization * grandpa: add more tests * node: enable historical session manager * node: bump spec_version * node: use strong key types in KeyOwnerProofSystem definitions * grandpa: export GrandpaEquivocationOffence type
With recent changes to crypto stuff (notably
IdentifyAccount
that makes theAccountId
diverge fromPublicKey
) theSubmitSignedTransaction
trait family was not really working correctly.The main complications arise because of application-crypto type wrappers (
app-crypto
) and signed aggregators (MultiSigner
), this requires a bit ofFrom/TryInto/Into
magic and some additional trait bounds, that on the first sight look unnecessary in this code :)This PR is an attempt to fix that and also make it more convenient to use local keys for transaction signing (see
SigningAccountFinder
). This additional trait bound can be used to create and submit signed transactions from offchain calls using all local keys (intersected with some list of accounts).Still WiP, as I want to work on tests a bit more, but wanted to make this visible for @kianenigma @gnunicorn and @andresilva