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
coffeepots
bdb48b9438
Update account gas in transaction blocks
2018-08-29 16:01:43 +03:00
coffeepots
f8a3581af5
Add sender address derivation for several RPCs
2018-08-29 16:01:43 +03:00
coffeepots
55fee296d8
Update estimateGas return type, copy header logs bloom for block header
2018-08-29 16:01:43 +03:00
coffeepots
53bd7774db
Add sender to getReceipt, calculate transaction hash once
2018-08-29 16:01:43 +03:00
coffeepots
d901c20bb2
Add toSignature(Transaction) and getSender(Transaction) local procs
2018-08-29 16:01:43 +03:00
coffeepots
3f1e140d59
Add hex data string checking to web3_sha3
2018-08-29 16:01:43 +03:00
coffeepots
6223a9a638
Add eth_newFilter stub now types are fixed
2018-08-29 16:01:43 +03:00
coffeepots
dedb63a7f7
eth_sign (sans retrieval of account private key)
2018-08-29 16:01:43 +03:00
coffeepots
f51fca2cae
Add cumulativeGas to receipts, update FilterLog type, getWork type
2018-08-29 16:01:43 +03:00
coffeepots
f151911ddf
Updates to use GasInt and Filter Logs
2018-08-29 16:01:43 +03:00
coffeepots
33b7dd931b
Add Whisper RPC prototypes
2018-08-29 16:01:43 +03:00
coffeepots
3f3c4249ba
Add Whisper types
2018-08-29 16:01:43 +03:00
coffeepots
3f2f8f83b4
Add WhisperIdentityStr
2018-08-29 16:01:43 +03:00
coffeepots
fec18e4ec2
Add WhisperIdentity string, clean up len func
2018-08-29 16:01:43 +03:00
Yuriy Glukhov
e3be8ca30a
Separate Chain from ChainDB
2018-08-29 11:49:01 +03:00
coffeepots
6b68d6ddb2
Fixed wrong equality
2018-08-24 18:34:54 +01:00
coffeepots
3b82c9bd44
Remove and 0xff
2018-08-24 17:03:44 +01:00
coffeepots
c3f73860a4
Remove defunct comment
2018-08-24 16:52:48 +01:00
coffeepots
7542b42d32
Remove BaseTransaction object, add transaction.getSender()
2018-08-24 16:46:48 +01:00
coffeepots
47f81df3d4
Comment on hex string conversion from array types.
2018-08-21 14:31:45 +01:00
coffeepots
9d506993a1
Add some error checking for missing body hash
2018-08-21 13:33:38 +01:00
coffeepots
6ac68b1c12
eth_getUncleByBlockNumberAndIndex
2018-08-21 13:33:37 +01:00
coffeepots
cd85ed2281
eth_getUncleByBlockHashAndIndex, populate uncle hashes, not full uncles
2018-08-21 13:33:37 +01:00
coffeepots
5516a0dcfa
Update block object to include hashes in uncles, not full block header
2018-08-21 13:33:37 +01:00
coffeepots
09861bf2e2
eth_getTransactionReceipt
2018-08-21 13:33:37 +01:00
coffeepots
d56cf9d2e4
Update receipt types
2018-08-21 13:33:37 +01:00
coffeepots
b516acfef0
Add receipt object
2018-08-21 13:33:37 +01:00
coffeepots
79b0032583
eth_getTransactionByBlockNumberAndIndex
2018-08-21 13:33:37 +01:00
coffeepots
3b53f18b84
eth_getTransactionByBlockHashAndIndex
2018-08-21 13:33:37 +01:00
coffeepots
19c68422bc
eth_getTransactionByHash
2018-08-21 13:33:37 +01:00
coffeepots
f84a4bd9d9
Updates to TransactionObject in line with internal types
2018-08-21 13:33:37 +01:00
coffeepots
67e9f47ac5
Add getTransactionKey
2018-08-21 13:33:37 +01:00
coffeepots
b30b253653
Update TransactionObject to use Blob
2018-08-21 13:33:37 +01:00
coffeepots
a5ea8c67bd
Update nonce type
2018-08-21 13:33:37 +01:00
coffeepots
8524c0b060
Fixes (eg eth_getTransactionCount) and helper funcs
2018-08-21 13:33:37 +01:00
coffeepots
3f2311be23
Add ref EthAddress
2018-08-21 13:33:37 +01: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
coffeepots
0db650199b
Merge pull request #108 from status-im/moreRpcs1
...
More rpcs
2018-08-16 15:46:43 +01:00
coffeepots
22590dea32
eth_getBlockByNumber, using actual BlockHeader hash now
2018-08-15 14:12:49 +01:00
coffeepots
845866fc97
eth_getBlockByHash, changes to support returning marshalled Nim types
2018-08-15 14:08:40 +01:00
coffeepots
1826c0ce92
Add JSON transform for bloom filter
2018-08-15 14:07:06 +01:00
coffeepots
b6a73327c3
Converted rpc types to Nimbus types in line with changes to hexstrings
2018-08-15 13:14:32 +01:00
coffeepots
4b03f6d4db
Updated hexstrings to translate common Nimbus types to hex strings
2018-08-15 13:13:30 +01:00
coffeepots
88ab097a61
Add json converters for byte array and UInt256 types to hex string
2018-08-14 20:22:04 +01:00
coffeepots
ee15f4a995
eth_getCode and helper func strToAddress
2018-08-14 18:22:31 +01:00
coffeepots
25f8123c6f
eth_getUncleCountByBlockNumber
2018-08-14 16:55:57 +01:00
coffeepots
0e9edf8032
eth_getUncleCountByBlockHash
2018-08-14 16:55:28 +01:00
coffeepots
b9906fb263
eth_getBlockTransactionCountByNumber
2018-08-14 16:54:59 +01:00
coffeepots
1871a7b090
eth_getBlockTransactionCountByHash
2018-08-14 16:53:45 +01:00
coffeepots
404d4d883d
eth_getTransactionCount
2018-08-14 16:52:30 +01:00
Yuriy Glukhov
55b5dbd719
Raise KeyError when key not found
2018-08-14 18:40:59 +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
coffeepots
c3fbb0a098
Add eth_syncing, eth_getStorageAt, eth_blockNumber, eth_coinbase and some stubs
2018-08-13 19:29:38 +01:00
coffeepots
370da80478
Add types to support RPC data transfer
2018-08-13 19:25:21 +01:00
coffeepots
4c38ede9c9
Add EthHashStr validation
2018-08-13 18:39:17 +01:00
coffeepots
e4d1c6817a
Added EthAddressStr to validation
2018-08-13 17:33:57 +01:00
coffeepots
581b4a98ef
Fixed allowing "0x" for data but not quantity, less exports
2018-08-09 13:50:49 +03:00
coffeepots
07e28ac01e
proc to func and update names
2018-08-09 13:50:49 +03:00
coffeepots
b37bdecc02
Convert some procs to funcs and a bit of renaming, use unlikely
2018-08-09 13:50:49 +03:00
coffeepots
64b96cd8f5
Remove redundant conversion
2018-08-09 13:50:49 +03:00
coffeepots
a027ca2b25
eth_getBalance in p2p
2018-08-09 13:50:49 +03:00
coffeepots
da8849a5a0
Removed eth_getBalance from common
2018-08-09 13:50:49 +03:00
coffeepots
4773559739
Fixes for short strings, added raise-on-failed-validation procs
2018-08-09 13:50:49 +03:00
coffeepots
723ef3cf70
Fix for json conversion of hexstrings
2018-08-09 13:50:49 +03:00
coffeepots
d4571c01dd
Add JSON RPC hex strings support
2018-08-09 13:50:49 +03:00
coffeepots
79abeafa41
Setup test rpc server, initial call to eth_getBalance
2018-08-09 13:50:49 +03:00
Zahary Karadjov
350188bd29
address review comments
2018-08-09 12:25:37 +03:00
Zahary Karadjov
d902be66ee
Fix the genesis state hash computation
...
The account database needed to use the secure flavour of the Hexary
Trie. This means all keys are SHA3 hashed before being inserted.
2018-08-08 15:48:34 +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
Yuriy Glukhov
467a9c3d7a
Merge pull request #93 from status-im/genesis
...
Added genesis initialization
2018-08-06 18:02:39 +03:00
Yuriy Glukhov
e4929d4f60
Slightly reworked ChainDB interface to more consistent
2018-08-03 14:56:49 +03:00
Yuriy Glukhov
db62ef132e
More comments addressed
2018-08-03 14:10:07 +03:00
Dustin Brody
71679d6d95
fix assorted test fixtures which have been un-skipped
2018-08-02 15:57:28 -07:00
Yuriy Glukhov
39d604a8d7
Fixed rinkeby alloc data
2018-08-02 17:16:34 +03:00
Yuriy Glukhov
ebfe25fc2c
Comments addressed
2018-08-02 17:08:10 +03:00
Yuriy Glukhov
3ec46fa668
Use real file for sqlite
2018-08-02 17:07:44 +03:00
Yuriy Glukhov
04f404fb22
Fixed toPublicNetwork
2018-08-02 11:18:12 +03:00
Yuriy Glukhov
c4f4a37d2c
Added genesis initialization
2018-08-01 15:50:44 +03:00
Yuriy Glukhov
84515b78a9
Align DB backend interfaces with eth_trie. Init BaseChainDB in nimbus.
2018-07-30 16:05:32 +03:00