Commit Graph

116 Commits

Author SHA1 Message Date
Ștefan Talpalaru 7c7260552d
rebase and various fixes
- port to new APIs
- added copyright headers
- bumped the copyright interval in modified files
- fixed tests
- reorganised imports
- normalised function names
- deleted some trailing space
- added test_rpc to all_tests
- assert() -> doAssert()
- moved the RPC port in a constant for the test suite
2019-01-06 20:19:48 +01:00
andri lim b93d809805 fix internal transactions account tracing 2019-01-06 13:17:25 +02:00
andri lim e78fb72ef6 fixes #188 2019-01-06 13:16:45 +02:00
andri lim 8a6d351c22 add internal transactions dump 2019-01-06 11:43:38 +02:00
andri lim b159b5c945 remove lastOpCodeHasRetVal, make it simpler 2019-01-06 11:43:38 +02:00
Ștefan Talpalaru 26ee2fce26 fix breakage with Nim HEAD 2019-01-04 15:39:16 +02:00
andri lim ad1202f98a initial make_receipt 2018-12-16 15:38:51 +02:00
Ștefan Talpalaru f91e69f7c7
more VM tracing
The existing vmState tracing is plugged into chronicles, at the TRACE
level, to facilitate state test debugging.

Some useful chronicles defines are added to "tests/nim.cfg" to simplify
the compile-and-run command for individual tests.
2018-12-12 11:47:10 +01:00
Ștefan Talpalaru 115843487c
general-state testsuite changes and better fork selection
- skipped the tests in allowedFailInCurrentBuild()
- replaced doAssert() with check() in testFixtureIndexes() so we can see
  both hash values on failure
- checking filename extension for JSON tests to avoid editor swap files
- replaced the duplicated block values in the main net's ChainConfig
  with values from forkBlocks
- allowed overriding the current fork in computations, because the old
  strategy of only looking at the block number doesn't work with JSON tests
  where the block number is usually 1
- explicitly pass the fork to gasCosts() and use it for conditional cost
  calculation
- fixed a logic error in the CREATE opcode
- fixed VM selection based on current fork in updateOpcodeExec()
- single point of control for supported forks in tests (just one fork, at the
  moment)
- 44 new test failures (that were probably passing for the wrong reasons)
2018-12-07 18:18:29 +01:00
Ștefan Talpalaru 03ec65487d
logging changes
- port some "echo" logging to "chronicles"
- change the logging level of messages that should not appear by default
  to TRACE instead of DEBUG
- remove the "nimbusTrace" define
- suppress logging for messages below the ERROR level in "nimble test"
2018-12-07 00:45:52 +01:00
coffeepots 86853ea97c
Merge pull request #187 from status-im/modexp-fixes
Modexp fixes
2018-12-06 10:10:59 +00:00
andri lim fe5ddf757b fix trace returnValue 2018-12-05 22:01:29 +07:00
andri lim 572de41507 tracing opcode return value 2018-12-05 22:01:29 +07:00
andri lim 7a3ddfec87 correcting account storage retrieval 2018-12-05 22:01:29 +07:00
andri lim 2552d6452a fix traceTransaction 2018-12-05 22:01:29 +07:00
andri lim 5509c66cce implement transaction tracer 2018-12-05 22:01:28 +07:00
mratsim 24bcb3b2d8 remove log2 spurious comment 2018-12-04 15:56:18 +01:00
mratsim f50bb57eb6 Reactivate the precompiles test + consume gas 2018-12-04 15:52:59 +01:00
mratsim 29f8a8a066 modExp fixed! 2018-12-04 15:46:33 +01:00
mratsim 6d93bdffea modExp, support up to uint4096 2018-12-04 14:39:10 +01:00
mratsim 949c5a1dc6 Modexp fix example 1 (returned to early for ints of length 1) 2018-12-04 12:49:48 +01:00
coffeepots f99138dca6 Merge branch 'call-fixes-precompiles' 2018-11-12 15:57:54 +00:00
coffeepots 1cead76327 Add note about cyclic dep 2018-11-08 16:40:40 +00:00
coffeepots 6eb430fd52 Fix CREATE op code gas costs, more debug output, call transactions 2018-11-08 16:00:21 +00:00
coffeepots 492d2ae676 Debug message for new messages 2018-11-08 15:48:32 +00:00
coffeepots 6b1e989ff0 Add initial gas cost for CREATE 2018-11-08 15:47:48 +00:00
Yuriy Glukhov bac452f589 Initial TransactionTracer impl 2018-10-28 14:38:05 +01:00
coffeepots 7ba1cfaf13 Remove endian code, precompiles should now run. Removed raise as case stmt is full now. 2018-10-19 14:41:04 +01:00
coffeepots 434edcc2ae Fix incorrect message parameters (had sender and destination swapped) 2018-10-18 17:47:54 +01:00
cheatfate 0b15b86195 Fix ecMul, ecPairing, ecAdd. 2018-10-16 11:49:13 +03:00
coffeepots 6e4616e443 Precompiles now executed if called from vm_state_transactions 2018-10-12 16:16:14 +01:00
coffeepots 67df44e917 Fix ecrecover, pad ripemd result and use sha256 vs keccak256 2018-10-10 17:36:11 +01:00
mratsim bb6e1e1d76 modExp precompiles: fix padding and static evaluation 2018-10-10 16:26:21 +02:00
mratsim 0494e2a877 Support short inputs with missing bytes 2018-10-05 17:37:52 +02:00
mratsim 38b4d54815 Add modExp precompile + gas costs 2018-10-05 17:26:20 +02:00
cheatfate 9318ea93cf Added nim-bncurve dependency.
Added implementation of `ecAdd`, `ecMul`, `ecPairing` precompiles.
2018-10-05 12:15:04 +03:00
coffeepots 6a4cd4ec67 Update precompile gas costs case (cosmetic change) 2018-10-03 17:59:41 +01:00
coffeepots 3249c3e048 Add precompile costs 2018-10-03 16:39:34 +01:00
coffeepots 3deb09bbb6 Add SHA256, RIPEMD160 and Identity precompiles 2018-10-03 13:33:19 +01:00
coffeepots fcffd94469 Support different endians 2018-10-02 16:39:01 +01:00
coffeepots 36270ff4d5 Fixes for Call gas usage, Calls use precompiles, pass down their opCode 2018-10-02 16:07:16 +01:00
coffeepots 62968bf733 Initial support for precompiles with ecRecover 2018-10-02 15:46:39 +01:00
Dustin Brody 3f5fc9a034 read through block 49017 by properly setting createAddress/storageAddress of the computation message and detecting whether the computation has the gas required to pay 200*code length; also, clean up pointless commented nonnegativity assertions for nonnegative GasInt type 2018-09-28 10:26:27 +03:00
tersec 690ce2cf97
Partly fix state_db getCode for 20 new working GeneralStateTests (#156)
* partly fix state_db getCode to get 20 new working GeneralStateTests; remove 2 functions which existed as workarounds; switch all remaining setBalance calls in GeneralStateTestRunner to subBalance (addBalance calls already changed)

* two of the 20 new tests don't work in 32-bit builds
2018-09-20 21:36:57 +00:00
Dustin Brody 8f4e1a4445
integrate GeneralStateTest runner into CI with 775 running tests (#153)
* fix 32-bit issue in AppVeyor

* allow another dozen or so GeneralStateTest fixtures which work on 64-bit, but not on 32-bit platforms, to safely-fail, but demarcate them separately to facilitate debugging

* steal fa672600eb from @coffeepots fix-int32-high-zero branch
2018-09-19 16:46:14 +00:00
Yuriy Glukhov 0adfaf0f31 s/increaseBalance/addBalance 2018-09-19 18:41:17 +03:00
coffeepots 766d1c4091 Temp fix for int32.high returning zero 2018-09-19 12:11:54 +03:00
mratsim 070487d78a Homestead contract creation gas cost 2018-09-18 17:28:40 +02:00
Dustin Brody dd20f4079c revert better toSeq version to worse for-loop version of extracting keys from table because former now fails to compile 2018-09-18 07:07:04 -07:00
Dustin Brody 048921b045 20 new working GeneralStateTests 2018-09-18 14:00:30 +00:00