From fa45413a90b4c857c93b03f539eef1f6b779e109 Mon Sep 17 00:00:00 2001 From: arkpar Date: Mon, 28 Nov 2016 01:32:40 +0100 Subject: [PATCH] Extened API --- parity/blockchain.rs | 3 +-- rpc/src/v1/impls/parity.rs | 11 ++++++----- rpc/src/v1/traits/parity.rs | 7 ++++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/parity/blockchain.rs b/parity/blockchain.rs index 528a56d3a..02d3e39fb 100644 --- a/parity/blockchain.rs +++ b/parity/blockchain.rs @@ -403,10 +403,9 @@ fn execute_export_state(cmd: ExportState) -> Result { } for account in accounts.into_iter() { - let balance = client.balance(&account, at).unwrap_or_else(U256::zero); - if cmd.min_balance.map_or(false, |m| balance < m) || cmd.max_balance.map_or(false, |m| balance > m) { + last = Some(account); continue; //filtered out } diff --git a/rpc/src/v1/impls/parity.rs b/rpc/src/v1/impls/parity.rs index 73ab4f402..74f467e5e 100644 --- a/rpc/src/v1/impls/parity.rs +++ b/rpc/src/v1/impls/parity.rs @@ -28,7 +28,6 @@ use ethstore::random_phrase; use ethsync::{SyncProvider, ManageNetwork}; use ethcore::miner::MinerService; use ethcore::client::{MiningBlockChainClient}; -use ethcore::ids::BlockID; use ethcore::mode::Mode; use ethcore::account_provider::AccountProvider; @@ -38,9 +37,11 @@ use v1::types::{ Bytes, U256, H160, H256, H512, Peers, Transaction, RpcSettings, Histogram, TransactionStats, LocalTransactionStatus, + BlockNumber, }; use v1::helpers::{errors, SigningQueue, SignerService, NetworkSettings}; use v1::helpers::dispatch::DEFAULT_MAC; +use v1::helpers::auto_args::Trailing; /// Parity implementation. pub struct ParityClient where @@ -234,19 +235,19 @@ impl Parity for ParityClient where Ok(Brain::new(phrase).generate().unwrap().address().into()) } - fn list_accounts(&self, after: Option, count: u64) -> Result>, Error> { + fn list_accounts(&self, count: u64, after: Option, block_number: Trailing) -> Result>, Error> { try!(self.active()); Ok(take_weak!(self.client) - .list_accounts(BlockID::Latest, after.map(Into::into).as_ref(), count) + .list_accounts(block_number.0.into(), after.map(Into::into).as_ref(), count) .map(|a| a.into_iter().map(Into::into).collect())) } - fn list_storage_keys(&self, address: H160, after: Option, count: u64) -> Result>, Error> { + fn list_storage_keys(&self, address: H160, count: u64, after: Option, block_number: Trailing) -> Result>, Error> { try!(self.active()); Ok(take_weak!(self.client) - .list_storage(BlockID::Latest, &address.into(), after.map(Into::into).as_ref(), count) + .list_storage(block_number.0.into(), &address.into(), after.map(Into::into).as_ref(), count) .map(|a| a.into_iter().map(Into::into).collect())) } diff --git a/rpc/src/v1/traits/parity.rs b/rpc/src/v1/traits/parity.rs index be1c74611..18440b654 100644 --- a/rpc/src/v1/traits/parity.rs +++ b/rpc/src/v1/traits/parity.rs @@ -18,11 +18,12 @@ use jsonrpc_core::Error; use std::collections::BTreeMap; -use v1::helpers::auto_args::Wrap; +use v1::helpers::auto_args::{Wrap, Trailing}; use v1::types::{ H160, H256, H512, U256, Bytes, Peers, Transaction, RpcSettings, Histogram, TransactionStats, LocalTransactionStatus, + BlockNumber }; build_rpc_trait! { @@ -103,12 +104,12 @@ build_rpc_trait! { /// Returns all addresses if Fat DB is enabled (`--fat-db`), or null if not. #[rpc(name = "parity_listAccounts")] - fn list_accounts(&self, Option, u64) -> Result>, Error>; + fn list_accounts(&self, u64, Option, Trailing) -> Result>, Error>; /// Returns all storage keys of the given address (first parameter) if Fat DB is enabled (`--fat-db`), /// or null if not. #[rpc(name = "parity_listStorageKeys")] - fn list_storage_keys(&self, H160, Option, u64) -> Result>, Error>; + fn list_storage_keys(&self, H160, u64, Option, Trailing) -> Result>, Error>; /// Encrypt some data with a public key under ECIES. /// First parameter is the 512-byte destination public key, second is the message.