coffeepots
6eb430fd52
Fix CREATE op code gas costs, more debug output, call transactions
2018-11-08 16:00:21 +00:00
coffeepots
6b1e989ff0
Add initial gas cost for CREATE
2018-11-08 15:47:48 +00:00
mratsim
bb6e1e1d76
modExp precompiles: fix padding and static evaluation
2018-10-10 16:26:21 +02:00
mratsim
38b4d54815
Add modExp precompile + gas costs
2018-10-05 17:26:20 +02: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
36270ff4d5
Fixes for Call gas usage, Calls use precompiles, pass down their opCode
2018-10-02 16:07:16 +01: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
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
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
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
048921b045
20 new working GeneralStateTests
2018-09-18 14:00:30 +00:00
coffeepots
949d4c11f8
Full names for `$`(fork)
2018-09-17 18:38:10 +01:00
coffeepots
cdfcda41b4
Remove init 0 after child computation
2018-09-14 18:04:09 +01:00
coffeepots
c7a014bb10
Add gas cost for create
2018-09-14 17:59:21 +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
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
fd07d6fed1
A simple/basic GeneralStateTest runner which gets 400+ of them correct
2018-09-10 19:42:45 +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
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
coffeepots
868f2b1959
Remove if statement for actualOutputSize - 1
2018-07-20 08:53:56 +01:00
coffeepots
6ce46c0163
Only write to child computation if data present
2018-07-19 19:14:17 +01:00
Yuriy Glukhov
feaff16e9d
Corrected jump boundary check. Nonexistent sload pushes 0. ( #74 )
2018-07-19 15:11:52 +02:00
Yuriy Glukhov
b2acf3a5e3
GasMeter is an object now ( #73 )
2018-07-18 14:18:17 +02:00
Yuriy Glukhov
6c67115ef5
Fixed sstore gas computation, empty sha3, smod, sdiv ( #71 )
...
* Fixed sstore gas computation, fixed empty sha3
* Fixed smod and sdiv
* Comments addressed
2018-07-18 11:14:28 +02:00