The technique is to parse with comments disabled, and if a parse exception is
detected re-parse with comments allowed, and if successful complain at warn.
To turn this option off we just unwrap the try and delete the catch and update
the test.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Windows has some slightly different Java NIO semantics, regarding size
after writing and whether files are deleted on close (they aren not).
The first issue is we shouldn't be using Integer.SIZE when we mean
Integer.BYTES.
The second issue is we cannot count on these work files showing up or
being deleted from the file system consistently across platforms. The
ordering is consistent within platforms but not across. The test was
re-written to check the read and write file numbers instead.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Mark Sweep Pruner
* add `unload` method on Node interface, which is a noop everywhere but on `StoredNode`
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The TransactionReceipt type is not stored and it's functionality is covered by
the TransactionReceiptFactory. The Root/Status values are divined by the
presence or absence of the state root value.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Retesteth will often request an in-process blockchain be rewound one block so
that it can attempt the same test with tweaked parameters. Add support for this.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2946] - changes in core JSON-RPC method to support ReTestEth
Some of the methods need to have a changeable reference to stuff like
blockchainqueries. For the impacted methods the solution is to wrap them
in a Supplier<> interface. This includes new constructors for re-used methods.
Also include the debug_accountRangeAt method as it's namespaced as debug.
Some features needed for retesteth are flag controlled to preserve current behaviors.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
it prenvets some pages like developer/ and community/ pages that are not linked
in the nav but we did not decided yet what to do with to appear in the doc
search.
Files like includes for test accounts also don't have any reason to be accessed
directly.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Retesteth requires support for mining without block rewards and without PoW.
No Proof simply requires exposing the nonce generator and using a special
EthHashSolver.
No Reward is supported via a flag in the ProtocolSpec, stating whether or not
to skip zero rewards. For frontier, homestead, and tangerine whistle (EIP150)
this flag is false. For all other forks and all other consensus engines the
flag is true, even when emulating EVM state from those three forks as all
non-PoW consensus engines never consider block rewards.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The retesteth program wants byte trimmed UInt256, but our current impl does
nybble trimmed data (which is what the JSON-RPC spec calls for). Add an API
so we can do both.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2989] EIP-1884 - Repricing for trie-size-dependent opcodes
Add the new gas costs and new operation to the EVM.
Add contract balance to message frame
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
If you try and do a difficulty of 1 the UInt256 class used for comparison throws
an error because 2^256 is 33 bytes. Instead use 2^256-1 which is 32.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
When a chainID is not specifed in a genesis file for the purposes of the chainid
opcode we interpret that to mean chain ID 0.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The revert reason returned from the EVM has been changed to a bytes value to
better represent the specification (of it being an ABI encoded data block).
This has meant that the TransactionReceipt returned from
ethGetTransactionReceipt now provides a hex-encoded string (rather than UTF-8).
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Double dashes have to be between backticks if you don't want them to be shown
as a long dash.
Code blocks increment needs to be done by two spaces at a time or it breaks.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>