• Dmitry Kashitsyn's avatar
    `Client` refactoring (#7038) · 9d7d6f71
    Dmitry Kashitsyn authored and Marek Kotewicz's avatar Marek Kotewicz committed
    * Improves `BestBlock` comment
    
    * Improves `TraceDB` comment
    
    * Improves `journaldb::Algorithm` comment.
    
    Probably the whole enum should be renamed to `Strategy` or something alike.
    
    * Comments some of the `Client`'s fields
    
    * Deglobs client imports
    
    * Fixes comments
    
    * Extracts `import_lock` to `Importer` struct
    
    * Extracts `verifier` to `Importer` struct
    
    * Extracts `block_queue` to `Importer` struct
    
    * Extracts `miner` to `Importer` struct
    
    * Extracts `ancient_verifier` to `Importer` struct
    
    * Extracts `rng` to `Importer` struct
    
    * Extracts `import_old_block` to `Importer` struct
    
    * Adds `Nonce` trait
    
    * Adds `Balance` trait
    
    * Adds `ChainInfo` trait
    
    * Fixes imports for tests using `chain_info` method
    
    * Adds `BlockInfo` trait
    
    * Adds more `ChainInfo` imports
    
    * Adds `BlockInfo` imports
    
    * Adds `ReopenBlock` trait
    
    * Adds `PrepareOpenBlock` trait
    
    * Fixes import in tests
    
    * Adds `CallContract` trait
    
    * Fixes imports in tests using `call_contract` method
    
    * Adds `TransactionInfo` trait
    
    * Adds `RegistryInfo` trait
    
    * Fixes imports in tests using `registry_address` method
    
    * Adds `ScheduleInfo` trait
    
    * Adds `ImportSealedBlock` trait
    
    * Fixes imports in test using `import_sealed_block` method
    
    * Adds `BroadcastProposalBlock` trait
    
    * Migrates `Miner` to static dispatch
    
    * Fixes tests
    
    * Moves `calculate_enacted_retracted` to `Importer`
    
    * Moves import-related methods to `Importer`
    
    * Removes redundant `import_old_block` wrapper
    
    * Extracts `import_block*` into separate trait
    
    * Fixes tests
    
    * Handles `Pending` in `LightFetch`
    
    * Handles `Pending` in filters
    
    * Handles `Pending` in `ParityClient`
    
    * Handles `Pending` in `EthClient`
    
    * Removes `BlockId::Pending`, partly refactors dependent code
    
    * Adds `StateInfo` trait
    
    * Exports `StateOrBlock` and `BlockChain` types from `client` module
    
    * Refactors `balance` RPC using generic API
    
    * Refactors `storage_at` RPC using generic API
    
    * Makes `MinerService::pending_state`'s return type dynamic
    
    * Adds `StateOrBlock` and `BlockChain` types
    
    * Adds impl of `client::BlockChain` for `Client`
    
    * Exports `StateInfo` trait from `client` module
    
    * Missing `self` use
    
    To be fixed up to "Adds impl of `client::BlockChain` for `Client`"
    
    * Adds `number_to_id` and refactors dependent RPC methods
    
    * Refactors `code_at` using generic API
    
    * Adds `StateClient` trait
    
    * Refactors RPC to use `StateClient` trait
    
    * Reverts `client::BlockChain` trait stuff, refactors methods to accept `StateOrBlock`
    
    * Refactors TestClient
    
    * Adds helper function `block_number_to_id`
    
    * Uses `block_number_to_id` instead of local function
    
    * Handles `Pending` in `list_accounts` and `list_storage_keys`
    
    * Attempt to use associated types for state instead of trait objects
    
    * Simplifies `state_at_beginning`
    
    * Extracts `call` and `call_many` into separate trait
    
    * Refactors `build_last_hashes` to accept reference
    
    * Exports `Call` type from the module
    
    * Refactors `call` and `call_many` to accept state and header
    
    * Exports `state_at` in `StateClient`
    
    * Exports `pending_block_header` from `MinerService`
    
    * Refactors RPC `call` method using new API
    
    * Adds missing parentheses
    
    * Refactors `parity::call` to use new call API
    
    * Update .gitlab-ci.yml
    
    fix gitlab lint
    
    * Fixes error handling
    
    * Refactors `traces::call` and `call_many` to use new call API
    
    * Refactors `call_contract`
    
    * Refactors `block_header`
    
    * Refactors internal RPC method `block`
    
    * Moves `estimate_gas` to `Call` trait, refactors parameters
    
    * Refactors `estimate_gas` in RPC
    
    * Refactors `uncle`
    
    * Refactors RPC `transaction`
    
    * Covers missing branches
    
    * Makes it all compile, fixes compiler grumbles
    
    * Adds casts in `blockchain` module
    
    * Fixes `PendingBlock` tests, work on `MinerService`
    
    * Adds test stubs for StateClient and EngineInfo
    
    * Makes `state_db` public
    
    * Adds missing impls for `TestBlockChainClient`
    
    * Adds trait documentation
    
    * Adds missing docs to the `state_db` module
    
    * Fixes trivial compilation errors
    
    * Moves `code_hash` method to a `BlockInfo` trait
    
    * Refactors `Verifier` to be generic over client
    
    * Refactors `TransactionFilter` to be generic over client
    
    * Refactors `Miner` and `Client` to reflect changes in verifier and txfilter API
    
    * Moves `ServiceTransactionChecker` back to `ethcore`
    
    * Fixes trait bounds in `Miner` API
    
    * Fixes `Client`
    
    * Fixes lifetime bound in `FullFamilyParams`
    
    * Adds comments to `FullFamilyParams`
    
    * Fixes imports in `ethcore`
    
    * Fixes BlockNumber handling in `code_at` and `replay_block_transactions`
    
    * fix compile issues
    
    * First step to redundant trait merge
    
    * Fixes compilation error in RPC tests
    
    * Adds mock `State` as a stub for `TestClient`
    
    * Handles `StateOrBlock::State` in `TestBlockChainClient::balance`
    
    * Fixes `transaction_count` RPC
    
    * Fixes `transaction_count`
    
    * Moves `service_transaction.json` to the `contracts` subfolder
    
    * Fixes compilation errors in tests
    
    * Refactors client to use `AccountData`
    
    * Refactors client to use `BlockChain`
    
    * Refactors miner to use aggregate traits
    
    * Adds `SealedBlockImporter` trait
    
    * Refactors miner to use `SealedBlockImporter` trait
    
    * Removes unused imports
    
    * Simplifies `RegistryInfo::registry_address`
    
    * Fixes indentation
    
    * Removes commented out trait bound
    9d7d6f71