Skip to content

Commit

Permalink
Rename runtime configs to something more generic (#604)
Browse files Browse the repository at this point in the history
* Rename runtime configs

* Rename configs to AssetRuntimeConfig and DefaultRuntimeConfig

* Rename files

* Support old config (deprecated)

---------

Co-authored-by: echevrier <[email protected]>
  • Loading branch information
echevrier and echevrier authored Jul 5, 2023
1 parent 2e092a3 commit dd6ca5e
Show file tree
Hide file tree
Showing 29 changed files with 133 additions and 129 deletions.
10 changes: 4 additions & 6 deletions examples/examples/benchmark_bulk_xt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,18 @@
use kitchensink_runtime::{AccountId, BalancesCall, RuntimeCall};
use sp_keyring::AccountKeyring;
use substrate_api_client::{
ac_primitives::{
ExtrinsicSigner as GenericExtrinsicSigner, SignExtrinsic, SubstrateKitchensinkConfig,
},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner as GenericExtrinsicSigner, SignExtrinsic},
rpc::JsonrpseeClient,
Api, SubmitExtrinsic,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

// Define an extrinsic signer type which sets the generic types of the `GenericExtrinsicSigner`.
// This way, the types don't have to be reassigned with every usage of this type and makes
// the code better readable.
type ExtrinsicSigner = GenericExtrinsicSigner<SubstrateKitchensinkConfig>;
type ExtrinsicSigner = GenericExtrinsicSigner<AssetRuntimeConfig>;

// To access the ExtrinsicAddress type of the Signer, we need to do this via the trait `SignExtrinsic`.
// For better code readability, we define a simple type here and, at the same time, assign the
Expand All @@ -48,7 +46,7 @@ async fn main() {
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let signer = AccountKeyring::Alice.pair();
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::new(signer));

let recipient: ExtrinsicAddressOf<ExtrinsicSigner> = AccountKeyring::Bob.to_account_id().into();
Expand Down
8 changes: 4 additions & 4 deletions examples/examples/compose_extrinsic_offline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ use kitchensink_runtime::{BalancesCall, RuntimeCall};
use sp_keyring::AccountKeyring;
use sp_runtime::{generic::Era, MultiAddress};
use substrate_api_client::{
ac_primitives::{ExtrinsicSigner, GenericAdditionalParams, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner, GenericAdditionalParams},
rpc::JsonrpseeClient,
Api, GetChainInfo, SubmitAndWatch, XtStatus,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[tokio::main]
Expand All @@ -38,8 +38,8 @@ async fn main() {
// Api::new(..) is not actually an offline call, but retrieves metadata and other information from the node.
// If this is not acceptable, use the Api::new_offline(..) function instead. There are no examples for this,
// because of the constantly changing substrate node. But check out our unit tests - there are Apis created with `new_offline`.
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(signer));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(signer));

// Information for Era for mortal transactions (online).
let last_finalized_header_hash = api.get_finalized_head().unwrap().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions examples/examples/contract_instantiate_with_code.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ use codec::Decode;
use kitchensink_runtime::AccountId;
use sp_keyring::AccountKeyring;
use substrate_api_client::{
ac_compose_macros::primitives::SubstrateKitchensinkConfig, ac_node_api::StaticEvent,
ac_compose_macros::primitives::AssetRuntimeConfig, ac_node_api::StaticEvent,
ac_primitives::ExtrinsicSigner, extrinsic::ContractsExtrinsics, rpc::JsonrpseeClient, Api,
SubmitAndWatch, SubmitAndWatchUntilSuccess, XtStatus,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[allow(unused)]
Expand All @@ -46,7 +46,7 @@ async fn main() {
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let signer = AccountKeyring::Alice.pair();
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<_>::new(signer));

println!("[+] Alice's Account Nonce is {}", api.get_nonce().unwrap());
Expand Down
8 changes: 4 additions & 4 deletions examples/examples/custom_nonce.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ use kitchensink_runtime::{BalancesCall, RuntimeCall};
use sp_keyring::AccountKeyring;
use sp_runtime::{generic::Era, MultiAddress};
use substrate_api_client::{
ac_primitives::{ExtrinsicSigner, GenericAdditionalParams, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner, GenericAdditionalParams},
rpc::JsonrpseeClient,
Api, Error, GetChainInfo, SubmitAndWatch, UnexpectedTxStatus, XtStatus,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig.
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig.
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[tokio::main]
Expand All @@ -35,8 +35,8 @@ async fn main() {
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let signer = AccountKeyring::Alice.pair();
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(signer));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(signer));

// Information for Era for mortal transactions.
let last_finalized_header_hash = api.get_finalized_head().unwrap().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions examples/examples/event_callback.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
use log::debug;
use sp_core::H256 as Hash;
use substrate_api_client::{
ac_primitives::SubstrateKitchensinkConfig, rpc::JsonrpseeClient, Api, SubscribeEvents,
ac_primitives::AssetRuntimeConfig, rpc::JsonrpseeClient, Api, SubscribeEvents,
};

// This module depends on the specific node runtime.
// Replace this crate by your own if you run a custom substrate node to get your custom events.
use kitchensink_runtime::RuntimeEvent;

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[tokio::main]
Expand All @@ -35,7 +35,7 @@ async fn main() {

// Initialize the api.
let client = JsonrpseeClient::with_default_url().unwrap();
let api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
let api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();

println!("Subscribe to events");
let mut subscription = api.subscribe_events().unwrap();
Expand Down
8 changes: 4 additions & 4 deletions examples/examples/event_error_details.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ use sp_keyring::AccountKeyring;
use sp_runtime::{AccountId32 as AccountId, MultiAddress};
use substrate_api_client::{
ac_node_api::StaticEvent,
ac_primitives::{ExtrinsicSigner, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
extrinsic::BalancesExtrinsics,
rpc::JsonrpseeClient,
Api, GetAccountInformation, SubmitAndWatchUntilSuccess,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[tokio::main]
Expand All @@ -34,8 +34,8 @@ async fn main() {
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let alice_signer = AccountKeyring::Alice.pair();
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(alice_signer));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice_signer));

let alice = AccountKeyring::Alice.to_account_id();
let balance_of_alice = api.get_account_data(&alice).unwrap().unwrap().free;
Expand Down
8 changes: 4 additions & 4 deletions examples/examples/get_account_identity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use sp_core::{crypto::Pair, H256};
use sp_keyring::AccountKeyring;
use substrate_api_client::{
ac_compose_macros::compose_extrinsic,
ac_primitives::{ExtrinsicSigner, SubstrateKitchensinkConfig, UncheckedExtrinsicV4},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner, UncheckedExtrinsicV4},
rpc::JsonrpseeClient,
Api, GetStorage, SubmitAndWatch, XtStatus,
};
Expand All @@ -33,7 +33,7 @@ type BalanceOf<T> = <<T as pallet_identity::Config>::Currency as Currency<
type MaxRegistrarsOf<T> = <T as pallet_identity::Config>::MaxRegistrars;
type MaxAdditionalFieldsOf<T> = <T as pallet_identity::Config>::MaxAdditionalFields;

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[tokio::main]
Expand All @@ -43,8 +43,8 @@ async fn main() {
// Create the node-api client and set the signer.
let client = JsonrpseeClient::with_default_url().unwrap();
let signer = AccountKeyring::Alice.pair();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(signer.clone()));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(signer.clone()));

// Fill Identity storage.
let info = IdentityInfo::<MaxAdditionalFieldsOf<KitchensinkRuntime>> {
Expand Down
6 changes: 3 additions & 3 deletions examples/examples/get_blocks_async.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#[cfg(not(feature = "sync-examples"))]
use substrate_api_client::{
ac_primitives::SubstrateKitchensinkConfig,
ac_primitives::AssetRuntimeConfig,
rpc::{HandleSubscription, JsonrpseeClient},
Api, GetChainInfo, SubscribeChain,
};
Expand All @@ -30,7 +30,7 @@ async fn main() {
println!("Please compile this example with `--no-default-features` for it to run properly.")
}

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[cfg(not(feature = "sync-examples"))]
Expand All @@ -40,7 +40,7 @@ async fn main() {

// Initialize the api.
let client = JsonrpseeClient::with_default_url().unwrap();
let api = Api::<SubstrateKitchensinkConfig, _>::new(client).await.unwrap();
let api = Api::<AssetRuntimeConfig, _>::new(client).await.unwrap();

let (genesis_block, header_hash, signed_block) = futures::future::try_join3(
api.get_genesis_block(),
Expand Down
12 changes: 6 additions & 6 deletions examples/examples/get_storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,28 @@ use kitchensink_runtime::AccountId;
use pallet_staking::Exposure;
use sp_keyring::AccountKeyring;
use substrate_api_client::{
ac_primitives::{Config, ExtrinsicSigner, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, Config, ExtrinsicSigner},
rpc::JsonrpseeClient,
Api, GetAccountInformation, GetStorage,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

type AccountInfo = GenericAccountInfo<
<SubstrateKitchensinkConfig as Config>::Index,
<SubstrateKitchensinkConfig as Config>::AccountData,
<AssetRuntimeConfig as Config>::Index,
<AssetRuntimeConfig as Config>::AccountData,
>;

type Balance = <SubstrateKitchensinkConfig as Config>::Balance;
type Balance = <AssetRuntimeConfig as Config>::Balance;

#[tokio::main]
async fn main() {
env_logger::init();

// Initialize the api.
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();

// get some plain storage value
let result: Balance = api.get_storage("Balances", "TotalIssuance", None).unwrap().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions examples/examples/print_metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
//! Very simple example that shows how to pretty print the metadata. Has proven to be a helpful
//! debugging tool.
use substrate_api_client::{ac_primitives::SubstrateKitchensinkConfig, rpc::JsonrpseeClient, Api};
use substrate_api_client::{ac_primitives::AssetRuntimeConfig, rpc::JsonrpseeClient, Api};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

#[tokio::main]
Expand All @@ -27,7 +27,7 @@ async fn main() {

// Initialize the api, which retrieves the metadata from the node upon initialization.
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();

let meta = api.metadata().clone();

Expand Down
10 changes: 5 additions & 5 deletions examples/examples/staking_batch_payout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ use pallet_staking::{ActiveEraInfo, Exposure};
use sp_keyring::AccountKeyring;
use sp_runtime::{app_crypto::Ss58Codec, AccountId32};
use substrate_api_client::{
ac_primitives::{ExtrinsicSigner, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
extrinsic::{StakingExtrinsics, UtilityExtrinsics},
rpc::JsonrpseeClient,
Api, GetStorage, SubmitAndWatch, SubmitAndWatchUntilSuccess, XtStatus,
};

const MAX_BATCHED_TRANSACTION: u32 = 9;

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

pub type EraIndex = u32;
Expand Down Expand Up @@ -52,8 +52,8 @@ async fn main() {
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let alice = AccountKeyring::Alice.pair();
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(alice));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice));

// Give a valid validator account address. In the kitchinsink runtime, this is Alice.
let validator_account = AccountKeyring::Alice.to_account_id();
Expand Down Expand Up @@ -141,7 +141,7 @@ async fn main() {
pub fn get_last_reward_received_for(
account: &AccountId32,
current_era: EraIndex,
api: &substrate_api_client::Api<SubstrateKitchensinkConfig, JsonrpseeClient>,
api: &substrate_api_client::Api<AssetRuntimeConfig, JsonrpseeClient>,
) -> Option<u32> {
let ledger_storage_key = api.metadata().storage_map_key("Staking", "Ledger", account).unwrap();

Expand Down
8 changes: 4 additions & 4 deletions examples/examples/sudo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,20 @@ use sp_keyring::AccountKeyring;
use substrate_api_client::{
ac_compose_macros::{compose_call, compose_extrinsic},
ac_primitives::{
ExtrinsicSigner as GenericExtrinsicSigner, SignExtrinsic, SubstrateKitchensinkConfig,
AssetRuntimeConfig, ExtrinsicSigner as GenericExtrinsicSigner, SignExtrinsic,
UncheckedExtrinsicV4,
},
rpc::JsonrpseeClient,
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

// Define an extrinsic signer type which sets the generic types of the `GenericExtrinsicSigner`.
// This way, the types don't have to be reassigned with every usage of this type and makes
// the code better readable.
type ExtrinsicSigner = GenericExtrinsicSigner<SubstrateKitchensinkConfig>;
type ExtrinsicSigner = GenericExtrinsicSigner<AssetRuntimeConfig>;

// To access the ExtrinsicAddress type of the Signer, we need to do this via the trait `SignExtrinsic`.
// For better code readability, we define a simple type here and, at the same time, assign the
Expand All @@ -49,7 +49,7 @@ async fn main() {
// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let sudoer = AccountKeyring::Alice.pair();
let client = JsonrpseeClient::with_default_url().unwrap();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::new(sudoer));

// Set the recipient of newly issued funds.
Expand Down
8 changes: 4 additions & 4 deletions examples/examples/transfer_with_tungstenite_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ use sp_core::{
};
use sp_runtime::MultiAddress;
use substrate_api_client::{
ac_primitives::{ExtrinsicSigner, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
extrinsic::BalancesExtrinsics,
rpc::TungsteniteRpcClient,
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

fn main() {
Expand All @@ -43,8 +43,8 @@ fn main() {

// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let client = TungsteniteRpcClient::with_default_url(100);
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(alice.clone()));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice.clone()));

// Retrieve bobs current balance.
let bob = sr25519::Public::from_ss58check("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty")
Expand Down
8 changes: 4 additions & 4 deletions examples/examples/transfer_with_ws_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ use sp_core::{
};
use sp_runtime::MultiAddress;
use substrate_api_client::{
ac_primitives::{ExtrinsicSigner, SubstrateKitchensinkConfig},
ac_primitives::{AssetRuntimeConfig, ExtrinsicSigner},
extrinsic::BalancesExtrinsics,
rpc::WsRpcClient,
Api, GetAccountInformation, SubmitAndWatch, XtStatus,
};

// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the SubstrateKitchensinkConfig
// To test this example in CI, we run it against the Substrate kitchensink node. Therefore, we use the AssetRuntimeConfig
// ! Careful: Most runtimes uses plain as tips, they need a polkadot config.

fn main() {
Expand All @@ -43,8 +43,8 @@ fn main() {

// Initialize api and set the signer (sender) that is used to sign the extrinsics.
let client = WsRpcClient::with_default_url();
let mut api = Api::<SubstrateKitchensinkConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<SubstrateKitchensinkConfig>::new(alice.clone()));
let mut api = Api::<AssetRuntimeConfig, _>::new(client).unwrap();
api.set_signer(ExtrinsicSigner::<AssetRuntimeConfig>::new(alice.clone()));

// Retrieve bobs current balance.
let bob = sr25519::Public::from_ss58check("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty")
Expand Down
Loading

0 comments on commit dd6ca5e

Please sign in to comment.