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
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