Commit Graph

639 Commits

Author SHA1 Message Date
andri lim 268695003b
fix writePaddedResult regression 2019-03-19 16:43:38 +07:00
andri lim 6c891d08e6
put doAssert(false) at nimbus configuration cmdEnd 2019-03-19 08:55:30 +07:00
andri lim f518de20fc
fix miner suicide problem, GST +2 2019-03-18 20:29:07 +07:00
andri lim 7198ce2d05
fix ecrecover bad V, GST +1 2019-03-18 19:28:42 +07:00
andri lim aed0db2d03
fix DelegateCall sender address, GST +37 2019-03-18 18:45:43 +07:00
andri lim 36fb75d042
fix DelegateCall gasCost, GST +6 2019-03-18 17:24:25 +07:00
andri lim a7c6531f08
fix block gaslimit problem, GST +70 2019-03-18 14:35:52 +07:00
andri lim 739e20253a
fix invalid opcodes bug, GST +1 2019-03-18 13:44:22 +07:00
andri lim 4f6f564626
fix regression 2019-03-18 13:13:16 +07:00
andri lim cd765bf452
fix create contract address collision, GST +1 2019-03-18 12:48:32 +07:00
andri lim 4383831772
separate Frontier and Homestead opcode dispatcher 2019-03-18 11:27:32 +07:00
andri lim d0822c26d1
fix callcode insufficient funds, GST +6 2019-03-16 22:54:24 +07:00
andri lim 990bc44c65
fix not enough gas, GST +5 2019-03-16 22:23:15 +07:00
andri lim 433ccba15f
fix writePaddedResult, GST +4 2019-03-16 21:42:06 +07:00
andri lim adb1286e28
fix create hash collision, GST +1 2019-03-16 12:13:57 +07:00
andri lim 99d128ca26
fix CREATE opcode gas cost 2019-03-15 22:15:40 +07:00
andri lim 823dd95a53
write contract unification 2019-03-15 18:16:47 +07:00
andri lim 0654a232a3
rename transferBalance to canTransfer 2019-03-14 16:24:27 +07:00
andri lim 039ab1ce71
refactor/relocate CALL/CREATE to reduce stack usage 2019-03-14 14:58:26 +07:00
Ștefan Talpalaru a67edd693a
assert() -> doAssert() 2019-03-13 22:36:54 +01:00
Ștefan Talpalaru 404a75cbe7
Merge branch 'missingmethod' 2019-03-13 21:44:38 +01:00
Ștefan Talpalaru c0272c6f94
AbstractChainDB.getStateDb() renamed to getTrieDB() 2019-03-13 21:41:52 +01:00
andri lim 4ed98e03d1
remove unneeded param from transferBalance 2019-03-13 22:14:10 +07:00
andri lim 44688259f1
simplify transferBalance again 2019-03-13 22:06:32 +07:00
andri lim 2f9f708f1b
simplify balance transfer 2019-03-13 21:34:53 +07:00
andri lim f1fac6be0f
remove redundant updateOpcodeExec 2019-03-13 21:15:13 +07:00
andri lim 1b3ca200fa
remove redundant execPrecompiles call 2019-03-13 21:10:16 +07:00
andri lim f5d6d6bc02 fix block 1317742 problem 2019-03-13 15:49:54 +02:00
Ștefan Talpalaru 0c2d7638eb
add missing Chain.getStateDB() method
that's actually called from getStorageNode()
2019-03-13 01:20:34 +01:00
andri lim 9f8191d408 EVM write contract transformation 2019-03-12 13:32:41 +02:00
andri lim 5f1879c709 add defer: snapshot.dispose() 2019-03-12 13:32:41 +02:00
andri lim 4549331f4b fix block 1155095 problem 2019-03-12 13:32:41 +02:00
andri lim b1da3576ad
fix block 1149150 problem 2019-03-11 18:50:13 +07:00
andri lim de809b0060
fix block 1017395 problem 2019-03-11 12:03:57 +07:00
andri lim e2311d798b
fix recurring symbol collision problem 2019-03-07 22:53:09 +07:00
andri lim b303786128
fix tracer regression 2019-03-07 22:16:39 +07:00
andri lim 9c31980b79
fix processBlock regression 2019-03-07 22:09:32 +07:00
andri lim fdf9e04108
initial contract call/create unification 2019-03-07 22:09:22 +07:00
andri lim a15805e41a fix applyCreateMessage 2019-02-28 10:04:49 +02:00
andri lim 0518802690 contract creation and contract call cleanup 2019-02-28 10:04:49 +02:00
andri lim fc613b33df computation.nim cleanup 2019-02-28 10:04:49 +02:00
andri lim 4cc318d948 fix block 668910 problem 2019-02-28 10:04:49 +02:00
andri lim b107bdd226 refactor processTransaction 2019-02-27 13:30:18 +02:00
andri lim 5ab7c02dcf refactor sender transfer 2019-02-27 13:30:18 +02:00
andri lim 26d8ab84fe refactor recipient transfer 2019-02-27 13:30:18 +02:00
andri lim 86de4faa81 make test green 2019-02-27 13:30:18 +02:00
andri lim 8193a4ae6a refactor gas used in transaction 2019-02-27 13:30:18 +02:00
andri lim f21f73e5c5 refactor setupComputation 2019-02-27 13:30:18 +02:00
andri lim 9d6fb4c82e add comment to transaction tracer 2019-02-27 13:30:18 +02:00
andri lim 810259bfc4 make test green 2019-02-27 13:30:18 +02:00
andri lim 200f93a3b7 refactor incNonce 2019-02-27 13:30:18 +02:00
andri lim 2c032ad1ab refactor utils 2019-02-27 13:30:18 +02:00
andri lim 9522c1145f
fix #245 again 2019-02-25 22:59:05 +07:00
andri lim 9fcba8f90d
fix block 512335 problem 2019-02-25 21:18:13 +07:00
andri lim 0d64e0a6c3
fix #245 2019-02-25 20:02:16 +07:00
andri lim 3dd18bd8ec
fix block 299804 problem 2019-02-25 17:03:43 +07:00
andri lim 592fa5df7e fix SIGNEXTEND opcode 2019-02-23 17:57:53 +02:00
andri lim bc675b1daa fix contract creation 2019-02-23 17:57:53 +02:00
andri lim f5e54b8d4f fix self destruct problem 2019-02-23 17:57:53 +02:00
andri lim d21d0814c6 add getAncestorHash to hunter tool 2019-02-22 13:11:28 +02:00
andri lim 28245e92a2 fixes #235 2019-02-22 13:10:22 +02:00
andri lim 47a8089ff8 fixes #236 2019-02-21 13:09:36 +02:00
andri lim 4dc45550dd fix block 226522 problem 2019-02-21 13:09:36 +02:00
andri lim b198ffee2d fix vm oog problem 2019-02-20 15:16:07 +02:00
andri lim dcf7699358 fix callcode regression 2019-02-20 15:16:07 +02:00
andri lim 71e7ee2dae fixes ECRecover precompiles 2019-02-20 15:16:07 +02:00
andri lim 96ae5ee05a fix CALLCODE storage address 2019-02-20 15:16:07 +02:00
andri lim 999c958641 fix opcode call OOG 2019-02-20 15:16:07 +02:00
andri lim 2e8176eb15 simplify CREATE gasCost 2019-02-20 15:16:07 +02:00
andri lim 0b9326f955 fix block 81383 problem 2019-02-20 15:16:07 +02:00
andri lim 5ba44083f0 fix contract call in gst and executor.nim 2019-02-20 15:16:07 +02:00
andri lim c722f34ef3 safer snapshot commit revert and dispose 2019-02-18 18:15:32 +02:00
andri lim d015fc3819 bugfix: transaction tracer more robust storage key handling 2019-02-18 13:16:04 +02:00
andri lim 8461211f9a bugfix: implement computation snapshot, revert, commit 2019-02-18 13:16:04 +02:00
andri lim 927abdc142 bugfix: multi-depth transaction tracer storage 2019-02-18 13:16:04 +02:00
andri lim a1242d2538 bugfix: block 78458 crash 2019-02-18 13:16:04 +02:00
andri lim 282824cd53 zah's request: add missing comments 2019-02-18 13:16:04 +02:00
andri lim 8f9d1ae748 fixes callcode bug 2019-02-15 17:20:51 +02:00
andri lim d7bd55bd21 fixes opcode call: simplify gas costs 2019-02-15 17:20:51 +02:00
andri lim 44d05dfdb1 fixes transaction_tracer.nim: tracing depth 2019-02-15 17:20:51 +02:00
andri lim 04f28d9048 fixes vm state get block hash 2019-02-15 17:20:51 +02:00
andri lim 17188dfcb1 fixes memory write: no padding 2019-02-15 17:20:51 +02:00
andri lim fdc34a4cf6 fixes vmState construction 2019-02-15 17:20:51 +02:00
andri lim c53e7fa07c fixes #228 2019-02-15 17:20:51 +02:00
andri lim e38b1bf803 fixes generateChildComputation 2019-02-15 17:20:51 +02:00
andri lim 5701c8bacb fixes precompile contract: identity gascost 2019-02-15 17:20:51 +02:00
andri lim 00087de2ce trade 7 failed GST with 107 OK GST 2019-02-07 11:01:43 +01:00
andri lim d8db3d74d0 fix NUMBER opcode regression 2019-02-07 11:01:43 +01:00
Mamy Ratsimbazafy e1812eb7ce
Prepare for AD2 rebranding to chronos (#225)
* Prepare for AD2 rebranding to chronos - https://github.com/status-im/nim-asyncdispatch2/pull/20

* fix nimble path to chronos

* nim-eth and nim-chronos merged into nimble packages

* fix nimble package name
2019-02-06 19:03:36 +01:00
andri lim 9efef3829f fixes storage tracer 2019-02-06 18:42:03 +01:00
andri lim 67c38b0275 fixes NUMBER opcode 2019-02-06 18:42:03 +01:00
andri lim a28f06a825 fixes CALL opcode 2019-02-06 18:42:03 +01:00
andri lim 817bce3555 premix report page: modify header section to display block summary 2019-02-06 18:42:03 +01:00
andri lim c71a842050 fix 'dumpBlockState' in tracer.nim 2019-02-06 18:42:03 +01:00
andri lim 7c6c7dbe3a 'accountExist' to 'accountExists' 2019-02-06 18:42:03 +01:00
andri lim 4cc0ef427c add ccountExist and isDeadAccount to AccountStateDB 2019-02-06 18:42:03 +01:00
Yuriy Glukhov 481c6cf4ed Use nim-eth (#224) 2019-02-05 20:15:50 +01:00
Ștefan Talpalaru ede45648e7 Premix-related changes
- build all tools using the Makefile and place them in ./build
- add copyright header to Makefile
- premix/readme.md edited to fix some errors, improve descriptions and
  document Makefile usage
- link the Premix documentation in the main README.md
- also build `hunter` in the nimble tests
- refactored the file and directory search so all debugging tools can be run
  from the top-level dir like this: `./build/<tool> ...`
- write all JSON debugging data in the current directory
- add JSON files generated in the top-level dir to .gitignore
- Nimbus now exits with an exception after dumping debug data and
  running `premix` on it
2019-01-28 12:38:23 +02:00
Ștefan Talpalaru 60d2867b2e disable Chronicles colors on Windows 2019-01-16 14:17:26 +02:00
Zahary Karadjov c98e337090 remove the need for gcsafe overrides 2019-01-15 18:59:24 +02:00
Ștefan Talpalaru a431ceed11 add "--threads:on" to tests and main binary
- some "funcs" were no longer considered side-effect free, so I made
  them procs
- added {.base.} to some base methods to avoid a deprecation warning
2019-01-15 18:59:24 +02:00
andri lim 78367bf10a fix debug tool 2019-01-15 15:30:25 +02:00
andri lim e104153379 add premix and browser launcher code 2019-01-15 15:30:25 +02:00
andri lim f1bb0d1b31 poststate processing 2019-01-15 15:30:25 +02:00
andri lim 7c4cb7a58e add report page 2019-01-15 15:30:25 +02:00
andri lim 0a6b3505f2 add dumper tool 2019-01-15 15:30:25 +02:00
andri lim 729686ff57 add debug tool 2019-01-15 15:30:25 +02:00
andri lim 9f590a22e8 fix persist tool 2019-01-15 15:30:25 +02:00
andri lim 0c887b3711 move initializeEmptyDb to genesis.nim 2019-01-15 15:30:25 +02:00
Yuriy Glukhov 58ad0e472c Moved db backends to eth_trie 2019-01-13 15:31:59 +02:00
Ștefan Talpalaru bd9d15d947 new build system
- isolate dependencies (both Git repos and ".nimble" dir) in "vendor"
- ensure that everything is compiled using our version of Nim with
  something as simple as "make"
- pull the latest changes with "make update"
- re-create Nimble's package dir and re-build the Nim compiler automatically when needed
- "env.sh" script that can be used to prefix any command that needs to use
  "nim" or "nimble" from our Nim repo
- move the top level nim.cfg to nimbus/nim.cfg so it doesn't apply to
  deps
- "fetch-dlls" `make` target for Windows to get precompiled Snappy, RocksDB and SQLite DLLs
2019-01-09 14:25:00 +02:00
Ștefan Talpalaru 00afb0889c
ForLoopMacros cleanup 2019-01-07 18:13:08 +01:00
Ștefan Talpalaru 89044b84e7 update Nimbus header and refine db backend picking
- dynamically generated copyright year interval
- added the db backend to the header
- documented the db-backend-changing define, made it case insensitive
  and ensured wrong values would trigger compilation errors
2019-01-07 01:21:29 +02:00
Ș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
coffeepots 20933f494b
Moved and unstubbed intrinsicGas from vm_state_transactions 2019-01-06 19:03:35 +01:00
coffeepots ab0f8f6748
Update eth_estimateGas to use optional types 2019-01-06 19:03:34 +01:00
coffeepots 3f1122702e
Initial commit for eth_estimateGas 2019-01-06 19:03:34 +01:00
coffeepots ac9fb37465
Initial commit for eth_estimateGas 2019-01-06 19:03:20 +01:00
andri lim b93d809805 fix internal transactions account tracing 2019-01-06 13:17:25 +02:00
andri lim 281b7dffac implement debug_setHead 2019-01-06 13:17:08 +02:00
andri lim e78fb72ef6 fixes #188 2019-01-06 13:16:45 +02:00
andri lim 041ed689aa fix silly typo mistake 2019-01-06 11:43:38 +02:00
andri lim 96b18cfce3 add select_backend module 2019-01-06 11:43:38 +02:00
andri lim 0487720769 fix capturedb bug 2019-01-06 11:43:38 +02:00
andri lim 7683f68c15 fix statediff bug 2019-01-06 11:43:38 +02:00
andri lim ab0fb7fdf0 fix getScore 32bit bug 2019-01-06 11:43:38 +02:00
andri lim 3a10f99694 add persistblock test 2019-01-06 11:43:38 +02:00
andri lim 5cf43c2909 implement dumpDebuggingMetaData 2019-01-06 11:43:38 +02:00
andri lim 8a6d351c22 add internal transactions dump 2019-01-06 11:43:38 +02:00
andri lim 5fc134ac2a add lmdb backend 2019-01-06 11:43:38 +02:00
andri lim 3b5562d85b rebase 2019-01-06 11:43:38 +02:00
andri lim a6bf970b1b some cleanup 2019-01-06 11:43:38 +02:00
andri lim 9db4e9296a add tracer test 2019-01-06 11:43:38 +02:00
andri lim e3fee70f0a fixes tracer 2019-01-06 11:43:38 +02:00
andri lim 890e8e11a4 dumpDebuggingMetaData stub 2019-01-06 11:43:38 +02:00
andri lim 3a355e0569 implement debug_traceBlock 2019-01-06 11:43:38 +02:00
andri lim 6dc4b0be9a implement dumpBlockState 2019-01-06 11:43:38 +02:00
andri lim 35c1c7e075 move block processing to executor 2019-01-06 11:43:38 +02:00
andri lim f613f8b3c6 add dumpBlockState stub 2019-01-06 11:43:38 +02:00
andri lim 403e12b91f add statediff to traceTransaction 2019-01-06 11:43:38 +02:00
andri lim 9d6dbceefc add enable/disableTracing to vm_state 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 40f094f6d5 fix datadir typo 2018-12-28 15:24:57 +07:00
Ștefan Talpalaru 048a43b2f1
better error handling
- added some useful `chronicles` defines in the top-level nim.cfg
- converted some assert() calls to error codes to avoid a reported
  segfault with -d:release
- the recoverable errors are being recovered from, in persistWorkItem()
- the only case that's a show stopper raises an exception
2018-12-17 23:36:38 +01:00
andri lim ff08a6ad95 fix some typo 2018-12-16 15:38:51 +02:00
andri lim d3380f6cf0 fix test 2018-12-16 15:38:51 +02:00
andri lim 8c6cec4999 fix getTransactionReceipt 2018-12-16 15:38:51 +02:00
andri lim 9c0bb70ba7 working makeReceipt 2018-12-16 15:38:51 +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
coffeepots 51df75a296 Add WhisperFilterOptions 2018-12-05 19:11:17 +02:00
coffeepots ef172a857a Update new filter signature 2018-12-05 19:11:17 +02:00
coffeepots ce3c8eaf05 Update whisper types to be optional 2018-12-05 19:11:17 +02:00
andri lim b29f5b1321 put traceTransaction into action 2018-12-05 22:01:29 +07: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 c954dc7d62 fix tests 2018-12-05 22:01:29 +07:00
andri lim 0b7b577af6 add more options to debug_traceTransaction 2018-12-05 22:01:29 +07:00
andri lim 8d42ad997e reorder captureDB in traceTransaction 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
andri lim a098285a7b put prune switch into usage 2018-12-05 21:58:34 +07:00
andri lim 4885445735 add prune cli switch 2018-12-05 21:58:34 +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 9b53f8cda4 Updated traceTransaction to accept a hash 2018-11-29 17:09:59 +00:00
coffeepots 8d4c00cd3f Removed utils from p2p and updated names in rpc_utils 2018-11-29 17:08:13 +00:00
coffeepots a5aad977dd Merge remote-tracking branch 'origin/rpc_eth_call' 2018-11-29 16:15:52 +00:00
andri lim f6d9308208 add TODO comment and trigger ci rebuild 2018-11-29 12:12:25 +02:00
andri lim af84be0eea keep in sync with eth_common#23 2018-11-29 12:12:25 +02:00
coffeepots 184143ba65 Update return types 2018-11-28 22:27:15 +00:00
coffeepots f6cd02ff3f Relax JSON to UInt256 length constraint, refactor err msgs 2018-11-28 22:04:57 +00:00
andri lim 21070d510d add TransactionKey to persistTransactions and add more fat to debug_traceTransaction 2018-11-28 09:25:36 +07:00
coffeepots 5681c355ef Update comment 2018-11-26 19:40:29 +00:00
coffeepots d269bd07c5 Remove default gas price (is zero instead) and use gasLimit from header 2018-11-26 11:28:38 +00:00
andri lim 161d6adbc7 implement persistTransactions and getBlockBody 2018-11-24 08:00:58 +07:00
coffeepots a279915175 Refactored variable setup to ensure sensible defaults 2018-11-23 18:24:42 +00:00
coffeepots a20a18f8e8 Add converter from Json to UInt256 2018-11-23 17:21:03 +00:00
coffeepots dc5e62951a Make eth_call use optional params 2018-11-23 17:20:20 +00:00
andri lim a2b9167e2b extend rpc api cli and implement debug_traceTransaction stub 2018-11-22 13:40:09 +07:00
coffeepots 1f0766c5d4 Add initTransaction 2018-11-20 17:35:11 +00:00
coffeepots 826206d054 Fill in eth_call 2018-11-20 17:31:17 +00:00
coffeepots 553605875b Update types to avoid early casting to strings and keep type strictness 2018-11-20 17:30:04 +00:00
coffeepots e51a4632cd Update RPC types to be inline with internal expectations and stay to spec 2018-11-20 17:27:22 +00: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
Dustin Brody d97cc50afc fix eth_trie/constants missing compile error 2018-10-19 07:44:08 -07: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
Zahary Karadjov 41adca1abb Minimal changes required for building the LES branch 2018-10-16 03:10:01 +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
Zahary Karadjov 343cc4fa43 Populate the persistent databases with the empty RLP key.
Also implements transactional block persistence. Two issues
in the transaction processing code have been discovered that
might affect other usages such as the CALL instruction.

The main fix gets us past block 49000.

You may need to clean up your database.
2018-10-05 03:36:48 +03:00
Dustin Brody 7aa0c386dd some simplification and cleanup 2018-10-04 17:52:58 +00: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 e2087f0922 Remove precompile hash table 2018-10-02 15:55:28 +01:00
coffeepots 62968bf733 Initial support for precompiles with ecRecover 2018-10-02 15:46:39 +01:00
tersec 4f04332205
Refactor contract creation into transaction code from P2P code; get 14 new GSTs working (#163)
* checkpoint where refactoring and calling from GST runner doesn't break anything

* 14 new GSTs pass by refactoring contract creation out of p2p/chain and using from GST test runner

* 2 of 14 new tests fail in 32-bit builds

* switch from CREATE_CONTRACT_ADDRESS to isContractCreation

* switch another CREATE_CONTRACT_ADDRESS to isContactCreation
2018-09-29 15:36:42 +00: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 d4e95fae94
refactor aspects of transaction processing out of GeneralStateTests handler; get p2p/chain runnning through block 48680; combine/deduplicate two different but equivalent methods of caulculating transaction intrinsic gas cost; fix BaseTransaction references to just Transaction references in hitherto unreferenced stubbed out source so it builds; clean up some imports from refactoring (#161) 2018-09-27 19:09:26 +00:00
Zahary Karadjov 2c59de6064 Fix the Nimbus build after the merge 2018-09-26 14:00:52 +03:00
Yuriy Glukhov 7a732040ba Added comments 2018-09-26 13:31:48 +03:00
Yuriy Glukhov 291fddee71 Better cmdline flags handling 2018-09-26 13:31:48 +03:00
Zahary Karadjov 74f6f0b738 Deal with the refactoring in status-im/nim-rlp#20 2018-09-26 12:58:23 +03:00
Zahary Karadjov 5c0fd16448 Fix an issue with the Sqlite3 tests (the in-memory DB was not properly used) 2018-09-25 16:01:38 +03:00
Zahary Karadjov 4e323df363 Implement a --datadir command-line options
By default, the database files will be written in the
platform-specific application data folder:

$HOME/AppData/Roaming/Nimbus/DB
$HOME/Library/Application Support/Nimbus/DB
$HOME/.cache/nimbus/db
2018-09-25 02:06:20 +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
Yuriy Glukhov 22668407a7 Some tweaks and comments (#155) 2018-09-20 20:06:22 +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 5acd6cc049 newMemoryDB 2018-09-19 18:41:17 +03:00
Yuriy Glukhov 0adfaf0f31 s/increaseBalance/addBalance 2018-09-19 18:41:17 +03:00
Yuriy Glukhov 3d64c66b7a More state restoring 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
Dustin Brody 7dfd2a3849 update deltabalance to mix of setBalance and increaseBalance 2018-09-18 06:25:28 -07:00
coffeepots 4f03c9cf2a
Merge pull request #139 from status-im/callOpCodeWork
Flesh out call op
2018-09-18 14:09:00 +01:00
coffeepots b49637cdbf Helper procs for updating opcode executor based on fork 2018-09-18 13:10:30 +01:00
coffeepots d435e434ec Copy opCodeExec to child computation 2018-09-18 13:03:22 +01:00
Zahary Karadjov d71ce6fb24 Make use of the new transactional API offered by the Trie DB 2018-09-18 02:56:10 +03:00
coffeepots d484420f5b Remove fork distinguished procs, handle in applyCreateMessage 2018-09-17 19:35:07 +01:00
coffeepots c300044474 Add EIP170_CODE_SIZE_LIMIT 2018-09-17 19:34:29 +01:00
coffeepots 949d4c11f8 Full names for `$`(fork) 2018-09-17 18:38:10 +01:00
Dustin Brody beb1befc6e 13 additional GeneralStateTests working; remove commented auto-ported Py-EVM validations which are implicit in UInt256; address comments to last commit (toSeq, hoising vmState.readOnlyStateDB, deltaBalance -> increaseBalance) 2018-09-17 13:41:32 +00:00
Zahary Karadjov 409d875beb Some helpers for tracing and debugging Trie issues (the code is no-op by default) 2018-09-16 00:20:20 +03:00
coffeepots cdfcda41b4 Remove init 0 after child computation 2018-09-14 18:04:09 +01:00
coffeepots 63f9acd8ce Add create and apply message procs 2018-09-14 18:03:26 +01:00
coffeepots c7a014bb10 Add gas cost for create 2018-09-14 17:59:21 +01:00