* [builtin]: impl new builtin type
Have an enum to deserialize either a builtin of a single price or several prices
* [builtin]: style cleanup
* [builtin]: fix tests
* [builtin]: replace boxing with wrapper enum
* cleanup
* fix: make it backward compatible with old builtin
* fix: update chain specs
* fix: revert use of `type alias` on enum
The CI doesn't use the latest rust.
This commit reverts that change
* fix: builtin tests
* fix: revert use of `type alias` on enum
* [basic-authority]: update test-chainspec
* fix failing tests
* [builtin]: multi-prices add `info field`
It might be hard to read chain specs with several activations points.
This commit introduces a `info` field which may be used to write some
information about the current activation such as:
`Istanbul hardfork EIP-1108` or something similar.
* fix: bad rebase
Co-Authored-By: David <dvdplm@gmail.com>
* fix(grumbles): make it backward compatible
* grumbles: resolve `NOTE`
* revert chain specs changes
* rename test
Co-Authored-By: David <dvdplm@gmail.com>
* [builtin docs]: price -> Fixed price
Co-Authored-By: Andronik Ordian <write@reusable.software>
* [json]: address naming grumbles
InnerPricing -> PricingInner
PriceWithActivationAt -> PricingAt
* docs: revert changes for `AltBn128ConstOperations`
* [json]: usize -> u64
Use explicit types to cope with platform dependent issues for `usize`
* grumble: simplify `spec_backward_compability.json`
* docs: add issue link to `TODO`
* [builtin]: replace `match` with `map`
* [builtin]: add deprecation message `eip1108` params
* nits
* [json spec tests]: fix json indentation
* [json docs]: fix typos
* [json]: `compability layer` + deser to BTreeMap
Previously we had to match `Pricing::Single` and `PricingMulti` which this fixes.
It does by introducing a compability layer and into() implemenentation.
In addition, I switched the deserialization to `BTreeMap` instead of `Vec`.
That changes the format of the chain spec again
* [json]: rename `BuiltinCombat` -> `BuiltinCompat`
* Update ethcore/builtin/src/lib.rs
Co-Authored-By: David <dvdplm@gmail.com>
* [json builtin]: improve docs
Co-Authored-By: David <dvdplm@gmail.com>
* [json builtin]: improve docs
Co-Authored-By: David <dvdplm@gmail.com>
* chore(builtin): sort dependencies
* [json builtin]: deprecate `eip1108` params
* [machine]: add bench for calling builtin contract
* [machine]: reduce calls to `Builtin::is_active`
* [builtin]: fix nits
* [json]: revert breakage of chain specs
* [json builtin]: remove `eip1108` params
* [chain specs]: update to new format
* [machine]: revert changes
* [devp2p]: revert change
* [builtin]: doc nits
* Update test reference.
Block test are really not working so I disabled a few by commenting
directly in source.
* Move ethtest commit cursor.
* Implements 'NoProof' engine from https://github.com/ethereum/tests/issues/464 .
Since tests has been regenerated those one were failing on block
difficulty check.
Update ethereum/tests, waiting for cost fix (block test are still
commented).
* Update tests submodule reference to latest (all test passing except an
identified case).
Fix block reward of constantinople json.
* Restore broken test by using old json tests files.
* Use CanonNoSeal instead of a custom engine, still have to include some
additional tests code.
* Gas upper limit check in json_chain test was bad, moving the test to
verification, the test is running in `verify_header_param`.
Note that test was previously only for ethash, and now for any engine.
* Restore old behavior (gas uper limit only for ethash engine), at the
cost of an additional trait method.
* Proper rpc test fix.
* Update tests submodule, add SStore bug tests.
* Fix json issue tabulation.
Update tests submodule to latest master (lot of new sstore tests
passing)
* Switch ethereum/tests to tag 6.0.0-beta.1 (no tests changes from latest
synch).
* Display hex with separator, use indirection instead of clone for copy
types.
* Add constantinople conf to EvmTestClient.
* Skip some test to update submodule etheureum/tests submodule to latest.
* Put skipping 'under issue' test behind a feature.
* Change blockReward for const-test to pass ethereum/tests
* Update tests to new constantinple definition (change of reward at block
5).
Switch 'reference' to string, that way we can include issues from others
repo (more flexible)Update tests to new constantinple definition (change
of reward at block 5).
Switch 'reference' to string, that way we can include issues from others
repo (more flexible).
* Fix modexp and bn128_mul gas prices in chain config
* Changes `run_test_path` method to append its directory results (without
that it stop testing at the first file failure).
Add some missing tests.
Add skip for those (block create2 is one hundred percent false but on
hive we can see that geth and aleth got similar issue for this item).
* retab current.json
* Update reference to parity issue for failing tests.
* Enable all Constantinople hard fork changes in constantinople_test.json
* Address grumbles
* Remove EIP-210 activation
* 8m -> 5m
* Temporarily add back eip210 transition so we can get test passed
* Add eip210_test and remove eip210 transition from const_test
* Implement last_checkpoint_storage_at
* Add reverted_storage_at for externalities
* sstore_clears_count -> sstore_clears_refund
* Implement eip1283 for evm
* Add eip1283Transition params
* evm: fix tests
* jsontests: fix test
* Return checkpoint index when creating
* Comply with spec Version II
* Fix docs
* Fix jsontests feature compile
* Address grumbles
* Fix no-checkpoint-entry case
* Remove unnecessary expect
* Add test for State::checkpoint_storage_at
* Add executive level test for eip1283
* Hard-code transaction_checkpoint_index to 0
* Fix jsontests
* Add tests for checkpoint discard/revert
* Require checkpoint to be empty for kill_account and commit
* Get code coverage
* Use saturating_add/saturating_sub
* Fix issues in insert_cache
* Clear the state again
* Fix original_storage_at
* Early return for empty RLP trie storage
* Update comments
* Fix borrow_mut issue
* Simplify checkpoint_storage_at if branches
* Better commenting for gas handling code
* Address naming grumbles
* More tests
* Fix an issue in overwrite_with
* Add another test
* Fix comment
* Remove unnecessary bracket
* Move orig to inner if
* Remove test coverage for this PR
* Add tests for executive original value
* Add warn! for an unreachable cause
* Allow post-homestead forks to be specified in CommonParams
* Fix all json configs
* Fix test in json crate
* Fix test in ethcore
* Fix all chain configs to use tabs
Given we use tabs in .editorconfig and the majority of chain configs.
This change is done in Emacs using `mark-whole-buffer` and `indent-region`.
* move common forks and parameters to common params
* port specs over to new format
* fix RPC tests
* parity-machine skeleton
* remove block type
* extract out ethereum-specific methods into EthereumMachine
* beginning to integrate Machine into engines. dealing with stale transitions in Ethash
* initial porting to machine
* move block reward back into engine
* abstract block reward logic
* move last hash and DAO HF logic into machine
* begin making engine function parameters generic
* abstract epoch verifier and ethash block reward logic
* instantiate special ethereummachine for ethash in spec
* optional full verification in verify_block_family
* re-instate tx_filter in a way that works for all engines
* fix warnings
* fix most tests, further generalize engine trait
* uncomment nullengine, get ethcore tests compiling
* fix warnings
* update a bunch of specs
* re-enable engine signer, validator set, and transition handler
* migrate basic_authority engine
* move last hashes into executedblock
* port tendermint
* make all ethcore tests pass
* json-tests compilation
* fix RPC tests: change in gas limit for new block changed PoW hash
* fix minor grumbles
* validate chainspecs
* fix broken import
* fix transaction verification for pre-homestead