Commit Graph

650 Commits

Author SHA1 Message Date
andri lim dd89af6d3d
implement EIP658: receipt status field 2019-04-26 07:31:09 +07:00
andri lim d8284f9330
fix revert opcode 2019-04-26 07:31:09 +07:00
andri lim 13cd54a382
implement byzantium opcode dispatch 2019-04-26 07:31:03 +07:00
Ștefan Talpalaru 29a226da1e
more gcsafe pragmas for Nim HEAD 2019-04-26 00:18:51 +02:00
kdeme 46fb9dc1b2 Add staticnodes, protocols, and whisper config options (#319) 2019-04-23 07:49:49 -06:00
Ștefan Talpalaru 9011b06037
Merge branch 'fix_spurious_dragon' of github.com:jangko/nimbus into jangko-fix_spurious_dragon 2019-04-19 13:03:05 +02:00
andri lim f3c740498c
implement EIP155 tx.getSender 2019-04-18 15:33:17 +07:00
andri lim 2b7d89fa9d
make test green 2019-04-18 15:26:09 +07:00
andri lim ec918602bc
fix accountsForDeletion iterator, GST +2 2019-04-18 13:23:04 +07:00
andri lim 1883472104
fix evm msg contract creation, GST +3 2019-04-18 12:42:37 +07:00
andri lim f7338b7d76
include miner address in touchedAccounts, GST +7 2019-04-18 11:12:21 +07:00
andri lim c07f01a74d
fix collectTouchedAccounts: msg.destination -> msg.storageAddress, GST +4 2019-04-18 10:22:48 +07:00
andri lim 7c134b481e
split state clearing in execComputation to processTransaction, GST +5 2019-04-18 08:27:55 +07:00
andri lim 03435c7beb
gst and processTransaction unification 2019-04-18 07:56:57 +07:00
Ștefan Talpalaru aa29e25c3a
clarify comment 2019-04-18 01:17:06 +02:00
andri lim 6cf0cdf23a
implement EIP161 nonce incrementation, GST +65 2019-04-17 12:15:15 +07:00
andri lim 85d9bd3958
implement EIP158, GST -4 +81 2019-04-17 11:03:52 +07:00
andri lim 23d084da68
add SpuriousGasCosts table into forkToSchedule 2019-04-17 09:46:33 +07:00
Ștefan Talpalaru d4aff04cbd
NAT port mapping 2019-04-17 03:56:28 +02:00
Ștefan Talpalaru 8800cb5fe5
Merge branch 'fix_244' of github.com:jangko/nimbus into jangko-fix_244 2019-04-15 14:05:18 +02:00
andri lim 79630611c0
fixes #244 2019-04-15 11:34:41 +07:00
andri lim 69c1d9e357
fix block 2.463.413 problem 2019-04-15 11:10:40 +07:00
andri lim 34fd831d6f
fix block 2283416 problem 2019-04-15 10:11:09 +07:00
Ștefan Talpalaru 60c57995c5
enable Chronicles colors on Windows 2019-04-12 14:58:12 +02:00
andri lim d039b88f48
activates Tangerine GST, GST +12 2019-04-08 08:06:40 +07:00
andri lim 7eafd75d17
separate tangerine whistle and spurious dragon opcode dispatcher 2019-04-08 08:06:40 +07:00
andri lim 6f51cf9103
implement EIP150 and EIP161 SelfDestruct OpCode 2019-04-08 08:06:39 +07:00
andri lim 77e9c18f91
implement Tangerine fork gas cost changes 2019-04-08 08:06:34 +07:00
andri lim a8d0a13856
fix fork comparison at postExecuteVM bug 2019-04-07 06:53:40 +07:00
andri lim 8a9e4aba80
apply dao fork changes 2019-04-07 06:53:26 +07:00
andri lim f2f92f5608
fix block 1.487.668 problem: getScore int overflow 2019-04-05 16:29:05 +07:00
andri lim d37d7fa6a5
remove computedGoto pragma 2019-04-04 17:23:28 +07:00
andri lim fb97d8d0ce
move exception handler to executeOpcodes 2019-04-04 15:26:12 +07:00
andri lim 039256de6a
more on continuation passsing 2019-04-04 15:21:24 +07:00
andri lim 60df7ea5e2
update test data 2019-04-04 12:13:33 +07:00
andri lim e5cca19e7f
tail call recursion with continuation passing 2019-04-04 11:44:35 +07:00
andri lim 4c0ba876ef
move exception handler deeper in the EVM 2019-04-04 10:50:25 +07:00
andri lim 07ac4620d9
remove 'var' modifier from 'computation: var BaseComputation' 2019-04-04 10:20:00 +07:00
andri lim 26b40f41e3
fix precompiles selection, GST +5 2019-04-02 13:11:00 +07:00
andri lim 112d2219df
reduce indirect call in EVM 2019-04-02 13:11:00 +07:00
andri lim 0f8affb7c9
remove explicit return value from VM 2019-04-02 13:11:00 +07:00
Ștefan Talpalaru 721f6e9c14
cosmetic change 2019-03-31 22:34:11 +02:00
Ștefan Talpalaru 54b0242169
Merge branch 'fix_evm' of github.com:jangko/nimbus into jangko-fix_evm 2019-03-28 15:21:28 +01:00
Ștefan Talpalaru 348782ac6a
Merge branch 'fix_gaspricelimit' of github.com:jangko/nimbus into jangko-fix_gaspricelimit 2019-03-28 15:14:39 +01:00
Ștefan Talpalaru b16aba391a
Merge branch 'fix_maxcalldepth' of github.com:jangko/nimbus into jangko-fix_maxcalldepth 2019-03-28 15:09:51 +01:00
andri lim da88d498e3
fix MaxCallDepth comparison 2019-03-28 19:08:54 +07:00
andri lim 1ad4e256b2
fix self destruct refund gas problem 2019-03-28 19:07:30 +07:00
andri lim d9a9459d95
reduce stack usage 2019-03-28 19:06:38 +07:00
andri lim 527891cdb8
integrate snapshot with computation 2019-03-28 19:06:31 +07:00
andri lim 62c1e668a9
fix tx_e1c174e2 problem, GST +1 2019-03-28 19:05:07 +07:00
Ștefan Talpalaru ea73005c0d textblocks -> textlines 2019-03-26 13:20:01 +02:00
Ștefan Talpalaru 50504cf553 Nimbus: runtime log level selection and logfile option 2019-03-26 13:20:01 +02:00
Ștefan Talpalaru 3c6ea4ac9c
Merge branch 'cleanups' of https://github.com/jangko/nimbus into jangko-cleanups 2019-03-21 15:25:40 +01:00
andri lim a02cbdd91b
turn getAccountsForDeletion into interator 2019-03-21 09:50:51 +07:00
andri lim b6587bddfd
execComputation and applyMessage unification 2019-03-21 09:47:46 +07:00
andri lim 0b87151195
remove head from processBlock 2019-03-21 09:44:53 +07:00
andri lim be79bc8740
remove opCodeExec, use executeOpcodes 2019-03-21 09:32:48 +07:00
andri lim 4aaa6e6c94
computation simplification 2019-03-21 09:31:55 +07:00
andri lim 9cc5db73c2
processTransaction simplification 2019-03-21 09:27:26 +07:00
andri lim b73a1238e0
interpreter dispatch simplification 2019-03-21 09:27:14 +07:00
Ștefan Talpalaru f62601e844
Merge branch 'non_recursive_evm' of github.com:jangko/nimbus into jangko-non_recursive_evm 2019-03-20 14:43:50 +01:00
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