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
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
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
coffeepots
af76d209a6
Add opcode executor proc to computation
2018-09-14 16:47:40 +01:00
coffeepots
6183761251
Refactor for generateChildComputation
2018-09-14 16:16:55 +01:00
coffeepots
2b6342764c
Add fork to string proc
2018-09-14 16:16:55 +01:00
coffeepots
d465fcd038
Appy child computation in call op code
2018-09-14 16:16:55 +01:00
coffeepots
2a38c0194d
Expose isCreate for export
2018-09-14 16:16:55 +01:00
coffeepots
69f07c587a
Add generateChildComputation, addChildComputation and applyChildComputation
2018-09-14 16:16:55 +01:00
coffeepots
d24108a79b
Convert code from byte range to seq
2018-09-14 16:16:55 +01:00
coffeepots
b4fd38e062
Call now gets and checks balance against funds, also now fetches code
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
Dustin Brody
fd07d6fed1
A simple/basic GeneralStateTest runner which gets 400+ of them correct
2018-09-10 19:42:45 +03:00
Yuriy Glukhov
3a1ec035b3
Various fixes towards state reconstruction
2018-09-07 14:00:37 +03:00
coffeepots
085880758b
Always update account nonce even if there's an contract address collision
2018-09-06 13:57:42 +01:00
coffeepots
ca6eb0cb38
Don't touch nonce until after address in-use check
2018-09-06 13:57:42 +01:00
coffeepots
555687ba97
Comment reference to issue regarding address collisions
2018-09-06 13:57:42 +01:00
coffeepots
7a5a43f50f
Add generateAddress utility
2018-09-06 13:57:42 +01:00
coffeepots
0e2068c99e
Create Op now generates contract addresses & checks for collisions
2018-09-06 13:57:42 +01: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
c9de0fbd29
Reduce range of cleanMemRef
2018-08-17 17:16:40 +03:00
coffeepots
fd7062fecb
Fix VMTest message creation in 32 bits, also duplicated word in comment
2018-08-17 17:16:40 +03:00
coffeepots
ff52d75fc0
Fix overflowing int in 32 bit
2018-08-17 17:16:40 +03:00
coffeepots
66adba9037
Fix for gas costs in 32 bit
2018-08-17 17:16:40 +03:00
Dustin Brody
f91bb16bdd
Initial EVMC message type API matching: reorder overlapping fields to match EMVC; rename to to destination; replace isStatic with more general flags (with only one non-zero value); remove superfluous-seeming shouldTransferValue; keep internalFoo fields, which aren't in PyEVM either, so weren't per se part of PyEVM matching
2018-08-14 15:03:18 +03:00
Dustin Brody
ea2f3b71bf
Complete VM Test sync, with EXP(0, 0) defined as 1 now ( #98 )
2018-08-07 18:41:01 +00:00
Dustin Brody
2136bc74fd
Sanitize memory addresses and lengths ( #97 )
...
* add a helper function to ensure for memory addressing and length purposes, especially as applied to array indexing and bounds-checking, that non-negative UInt256 numbers remain non-negative when lossily converted to int's
2018-08-06 16:33:20 +00:00
Dustin Brody
71679d6d95
fix assorted test fixtures which have been un-skipped
2018-08-02 15:57:28 -07:00
Dustin Brody
dcf97d8198
memory expansion boilerplate usage wasn't 100% consistent, so extcodecopy and codecopy were returning far too low gas costs in many cases ( #88 )
2018-07-28 09:59:33 +02:00
Dustin Brody
5d82493a9c
fix comment to correctly reflect REVERT opcode
2018-07-25 16:30:18 -07:00
Yuriy Glukhov
04bacca35c
Merge pull request #81 from status-im/ClampMemoryGasCostToNonnegative
...
accessing memory can't cost less than nothing
2018-07-25 13:48:21 +03:00
Yuriy Glukhov
8713939bfe
Merge pull request #82 from status-im/ImplementSelfDestructOp
...
Implemented selfDestruct op
2018-07-25 13:41:14 +03:00
coffeepots
47e5081f86
TODO comment for other forks on the selfdestruct op
2018-07-25 10:40:08 +01:00
Dustin Brody
85e1c39a83
accessing memory can't cost less than nothing
2018-07-24 18:37:56 -07:00
Dustin Brody
c2ed3bf11e
mstore8 wants LSB of BE representation, i.e. last byte
2018-07-24 12:25:21 -07:00
coffeepots
52daaf49c0
Implemented selfDestruct op
2018-07-24 17:21:29 +01:00
Yuriy Glukhov
473140f586
Merge pull request #79 from status-im/FixExtCodeCopyCost
...
ExtCodeCopy is a memory expansion operation for gas computation purposes
2018-07-24 12:19:04 +03:00
Dustin Brody
df23f802c6
ExtCodeCopy is a memory expansion operation for gas computation purposes
2018-07-23 17:00:06 -07:00
Dustin Brody
00cd33febd
add subcase of yellow paper equation (297) for zero-length memory ranges
2018-07-23 14:00:49 -07:00
Yuriy Glukhov
01a920b3b6
Merge pull request #76 from status-im/FixFailOnEmptyChildComputation
...
Only write to child computation if data present
2018-07-20 11:15:12 +03:00
coffeepots
868f2b1959
Remove if statement for actualOutputSize - 1
2018-07-20 08:53:56 +01:00