mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 05:11:02 +00:00
Add Derived Account Origins to Dispatcher (#519)
* Update some docs * Add derived account origin * Add tests for derived origin * Do a little bit of cleanup * Change Origin type to use AccountIds instead of Public keys * Update (most) tests to use new Origin types * Remove redundant test * Update `runtime-common` tests to use new Origin types * Remove unused import * Fix documentation around origin verification * Update config types to use AccountIds in runtime * Update Origin type used in message relay * Use correct type when verifying message origin * Make CallOrigin docs more consistent * Use AccountIds instead of Public keys in Runtime types * Introduce trait for converting AccountIds * Bring back standalone function for deriving account IDs * Remove AccountIdConverter configuration trait * Remove old bridge_account_id derivation function * Handle target ID decoding errors more gracefully * Update message-lane to use new AccountId derivation * Update merged code to use new Origin types * Use explicit conversion between H256 and AccountIds * Make relayer fund account a config option in `message-lane` pallet * Add note about deriving the same account on different chains * Fix test weight * Use AccountId instead of Public key when signing Calls * Semi-hardcode relayer fund address into Message Lane pallet
This commit is contained in:
committed by
Bastian Köcher
parent
c20b4c868f
commit
951aa36c2b
@@ -26,6 +26,7 @@ use relay_rialto_client::{Rialto, SigningParams as RialtoSigningParams};
|
||||
use relay_substrate_client::{ConnectionParams, TransactionSignScheme};
|
||||
use relay_utils::initialize::initialize_relay;
|
||||
use sp_core::{Bytes, Pair};
|
||||
use sp_runtime::traits::IdentifyAccount;
|
||||
|
||||
/// Millau node client.
|
||||
pub type MillauClient = relay_substrate_client::Client<Millau>;
|
||||
@@ -277,11 +278,12 @@ async fn run_command(command: cli::Command) -> Result<(), String> {
|
||||
let rialto_call_weight = rialto_call.get_dispatch_info().weight;
|
||||
|
||||
let millau_sender_public: bp_millau::AccountSigner = millau_sign.signer.public().clone().into();
|
||||
let millau_account_id: bp_millau::AccountId = millau_sender_public.into_account();
|
||||
let rialto_origin_public = rialto_sign.signer.public();
|
||||
|
||||
let mut rialto_origin_signature_message = Vec::new();
|
||||
rialto_call.encode_to(&mut rialto_origin_signature_message);
|
||||
millau_sender_public.encode_to(&mut rialto_origin_signature_message);
|
||||
millau_account_id.encode_to(&mut rialto_origin_signature_message);
|
||||
let rialto_origin_signature = rialto_sign.signer.sign(&rialto_origin_signature_message);
|
||||
|
||||
let millau_call =
|
||||
@@ -290,8 +292,8 @@ async fn run_command(command: cli::Command) -> Result<(), String> {
|
||||
MessagePayload {
|
||||
spec_version: rialto_runtime::VERSION.spec_version,
|
||||
weight: rialto_call_weight,
|
||||
origin: CallOrigin::RealAccount(
|
||||
millau_sender_public,
|
||||
origin: CallOrigin::TargetAccount(
|
||||
millau_account_id,
|
||||
rialto_origin_public.into(),
|
||||
rialto_origin_signature.into(),
|
||||
),
|
||||
@@ -391,11 +393,12 @@ async fn run_command(command: cli::Command) -> Result<(), String> {
|
||||
let millau_call_weight = millau_call.get_dispatch_info().weight;
|
||||
|
||||
let rialto_sender_public: bp_rialto::AccountSigner = rialto_sign.signer.public().clone().into();
|
||||
let rialto_account_id: bp_rialto::AccountId = rialto_sender_public.into_account();
|
||||
let millau_origin_public = millau_sign.signer.public();
|
||||
|
||||
let mut millau_origin_signature_message = Vec::new();
|
||||
millau_call.encode_to(&mut millau_origin_signature_message);
|
||||
rialto_sender_public.encode_to(&mut millau_origin_signature_message);
|
||||
rialto_account_id.encode_to(&mut millau_origin_signature_message);
|
||||
let millau_origin_signature = millau_sign.signer.sign(&millau_origin_signature_message);
|
||||
|
||||
let rialto_call =
|
||||
@@ -404,8 +407,8 @@ async fn run_command(command: cli::Command) -> Result<(), String> {
|
||||
MessagePayload {
|
||||
spec_version: millau_runtime::VERSION.spec_version,
|
||||
weight: millau_call_weight,
|
||||
origin: CallOrigin::RealAccount(
|
||||
rialto_sender_public,
|
||||
origin: CallOrigin::TargetAccount(
|
||||
rialto_account_id,
|
||||
millau_origin_public.into(),
|
||||
millau_origin_signature.into(),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user