Skip to content

Commit 074c0b1

Browse files
committed
Fix merge conflicts
2 parents c0fc752 + 068db32 commit 074c0b1

File tree

10 files changed

+243
-143
lines changed

10 files changed

+243
-143
lines changed

.github/contributing.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Contributing
2+
3+
Great that you want to contribute to the `EthereumJS` [ecosystem](https://ethereumjs.readthedocs.io/en/latest/introduction.html). `EthereumJS` is managed by the Ethereum Foundation and largely driven by the wider community. Everyone is welcome to join the effort and help to improve on the libraries (see our [Code of Conduct](https://ethereumjs.readthedocs.io/en/latest/code_of_conduct.html) 🌷).
4+
5+
We have written up some [Contribution Guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html#how-to-start) to help you getting started.
6+
7+
These include information on how we work with **Git** and how our **general workflow** and **technical setup** looks like (stuff like language, tooling, code quality and style).
8+
9+
Happy Coding! 👾 😀 💻

CHANGELOG.md

+90
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,96 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
(modification: no type change headlines) and this project adheres to
77
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

9+
10+
## [3.0.0] - 2019-03-29
11+
12+
This release comes with a modernized ``ES6``-class structured code base, some
13+
significant local refactoring work regarding how ``Stack`` and ``Memory``
14+
are organized within the VM and it finalizes a first round of module structuring
15+
now having separate folders for ``bloom``, ``evm`` and ``state`` related code. The
16+
release also removes some rarely used parts of the API (``hookedVM``, ``VM.deps``).
17+
18+
All this is to a large extend preparatory work for a ``v4.0.0`` release which will
19+
follow in the next months with ``TypeScript`` support and more system-wide
20+
refactoring work leading to a more modular and expandable VM and providing the
21+
ground for future ``eWASM`` integration. If you are interested in the release
22+
process and want to take part in the refactoring discussion see the associated
23+
issue [#455](https://github.com/ethereumjs/ethereumjs-vm/issues/455).
24+
25+
**VM Refactoring/Breaking Changes**
26+
27+
- New ``Memory`` class for evm memory manipulation,
28+
PR [#442](https://github.com/ethereumjs/ethereumjs-vm/pull/442)
29+
- Refactored ``Stack`` manipulation in evm,
30+
PR [#460](https://github.com/ethereumjs/ethereumjs-vm/pull/460)
31+
- Dropped ``createHookedVm`` (BREAKING), being made obsolete by the
32+
new ``StateManager`` API,
33+
PR [#451](https://github.com/ethereumjs/ethereumjs-vm/pull/451)
34+
- Dropped ``VM.deps`` attribute (please require dependencies yourself if you
35+
used this),
36+
PR [#478](https://github.com/ethereumjs/ethereumjs-vm/pull/478)
37+
- Removed ``fakeBlockchain`` class and associated tests,
38+
PR [#466](https://github.com/ethereumjs/ethereumjs-vm/pull/466)
39+
- The ``petersburg`` hardfork rules are now run as default
40+
(before: ``byzantium``),
41+
PR [#485](https://github.com/ethereumjs/ethereumjs-vm/pull/485)
42+
43+
**Modularization**
44+
45+
- Renamed ``vm`` module to ``evm``, move ``precompiles`` to ``evm`` module,
46+
PR [#481](https://github.com/ethereumjs/ethereumjs-vm/pull/481)
47+
- Moved ``stateManager``, ``storageReader`` and ``cache`` to ``state`` module,
48+
[#443](https://github.com/ethereumjs/ethereumjs-vm/pull/443)
49+
- Replaced static VM ``logTable`` with dynamic inline version in ``EXP`` opcode,
50+
[#450](https://github.com/ethereumjs/ethereumjs-vm/pull/450)
51+
52+
**Code Modernization/ES6**
53+
54+
- Converted ``VM`` to ``ES6`` class,
55+
PR [#478](https://github.com/ethereumjs/ethereumjs-vm/pull/478)
56+
- Migrated ``stateManager`` and ``storageReader`` to ``ES6`` class syntax,
57+
PR [#452](https://github.com/ethereumjs/ethereumjs-vm/pull/452)
58+
59+
**Bug Fixes**
60+
61+
- Fixed a bug where ``stateManager.setStateRoot()`` didn't clear
62+
the ``_storageTries`` cache,
63+
PR [#445](https://github.com/ethereumjs/ethereumjs-vm/issues/445)
64+
- Fixed longer output than return length in ``CALL`` opcode,
65+
PR [#454](https://github.com/ethereumjs/ethereumjs-vm/pull/454)
66+
- Use ``BN.toArrayLike()`` instead of ``BN.toBuffer()`` (browser compatibility),
67+
PR [#458](https://github.com/ethereumjs/ethereumjs-vm/pull/458)
68+
- Fixed tx value overflow 256 bits,
69+
PR [#471](https://github.com/ethereumjs/ethereumjs-vm/pull/471)
70+
71+
**Maintenance/Optimization**
72+
73+
- Use ``BN`` reduction context in ``MODEXP`` precompile,
74+
PR [#463](https://github.com/ethereumjs/ethereumjs-vm/pull/463)
75+
76+
**Documentation**
77+
78+
- Fixed API doc types for ``Bloom`` filter methods,
79+
PR [#439](https://github.com/ethereumjs/ethereumjs-vm/pull/439)
80+
81+
**Testing**
82+
83+
- New Karma browser testing for the API tests,
84+
PRs [#461](https://github.com/ethereumjs/ethereumjs-vm/pull/461),
85+
[#468](https://github.com/ethereumjs/ethereumjs-vm/pull/468)
86+
- Removed unused parts and tests within the test setup,
87+
PR [#437](https://github.com/ethereumjs/ethereumjs-vm/pull/437)
88+
- Fixed a bug using ``--json`` trace flag in the tests,
89+
PR [#438](https://github.com/ethereumjs/ethereumjs-vm/pull/438)
90+
- Complete switch to Petersburg on tests, fix coverage,
91+
PR [#448](https://github.com/ethereumjs/ethereumjs-vm/pull/448)
92+
- Added test for ``StateManager.dumpStorage()``,
93+
PR [#462](https://github.com/ethereumjs/ethereumjs-vm/pull/462)
94+
- Fixed ``ecmul_0-3_5616_28000_96`` (by test setup adoption),
95+
PR [#473](https://github.com/ethereumjs/ethereumjs-vm/pull/473)
96+
97+
[3.0.0]: https://github.com/ethereumjs/ethereumjs-vm/compare/v2.6.0...v3.0.0
98+
999
## [2.6.0] - 2019-02-07
10100

11101
**Petersburg Support**

README.md

+10-11
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,19 @@
33
[![NPM Package](https://img.shields.io/npm/v/ethereumjs-vm.svg?style=flat-square)](https://www.npmjs.org/package/ethereumjs-vm)
44
[![Build Status](https://img.shields.io/circleci/project/github/ethereumjs/ethereumjs-vm/master.svg)](https://circleci.com/gh/ethereumjs/ethereumjs-vm)
55
[![Coverage Status](https://img.shields.io/coveralls/ethereumjs/ethereumjs-vm.svg?style=flat-square)](https://coveralls.io/r/ethereumjs/ethereumjs-vm)
6-
[![Gitter](https://img.shields.io/gitter/room/ethereum/ethereumjs-lib.svg?style=flat-square)](https://gitter.im/ethereum/ethereumjs-lib) or #ethereumjs on freenode
6+
[![Gitter](https://img.shields.io/gitter/room/ethereum/ethereumjs.svg?style=flat-square)](https://gitter.im/ethereum/ethereumjs)
77

88
[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
99

1010
Implements Ethereum's VM in Javascript.
1111

1212
#### Fork Support
1313

14-
The VM (`v2.6.x` release series) currently supports the following hardforks
15-
(default: `Byzantium`):
14+
The VM currently supports the following hardfork rules:
1615

1716
- `Byzantium`
1817
- `Constantinople`
19-
- `Petersburg`
20-
21-
Parallel HF support was introduced in the `v2.5.0` release, if you want
22-
some background have a look at the respective
23-
[release notes](https://github.com/ethereumjs/ethereumjs-vm/releases/tag/v2.5.0).
18+
- `Petersburg` (default)
2419

2520
If you are still looking for a [Spurious Dragon](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-607.md) compatible version of this library install the latest of the `2.2.x` series (see [Changelog](./CHANGELOG.md)).
2621

@@ -66,9 +61,7 @@ For documentation on `VM` instantiation, exposed API and emitted `events` see ge
6661

6762
## StateManger
6863

69-
The API for the `StateManager` is currently in `Beta`, separate documentation can be found [here](./docs/stateManager.md).
70-
71-
The `StateManager` API has been largely reworked recently and the `StateManager` will be removed from the VM and provided as a separate package in a future `v3.0.0` release, see [release notes](https://github.com/ethereumjs/ethereumjs-vm/releases/tag/v2.5.0) for the `v2.5.0` VM release for further details.
64+
The API for the ``StateManager`` is currently in ``Beta``, separate documentation can be found [here](./docs/stateManager.md), see also [release notes](https://github.com/ethereumjs/ethereumjs-vm/releases/tag/v2.5.0) from the ``v2.5.0`` VM release for details on the ``StateManager`` rewrite.
7265

7366
# Internal Structure
7467

@@ -107,6 +100,12 @@ The opFns for `CREATE`, `CALL`, and `CALLCODE` call back up to `runCall`.
107100

108101
Developer documentation - currently mainly with information on testing and debugging - can be found [here](./docs/developer.md).
109102

103+
# EthereumJS
104+
105+
See our organizational [documentation](https://ethereumjs.readthedocs.io) for an introduction to `EthereumJS` as well as information on current standards and best practices.
106+
107+
If you want to join for work or do improvements on the libraries have a look at our [contribution guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html).
108+
110109
# LICENSE
111110

112111
[MPL-2.0](https://www.mozilla.org/MPL/2.0/)

0 commit comments

Comments
 (0)