andri lim
572de41507
tracing opcode return value
2018-12-05 22:01:29 +07:00
andri lim
7a3ddfec87
correcting account storage retrieval
2018-12-05 22:01:29 +07:00
andri lim
c954dc7d62
fix tests
2018-12-05 22:01:29 +07:00
andri lim
0b7b577af6
add more options to debug_traceTransaction
2018-12-05 22:01:29 +07:00
andri lim
8d42ad997e
reorder captureDB in traceTransaction
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
andri lim
a098285a7b
put prune switch into usage
2018-12-05 21:58:34 +07:00
andri lim
4885445735
add prune cli switch
2018-12-05 21:58:34 +07:00
mratsim
24bcb3b2d8
remove log2 spurious comment
2018-12-04 15:56:18 +01:00
mratsim
f50bb57eb6
Reactivate the precompiles test + consume gas
2018-12-04 15:52:59 +01:00
mratsim
29f8a8a066
modExp fixed!
2018-12-04 15:46:33 +01:00
mratsim
6d93bdffea
modExp, support up to uint4096
2018-12-04 14:39:10 +01:00
mratsim
949c5a1dc6
Modexp fix example 1 (returned to early for ints of length 1)
2018-12-04 12:49:48 +01:00
coffeepots
9b53f8cda4
Updated traceTransaction to accept a hash
2018-11-29 17:09:59 +00:00
coffeepots
8d4c00cd3f
Removed utils from p2p and updated names in rpc_utils
2018-11-29 17:08:13 +00:00
coffeepots
a5aad977dd
Merge remote-tracking branch 'origin/rpc_eth_call'
2018-11-29 16:15:52 +00:00
andri lim
f6d9308208
add TODO comment and trigger ci rebuild
2018-11-29 12:12:25 +02:00
andri lim
af84be0eea
keep in sync with eth_common#23
2018-11-29 12:12:25 +02:00
coffeepots
184143ba65
Update return types
2018-11-28 22:27:15 +00:00
coffeepots
f6cd02ff3f
Relax JSON to UInt256 length constraint, refactor err msgs
2018-11-28 22:04:57 +00:00
andri lim
21070d510d
add TransactionKey to persistTransactions and add more fat to debug_traceTransaction
2018-11-28 09:25:36 +07:00
coffeepots
5681c355ef
Update comment
2018-11-26 19:40:29 +00:00
coffeepots
d269bd07c5
Remove default gas price (is zero instead) and use gasLimit from header
2018-11-26 11:28:38 +00:00
andri lim
161d6adbc7
implement persistTransactions and getBlockBody
2018-11-24 08:00:58 +07:00
coffeepots
a279915175
Refactored variable setup to ensure sensible defaults
2018-11-23 18:24:42 +00:00
coffeepots
a20a18f8e8
Add converter from Json to UInt256
2018-11-23 17:21:03 +00:00
coffeepots
dc5e62951a
Make eth_call use optional params
2018-11-23 17:20:20 +00:00
andri lim
a2b9167e2b
extend rpc api cli and implement debug_traceTransaction stub
2018-11-22 13:40:09 +07:00
coffeepots
1f0766c5d4
Add initTransaction
2018-11-20 17:35:11 +00:00
coffeepots
826206d054
Fill in eth_call
2018-11-20 17:31:17 +00:00
coffeepots
553605875b
Update types to avoid early casting to strings and keep type strictness
2018-11-20 17:30:04 +00:00
coffeepots
e51a4632cd
Update RPC types to be inline with internal expectations and stay to spec
2018-11-20 17:27:22 +00:00
coffeepots
f99138dca6
Merge branch 'call-fixes-precompiles'
2018-11-12 15:57:54 +00:00
coffeepots
1cead76327
Add note about cyclic dep
2018-11-08 16:40:40 +00:00
coffeepots
6eb430fd52
Fix CREATE op code gas costs, more debug output, call transactions
2018-11-08 16:00:21 +00:00
coffeepots
492d2ae676
Debug message for new messages
2018-11-08 15:48:32 +00:00
coffeepots
6b1e989ff0
Add initial gas cost for CREATE
2018-11-08 15:47:48 +00:00
Yuriy Glukhov
bac452f589
Initial TransactionTracer impl
2018-10-28 14:38:05 +01:00
Dustin Brody
d97cc50afc
fix eth_trie/constants missing compile error
2018-10-19 07:44:08 -07:00
coffeepots
7ba1cfaf13
Remove endian code, precompiles should now run. Removed raise as case stmt is full now.
2018-10-19 14:41:04 +01:00
coffeepots
434edcc2ae
Fix incorrect message parameters (had sender and destination swapped)
2018-10-18 17:47:54 +01:00
cheatfate
0b15b86195
Fix ecMul, ecPairing, ecAdd.
2018-10-16 11:49:13 +03:00
Zahary Karadjov
41adca1abb
Minimal changes required for building the LES branch
2018-10-16 03:10:01 +03:00
coffeepots
6e4616e443
Precompiles now executed if called from vm_state_transactions
2018-10-12 16:16:14 +01:00
coffeepots
67df44e917
Fix ecrecover, pad ripemd result and use sha256 vs keccak256
2018-10-10 17:36:11 +01:00
mratsim
bb6e1e1d76
modExp precompiles: fix padding and static evaluation
2018-10-10 16:26:21 +02:00
mratsim
0494e2a877
Support short inputs with missing bytes
2018-10-05 17:37:52 +02:00
mratsim
38b4d54815
Add modExp precompile + gas costs
2018-10-05 17:26:20 +02:00
cheatfate
9318ea93cf
Added nim-bncurve dependency.
...
Added implementation of `ecAdd`, `ecMul`, `ecPairing` precompiles.
2018-10-05 12:15:04 +03:00
Zahary Karadjov
343cc4fa43
Populate the persistent databases with the empty RLP key.
...
Also implements transactional block persistence. Two issues
in the transaction processing code have been discovered that
might affect other usages such as the CALL instruction.
The main fix gets us past block 49000.
You may need to clean up your database.
2018-10-05 03:36:48 +03:00
Dustin Brody
7aa0c386dd
some simplification and cleanup
2018-10-04 17:52:58 +00: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
3deb09bbb6
Add SHA256, RIPEMD160 and Identity precompiles
2018-10-03 13:33:19 +01:00
coffeepots
fcffd94469
Support different endians
2018-10-02 16:39:01 +01:00
coffeepots
36270ff4d5
Fixes for Call gas usage, Calls use precompiles, pass down their opCode
2018-10-02 16:07:16 +01:00
coffeepots
e2087f0922
Remove precompile hash table
2018-10-02 15:55:28 +01:00
coffeepots
62968bf733
Initial support for precompiles with ecRecover
2018-10-02 15:46:39 +01:00
tersec
4f04332205
Refactor contract creation into transaction code from P2P code; get 14 new GSTs working ( #163 )
...
* checkpoint where refactoring and calling from GST runner doesn't break anything
* 14 new GSTs pass by refactoring contract creation out of p2p/chain and using from GST test runner
* 2 of 14 new tests fail in 32-bit builds
* switch from CREATE_CONTRACT_ADDRESS to isContractCreation
* switch another CREATE_CONTRACT_ADDRESS to isContactCreation
2018-09-29 15:36:42 +00: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
d4e95fae94
refactor aspects of transaction processing out of GeneralStateTests handler; get p2p/chain runnning through block 48680; combine/deduplicate two different but equivalent methods of caulculating transaction intrinsic gas cost; fix BaseTransaction references to just Transaction references in hitherto unreferenced stubbed out source so it builds; clean up some imports from refactoring ( #161 )
2018-09-27 19:09:26 +00:00
Zahary Karadjov
2c59de6064
Fix the Nimbus build after the merge
2018-09-26 14:00:52 +03:00
Yuriy Glukhov
7a732040ba
Added comments
2018-09-26 13:31:48 +03:00
Yuriy Glukhov
291fddee71
Better cmdline flags handling
2018-09-26 13:31:48 +03:00
Zahary Karadjov
74f6f0b738
Deal with the refactoring in status-im/nim-rlp#20
2018-09-26 12:58:23 +03:00
Zahary Karadjov
5c0fd16448
Fix an issue with the Sqlite3 tests (the in-memory DB was not properly used)
2018-09-25 16:01:38 +03:00
Zahary Karadjov
4e323df363
Implement a --datadir command-line options
...
By default, the database files will be written in the
platform-specific application data folder:
$HOME/AppData/Roaming/Nimbus/DB
$HOME/Library/Application Support/Nimbus/DB
$HOME/.cache/nimbus/db
2018-09-25 02:06:20 +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
Yuriy Glukhov
22668407a7
Some tweaks and comments ( #155 )
2018-09-20 20:06:22 +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
Yuriy Glukhov
5acd6cc049
newMemoryDB
2018-09-19 18:41:17 +03:00
Yuriy Glukhov
0adfaf0f31
s/increaseBalance/addBalance
2018-09-19 18:41:17 +03:00
Yuriy Glukhov
3d64c66b7a
More state restoring
2018-09-19 18:41:17 +03: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
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
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
c300044474
Add EIP170_CODE_SIZE_LIMIT
2018-09-17 19:34:29 +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
Zahary Karadjov
409d875beb
Some helpers for tracing and debugging Trie issues (the code is no-op by default)
2018-09-16 00:20:20 +03: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
7cd7a73a1f
Add opCodeExec to allow computation to execute code
2018-09-14 16:42:15 +01:00
coffeepots
213aebde7d
Update some comments, adding TODO item for getStateDb
2018-09-14 16:16:55 +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
Yuriy Glukhov
62260c786d
Caching DB backend
2018-09-12 17:53:15 +03: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
09d35d4bfd
Fix merge conflict
2018-09-06 13:59:22 +01:00
coffeepots
7e02eedea0
Use toOpenArray in generateAddress
2018-09-06 13:57:42 +01: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
9f1027102c
Make generateAddress a func
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
coffeepots
350bf7e672
Add hasCodeOrNonce
2018-09-06 13:57:42 +01:00
coffeepots
69befaf4fd
Use toOpenArray in generateAddress
2018-09-06 13:48:55 +01:00
Yuriy Glukhov
0a247a58f3
New nim compat
2018-09-06 13:16:13 +03:00
coffeepots
485781e6ad
Always update account nonce even if there's an contract address collision
2018-09-06 10:58:35 +01:00
Dustin Brody
9e1be6438e
Extract transaction senders from GeneralStateTest fixtures
2018-09-06 11:20:43 +03:00
coffeepots
2b87d2b7f5
Merge branch 'createOpContractAddr' of https://github.com/status-im/nimbus into createOpContractAddr
2018-09-04 17:15:58 +01:00
coffeepots
bd9f732b4e
Don't touch nonce until after address in-use check
2018-09-04 17:15:46 +01:00
coffeepots
12834fba12
Merge branch 'master' into createOpContractAddr
2018-09-04 16:37:43 +01:00
coffeepots
f3fb306a33
Comment reference to issue regarding address collisions
2018-09-04 16:35:20 +01:00
Dustin Brody
4262ea8670
fix (1) overflow/signed confusion when reading large-valued storage entries; (2) adjust test fixture validity for GeneralStateTests; (3) remove incorrect usage of state trie for code (not codehash) storage; add ability to display state; (4) avoid double-hashing keys for already-hashed SecureHexaryTrie for storage; (5) add intentionally local workaround for empty code in GeneralStateTest fixtures lacking 0x prefix; (6) fix nonce parsing, which is always hex string in test fixtures
2018-09-04 17:55:30 +03:00
coffeepots
c3c84782a5
Make generateAddress a func
2018-09-04 12:27:07 +01:00
coffeepots
a28ef962b3
Add generateAddress utility
2018-09-04 12:23:47 +01:00
coffeepots
a7c1168b3a
Create Op now generates contract addresses & checks for collisions
2018-09-03 19:30:27 +01:00
coffeepots
7ed2403c5c
Add hasCodeOrNonce
2018-09-03 19:24:55 +01:00
Yuriy Glukhov
b055504f8e
Added --experimental:forLoopMacros to nims
2018-09-03 15:20:40 +03:00
coffeepots
bda219f8fe
Make tests green (AccountNonce)
2018-09-02 03:26:22 +01:00
coffeepots
4d0adfd514
Update RPC types to use AccountNonce
2018-09-01 16:03:06 +03:00
coffeepots
e10df33864
Update return value to use AccountNonce
2018-09-01 16:03:06 +03:00
coffeepots
1427d59f27
Change setNonce, getNonce to use AccountNonce, which is uint64 from UInt256
2018-09-01 16:03:06 +03:00
coffeepots
0229d16fed
Change hashing function to use AccountNonce
2018-09-01 16:03:06 +03:00
coffeepots
dbc35fb198
Account.nonce is now AccountNonce which is uint64 from UInt256
2018-09-01 16:03:06 +03:00
Jacek Sieka
1d49b65d55
Merge pull request #117 from status-im/logging-to-chronicles
...
replace logging module with nim-chronicles (fixes #38 )
2018-08-31 13:15:08 -06:00
coffeepots
77df371cd1
Update toSignature to use range instead of UInt256
2018-08-31 17:18:19 +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
055b169e86
Merge branch 'master' of https://github.com/status-im/nimbus
2018-08-29 18:13:10 +01:00
coffeepots
2f6f9b765c
Use getSender from transactions, Re-add getAccountDb, fix accountDbFromTag
2018-08-29 18:12:39 +01:00
coffeepots
372ea24c41
Merge pull request #125 from status-im/getSenderReturn
...
Alternative form of getSender that raises and returns address
2018-08-29 18:07:04 +01:00
coffeepots
e59d019a03
Merge branch 'master' into chain-db-interface
2018-08-29 17:23:25 +01:00
coffeepots
bdb1904fd5
Alternative form of getSender that raises and returns address
2018-08-29 16:52:12 +01:00
coffeepots
ffa5aafab4
Get block RPCs now return Option[BlockObject]
2018-08-29 16:01:43 +03:00
coffeepots
396f31f643
Updated to use option types
2018-08-29 16:01:43 +03:00
coffeepots
f3df5156d9
Update to option types instead of refs
2018-08-29 16:01:43 +03:00
coffeepots
18d62d8c79
toSignature is now a proc
2018-08-29 16:01:43 +03:00
coffeepots
74a4ab6efc
Update len to template
2018-08-29 16:01:43 +03:00
coffeepots
ae03675b07
Use toCanonicalAddress in getSender
2018-08-29 16:01:43 +03:00
coffeepots
4e007e7d6c
Update transaction hash to not include tx signature
2018-08-29 16:01:43 +03:00
coffeepots
6a55c59cc5
Simplify populating transaction object by moving fetching inside proc
2018-08-29 16:01:43 +03:00