jangko
77f080c8c2
eip2718: nimbus is compileable
2021-05-15 18:09:36 +07:00
jangko
f2491e6307
fixes crappy custom genesis and chain config parser
...
instead of using stdlib/json, now we switch to json_serialization
the result is much tidier code and more robust when parsing
optional fields.
fixes #635
2021-05-13 16:04:08 +07:00
Jamie Lokier
8bda81496a
RPC: Move EVM-calling function estimateGas to rpcEstimateGas
...
`estimateGas` used by JSON-RPC is another way to setup and call the EVM,
also used by GraphQL. Move it to `transaction/call_evm`.
This function has too much direct knowledge of details that shouldn't be used
outside transaction handling code, details we need to change when changing the
db and transaction memory layer.
Moving this one exposed quite a bit of abstraction leakage, as it calls
directly to the hexary trie db around `processTransaction`.
It looks like the _intended_ functionality of `estimateGas` is similar to
`rpcDoCall` with the only real difference being to not store the final state.
It looks like the extra stuff in `estimateGas` compared with `doCall` is a
messy workaround for computation not exposing the right API ("don't save final
state") for RPC to use.
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-03 10:59:10 +01:00
Jamie Lokier
2732af99eb
RPC: Move EVM-calling function doCall to rpcDoCall
...
`doCall` used by JSON-RPC is another way to setup and call the EVM.
Move it to `transaction/call_evm`.
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-03 10:59:07 +01:00
Jamie Lokier
7c3b7ab7a8
RPC: Gather EVM-calling functions to one place; rpcSetupComputation
...
Start gathering the functions that call the EVM into one place,
`transaction/call_evm.nim`.
This is first of a series of changes to gather all ways the EVM is called to
one place. Duplicate, slightly different setup functions have accumulated over
time, each with some knowledge of EVM internals. When they are brought
together, these methods will be changed to use a single entry point to the EVM,
allowing the entry point to be refactored, EVMC to be completed, and async
concurrency to be implemented on top. This also simplifies the callers.
First, a helper function used by RPC and GraphQL to make EVM calls without
permanently modifying the account state. `setupComputation` ->
`rpcSetupComputation`.
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-03 10:59:05 +01:00
jangko
3dfc1501f0
modify estimateGas in rpc_utils.nim and it can be reusable for graphql too
2021-04-24 10:56:22 +07:00
jangko
82d4f6a2d4
fixes getReceipts proc signature in db_chain.nim
...
instead of using header as input param, now getReceipts using
receiptRoot hash, the intention is clearer and less data passed around
when we only using receiptRoot instead of whole block header.
2021-04-24 10:51:05 +07:00
Jordan Hrycaj
00ba7a2718
merge vm_forks and vm_opcode_values => vm_type2
...
why:
all types, but they cannot be merged int vm_types because of a circular
dependency.
2021-03-31 17:53:15 +01:00
Jordan Hrycaj
eee24de450
provide vm_message as import/export wrapper
...
details:
moved original vm/message.nim => vm/nvm_message.nim
2021-03-31 16:47:02 +01:00
Jordan Hrycaj
cf3a356d76
provide vm_computation as import/export wrapper
...
details:
moved original vm/computation.nim => vm/nvm_computation.nim
2021-03-31 16:38:10 +01:00
Jordan Hrycaj
3a3e4d5707
provide vm_forks as import/export wrapper
...
details:
moved original vm/interpreter/vm_forks.nim => vm/interpreter/nvm_forks.nim
2021-03-31 16:03:34 +01:00
jangko
8486c1834c
fixes #558 , use distinct uint for ChainId and NetworkId to prevent confusion
2021-02-14 11:01:27 +07:00
jangko
f987e86562
implement more eth rpc
2020-07-30 14:21:11 +07:00
jangko
9c38266ba7
implement eth_estimateGas
2020-07-29 12:42:32 +07:00
jangko
c9802edfce
setup block and state env for more complex eth rpc tests
2020-07-28 23:48:45 +07:00
jangko
bb89a296dd
implement eth_signTransaction, eth_sendTransaction, eth_sendRawTransaction, eth_call
2020-07-24 19:44:36 +07:00
jangko
7819dae7ce
implement eth_signTransaction
2020-07-23 22:30:42 +07:00
jangko
f82dff64fa
implement more eth rpc and keystore management
2020-07-23 14:54:32 +07:00
jangko
336efdb0c3
implement web3, net, and some eth namespace rpc
2020-07-22 23:57:55 +07:00
jangko
207065746c
reduce more warnings
2020-07-21 13:25:27 +07:00
jangko
845671bf0a
fix compilation error following breaking changes in nim-eth
2020-07-20 13:50:05 +07:00
jangko
12ddfee675
fix compilation error related to lib-secp256k1 changes
2020-06-24 17:07:33 +07:00
jangko
438ad832cc
fix rpc/p2p.nim
2020-06-22 10:59:24 +07:00
jangko
844071033a
fix at various places related to missing accounts_cache.persist call
2020-06-01 13:45:32 +07:00
kdeme
769228418e
Remove wakunode and waku rpc code from repository
2020-05-07 20:49:14 +03:00
Jacek Sieka
4ade5797ee
rlp: don't use ranges / experimental features ( #495 )
2020-04-20 20:12:44 +02:00
andri lim
860d8e9705
fix rpc/p2p
2020-04-13 09:41:18 +07:00
andri lim
87bae2bb78
switch to new toFork
2020-04-12 18:02:59 +07:00
Jacek Sieka
1d472cf090
Eth keys ( #482 )
...
* bump nim-eth, fix deprecated calls
2020-04-05 15:12:48 +02:00
kdeme
55fb1294ed
Check all subscribed topics in quicksim + bump vendor/nim-eth
2020-02-14 11:36:37 +01:00
kdeme
b959b14109
Update to use waku topic-interest
2020-02-07 08:59:19 +01:00
Kim De Mey
a2478baeff
Merge pull request #446 from status-im/waku-queue-fixes
...
Bump vendor/nim-eth for waku/whisper queue fixes
2020-01-23 22:50:12 +01:00
andri lim
d656f7f701
rename 'txContext' to 'setupTxContext'
2020-01-23 18:07:44 +02:00
kdeme
4ec126afaf
More cosmetic changes
2020-01-23 15:40:41 +01:00
andri lim
e8ec1706ed
fixes rpc compilation error
2020-01-23 12:39:36 +02:00
Zahary Karadjov
d23a33a80c
Cosmetic improvements
2020-01-23 12:39:36 +02:00
kdeme
ca6890b026
Change Waku RPC methods prefix
2020-01-23 12:39:36 +02:00
kdeme
d56655d278
Move WhisperKeys to KeyStorage
2020-01-23 12:39:36 +02:00
kdeme
776f924e39
Small fixes/improvements
2020-01-23 12:39:36 +02:00
kdeme
56f46357e6
Generate and use random topics in waku simulation
2020-01-23 12:39:36 +02:00
kdeme
ed79c4dfdc
Add quick waku simulation with hardcoded network
2020-01-23 12:39:36 +02:00
kdeme
8c3595ff94
Bump vendor/nim-eth and fix changes
2020-01-23 12:39:36 +02:00
kdeme
6e4b73b562
Fix bloom filter of a new Waku/Whisper filter and update automatically for light node
2020-01-23 12:39:36 +02:00
kdeme
c3aeb15ce5
Introduce WakuMode
2020-01-23 12:39:36 +02:00
kdeme
7b80b313e4
Start implementation of waku node
2020-01-23 12:39:36 +02:00
andri lim
c1ef8632b2
move fork and gasCosts from Computation to vmState
2020-01-20 18:36:58 +02:00
andri lim
0b99b76cd1
change 'BaseComputation' to 'Computation'
2020-01-20 18:36:58 +02:00
andri lim
79df931234
simplifies computation.getFork
2020-01-20 18:36:58 +02:00
andri lim
e4db21272c
fixes rpc/p2p.nim compilation error
2020-01-19 19:17:37 +02:00
andri lim
40ddbca1ee
[skip ci] simplify EVM message creation
2020-01-19 19:17:37 +02:00
kdeme
9aae2f9463
No more blind except
2019-12-05 13:02:21 +01:00
andri lim
c4dcf5da30
reduce compiler warnings
2019-11-13 21:49:39 +07:00
Ștefan Talpalaru
70bcce2132
a couple of Nim 1.0.2-related fixes
2019-10-28 22:21:20 +07:00
andri lim
7c094a2a3e
initial implementation of transaction test
2019-08-29 19:54:38 +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
kdeme
e94c2f7c15
Fix fromJson checks for uint256
2019-06-20 10:50:29 +03:00
kdeme
529fda3e3e
Fix uint256 rpc overload to show correct hex value. #338
2019-06-19 15:49:47 +03:00
Bruno Škvorc
023b90fde8
Merge pull request #286 from kdeme/feature/whisper-rpc
...
[WIP] Initial implementation of Whisper RPC
2019-05-01 23:00:54 +02:00
kdeme
9de9741e3c
Fix more return values + minor improvements
2019-04-26 13:40:28 +02:00
kdeme
28dfaad588
Fix web3_sha3
2019-04-26 13:38:50 +02:00
kdeme
e8a997cf11
Fix return values (raise errors) for most of the calls + some minor TODOs
2019-04-26 13:38:50 +02:00
kdeme
ce523550c0
Use directly the Whisper types instead of distinct strings, we test for string in fromJson anyhow
2019-04-26 13:38:50 +02:00
kdeme
1df3c7202b
Fix & add Whisper RPC tests + add isValidHexData with length check
2019-04-26 13:38:50 +02:00
kdeme
65908d5359
Add shh_generateSymKeyFromPassword implementation
2019-04-26 13:38:50 +02:00
kdeme
d43f20c65a
Initial implementation of Whisper RPC
2019-04-26 13:38:50 +02:00
andri lim
90e3a4320a
fix revert opcode at first level computation
2019-04-26 07:31:13 +07:00
andri lim
6295e6a7e4
fix touched miner problem, GST +25
2019-04-26 07:31:11 +07:00
andri lim
2b7d89fa9d
make test green
2019-04-18 15:26:09 +07:00
andri lim
be79bc8740
remove opCodeExec, use executeOpcodes
2019-03-21 09:32:48 +07:00
Ștefan Talpalaru
f62601e844
Merge branch 'non_recursive_evm' of github.com:jangko/nimbus into jangko-non_recursive_evm
2019-03-20 14:43:50 +01:00
andri lim
cd765bf452
fix create contract address collision, GST +1
2019-03-18 12:48:32 +07:00
Ștefan Talpalaru
a67edd693a
assert() -> doAssert()
2019-03-13 22:36:54 +01:00
andri lim
e2311d798b
fix recurring symbol collision problem
2019-03-07 22:53:09 +07:00
andri lim
2c032ad1ab
refactor utils
2019-02-27 13:30:18 +02:00
andri lim
fdc34a4cf6
fixes vmState construction
2019-02-15 17:20:51 +02:00
Yuriy Glukhov
481c6cf4ed
Use nim-eth ( #224 )
2019-02-05 20:15:50 +01:00
Zahary Karadjov
c98e337090
remove the need for gcsafe overrides
2019-01-15 18:59:24 +02:00
Ștefan Talpalaru
a431ceed11
add "--threads:on" to tests and main binary
...
- some "funcs" were no longer considered side-effect free, so I made
them procs
- added {.base.} to some base methods to avoid a deprecation warning
2019-01-15 18:59:24 +02:00
Ștefan Talpalaru
7c7260552d
rebase and various fixes
...
- port to new APIs
- added copyright headers
- bumped the copyright interval in modified files
- fixed tests
- reorganised imports
- normalised function names
- deleted some trailing space
- added test_rpc to all_tests
- assert() -> doAssert()
- moved the RPC port in a constant for the test suite
2019-01-06 20:19:48 +01:00
coffeepots
ab0f8f6748
Update eth_estimateGas to use optional types
2019-01-06 19:03:34 +01:00
coffeepots
3f1122702e
Initial commit for eth_estimateGas
2019-01-06 19:03:34 +01:00
coffeepots
ac9fb37465
Initial commit for eth_estimateGas
2019-01-06 19:03:20 +01:00
andri lim
281b7dffac
implement debug_setHead
2019-01-06 13:17:08 +02:00
andri lim
e78fb72ef6
fixes #188
2019-01-06 13:16:45 +02:00
andri lim
5cf43c2909
implement dumpDebuggingMetaData
2019-01-06 11:43:38 +02:00
andri lim
a6bf970b1b
some cleanup
2019-01-06 11:43:38 +02:00
andri lim
3a355e0569
implement debug_traceBlock
2019-01-06 11:43:38 +02:00
andri lim
6dc4b0be9a
implement dumpBlockState
2019-01-06 11:43:38 +02:00
andri lim
35c1c7e075
move block processing to executor
2019-01-06 11:43:38 +02:00
andri lim
f613f8b3c6
add dumpBlockState stub
2019-01-06 11:43:38 +02:00
andri lim
ff08a6ad95
fix some typo
2018-12-16 15:38:51 +02:00
andri lim
8c6cec4999
fix getTransactionReceipt
2018-12-16 15:38:51 +02:00
coffeepots
51df75a296
Add WhisperFilterOptions
2018-12-05 19:11:17 +02:00
coffeepots
ef172a857a
Update new filter signature
2018-12-05 19:11:17 +02:00
coffeepots
ce3c8eaf05
Update whisper types to be optional
2018-12-05 19:11:17 +02:00
andri lim
0b7b577af6
add more options to debug_traceTransaction
2018-12-05 22:01:29 +07:00
andri lim
5509c66cce
implement transaction tracer
2018-12-05 22:01:28 +07: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