jangko
4a188788bd
preparation for EIP-1559 implementation
...
- unify signTx in test_helper and signTransaction in rpc_utils
and put it into transaction.nim
- clean up mess by previous EIP-2930
2021-06-29 07:33:48 +07:00
Jamie Lokier
5e718bcbe2
EVM: Remove most unused imports of `vm_*` files
...
Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-06-01 16:54:38 +01: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
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
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
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
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
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
andri lim
d656f7f701
rename 'txContext' to 'setupTxContext'
2020-01-23 18:07:44 +02:00
andri lim
e8ec1706ed
fixes rpc compilation error
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
Ș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
Jacek Sieka
2763bd0dd5
std_shims -> stew
2019-07-07 12:12:01 +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
Ș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
e78fb72ef6
fixes #188
2019-01-06 13:16:45 +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
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
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
coffeepots
a279915175
Refactored variable setup to ensure sensible defaults
2018-11-23 18:24:42 +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
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
Zahary Karadjov
41adca1abb
Minimal changes required for building the LES branch
2018-10-16 03:10:01 +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
coffeepots
e10df33864
Update return value to use AccountNonce
2018-09-01 16:03:06 +03:00
coffeepots
2f6f9b765c
Use getSender from transactions, Re-add getAccountDb, fix accountDbFromTag
2018-08-29 18:12:39 +01:00
coffeepots
e59d019a03
Merge branch 'master' into chain-db-interface
2018-08-29 17:23:25 +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
18d62d8c79
toSignature is now a proc
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
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
Yuriy Glukhov
e3be8ca30a
Separate Chain from ChainDB
2018-08-29 11:49:01 +03: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
09861bf2e2
eth_getTransactionReceipt
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
8524c0b060
Fixes (eg eth_getTransactionCount) and helper funcs
2018-08-21 13:33:37 +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
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