Skip to content
Snippets Groups Projects
Verified Commit a4d1532c authored by Pascal Engélibert's avatar Pascal Engélibert :bicyclist:
Browse files

chore: update subxt

parent fecd24a3
No related branches found
No related tags found
No related merge requests found
......@@ -1223,9 +1223,9 @@ dependencies = [
[[package]]
name = "jsonrpsee"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11e017217fcd18da0a25296d3693153dd19c8a6aadab330b3595285d075385d1"
checksum = "8bd0d559d5e679b1ab2f869b486a11182923863b1b3ee8b421763cdd707b783a"
dependencies = [
"jsonrpsee-client-transport",
"jsonrpsee-core",
......@@ -1233,9 +1233,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-client-transport"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce395539a14d3ad4ec1256fde105abd36a2da25d578a291cabe98f45adfdb111"
checksum = "8752740ecd374bcbf8b69f3e80b0327942df76f793f8d4e60d3355650c31fb74"
dependencies = [
"futures-util",
"http",
......@@ -1254,9 +1254,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-core"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16efcd4477de857d4a2195a45769b2fe9ebb54f3ef5a4221d3b014a4fe33ec0b"
checksum = "f3dc3e9cf2ba50b7b1d7d76a667619f82846caa39e8e8daa8a4962d74acaddca"
dependencies = [
"anyhow",
"async-lock",
......@@ -1272,13 +1272,14 @@ dependencies = [
"thiserror",
"tokio",
"tracing",
"tracing-futures",
]
[[package]]
name = "jsonrpsee-types"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3bcf76cd316f5d3ad48138085af1f45e2c58c98e02f0779783dbb034d43f7c86"
checksum = "e290bba767401b646812f608c099b922d8142603c9e73a50fb192d3ac86f4a0d"
dependencies = [
"anyhow",
"beef",
......@@ -2104,6 +2105,18 @@ version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
[[package]]
name = "scale-decode"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c70dece385bc3e5918109830d9509806b5d4525fdf594e3463078c529122979e"
dependencies = [
"bitvec",
"parity-scale-codec",
"scale-info",
"thiserror",
]
[[package]]
name = "scale-info"
version = "2.1.2"
......@@ -2130,6 +2143,23 @@ dependencies = [
"syn",
]
[[package]]
name = "scale-value"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eae8b296b3ebcb3425661e9b612ccc34cb1064483a61dc379c65e6b1463498f1"
dependencies = [
"bitvec",
"either",
"frame-metadata",
"parity-scale-codec",
"scale-decode",
"scale-info",
"serde",
"thiserror",
"yap",
]
[[package]]
name = "schannel"
version = "0.1.20"
......@@ -2246,9 +2276,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.83"
version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7"
checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"
dependencies = [
"itoa 1.0.3",
"ryu",
......@@ -2384,7 +2414,7 @@ dependencies = [
[[package]]
name = "sp-application-crypto"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"parity-scale-codec",
"scale-info",
......@@ -2397,7 +2427,7 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
version = "5.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"integer-sqrt",
"num-traits",
......@@ -2412,7 +2442,7 @@ dependencies = [
[[package]]
name = "sp-core"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"base58",
"bitflags",
......@@ -2458,7 +2488,7 @@ dependencies = [
[[package]]
name = "sp-core-hashing"
version = "4.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"blake2",
"byteorder",
......@@ -2472,7 +2502,7 @@ dependencies = [
[[package]]
name = "sp-debug-derive"
version = "4.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"proc-macro2",
"quote",
......@@ -2482,7 +2512,7 @@ dependencies = [
[[package]]
name = "sp-externalities"
version = "0.12.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"environmental",
"parity-scale-codec",
......@@ -2493,7 +2523,7 @@ dependencies = [
[[package]]
name = "sp-io"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"futures",
"hash-db",
......@@ -2518,7 +2548,7 @@ dependencies = [
[[package]]
name = "sp-keystore"
version = "0.12.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"async-trait",
"futures",
......@@ -2534,7 +2564,7 @@ dependencies = [
[[package]]
name = "sp-panic-handler"
version = "4.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"backtrace",
"lazy_static",
......@@ -2544,7 +2574,7 @@ dependencies = [
[[package]]
name = "sp-runtime"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"either",
"hash256-std-hasher",
......@@ -2566,7 +2596,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
......@@ -2583,7 +2613,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "5.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"Inflector",
"proc-macro-crate",
......@@ -2595,7 +2625,7 @@ dependencies = [
[[package]]
name = "sp-state-machine"
version = "0.12.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"hash-db",
"log",
......@@ -2617,12 +2647,12 @@ dependencies = [
[[package]]
name = "sp-std"
version = "4.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
[[package]]
name = "sp-storage"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"impl-serde",
"parity-scale-codec",
......@@ -2635,7 +2665,7 @@ dependencies = [
[[package]]
name = "sp-tracing"
version = "5.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"parity-scale-codec",
"sp-std",
......@@ -2647,7 +2677,7 @@ dependencies = [
[[package]]
name = "sp-trie"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"hash-db",
"memory-db",
......@@ -2663,7 +2693,7 @@ dependencies = [
[[package]]
name = "sp-wasm-interface"
version = "6.0.0"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.23#3c05363666a2e719807713830b7d6eee0a9598d2"
source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9.26#16476332c7c5a6a6478c4072aa3cadb9b7c28c83"
dependencies = [
"impl-trait-for-tuples",
"log",
......@@ -2726,8 +2756,8 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "subxt"
version = "0.22.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.23#e0fcf196eb6192e905e1784580f64363e2213556"
version = "0.23.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.26#9ab601b10b4254d64368371f07e09934a0f55bf7"
dependencies = [
"bitvec",
"derivative",
......@@ -2737,7 +2767,9 @@ dependencies = [
"jsonrpsee",
"parity-scale-codec",
"parking_lot",
"scale-decode",
"scale-info",
"scale-value",
"serde",
"serde_json",
"sp-core",
......@@ -2750,8 +2782,8 @@ dependencies = [
[[package]]
name = "subxt-codegen"
version = "0.22.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.23#e0fcf196eb6192e905e1784580f64363e2213556"
version = "0.23.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.26#9ab601b10b4254d64368371f07e09934a0f55bf7"
dependencies = [
"darling",
"frame-metadata",
......@@ -2767,8 +2799,8 @@ dependencies = [
[[package]]
name = "subxt-macro"
version = "0.22.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.23#e0fcf196eb6192e905e1784580f64363e2213556"
version = "0.23.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.26#9ab601b10b4254d64368371f07e09934a0f55bf7"
dependencies = [
"darling",
"proc-macro-error",
......@@ -2778,8 +2810,8 @@ dependencies = [
[[package]]
name = "subxt-metadata"
version = "0.22.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.23#e0fcf196eb6192e905e1784580f64363e2213556"
version = "0.23.0"
source = "git+https://github.com/duniter/subxt.git?branch=duniter-substrate-v0.9.26#9ab601b10b4254d64368371f07e09934a0f55bf7"
dependencies = [
"frame-metadata",
"parity-scale-codec",
......@@ -2921,16 +2953,15 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
version = "1.20.1"
version = "1.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581"
checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"
dependencies = [
"autocfg",
"bytes",
"libc",
"memchr",
"mio",
"once_cell",
"pin-project-lite",
"socket2",
"tokio-macros",
......@@ -3032,6 +3063,16 @@ dependencies = [
"valuable",
]
[[package]]
name = "tracing-futures"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
"pin-project",
"tracing",
]
[[package]]
name = "tracing-log"
version = "0.1.3"
......@@ -3450,6 +3491,12 @@ dependencies = [
"tap",
]
[[package]]
name = "yap"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fc77f52dc9e9b10d55d3f4462c3b7fc393c4f17975d641542833ab2d3bc26ef"
[[package]]
name = "zeroize"
version = "1.5.7"
......
......@@ -9,14 +9,14 @@ version = "0.1.0"
[dependencies]
anyhow = "1.0"
clap = { version = "3.0", features = ["derive"] }
codec = { package = "parity-scale-codec", version = "3.1.5" }
env_logger = "0.9.0"
graphql_client = { version = "0.11.0", features = ["reqwest"] }
hex = "0.4.3"
logs = "0.5"
codec = { package = "parity-scale-codec", version = "3.1.5" }
reqwest = "0.11.11"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.64"
sp-core = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.23" }
subxt = { git = 'https://github.com/duniter/subxt.git', branch = 'duniter-substrate-v0.9.23' }
tokio = { version = "1.15.0", features = ["macros"] }
serde_json = "1.0.87"
sp-core = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.26" }
subxt = { git = "https://github.com/duniter/subxt.git", branch = "duniter-substrate-v0.9.26" }
tokio = { version = "1.21.1", features = ["macros"] }
No preview for this file type
use crate::gdev_300;
use crate::indexer::*;
use crate::Api;
use crate::Client;
use anyhow::{anyhow, Result};
use std::collections::{hash_map, HashMap};
pub struct IdentityCache<'a> {
api: &'a Api,
client: &'a Client,
identities: HashMap<u32, String>,
indexer: Option<(&'a reqwest::Client, &'a str)>,
}
impl<'a> IdentityCache<'a> {
pub fn new(api: &'a Api, indexer: Option<(&'a reqwest::Client, &'a str)>) -> Self {
pub fn new(client: &'a Client, indexer: Option<(&'a reqwest::Client, &'a str)>) -> Self {
Self {
api,
client,
identities: HashMap::new(),
indexer,
}
......@@ -29,10 +30,12 @@ impl<'a> IdentityCache<'a> {
hash_map::Entry::Vacant(entry) => entry
.insert({
let pubkey = self
.api
.client
.storage()
.identity()
.identities(&identity_id, Some(parent_hash))
.fetch(
&gdev_300::storage().identity().identities(identity_id),
Some(parent_hash),
)
.await?
.ok_or_else(|| anyhow!("Identity {} not found", identity_id))?
.owner_key
......
mod cache;
mod indexer;
use anyhow::{anyhow, Context, Result};
use anyhow::{anyhow, Result};
use clap::Parser;
use codec::Encode;
use sp_core::{
......@@ -10,17 +10,30 @@ use sp_core::{
};
use std::collections::BTreeMap;
use std::str::FromStr;
use subxt::sp_runtime::MultiAddress;
use subxt::{
extrinsic::{BaseExtrinsicParams, BaseExtrinsicParamsBuilder},
ClientBuilder, DefaultConfig, PairSigner,
};
use subxt::ext::sp_runtime::MultiAddress;
use subxt::tx::{BaseExtrinsicParamsBuilder, PairSigner};
#[subxt::subxt(runtime_metadata_path = "res/metadata.scale")]
pub mod gdev_300 {}
pub type Api = gdev_300::RuntimeApi<DefaultConfig, BaseExtrinsicParams<DefaultConfig, Tip>>;
type Client = subxt::Client<DefaultConfig>;
pub type Client = subxt::OnlineClient<GdevConfig>;
pub enum GdevConfig {}
impl subxt::config::Config for GdevConfig {
type Index = u32;
type BlockNumber = u32;
type Hash = sp_core::H256;
type Hashing = subxt::ext::sp_runtime::traits::BlakeTwo256;
type AccountId = subxt::ext::sp_runtime::AccountId32;
type Address = subxt::ext::sp_runtime::MultiAddress<Self::AccountId, u32>;
type Header = subxt::ext::sp_runtime::generic::Header<
Self::BlockNumber,
subxt::ext::sp_runtime::traits::BlakeTwo256,
>;
type Signature = subxt::ext::sp_runtime::MultiSignature;
type Extrinsic = subxt::ext::sp_runtime::OpaqueExtrinsic;
type ExtrinsicParams = subxt::tx::BaseExtrinsicParams<Self, Tip>;
}
#[derive(Copy, Clone, Debug, Default, Encode)]
pub struct Tip {
......@@ -150,19 +163,18 @@ async fn main() -> Result<()> {
(None, None) => (None, None),
};
let client: Client = ClientBuilder::new()
.set_url(&args.url)
.build()
.await
.with_context(|| "fail to connect to node")?;
let api = client.clone().to_runtime_api::<Api>();
let client = Client::new().await.unwrap();
let gql_client = reqwest::Client::builder()
.user_agent("gcli/0.1.0")
.build()?;
if let Some(account_id) = &account_id {
let account = api.storage().system().account(account_id, None).await?;
let account = client
.storage()
.fetch(&gdev_300::storage().system().account(account_id), None)
.await?
.expect("Cannot fetch account");
logs::info!("Account free balance: {}", account.data.free);
}
......@@ -170,10 +182,12 @@ async fn main() -> Result<()> {
Subcommand::CreateOneshot { balance, dest } => {
let pair = pair.expect("This subcommand needs a secret.");
api.tx()
.oneshot_account()
.create_oneshot_account(dest.into(), balance)?
client
.tx()
.sign_and_submit_then_watch(
&gdev_300::tx()
.oneshot_account()
.create_oneshot_account(dest.into(), balance),
&PairSigner::new(pair),
BaseExtrinsicParamsBuilder::new(),
)
......@@ -182,8 +196,13 @@ async fn main() -> Result<()> {
Subcommand::ConsumeOneshot { dest, dest_oneshot } => {
let pair = pair.expect("This subcommand needs a secret.");
let number = api.storage().system().number(None).await?;
api.tx()
let number = client
.storage()
.fetch(&gdev_300::storage().system().number(), None)
.await?
.unwrap();
client.tx()
.sign_and_submit_then_watch(&gdev_300::tx()
.oneshot_account()
.consume_oneshot_account(
number,
......@@ -196,8 +215,7 @@ async fn main() -> Result<()> {
dest.into(),
)
},
)?
.sign_and_submit_then_watch(
),
&PairSigner::new(pair),
BaseExtrinsicParamsBuilder::new(),
)
......@@ -212,8 +230,13 @@ async fn main() -> Result<()> {
} => {
let pair = pair.expect("This subcommand needs a secret.");
let number = api.storage().system().number(None).await?;
api.tx()
let number = client
.storage()
.fetch(&gdev_300::storage().system().number(), None)
.await?
.unwrap();
client.tx()
.sign_and_submit_then_watch(&gdev_300::tx()
.oneshot_account()
.consume_oneshot_account_with_remaining(
number,
......@@ -236,26 +259,36 @@ async fn main() -> Result<()> {
)
},
balance,
)?
.sign_and_submit_then_watch(
),
&PairSigner::new(pair),
BaseExtrinsicParamsBuilder::new(),
)
.await?;
}
Subcommand::Expire { blocks, sessions } => {
let parent_hash = api.storage().system().parent_hash(None).await?;
let current_block = api.storage().system().number(Some(parent_hash)).await?;
let current_session = api
let parent_hash = client
.storage()
.session()
.current_index(Some(parent_hash))
.await?;
.fetch(&gdev_300::storage().system().parent_hash(), None)
.await?
.unwrap();
let current_block = client
.storage()
.fetch(&gdev_300::storage().system().number(), Some(parent_hash))
.await?
.unwrap();
let current_session = client
.storage()
.fetch(
&gdev_300::storage().session().current_index(),
Some(parent_hash),
)
.await?
.unwrap();
let end_block = current_block + blocks;
let end_session = current_session + sessions;
let mut identity_cache = cache::IdentityCache::new(
&api,
&client,
if args.no_indexer {
None
} else {
......@@ -266,9 +299,13 @@ async fn main() -> Result<()> {
// Rotate keys
let mut must_rotate_keys_before_iter = client
.storage()
.iter::<gdev_300::authority_members::storage::MustRotateKeysBefore>(Some(
parent_hash,
))
.iter(
gdev_300::storage()
.authority_members()
.must_rotate_keys_before(0),
10,
Some(parent_hash),
)
.await?;
let mut must_rotate_keys_before = BTreeMap::new();
while let Some((k, v)) = must_rotate_keys_before_iter.next().await? {
......@@ -296,7 +333,11 @@ async fn main() -> Result<()> {
// Certifications
let mut basic_certs_iter = client
.storage()
.iter::<gdev_300::cert::storage::StorageCertsRemovableOn>(Some(parent_hash))
.iter(
gdev_300::storage().cert().storage_certs_removable_on(0),
10,
Some(parent_hash),
)
.await?;
let mut basic_certs = BTreeMap::new();
while let Some((k, v)) = basic_certs_iter.next().await? {
......@@ -308,7 +349,13 @@ async fn main() -> Result<()> {
let mut smith_certs_iter = client
.storage()
.iter::<gdev_300::smiths_cert::storage::StorageCertsRemovableOn>(Some(parent_hash))
.iter(
gdev_300::storage()
.smiths_cert()
.storage_certs_removable_on(0),
10,
Some(parent_hash),
)
.await?;
let mut smith_certs = BTreeMap::new();
while let Some((k, v)) = smith_certs_iter.next().await? {
......@@ -346,7 +393,11 @@ async fn main() -> Result<()> {
// Memberships
let mut basic_membership_iter = client
.storage()
.iter::<gdev_300::membership::storage::MembershipsExpireOn>(Some(parent_hash))
.iter(
gdev_300::storage().membership().memberships_expire_on(0),
10,
Some(parent_hash),
)
.await?;
let mut basic_memberships = BTreeMap::new();
while let Some((k, v)) = basic_membership_iter.next().await? {
......@@ -358,9 +409,13 @@ async fn main() -> Result<()> {
let mut smith_membership_iter = client
.storage()
.iter::<gdev_300::smiths_membership::storage::MembershipsExpireOn>(Some(
parent_hash,
))
.iter(
gdev_300::storage()
.smiths_membership()
.memberships_expire_on(0),
10,
Some(parent_hash),
)
.await?;
let mut smith_memberships = BTreeMap::new();
while let Some((k, v)) = smith_membership_iter.next().await? {
......@@ -391,14 +446,19 @@ async fn main() -> Result<()> {
}
}
Subcommand::GenRevocDoc => {
gen_revoc_doc(&api, &pair.expect("This subcommand needs a secret.")).await?
gen_revoc_doc(&client, &pair.expect("This subcommand needs a secret.")).await?
}
Subcommand::OneshotBalance { account } => {
logs::info!(
"{}",
api.storage()
.oneshot_account()
.oneshot_accounts(&account, None)
client
.storage()
.fetch(
&gdev_300::storage()
.oneshot_account()
.oneshot_accounts(&account),
None
)
.await?
.unwrap_or(0)
);
......@@ -429,19 +489,25 @@ async fn main() -> Result<()> {
.await?;
signer.increment_nonce();*/
let pair_i_account = api
if let Some(pair_i_account) = client
.storage()
.system()
.account(&pair_i.public().into(), None)
.await?;
logs::info!("account //{} balance: {}", i, pair_i_account.data.free);
.fetch(
&gdev_300::storage()
.system()
.account(&pair_i.public().into()),
None,
)
.await?
{
logs::info!("account //{} balance: {}", i, pair_i_account.data.free);
}
}
}
Subcommand::SpamRoll { actual_repart } => {
let pair = pair.expect("This subcommand needs a secret.");
let mut pairs =
Vec::<(PairSigner<DefaultConfig, Pair>, AccountId32)>::with_capacity(actual_repart);
Vec::<(PairSigner<GdevConfig, Pair>, AccountId32)>::with_capacity(actual_repart);
for i in 0..actual_repart {
let pair_i = pair
.derive(std::iter::once(DeriveJunction::hard::<u32>(i as u32)), None)
......@@ -455,22 +521,27 @@ async fn main() -> Result<()> {
let mut watchers = Vec::with_capacity(actual_repart);
for i in 0..(actual_repart - 1) {
let dest: AccountId32 = pairs[i + 1].1.clone();
let watcher = api
let watcher = client
.tx()
.balances()
.transfer(MultiAddress::Id(dest), 1)?
.sign_and_submit_then_watch(&pairs[i].0, BaseExtrinsicParamsBuilder::new())
.sign_and_submit_then_watch(
&gdev_300::tx()
.balances()
.transfer(MultiAddress::Id(dest), 1),
&pairs[i].0,
BaseExtrinsicParamsBuilder::new(),
)
.await?;
pairs[i].0.increment_nonce();
logs::info!("send 1 cent from //{} to //{}", i, i + 1);
watchers.push(watcher);
}
let dest: AccountId32 = pairs[0].1.clone();
let watcher = api
let watcher = client
.tx()
.balances()
.transfer(MultiAddress::Id(dest), 1)?
.sign_and_submit_then_watch(
&gdev_300::tx()
.balances()
.transfer(MultiAddress::Id(dest), 1),
&pairs[actual_repart - 1].0,
BaseExtrinsicParamsBuilder::new(),
)
......@@ -493,19 +564,21 @@ async fn main() -> Result<()> {
let pair = pair.expect("This subcommand needs a secret.");
if keep_alive {
api.tx()
.balances()
.transfer(dest.into(), balance)?
client
.tx()
.sign_and_submit_then_watch(
&gdev_300::tx().balances().transfer(dest.into(), balance),
&PairSigner::new(pair),
BaseExtrinsicParamsBuilder::new(),
)
.await?;
} else {
api.tx()
.balances()
.transfer_keep_alive(dest.into(), balance)?
client
.tx()
.sign_and_submit_then_watch(
&gdev_300::tx()
.balances()
.transfer_keep_alive(dest.into(), balance),
&PairSigner::new(pair),
BaseExtrinsicParamsBuilder::new(),
)
......@@ -517,14 +590,26 @@ async fn main() -> Result<()> {
Ok(())
}
async fn gen_revoc_doc(api: &Api, pair: &Pair) -> Result<()> {
async fn gen_revoc_doc(api: &Client, pair: &Pair) -> Result<()> {
let account_id: sp_core::crypto::AccountId32 = pair.public().into();
let genesis_hash = api.storage().system().block_hash(&0, None).await?;
let payload = (account_id, genesis_hash).encode();
let idty_index = api
.storage()
.fetch(
&gdev_300::storage()
.identity()
.identity_index_of(&account_id),
None,
)
.await?;
let genesis_hash = api
.storage()
.fetch(&gdev_300::storage().system().block_hash(0), None)
.await?
.unwrap();
let payload = (b"revo", genesis_hash, idty_index).encode();
let signature = pair.sign(&payload);
println!("payload: 0x{}", hex::encode(payload));
println!("signature: 0x{}", hex::encode(signature));
println!("0x{}", hex::encode(signature));
Ok(())
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment