Skip to content
This repository was archived by the owner on Mar 20, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 74 additions & 74 deletions Cargo.lock

Large diffs are not rendered by default.

38 changes: 23 additions & 15 deletions components/client-crab-s2s/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ use darwinia_common_primitives::AccountId;
use darwinia_common_primitives::Balance;
use darwinia_common_primitives::BlockNumber;
use dp_fee::{Order, Relayer};
use relay_substrate_client::{ChainBase, Client, TransactionSignScheme, UnsignedTransaction};
use relay_substrate_client::{
ChainBase, Client, SignParam, TransactionSignScheme, UnsignedTransaction,
};
use relay_utils::relay_loop::Client as RelayLoopClient;
use sp_core::storage::StorageKey;
use sp_core::{Bytes, Pair};
Expand Down Expand Up @@ -95,20 +97,23 @@ impl CrabApi {
) -> anyhow::Result<()> {
let signer_id = (*signer.public().as_array_ref()).into();
let genesis_hash = *self.client.genesis_hash();
let runtime_version = self.client.runtime_version().await?;
self.client
.submit_signed_extrinsic(signer_id, move |_, transaction_nonce| {
Bytes(
CrabChain::sign_transaction(
Ok(Bytes(
CrabChain::sign_transaction(SignParam {
spec_version: runtime_version.spec_version,
transaction_version: runtime_version.transaction_version,
genesis_hash,
&signer,
relay_substrate_client::TransactionEra::immortal(),
UnsignedTransaction::new(
signer,
era: relay_substrate_client::TransactionEra::immortal(),
unsigned: UnsignedTransaction::new(
crab_runtime::FeeMarketCall::update_relay_fee(amount).into(),
transaction_nonce,
),
)
})
.encode(),
)
))
})
.await?;
Ok(())
Expand All @@ -122,20 +127,23 @@ impl CrabApi {
) -> anyhow::Result<()> {
let signer_id = (*signer.public().as_array_ref()).into();
let genesis_hash = *self.client.genesis_hash();
let runtime_version = self.client.runtime_version().await?;
self.client
.submit_signed_extrinsic(signer_id, move |_, transaction_nonce| {
Bytes(
CrabChain::sign_transaction(
Ok(Bytes(
CrabChain::sign_transaction(SignParam {
spec_version: runtime_version.spec_version,
transaction_version: runtime_version.transaction_version,
genesis_hash,
&signer,
relay_substrate_client::TransactionEra::immortal(),
UnsignedTransaction::new(
signer,
era: relay_substrate_client::TransactionEra::immortal(),
unsigned: UnsignedTransaction::new(
crab_runtime::FeeMarketCall::update_locked_collateral(amount).into(),
transaction_nonce,
),
)
})
.encode(),
)
))
})
.await?;
Ok(())
Expand Down
29 changes: 12 additions & 17 deletions components/client-crab-s2s/src/crab.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
use bridge_traits::bridge::chain::{BridgeChain, ChainCategory};
use codec::{Compact, Decode, Encode};
use relay_substrate_client::{
BalanceOf, Chain, ChainBase, ChainWithBalances, IndexOf, TransactionEraOf,
TransactionSignScheme, UnsignedTransaction,
BalanceOf, Chain, ChainBase, ChainWithBalances, IndexOf, SignParam, TransactionSignScheme,
UnsignedTransaction,
};
use sp_core::{storage::StorageKey, Pair};
use sp_runtime::{generic::SignedPayload, traits::IdentifyAccount};
Expand Down Expand Up @@ -63,39 +63,34 @@ impl TransactionSignScheme for CrabChain {
type AccountKeyPair = sp_core::sr25519::Pair;
type SignedTransaction = crab_runtime::UncheckedExtrinsic;

fn sign_transaction(
genesis_hash: <Self::Chain as ChainBase>::Hash,
signer: &Self::AccountKeyPair,
_era: TransactionEraOf<Self::Chain>,
unsigned: UnsignedTransaction<Self::Chain>,
) -> Self::SignedTransaction {
fn sign_transaction(param: SignParam<Self>) -> Self::SignedTransaction {
let raw_payload = SignedPayload::from_raw(
unsigned.call,
param.unsigned.call.clone(),
(
frame_system::CheckSpecVersion::<crab_runtime::Runtime>::new(),
frame_system::CheckTxVersion::<crab_runtime::Runtime>::new(),
frame_system::CheckGenesis::<crab_runtime::Runtime>::new(),
frame_system::CheckEra::<crab_runtime::Runtime>::from(
sp_runtime::generic::Era::Immortal,
),
frame_system::CheckNonce::<crab_runtime::Runtime>::from(unsigned.nonce),
frame_system::CheckNonce::<crab_runtime::Runtime>::from(param.unsigned.nonce),
frame_system::CheckWeight::<crab_runtime::Runtime>::new(),
pallet_transaction_payment::ChargeTransactionPayment::<crab_runtime::Runtime>::from(
unsigned.tip,
param.unsigned.tip,
),
),
(
crab_runtime::VERSION.spec_version,
crab_runtime::VERSION.transaction_version,
genesis_hash,
genesis_hash, //era.signed_payload(genesis_hash),
param.spec_version,
param.transaction_version,
param.genesis_hash,
param.genesis_hash, //era.signed_payload(genesis_hash),
(),
(),
(),
),
);
let signature = raw_payload.using_encoded(|payload| signer.sign(payload));
let signer: sp_runtime::MultiSigner = signer.public().into();
let signature = raw_payload.using_encoded(|payload| param.signer.sign(payload));
let signer: sp_runtime::MultiSigner = param.signer.public().into();
let (call, extra, _) = raw_payload.deconstruct();

crab_runtime::UncheckedExtrinsic::new_signed(
Expand Down
38 changes: 23 additions & 15 deletions components/client-darwinia-s2s/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ use darwinia_common_primitives::AccountId;
use darwinia_common_primitives::Balance;
use darwinia_common_primitives::BlockNumber;
use dp_fee::{Order, Relayer};
use relay_substrate_client::{ChainBase, Client, TransactionSignScheme, UnsignedTransaction};
use relay_substrate_client::{
ChainBase, Client, SignParam, TransactionSignScheme, UnsignedTransaction,
};
use relay_utils::relay_loop::Client as RelayLoopClient;
use sp_core::storage::StorageKey;
use sp_core::{Bytes, Pair};
Expand Down Expand Up @@ -95,20 +97,23 @@ impl DarwiniaApi {
) -> anyhow::Result<()> {
let signer_id = (*signer.public().as_array_ref()).into();
let genesis_hash = *self.client.genesis_hash();
let runtime_version = self.client.runtime_version().await?;
self.client
.submit_signed_extrinsic(signer_id, move |_, transaction_nonce| {
Bytes(
DarwiniaChain::sign_transaction(
Ok(Bytes(
DarwiniaChain::sign_transaction(SignParam {
spec_version: runtime_version.spec_version,
transaction_version: runtime_version.transaction_version,
genesis_hash,
&signer,
relay_substrate_client::TransactionEra::immortal(),
UnsignedTransaction::new(
signer,
era: relay_substrate_client::TransactionEra::immortal(),
unsigned: UnsignedTransaction::new(
darwinia_runtime::FeeMarketCall::update_relay_fee(amount).into(),
transaction_nonce,
),
)
})
.encode(),
)
))
})
.await?;
Ok(())
Expand All @@ -122,21 +127,24 @@ impl DarwiniaApi {
) -> anyhow::Result<()> {
let signer_id = (*signer.public().as_array_ref()).into();
let genesis_hash = *self.client.genesis_hash();
let runtime_version = self.client.runtime_version().await?;
self.client
.submit_signed_extrinsic(signer_id, move |_, transaction_nonce| {
Bytes(
DarwiniaChain::sign_transaction(
Ok(Bytes(
DarwiniaChain::sign_transaction(SignParam {
spec_version: runtime_version.spec_version,
transaction_version: runtime_version.transaction_version,
genesis_hash,
&signer,
relay_substrate_client::TransactionEra::immortal(),
UnsignedTransaction::new(
signer,
era: relay_substrate_client::TransactionEra::immortal(),
unsigned: UnsignedTransaction::new(
darwinia_runtime::FeeMarketCall::update_locked_collateral(amount)
.into(),
transaction_nonce,
),
)
})
.encode(),
)
))
})
.await?;
Ok(())
Expand Down
29 changes: 12 additions & 17 deletions components/client-darwinia-s2s/src/darwinia.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ use std::time::Duration;
use bridge_traits::bridge::chain::{BridgeChain, ChainCategory};
use codec::{Compact, Decode, Encode};
use relay_substrate_client::{
BalanceOf, Chain, ChainBase, ChainWithBalances, IndexOf, TransactionEraOf,
TransactionSignScheme, UnsignedTransaction,
BalanceOf, Chain, ChainBase, ChainWithBalances, IndexOf, SignParam, TransactionSignScheme,
UnsignedTransaction,
};
use sp_core::{storage::StorageKey, Pair};
use sp_runtime::{generic::SignedPayload, traits::IdentifyAccount};
Expand Down Expand Up @@ -65,37 +65,32 @@ impl TransactionSignScheme for DarwiniaChain {
type AccountKeyPair = sp_core::sr25519::Pair;
type SignedTransaction = darwinia_runtime::UncheckedExtrinsic;

fn sign_transaction(
genesis_hash: <Self::Chain as ChainBase>::Hash,
signer: &Self::AccountKeyPair,
_era: TransactionEraOf<Self::Chain>,
unsigned: UnsignedTransaction<Self::Chain>,
) -> Self::SignedTransaction {
fn sign_transaction(param: SignParam<Self>) -> Self::SignedTransaction {
let raw_payload = SignedPayload::from_raw(
unsigned.call,
param.unsigned.call.clone(),
(
frame_system::CheckSpecVersion::<darwinia_runtime::Runtime>::new(),
frame_system::CheckTxVersion::<darwinia_runtime::Runtime>::new(),
frame_system::CheckGenesis::<darwinia_runtime::Runtime>::new(),
frame_system::CheckEra::<darwinia_runtime::Runtime>::from(sp_runtime::generic::Era::Immortal),
frame_system::CheckNonce::<darwinia_runtime::Runtime>::from(unsigned.nonce),
frame_system::CheckNonce::<darwinia_runtime::Runtime>::from(param.unsigned.nonce),
frame_system::CheckWeight::<darwinia_runtime::Runtime>::new(),
pallet_transaction_payment::ChargeTransactionPayment::<darwinia_runtime::Runtime>::from(unsigned.tip),
pallet_transaction_payment::ChargeTransactionPayment::<darwinia_runtime::Runtime>::from(param.unsigned.tip),
darwinia_bridge_ethereum::CheckEthereumRelayHeaderParcel::<darwinia_runtime::Runtime>::new(),
),
(
darwinia_runtime::VERSION.spec_version,
darwinia_runtime::VERSION.transaction_version,
genesis_hash,
genesis_hash, // era.signed_payload(genesis_hash),
param.spec_version,
param.transaction_version,
param.genesis_hash,
param.genesis_hash, // era.signed_payload(genesis_hash),
(),
(),
(),
(),
),
);
let signature = raw_payload.using_encoded(|payload| signer.sign(payload));
let signer: sp_runtime::MultiSigner = signer.public().into();
let signature = raw_payload.using_encoded(|payload| param.signer.sign(payload));
let signer: sp_runtime::MultiSigner = param.signer.public().into();
let (call, extra, _) = raw_payload.deconstruct();

darwinia_runtime::UncheckedExtrinsic::new_signed(
Expand Down
38 changes: 23 additions & 15 deletions components/client-pangolin-s2s/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ use dp_fee::{Order, Relayer};
use drml_common_primitives::AccountId;
use drml_common_primitives::Balance;
use drml_common_primitives::BlockNumber;
use relay_substrate_client::{ChainBase, Client, TransactionSignScheme, UnsignedTransaction};
use relay_substrate_client::{
ChainBase, Client, SignParam, TransactionSignScheme, UnsignedTransaction,
};
use relay_utils::relay_loop::Client as RelayLoopClient;
use sp_core::storage::StorageKey;
use sp_core::{Bytes, Pair};
Expand Down Expand Up @@ -97,20 +99,23 @@ impl PangolinApi {
) -> anyhow::Result<()> {
let signer_id = (*signer.public().as_array_ref()).into();
let genesis_hash = *self.client.genesis_hash();
let runtime_version = self.client.runtime_version().await?;
self.client
.submit_signed_extrinsic(signer_id, move |_, transaction_nonce| {
Bytes(
PangolinChain::sign_transaction(
Ok(Bytes(
PangolinChain::sign_transaction(SignParam {
spec_version: runtime_version.spec_version,
transaction_version: runtime_version.transaction_version,
genesis_hash,
&signer,
relay_substrate_client::TransactionEra::immortal(),
UnsignedTransaction::new(
signer,
era: relay_substrate_client::TransactionEra::immortal(),
unsigned: UnsignedTransaction::new(
pangolin_runtime::FeeMarketCall::update_relay_fee(amount).into(),
transaction_nonce,
),
)
})
.encode(),
)
))
})
.await?;
Ok(())
Expand All @@ -124,21 +129,24 @@ impl PangolinApi {
) -> anyhow::Result<()> {
let signer_id = (*signer.public().as_array_ref()).into();
let genesis_hash = *self.client.genesis_hash();
let runtime_version = self.client.runtime_version().await?;
self.client
.submit_signed_extrinsic(signer_id, move |_, transaction_nonce| {
Bytes(
PangolinChain::sign_transaction(
Ok(Bytes(
PangolinChain::sign_transaction(SignParam {
spec_version: runtime_version.spec_version,
transaction_version: runtime_version.transaction_version,
genesis_hash,
&signer,
relay_substrate_client::TransactionEra::immortal(),
UnsignedTransaction::new(
signer,
era: relay_substrate_client::TransactionEra::immortal(),
unsigned: UnsignedTransaction::new(
pangolin_runtime::FeeMarketCall::update_locked_collateral(amount)
.into(),
transaction_nonce,
),
)
})
.encode(),
)
))
})
.await?;
Ok(())
Expand Down
29 changes: 12 additions & 17 deletions components/client-pangolin-s2s/src/pangolin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ use std::time::Duration;
use bridge_traits::bridge::chain::{BridgeChain, ChainCategory};
use codec::{Compact, Decode, Encode};
use relay_substrate_client::{
BalanceOf, Chain, ChainBase, ChainWithBalances, IndexOf, TransactionEraOf,
TransactionSignScheme, UnsignedTransaction,
BalanceOf, Chain, ChainBase, ChainWithBalances, IndexOf, SignParam, TransactionSignScheme,
UnsignedTransaction,
};
use sp_core::{storage::StorageKey, Pair};
use sp_runtime::{generic::SignedPayload, traits::IdentifyAccount};
Expand Down Expand Up @@ -63,37 +63,32 @@ impl TransactionSignScheme for PangolinChain {
type AccountKeyPair = sp_core::sr25519::Pair;
type SignedTransaction = pangolin_runtime::UncheckedExtrinsic;

fn sign_transaction(
genesis_hash: <Self::Chain as ChainBase>::Hash,
signer: &Self::AccountKeyPair,
_era: TransactionEraOf<Self::Chain>,
unsigned: UnsignedTransaction<Self::Chain>,
) -> Self::SignedTransaction {
fn sign_transaction(param: SignParam<Self>) -> Self::SignedTransaction {
let raw_payload = SignedPayload::from_raw(
unsigned.call,
param.unsigned.call.clone(),
(
frame_system::CheckSpecVersion::<pangolin_runtime::Runtime>::new(),
frame_system::CheckTxVersion::<pangolin_runtime::Runtime>::new(),
frame_system::CheckGenesis::<pangolin_runtime::Runtime>::new(),
frame_system::CheckEra::<pangolin_runtime::Runtime>::from(sp_runtime::generic::Era::Immortal),
frame_system::CheckNonce::<pangolin_runtime::Runtime>::from(unsigned.nonce),
frame_system::CheckNonce::<pangolin_runtime::Runtime>::from(param.unsigned.nonce),
frame_system::CheckWeight::<pangolin_runtime::Runtime>::new(),
pallet_transaction_payment::ChargeTransactionPayment::<pangolin_runtime::Runtime>::from(unsigned.tip),
pallet_transaction_payment::ChargeTransactionPayment::<pangolin_runtime::Runtime>::from(param.unsigned.tip),
darwinia_bridge_ethereum::CheckEthereumRelayHeaderParcel::<pangolin_runtime::Runtime>::new(),
),
(
pangolin_runtime::VERSION.spec_version,
pangolin_runtime::VERSION.transaction_version,
genesis_hash,
genesis_hash, // era.signed_payload(genesis_hash),
param.spec_version,
param.transaction_version,
param.genesis_hash,
param.genesis_hash, // era.signed_payload(genesis_hash),
(),
(),
(),
(),
),
);
let signature = raw_payload.using_encoded(|payload| signer.sign(payload));
let signer: sp_runtime::MultiSigner = signer.public().into();
let signature = raw_payload.using_encoded(|payload| param.signer.sign(payload));
let signer: sp_runtime::MultiSigner = param.signer.public().into();
let (call, extra, _) = raw_payload.deconstruct();

pangolin_runtime::UncheckedExtrinsic::new_signed(
Expand Down
Loading