Offchain signing (#5182)
* New approach to offchain signing. * Use in im-online * Rewrite to use Account<T> * DRY signing. * Implement send_raw_unsigned_transaction * WiP * Expunge LocalCall * Expunge LocalCall * Fix compilation. * Solve call. * Make it compile again. * Finalize implementation. * Change CreateTransaction * Clear CreateTransaction. * Add price payload * Send raw transaction * Submit signed payload / unsigned transaction (WIP) * Supertrait requirements on T::Signature * Validate signature of payload on an unsigned transaction * Fix encoding - part 1 * Make it compile. * Fix compilation of unsigned validator. * Pass price payload to the transaction * Make block number part of the signed payload * Send signed transaction * Implement all_accounts, any_account * Fix formatting * Implement submit_transaction * Submit signed transaction (ForAll, ForAny) * Fix formatting * Implement CreateSignedTransaction * Move sign and verify to AppCrypto * Sign transaction * Call `use_encoded` * Remove SubmitAndSignTransaction * Implement runtime using new SigningTypes * Adapt offchain example to changes * Fix im-online pallet * Quick fix: rename AuthorityId2 * Fix offchain example tests * Add a comment on why keystore is required in unsigned transaction test * Use UintAuthorityId instead of u64 * WIP * Remove IdentifyAccount from UintAuthorityId * Implement PublicWrapper type * Fix im-online tests * Fix runtime test * Bump spec version * Fix executor tests * Rename ImOnlineAuthId -> ImOnlineAuthorityId and formatting * Fix merge * Documentation * Revert u64 -> UintAuthorityId conversion * Fix string errors * Document public members in offchain module * Introduce SubmitTransaction * Update pallets to use SubmitTransaction * WIP * Use SubmitTransaction in offchain * Use `submit_unsigned_transaction` * Fix tests * Update docs * Remove SigningTypes requirement from `SendTransactionTypes` * Fix tests * Update frame/system/src/offchain.rs Co-Authored-By:Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Update frame/system/src/offchain.rs Co-Authored-By:
Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Update frame/example-offchain-worker/src/tests.rs Co-Authored-By:
Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Update frame/system/src/offchain.rs Co-Authored-By:
Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Update frame/system/src/offchain.rs Co-Authored-By:
Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Remove leftover from previous iterations * Change enum to struct * Remove public * Move mock to node/executor/tests * Cleanup test-helpers * Make `application-crypto` `std` feature internal The macros should not generate code that requires that the calling crate has a feature with the name `std` defined. * Revert cargo lock update * Use TestAuthorityId from common * Restore members of account to public * Tidy up imports * Fix benchmarking pallet * Add tests demonstrating ForAll, ForAny on signer * Move definition of AppCrypto in example-offchain-worker from tests to mod::crypto * Cleanup stray comment * Fix ValidTransaction * Re-fix CreateSignedTransaction * Address PR feedback * Add can_sign method to signer * Propagate error * Improve documentation * Fix vec! macro not available * Document SendTransactiontypes * Add some docs. * Split signing examples * Add tests for signing examples * WIP can_sign - PR feedback * WIP * Split for_any / for_all into different calls * Verify payload and signature in test * Fix can_sign implementation * Fix impl_version * Import Box from sp_std * Create issues for TODOs * Ignore doctest. * Add test directly to system. Adjust UintTypes. * Add some tests to account filtering. * Remove code samples and point to example offchain worker * Fix doc links * Fix im-online tests using signatures. Co-authored-by:
Tomasz Drwięga <tomasz@parity.io> Co-authored-by:
Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by:
Bastian Köcher <git@kchr.de>
parent
798de833
Showing
- substrate/bin/node/executor/tests/common.rs 32 additions, 2 deletionssubstrate/bin/node/executor/tests/common.rs
- substrate/bin/node/executor/tests/submit_transaction.rs 93 additions, 42 deletionssubstrate/bin/node/executor/tests/submit_transaction.rs
- substrate/bin/node/runtime/src/lib.rs 60 additions, 67 deletionssubstrate/bin/node/runtime/src/lib.rs
- substrate/frame/example-offchain-worker/src/lib.rs 241 additions, 90 deletionssubstrate/frame/example-offchain-worker/src/lib.rs
- substrate/frame/example-offchain-worker/src/tests.rs 143 additions, 23 deletionssubstrate/frame/example-offchain-worker/src/tests.rs
- substrate/frame/im-online/src/lib.rs 24 additions, 10 deletionssubstrate/frame/im-online/src/lib.rs
- substrate/frame/im-online/src/mock.rs 14 additions, 6 deletionssubstrate/frame/im-online/src/mock.rs
- substrate/frame/im-online/src/tests.rs 6 additions, 6 deletionssubstrate/frame/im-online/src/tests.rs
- substrate/frame/session/benchmarking/src/mock.rs 7 additions, 6 deletionssubstrate/frame/session/benchmarking/src/mock.rs
- substrate/frame/staking/src/lib.rs 3 additions, 6 deletionssubstrate/frame/staking/src/lib.rs
- substrate/frame/staking/src/mock.rs 7 additions, 3 deletionssubstrate/frame/staking/src/mock.rs
- substrate/frame/staking/src/offchain_election.rs 3 additions, 3 deletionssubstrate/frame/staking/src/offchain_election.rs
- substrate/frame/system/src/lib.rs 6 additions, 5 deletionssubstrate/frame/system/src/lib.rs
- substrate/frame/system/src/offchain.rs 775 additions, 296 deletionssubstrate/frame/system/src/offchain.rs
- substrate/primitives/application-crypto/src/lib.rs 1 addition, 1 deletionsubstrate/primitives/application-crypto/src/lib.rs
- substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs 2 additions, 21 deletions...ate/primitives/runtime/src/generic/unchecked_extrinsic.rs
- substrate/primitives/runtime/src/lib.rs 21 additions, 0 deletionssubstrate/primitives/runtime/src/lib.rs
- substrate/primitives/runtime/src/testing.rs 31 additions, 19 deletionssubstrate/primitives/runtime/src/testing.rs
Please register or sign in to comment