andri lim
40ddbca1ee
[skip ci] simplify EVM message creation
2020-01-19 19:17:37 +02:00
andri lim
3c33678949
add comment about evmc and touched accounts
2019-12-20 16:46:03 +02:00
andri lim
7be6a4ea63
gather suicides from child to parent computation
2019-12-20 16:46:03 +02:00
andri lim
9cb98d69ba
accumulate refundGas after child computation done
2019-12-20 16:46:03 +02:00
andri lim
0d743dc468
fixes 'collectTouchedAccounts' for Istanbul
2019-11-19 16:14:36 +07:00
andri lim
c4dcf5da30
reduce compiler warnings
2019-11-13 21:49:39 +07:00
kdeme
f62816c4f3
Use of BlockNumber to be able to switch between UInt256 and int64
2019-07-10 20:56:05 +02:00
Jacek Sieka
2763bd0dd5
std_shims -> stew
2019-07-07 12:12:01 +02:00
andri lim
5f2be4231e
implement EIP1014: Create2 opcode
2019-05-13 10:26:28 +03:00
andri lim
2f08a6bc0e
fix byzantium contract creation OOG
2019-05-13 10:26:28 +03:00
andri lim
fd8a649df3
fix RevertInCreateInInit problem
2019-05-13 10:26:28 +03:00
andri lim
b34ad8b507
fix collectTouchedAccounts
2019-05-13 10:26:28 +03:00
andri lim
376957bea4
clean up unused code
2019-04-26 07:31:18 +07:00
andri lim
ba47d3c997
fix returnDataCopy gasCost, GST +11
2019-04-26 07:31:14 +07:00
andri lim
90e3a4320a
fix revert opcode at first level computation
2019-04-26 07:31:13 +07:00
Ștefan Talpalaru
29a226da1e
more gcsafe pragmas for Nim HEAD
2019-04-26 00:18:51 +02: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
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
34fd831d6f
fix block 2283416 problem
2019-04-15 10:11:09 +07:00
andri lim
a8d0a13856
fix fork comparison at postExecuteVM bug
2019-04-07 06:53:40 +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
54b0242169
Merge branch 'fix_evm' of github.com:jangko/nimbus into jangko-fix_evm
2019-03-28 15:21:28 +01:00
andri lim
da88d498e3
fix MaxCallDepth comparison
2019-03-28 19:08:54 +07:00
andri lim
527891cdb8
integrate snapshot with computation
2019-03-28 19:06:31 +07: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
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
739e20253a
fix invalid opcodes bug, GST +1
2019-03-18 13:44:22 +07:00
andri lim
d0822c26d1
fix callcode insufficient funds, GST +6
2019-03-16 22:54:24 +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
039ab1ce71
refactor/relocate CALL/CREATE to reduce stack usage
2019-03-14 14:58:26 +07: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
1b3ca200fa
remove redundant execPrecompiles call
2019-03-13 21:10:16 +07:00
andri lim
9f8191d408
EVM write contract transformation
2019-03-12 13:32:41 +02:00
andri lim
a15805e41a
fix applyCreateMessage
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
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
bc675b1daa
fix contract creation
2019-02-23 17:57:53 +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
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
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
c722f34ef3
safer snapshot commit revert and dispose
2019-02-18 18:15:32 +02:00
andri lim
8461211f9a
bugfix: implement computation snapshot, revert, commit
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
e38b1bf803
fixes generateChildComputation
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
a28f06a825
fixes CALL opcode
2019-02-06 18:42:03 +01:00
Yuriy Glukhov
481c6cf4ed
Use nim-eth ( #224 )
2019-02-05 20:15:50 +01:00
andri lim
e78fb72ef6
fixes #188
2019-01-06 13:16:45 +02:00
andri lim
b159b5c945
remove lastOpCodeHasRetVal, make it simpler
2019-01-06 11:43:38 +02:00
andri lim
ad1202f98a
initial make_receipt
2018-12-16 15:38:51 +02: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
andri lim
572de41507
tracing opcode return value
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
coffeepots
1cead76327
Add note about cyclic dep
2018-11-08 16:40:40 +00:00
coffeepots
434edcc2ae
Fix incorrect message parameters (had sender and destination swapped)
2018-10-18 17:47:54 +01:00
coffeepots
36270ff4d5
Fixes for Call gas usage, Calls use precompiles, pass down their opCode
2018-10-02 16:07:16 +01:00
Yuriy Glukhov
0adfaf0f31
s/increaseBalance/addBalance
2018-09-19 18:41:17 +03: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
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
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
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
coffeepots
63f9acd8ce
Add create and apply message procs
2018-09-14 18:03:26 +01:00
coffeepots
6183761251
Refactor for generateChildComputation
2018-09-14 16:16:55 +01:00
coffeepots
69f07c587a
Add generateChildComputation, addChildComputation and applyChildComputation
2018-09-14 16:16:55 +01:00
Dustin Brody
7ba90fda54
48 new working GeneralStateTests, via fixing some overflows/underflows, creating a rudimentary balance commit/revert scheme, and implementing account deletion for the selfdestruct instruction ( #146 )
2018-09-14 13:43:40 +00:00
Yuriy Glukhov
3a1ec035b3
Various fixes towards state reconstruction
2018-09-07 14:00:37 +03:00
Jacek Sieka
db202dc35f
replace logging module with nim-chronicles ( fixes #38 )
...
This blindly changes logging to nim-chronicles - issues that ensue:
* keeps gas cost computation logs hidden behind flag
* unclear if logScope is practical - for example, since vm is split over
many files, topics get lost when using simple top-level per-module
topics
* when passing named object around, scope should incliude the name of
the object but this is caught neither by logScope nor by dynamicLogScope
2018-08-29 16:13:03 -06:00
coffeepots
e33bc85bfa
Remove validateCanonicalAddress
2018-07-19 19:04:01 +01:00
Yuriy Glukhov
b2acf3a5e3
GasMeter is an object now ( #73 )
2018-07-18 14:18:17 +02:00