* Add client-traits crate
Move the BlockInfo trait to new crate
* New crate `machine`
Contains code extracted from ethcore that defines `Machine`, `Externalities` and other execution related code.
* Use new machine and client-traits crates in ethcore
* Use new crates machine and client-traits instead of ethcore where appropriate
* Fix tests
* Don't re-export so many types from ethcore::client
* Fixing more fallout from removing re-export
* fix test
* More fallout from not re-exporting types
* Add some docs
* cleanup
* import the macro edition style
* Tweak docs
* Add missing import
* remove unused ethabi_derive imports
* Use latest ethabi-contract
* Move many traits from ethcore/client/traits to client-traits crate
Initial version of extracted Engine trait
* Move snapshot related traits to the engine crate (eew)
* Move a few snapshot related types to common_types
Cleanup Executed as exported from machine crate
* fix warning
* Gradually introduce new engine crate: snapshot
* ethcore typechecks with new engine crate
* Sort out types outside ethcore
* Add an EpochVerifier to ethash and use that in Engine.epoch_verifier()
Cleanup
* Document pub members
* Sort out tests
Sort out default impls for EpochVerifier
* Add test-helpers feature and move EngineSigner impl to the right place
* Sort out tests
* Sort out tests and refactor verification types
* Fix missing traits
* More missing traits
Fix Histogram
* Fix tests and cleanup
* cleanup
* Put back needed logger import
* Don't rexport common_types from ethcore/src/client
Don't export ethcore::client::*
* Remove files no longer used
Use types from the engine crate
Explicit exports from engine::engine
* Get rid of itertools
* Move a few more traits from ethcore to client-traits: BlockChainReset, ScheduleInfo, StateClient
* Move ProvingBlockChainClient to client-traits
* Don't re-export ForkChoice and Transition from ethcore
* Address grumbles: sort imports, remove commented out code
* Fix merge resolution error
* Extract the Clique engine to own crate
* Extract NullEngine and the block_reward module from ethcore
* Extract InstantSeal engine to own crate
* Extract remaining engines
* Extract executive_state to own crate so it can be used by engine crates
* Remove snapshot stuff from the engine crate
* Put snapshot traits back in ethcore
* cleanup
* Remove stuff from ethcore
* Don't use itertools
* itertools in aura is legit-ish
* More post-merge fixes
* Re-export less types in client
* cleanup
* Update ethcore/block-reward/Cargo.toml
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update ethcore/engines/basic-authority/Cargo.toml
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update ethcore/engines/ethash/Cargo.toml
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update ethcore/engines/clique/src/lib.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* signers is already a ref
* Add an EngineType enum to tighten up Engine.name()
* Introduce Snapshotting enum to distinguish the type of snapshots a chain uses
* Rename supports_warp to snapshot_mode
* Missing import
* Update ethcore/src/snapshot/consensus/mod.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* remove double-semicolons
* Temp storage for the private state added
* Temp storage for the private state added
* Request message added
* Store and retrieve offchain state logic
* State sync cache
* Private state column added to key value db
* Private state column added to key value db
* Indexing stored states via its hash
* Works with errors changed
* Private state stored into the local db
* Access to private state db added to sync io
* Private state db file added
* Rlp packets for retrieiving private state data added
* Handling of private sync completed message
* Test code fixed
* External flag for offchain storing added
* Test for private state sync added
* Saving private state logic corrected
* Migration code corrected
* Fixes after merge with master
* Merge with head
* Additional checks for slices
* Log for private state retrieval added
* Limit time of retrieving private states
* Store required hashes for every request, mark them stale if needed
* Store requested private state hashes and check received data
* Log stale requests
* State insertion fix
* Refactoring of how logging passed to state store
* Heapsize removed, syncing hashes structure reworked
* Check state length returned by contract
* Get rid of OverlayDB
* hash-db version updated
* Test fixed
* One more test fixed
* Add client-traits crate
Move the BlockInfo trait to new crate
* New crate `machine`
Contains code extracted from ethcore that defines `Machine`, `Externalities` and other execution related code.
* Use new machine and client-traits crates in ethcore
* Use new crates machine and client-traits instead of ethcore where appropriate
* Fix tests
* Don't re-export so many types from ethcore::client
* Fixing more fallout from removing re-export
* fix test
* More fallout from not re-exporting types
* Add some docs
* cleanup
* import the macro edition style
* Tweak docs
* Add missing import
* remove unused ethabi_derive imports
* Use latest ethabi-contract
* Move many traits from ethcore/client/traits to client-traits crate
Initial version of extracted Engine trait
* Move snapshot related traits to the engine crate (eew)
* Move a few snapshot related types to common_types
Cleanup Executed as exported from machine crate
* fix warning
* Gradually introduce new engine crate: snapshot
* ethcore typechecks with new engine crate
* Sort out types outside ethcore
* Add an EpochVerifier to ethash and use that in Engine.epoch_verifier()
Cleanup
* Document pub members
* Sort out tests
Sort out default impls for EpochVerifier
* Add test-helpers feature and move EngineSigner impl to the right place
* Sort out tests
* Sort out tests and refactor verification types
* Fix missing traits
* More missing traits
Fix Histogram
* Fix tests and cleanup
* cleanup
* Put back needed logger import
* Don't rexport common_types from ethcore/src/client
Don't export ethcore::client::*
* Remove files no longer used
Use types from the engine crate
Explicit exports from engine::engine
* Get rid of itertools
* Move a few more traits from ethcore to client-traits: BlockChainReset, ScheduleInfo, StateClient
* Move ProvingBlockChainClient to client-traits
* Don't re-export ForkChoice and Transition from ethcore
* Address grumbles: sort imports, remove commented out code
* Fix merge resolution error
* merge failure
* Fix compilation error
Include the test-helpers from `machine` (used by json-tests, although I'm not sure why evmbin needs ethcore/json-tests)
* Update to edition
* Add client-traits crate
Move the BlockInfo trait to new crate
* New crate `machine`
Contains code extracted from ethcore that defines `Machine`, `Externalities` and other execution related code.
* Use new machine and client-traits crates in ethcore
* Use new crates machine and client-traits instead of ethcore where appropriate
* Fix tests
* Don't re-export so many types from ethcore::client
* Fixing more fallout from removing re-export
* fix test
* More fallout from not re-exporting types
* Add some docs
* cleanup
* import the macro edition style
* Tweak docs
* Add missing import
* remove unused ethabi_derive imports
* Use latest ethabi-contract
* WIP move errors, pod_account and state account to own crates
* Sort out dependencies, fix broken code and tests
Remove botched ethcore-error crate
* remove template line
* fix review feedback
* Remove test-only AccountDBMut::new
* Extract AccountDB to account-db
* Move Substate to state-account – wip
* Add lib.rs
* cleanup
* test failure
* test failure 2
* third time's the charm
* Add factories crate
* Use new factories crate
* Use factories crate
* Extract trace
* Fix tests
* Sort out parity-util-mem and parking_lot
* cleanup
* WIP port over the rest of state from ethcore
* Collect all impls for Machine
* some notes
* Rename pod-account to pod
* Move PodState to pod crate
* Use PodState from pod crate
* Fix use clause for json tests
* Sort out evmbin
* Add missing code and use PodState
* Move code that depends on Machine and Executive to own module
* Sort out cloning errors, fix ethcore to use new state crate
* Do without funky From impls
* Fix ethcore tests
* Fixes around the project to use new state crate
* Add back the more specific impls of StateOrBlock From conversions
* Move execute to freestanding function and remove it from trait
Sort out the error handling in executive_state by moving the result types from state to ethcore
Undo the verbose code added to work around the StateOrBlock From conversions
* cleanup
* Fix "error: enum variants on type aliases are experimental"
* Bring back the state tests
Fix whitespace
* remove ethcore/state/mod.rs
* cleanup
* cleanup
* Cleanup state-account errors
* Fix more todos
Add module docs
* Add error.rs
* Fixup Cargo.lock
* Smaller ethcore API is fine
* Add `to-pod-full` feature to state-account
Fix evmbin
* Fix a few more test failures
* Fix RPC test build
* Baptize the new trait
* Remove resolved TODOs
* Rename state-account to account-state
* Do not re-export the trace crate
* Don't export state_db from ethcore
* Let private-tx use StateDB. :(
* Remove ethcore/src/pod_state.rs
* Inner type does not need to be pub/pub(crate)
* optimise imports
* Revert "Inner type does not need to be pub/pub(crate)"
This reverts commit 2f839f8a0f72f71334da64620f57e6dd6039f06b.
* Move DatabaseExtras to ethcore-blockchain
* Add database_extra module to ethcore-blockchain
* Remove to-pod-full feature
* cosmetics
* New crate: state-db
* Add new crate
* Move PreverifiedBlock and BlockError to types
* Sort out the merge
* Add missing `license` meta data keys
* wip
* wip client-traits
* merge conflict
* verification crate type checks
* Move impls for CommonParams to common_types
Fix misc stuff in ethcore
* Fix tests
* Implement VerifyingEngine for all engines except Ethash
Temporarily sort out error handling
Move more types to common_types
* Split Engine in two and move code around
* cleanup
* verification: don't rexport common_types
* Use error from common_types
* Consolidate error types
* VerifyingEngine use Errors from common_types
* verification: Use error type from common_types
* SnapshotError moved to common_types
* Move more code from Engne to VerifyingEngine
Add a VerifyingClient trait: BlockInfo + CallContract
Whitespace
* Add MAX_UNCLE_AGE const
* Port over remaining code from ethcore/verification
* Use errors from common_types
* Fix the confusing "io" naming
* Move more types into common_types
* Add todos
* Experiment with Engine trait outside ethcore
* Hook up types from common_types in ethcore
Don't use verification crate
Don't use client-traits crate
* Revert to impl Engine for Arc<Ethash> and add note to explain why
Revert moving ClientIoMessage to common_types
Fix build
* Remove ClientIoMessage from common_types
* Cleanup
* More cleanup
* Sort error handling changes in the rest of parity
* Remove unused code
* Remove WIP types
* Cleanup todos not tackled here
* remove cruft
* Fix some whitespace and a merge error
* ethcore tests
* test failures
* Restore Engine impls to master to make review a bit easier
* cleanup
* whitespace
* applied review suggestions
* types does not depend on rustc-hex
* ethash engine moved to engine module
* applied review suggestion
* Move DatabaseExtras back to trace
Add a new BlockChainWithExtras newtype to ethcore
Impl DatabaseExtras for BlockChainWithExtras
* Avoid double Arcs
Impl From for BlockChainWithExtras for convenient instantiation
Change TraceDB::new to take a T: DatabaseExtras (instead of an Arc)
* Use local type for BlockNumber and reduce dependencies
* Update ethcore/src/client/client.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update ethcore/src/client/client.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Revert "Update ethcore/src/client/client.rs"
This reverts commit cbf8a251d4acaff8b29e999aedcdaac473ddf300.
* Revert "Update ethcore/src/client/client.rs"
This reverts commit 2518873b3139e832fa57c11793624bf1bfe48d05.
* address grumbles
* Be explicit about using the BlockProvider provided block_hash()
* whisper is no longer a part of parity-ethereum repo
* fix failing tests
* update whisper help with the link to the new repo
* Removed AttachedProtocols
* updated whisper info in README.md files
* Update parity/deprecated.rs
Co-Authored-By: Andronik Ordian <write@reusable.software>
* WIP move errors, pod_account and state account to own crates
* Sort out dependencies, fix broken code and tests
Remove botched ethcore-error crate
* remove template line
* fix review feedback
* Remove test-only AccountDBMut::new
* Extract AccountDB to account-db
* Move Substate to state-account – wip
* Add lib.rs
* cleanup
* test failure
* test failure 2
* third time's the charm
* Add factories crate
* Use new factories crate
* Use factories crate
* Extract trace
* Fix tests
* Sort out parity-util-mem and parking_lot
* cleanup
* WIP port over the rest of state from ethcore
* Collect all impls for Machine
* some notes
* Rename pod-account to pod
* Move PodState to pod crate
* Use PodState from pod crate
* Fix use clause for json tests
* Sort out evmbin
* Add missing code and use PodState
* Move code that depends on Machine and Executive to own module
* Sort out cloning errors, fix ethcore to use new state crate
* Do without funky From impls
* Fix ethcore tests
* Fixes around the project to use new state crate
* Add back the more specific impls of StateOrBlock From conversions
* Move execute to freestanding function and remove it from trait
Sort out the error handling in executive_state by moving the result types from state to ethcore
Undo the verbose code added to work around the StateOrBlock From conversions
* cleanup
* Fix "error: enum variants on type aliases are experimental"
* Bring back the state tests
Fix whitespace
* remove ethcore/state/mod.rs
* cleanup
* cleanup
* Cleanup state-account errors
* Fix more todos
Add module docs
* Add error.rs
* Fixup Cargo.lock
* Smaller ethcore API is fine
* Add `to-pod-full` feature to state-account
Fix evmbin
* Fix a few more test failures
* Fix RPC test build
* Baptize the new trait
* Remove resolved TODOs
* Rename state-account to account-state
* Do not re-export the trace crate
* Don't export state_db from ethcore
* Let private-tx use StateDB. :(
* Remove ethcore/src/pod_state.rs
* Inner type does not need to be pub/pub(crate)
* optimise imports
* Revert "Inner type does not need to be pub/pub(crate)"
This reverts commit 2f839f8a0f72f71334da64620f57e6dd6039f06b.
* Move DatabaseExtras to ethcore-blockchain
* Add database_extra module to ethcore-blockchain
* Remove to-pod-full feature
* cosmetics
* New crate: state-db
* Add new crate
* Sort out the merge
* Fix unclean merge
* Add license
* Fix fork choice:
`is_from_route_finalized` check before switching to parent
* Add tests for `tree_route` with finalization
* Fix Cargo dependencies
* Add comment on `tree_route` for finalization.
Refactor a test.
* Fix compilation error
* Checkout Cargo.lock from master
* WIP move errors, pod_account and state account to own crates
* Sort out dependencies, fix broken code and tests
Remove botched ethcore-error crate
* remove template line
* fix review feedback
* Remove test-only AccountDBMut::new
* Extract AccountDB to account-db
* Move Substate to state-account – wip
* Add lib.rs
* cleanup
* test failure
* test failure 2
* third time's the charm
* Add factories crate
* Use new factories crate
* Use factories crate
* Extract trace
* Fix tests
* Sort out parity-util-mem and parking_lot
* cleanup
* WIP port over the rest of state from ethcore
* Collect all impls for Machine
* some notes
* Rename pod-account to pod
* Move PodState to pod crate
* Use PodState from pod crate
* Fix use clause for json tests
* Sort out evmbin
* Add missing code and use PodState
* Move code that depends on Machine and Executive to own module
* Sort out cloning errors, fix ethcore to use new state crate
* Do without funky From impls
* Fix ethcore tests
* Fixes around the project to use new state crate
* Add back the more specific impls of StateOrBlock From conversions
* Move execute to freestanding function and remove it from trait
Sort out the error handling in executive_state by moving the result types from state to ethcore
Undo the verbose code added to work around the StateOrBlock From conversions
* cleanup
* Fix "error: enum variants on type aliases are experimental"
* Bring back the state tests
Fix whitespace
* remove ethcore/state/mod.rs
* cleanup
* cleanup
* Cleanup state-account errors
* Fix more todos
Add module docs
* Add error.rs
* Fixup Cargo.lock
* Smaller ethcore API is fine
* Add `to-pod-full` feature to state-account
Fix evmbin
* Fix a few more test failures
* Fix RPC test build
* Baptize the new trait
* Remove resolved TODOs
* Rename state-account to account-state
* Do not re-export the trace crate
* Don't export state_db from ethcore
* Let private-tx use StateDB. :(
* Remove ethcore/src/pod_state.rs
* Inner type does not need to be pub/pub(crate)
* optimise imports
* Revert "Inner type does not need to be pub/pub(crate)"
This reverts commit 2f839f8a0f72f71334da64620f57e6dd6039f06b.
* Move DatabaseExtras to ethcore-blockchain
* Add database_extra module to ethcore-blockchain
* Remove to-pod-full feature
* Sort out the merge
* sort imports
* address grumbles
* rename crate
* address more grumbles
* WIP move errors, pod_account and state account to own crates
* Sort out dependencies, fix broken code and tests
Remove botched ethcore-error crate
* remove template line
* fix review feedback
* Remove test-only AccountDBMut::new
* Extract AccountDB to account-db
* test failure
* test failure 2
* third time's the charm
* expand parameters for pending_transactions()
* move ready_transactions content into filtered method
* apply filter based on tx_hash, sender or receiver
* call filtered transactions from RPC interface
* attempt at testing...
* replace parameters with _ on light client
* addes some comments
* removed uncompleted tests in miner.rs
* attempt at testing, needs more work...
* Formatting for ready_transactions_filtered
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Use map_or instead of if-let
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* additional map_or replacement
* change receiver type to Option<Option<Address>>
* remove faulty MiningService tests, test RPC later
* remove tx hash from pending transaction filtering
* as_unsigned() method for SignedTransaction
* implement Deserialize for FilterOptions
* implement Validate for MapAccess type
* additional formatting
* directly name cover in pattern matching
* test valid vull deserialization
* test valid sender operators
* test valid receiver operators
* test valid gas operators
* test valid gas price operators
* test valid value operators
* test valid nonce operators
* additional tsets for defaults, unknown filter types, unknown operators and some renames
* move filter_options to ethcore to avoid package cycling
* adjusted function/method parameters for FilterOptions
* implement filter for sender and receiver
* implement filter for gas
* implement filter for gas price, tx value and nonce
* improve filtering implementation; use common function, use combinators
* improved documentation for FilterOptions
* small documentation adjustments
* remove warnings
* replace FilterOperator::ContractCreation with FilterOperator::Eq(None)
* implement validate_receiver
* make small changes like renames, preamble
* cleanup code according to suggestions, add docs
* small improvements like formatting and newline
* Replace error chain for network error
* Fix usages and add manual From impls
* OnDemand Error and remove remaining dependencies
* Die error_chain, die.
* DIE
* Hasta la vista, baby
* [whisper] Move needed aes_gcm crypto in-crate
In the latest `parity-crypto` release (upcoming 0.4), the aes GCM features were removed (done to remove the dependency on `ring`).
This PR adds the bare minimum crypto needed for Whisper directly to the crate itself and as those were the only features needed from `parity-crypto`, removes the dependency on that crate altogether.
* Upgrade to parity-crypto 0.4
Reverts using NonZeroU32 (introduced [here](b347599cf7)).
* Check for 0 in `args.arg_keys_iteration`
* Use beta.4
* parity-crypto 0.4.0 is released
* Journal for private txs added
* Tests after adding logging to private tx fixed
* Logs getter and tests added
* Time and amount limit for logs added
* RPC method for log retrieving added
* Correct path name and time validation implemented
* References for parameters added, redundant cloning reworked
* References for parameters added, redundant cloning reworked
* Work with json moved to the separate struct
* Serialization test added
* Fixed build after the merge with head
* Documentation for methods fixed, redundant field removed
* Fixed error usages
* Timestamp trait implemented for std struct
* Commented code removed
* Remove timestamp source, rework serialization test
* u64 replaced with SystemTime
* Path made mandatory for logging
* Source of monotonic time added
* into_system_time method renamed
* Initialize time source by max from current system time and max creation time from already saved logs
* Redundant conversions removed, code a little bit reworked according to review comments
* One more redundant conversion removed, rpc call simplified
In the latest `parity-crypto` release (upcoming 0.4), the aes GCM features were removed (done to remove the dependency on `ring`).
This PR adds the bare minimum crypto needed for Whisper directly to the crate itself and as those were the only features needed from `parity-crypto`, removes the dependency on that crate altogether.