Skip to content

Commit 724f7c3

Browse files
authored
Update WithExtrinsicParams to use ExtrinsicSigner<Self> (#698)
* wWithExtrinsicParams now uses ExtrinsicSigner directly * simplify examples * fix clippy * fix clippy * add test * move test to cargo test * fix clippy * move test to chain atest * add comment
1 parent 9ee2cc8 commit 724f7c3

20 files changed

+47
-58
lines changed

examples/examples/benchmark_bulk_xt.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ async fn main() {
4646
let signer = AccountKeyring::Alice.pair();
4747
let client = JsonrpseeClient::with_default_url().unwrap();
4848
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
49-
api.set_signer(ExtrinsicSigner::new(signer));
49+
api.set_signer(signer.into());
5050

5151
let recipient: ExtrinsicAddressOf<ExtrinsicSigner> = AccountKeyring::Bob.to_account_id().into();
5252
// We use a manual nonce input here, because otherwise the api retrieves the nonce via getter and needs

examples/examples/check_extrinsic_events.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use sp_keyring::AccountKeyring;
1717
use substrate_api_client::{
1818
ac_node_api::EventDetails,
19-
ac_primitives::{AssetRuntimeConfig, Config, ExtrinsicSigner},
19+
ac_primitives::{AssetRuntimeConfig, Config},
2020
extrinsic::BalancesExtrinsics,
2121
rpc::JsonrpseeClient,
2222
Api, GetAccountInformation, SubmitAndWatch, TransactionStatus, XtStatus,
@@ -37,7 +37,7 @@ async fn main() {
3737
let alice_signer = AccountKeyring::Alice.pair();
3838
let client = JsonrpseeClient::with_default_url().unwrap();
3939
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
40-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice_signer));
40+
api.set_signer(alice_signer.into());
4141

4242
let alice = AccountKeyring::Alice.to_account_id();
4343
let balance_of_alice = api.get_account_data(&alice).unwrap().unwrap().free;

examples/examples/contract_instantiate_with_code.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ use kitchensink_runtime::AccountId;
2020
use sp_keyring::AccountKeyring;
2121
use substrate_api_client::{
2222
ac_compose_macros::primitives::AssetRuntimeConfig, ac_node_api::StaticEvent,
23-
ac_primitives::ExtrinsicSigner, extrinsic::ContractsExtrinsics, rpc::JsonrpseeClient, Api,
24-
SubmitAndWatch, XtStatus,
23+
extrinsic::ContractsExtrinsics, rpc::JsonrpseeClient, Api, SubmitAndWatch, XtStatus,
2524
};
2625

2726
// To test this example with CI we run it against the Substrate kitchensink node, which uses the asset pallet.
@@ -49,7 +48,7 @@ async fn main() {
4948
let signer = AccountKeyring::Alice.pair();
5049
let client = JsonrpseeClient::with_default_url().unwrap();
5150
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
52-
api.set_signer(ExtrinsicSigner::<_>::new(signer));
51+
api.set_signer(signer.into());
5352

5453
println!("[+] Alice's Account Nonce is {}", api.get_nonce().unwrap());
5554

examples/examples/custom_nonce.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use kitchensink_runtime::{BalancesCall, RuntimeCall};
2020
use sp_keyring::AccountKeyring;
2121
use sp_runtime::{generic::Era, MultiAddress};
2222
use substrate_api_client::{
23-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner, GenericAdditionalParams},
23+
ac_primitives::{AssetRuntimeConfig, GenericAdditionalParams},
2424
rpc::JsonrpseeClient,
2525
Api, Error, GetChainInfo, SubmitAndWatch, UnexpectedTxStatus, XtStatus,
2626
};
@@ -38,7 +38,7 @@ async fn main() {
3838
let signer = AccountKeyring::Alice.pair();
3939
let client = JsonrpseeClient::with_default_url().unwrap();
4040
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
41-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(signer));
41+
api.set_signer(signer.into());
4242

4343
// Information for Era for mortal transactions.
4444
let last_finalized_header_hash = api.get_finalized_head().unwrap().unwrap();

examples/examples/get_account_identity.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use sp_core::{crypto::Pair, H256};
2222
use sp_keyring::AccountKeyring;
2323
use substrate_api_client::{
2424
ac_compose_macros::compose_extrinsic,
25-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner, UncheckedExtrinsicV4},
25+
ac_primitives::{AssetRuntimeConfig, UncheckedExtrinsicV4},
2626
rpc::JsonrpseeClient,
2727
Api, GetStorage, SubmitAndWatch, XtStatus,
2828
};
@@ -46,7 +46,7 @@ async fn main() {
4646
let client = JsonrpseeClient::with_default_url().unwrap();
4747
let signer = AccountKeyring::Alice.pair();
4848
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
49-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(signer.clone()));
49+
api.set_signer(signer.clone().into());
5050

5151
// Fill Identity storage.
5252
let info = IdentityInfo::<MaxAdditionalFields> {

examples/examples/get_storage.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use kitchensink_runtime::AccountId;
2020
use pallet_staking::Exposure;
2121
use sp_keyring::AccountKeyring;
2222
use substrate_api_client::{
23-
ac_primitives::{AssetRuntimeConfig, Config, ExtrinsicSigner},
23+
ac_primitives::{AssetRuntimeConfig, Config},
2424
rpc::JsonrpseeClient,
2525
Api, GetAccountInformation, GetStorage,
2626
};
@@ -66,7 +66,7 @@ async fn main() {
6666

6767
// get Alice's AccountNonce with api.get_nonce()
6868
let signer = AccountKeyring::Alice.pair();
69-
api.set_signer(ExtrinsicSigner::<_>::new(signer));
69+
api.set_signer(signer.into());
7070
println!("[+] Alice's Account Nonce is {}", api.get_nonce().unwrap());
7171

7272
println!(

examples/examples/runtime_update_async.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use sp_keyring::AccountKeyring;
1616
use sp_weights::Weight;
1717
use substrate_api_client::{
1818
ac_compose_macros::{compose_call, compose_extrinsic},
19-
ac_primitives::{AssetRuntimeConfig, Config, ExtrinsicSigner as GenericExtrinsicSigner},
19+
ac_primitives::{AssetRuntimeConfig, Config},
2020
api_client::UpdateRuntime,
2121
rpc::JsonrpseeClient,
2222
rpc_api::RuntimeUpdateDetector,
@@ -25,7 +25,6 @@ use substrate_api_client::{
2525
use tokio::select;
2626
use tokio_util::sync::CancellationToken;
2727

28-
type ExtrinsicSigner = GenericExtrinsicSigner<AssetRuntimeConfig>;
2928
type Hash = <AssetRuntimeConfig as Config>::Hash;
3029

3130
#[cfg(feature = "sync-examples")]
@@ -64,7 +63,7 @@ async fn main() {
6463
let client = JsonrpseeClient::with_default_url().unwrap();
6564
let mut api = Api::<AssetRuntimeConfig, _>::new(client).await.unwrap();
6665
let sudoer = AccountKeyring::Alice.pair();
67-
api.set_signer(ExtrinsicSigner::new(sudoer));
66+
api.set_signer(sudoer.into());
6867

6968
let subscription = api.subscribe_events().await.unwrap();
7069
let mut update_detector: RuntimeUpdateDetector<Hash, JsonrpseeClient> =

examples/examples/runtime_update_sync.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ use sp_weights::Weight;
2121
use std::{sync::Arc, thread};
2222
use substrate_api_client::{
2323
ac_compose_macros::{compose_call, compose_extrinsic},
24-
ac_primitives::{AssetRuntimeConfig, Config, ExtrinsicSigner as GenericExtrinsicSigner},
24+
ac_primitives::{AssetRuntimeConfig, Config},
2525
api_client::UpdateRuntime,
2626
rpc::JsonrpseeClient,
2727
rpc_api::RuntimeUpdateDetector,
2828
Api, SubmitAndWatch, SubscribeEvents, XtStatus,
2929
};
3030

31-
type ExtrinsicSigner = GenericExtrinsicSigner<AssetRuntimeConfig>;
3231
type Hash = <AssetRuntimeConfig as Config>::Hash;
3332

3433
#[cfg(not(feature = "sync-examples"))]
@@ -65,7 +64,7 @@ async fn main() {
6564
let client = JsonrpseeClient::with_default_url().unwrap();
6665
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
6766
let sudoer = AccountKeyring::Alice.pair();
68-
api.set_signer(ExtrinsicSigner::new(sudoer));
67+
api.set_signer(sudoer.into());
6968

7069
let subscription = api.subscribe_events().unwrap();
7170
let cancellation = Arc::new(AtomicBool::new(false));

examples/examples/staking_batch_payout.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use pallet_staking::{ActiveEraInfo, Exposure};
1616
use sp_keyring::AccountKeyring;
1717
use sp_runtime::{app_crypto::Ss58Codec, AccountId32};
1818
use substrate_api_client::{
19-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
19+
ac_primitives::AssetRuntimeConfig,
2020
extrinsic::{StakingExtrinsics, UtilityExtrinsics},
2121
rpc::JsonrpseeClient,
2222
Api, GetStorage, SubmitAndWatch, XtStatus,
@@ -55,7 +55,7 @@ async fn main() {
5555
let alice = AccountKeyring::Alice.pair();
5656
let client = JsonrpseeClient::with_default_url().unwrap();
5757
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
58-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice));
58+
api.set_signer(alice.into());
5959

6060
// Give a valid validator account address. In the kitchinsink runtime, this is Alice.
6161
let validator_account = AccountKeyring::Alice.to_account_id();

examples/examples/sudo.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ async fn main() {
5252
let sudoer = AccountKeyring::Alice.pair();
5353
let client = JsonrpseeClient::with_default_url().unwrap();
5454
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
55-
api.set_signer(ExtrinsicSigner::new(sudoer));
55+
api.set_signer(sudoer.into());
5656

5757
// Set the recipient of newly issued funds.
5858
let recipient = AccountKeyring::Bob.to_account_id();

examples/examples/transfer_with_tungstenite_client.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ use sp_core::{
2121
};
2222
use sp_runtime::MultiAddress;
2323
use substrate_api_client::{
24-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
25-
extrinsic::BalancesExtrinsics,
26-
rpc::TungsteniteRpcClient,
24+
ac_primitives::AssetRuntimeConfig, extrinsic::BalancesExtrinsics, rpc::TungsteniteRpcClient,
2725
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
2826
};
2927

@@ -46,7 +44,7 @@ fn main() {
4644
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
4745
let client = TungsteniteRpcClient::with_default_url(100);
4846
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
49-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice.clone()));
47+
api.set_signer(alice.clone().into());
5048

5149
// Retrieve bobs current balance.
5250
let bob = sr25519::Public::from_ss58check("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty")

examples/examples/transfer_with_ws_client.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ use sp_core::{
2121
};
2222
use sp_runtime::MultiAddress;
2323
use substrate_api_client::{
24-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
25-
extrinsic::BalancesExtrinsics,
26-
rpc::WsRpcClient,
27-
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
24+
ac_primitives::AssetRuntimeConfig, extrinsic::BalancesExtrinsics, rpc::WsRpcClient, Api,
25+
GetAccountInformation, SubmitAndWatch, XtStatus,
2826
};
2927

3028
// To test this example with CI we run it against the Substrate kitchensink node, which uses the asset pallet.
@@ -46,7 +44,7 @@ fn main() {
4644
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
4745
let client = WsRpcClient::with_default_url();
4846
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
49-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice.clone()));
47+
api.set_signer(alice.clone().into());
5048

5149
// Retrieve bobs current balance.
5250
let bob = sr25519::Public::from_ss58check("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty")

primitives/src/config/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use sp_runtime::traits::{
2020
MaybeSerializeDeserialize,
2121
};
2222

23-
use crate::{extrinsic_params, SignExtrinsic};
23+
use crate::{extrinsic_params, ExtrinsicSigner, SignExtrinsic};
2424

2525
pub use asset_runtime_config::*;
2626
pub use default_runtime_config::*;
@@ -160,7 +160,7 @@ impl<T: Config, E: extrinsic_params::ExtrinsicParams<T::Index, T::Hash>> Config
160160
type AccountData = T::AccountData;
161161
type ExtrinsicParams = E;
162162
type CryptoKey = T::CryptoKey;
163-
type ExtrinsicSigner = T::ExtrinsicSigner;
163+
type ExtrinsicSigner = ExtrinsicSigner<Self>;
164164
type Block = T::Block;
165165
type Balance = T::Balance;
166166
type ContractCurrency = T::ContractCurrency;

testing/examples/author_tests.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ async fn main() {
4040
let alice_pair = AccountKeyring::Alice.pair();
4141
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
4242

43-
api.set_signer(ExtrinsicSigner::new(alice_pair));
43+
api.set_signer(alice_pair.into());
4444

4545
let bob: ExtrinsicAddressOf<ExtrinsicSigner> = AccountKeyring::Bob.to_account_id().into();
4646

testing/examples/chain_tests.rs

+7-3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
limitations under the License.
1414
*/
1515

16-
//! Tests for the chain rpc interface functions.
16+
//! Tests for the chain rpc interface functions, including testing the DefaultRuntimeConfig
17+
//! and Signer generation for the DefaultRuntimeConfig.
1718
19+
use sp_keyring::AccountKeyring;
1820
use substrate_api_client::{
19-
ac_primitives::AssetRuntimeConfig,
21+
ac_primitives::{DefaultRuntimeConfig, ExtrinsicSigner},
2022
rpc::{HandleSubscription, JsonrpseeClient},
2123
Api, GetChainInfo, SubscribeChain,
2224
};
@@ -25,7 +27,9 @@ use substrate_api_client::{
2527
async fn main() {
2628
// Setup
2729
let client = JsonrpseeClient::with_default_url().unwrap();
28-
let api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
30+
let mut api = Api::<DefaultRuntimeConfig, _>::new(client).unwrap();
31+
let signer = AccountKeyring::Alice.pair();
32+
api.set_signer(ExtrinsicSigner::<DefaultRuntimeConfig>::new(signer));
2933

3034
// GetChainInfo
3135
let finalized_header_hash = api.get_finalized_head().unwrap().unwrap();

testing/examples/dispatch_errors_tests.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@
1818
use sp_keyring::AccountKeyring;
1919
use sp_runtime::MultiAddress;
2020
use substrate_api_client::{
21-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
22-
extrinsic::BalancesExtrinsics,
23-
rpc::JsonrpseeClient,
24-
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
21+
ac_primitives::AssetRuntimeConfig, extrinsic::BalancesExtrinsics, rpc::JsonrpseeClient, Api,
22+
GetAccountInformation, SubmitAndWatch, XtStatus,
2523
};
2624

2725
#[tokio::main]
@@ -45,7 +43,7 @@ async fn main() {
4543
println!("[+] One's Free Balance is {}\n", balance_of_one);
4644

4745
//BadOrigin
48-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(bob_signer));
46+
api.set_signer(bob_signer.into());
4947
//Can only be called by root
5048
let xt = api.balance_force_set_balance(MultiAddress::Id(alice.clone()), 10);
5149

@@ -55,7 +53,7 @@ async fn main() {
5553
println!("[+] BadOrigin error: Bob can't force set balance");
5654

5755
//BelowMinimum
58-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice_signer));
56+
api.set_signer(alice_signer.into());
5957
let xt = api.balance_transfer_allow_death(MultiAddress::Id(one.clone()), 999999);
6058
let result = api.submit_and_watch_extrinsic_until(xt, XtStatus::InBlock);
6159
assert!(result.is_err());

testing/examples/events_tests.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use kitchensink_runtime::RuntimeEvent;
2121
use sp_keyring::AccountKeyring;
2222
use substrate_api_client::{
2323
ac_node_api::{EventDetails, StaticEvent},
24-
ac_primitives::{AssetRuntimeConfig, Config, ExtrinsicSigner},
24+
ac_primitives::{AssetRuntimeConfig, Config},
2525
extrinsic::BalancesExtrinsics,
2626
rpc::JsonrpseeClient,
2727
Api, FetchEvents, GetChainInfo, SubmitAndWatch, SubscribeEvents, XtStatus,
@@ -46,7 +46,7 @@ async fn main() {
4646
let client = JsonrpseeClient::with_default_url().unwrap();
4747
let alice_pair = AccountKeyring::Alice.pair();
4848
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
49-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice_pair));
49+
api.set_signer(alice_pair.into());
5050

5151
let bob = AccountKeyring::Bob.to_account_id();
5252

testing/examples/frame_system_tests.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ use codec::Decode;
1919
use frame_support::dispatch::DispatchInfo;
2020
use sp_keyring::AccountKeyring;
2121
use substrate_api_client::{
22-
ac_node_api::StaticEvent,
23-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
24-
rpc::JsonrpseeClient,
25-
Api, GetAccountInformation, SystemApi,
22+
ac_node_api::StaticEvent, ac_primitives::AssetRuntimeConfig, rpc::JsonrpseeClient, Api,
23+
GetAccountInformation, SystemApi,
2624
};
2725

2826
/// Check out frame_system::Event::ExtrinsicSuccess:
@@ -42,7 +40,7 @@ async fn main() {
4240
let client = JsonrpseeClient::with_default_url().unwrap();
4341
let alice_pair = AccountKeyring::Alice.pair();
4442
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
45-
api.set_signer(ExtrinsicSigner::new(alice_pair));
43+
api.set_signer(alice_pair.into());
4644

4745
let alice = AccountKeyring::Alice.to_account_id();
4846

testing/examples/tungstenite_client_test.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ use sp_core::{
1919
};
2020
use sp_runtime::MultiAddress;
2121
use substrate_api_client::{
22-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
23-
extrinsic::BalancesExtrinsics,
24-
rpc::TungsteniteRpcClient,
22+
ac_primitives::AssetRuntimeConfig, extrinsic::BalancesExtrinsics, rpc::TungsteniteRpcClient,
2523
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
2624
};
2725

@@ -34,7 +32,7 @@ fn main() {
3432
.unwrap();
3533
let client = TungsteniteRpcClient::with_default_url(100);
3634
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
37-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice.clone()));
35+
api.set_signer(alice.clone().into());
3836

3937
let bob = sr25519::Public::from_ss58check("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty")
4038
.unwrap();

testing/examples/ws_client_test.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ use sp_core::{
1919
};
2020
use sp_runtime::MultiAddress;
2121
use substrate_api_client::{
22-
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
23-
extrinsic::BalancesExtrinsics,
24-
rpc::WsRpcClient,
25-
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
22+
ac_primitives::AssetRuntimeConfig, extrinsic::BalancesExtrinsics, rpc::WsRpcClient, Api,
23+
GetAccountInformation, SubmitAndWatch, XtStatus,
2624
};
2725

2826
fn main() {
@@ -34,7 +32,7 @@ fn main() {
3432
.unwrap();
3533
let client = WsRpcClient::with_default_url();
3634
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
37-
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice.clone()));
35+
api.set_signer(alice.clone().into());
3836

3937
let bob = sr25519::Public::from_ss58check("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty")
4038
.unwrap();

0 commit comments

Comments
 (0)