yihuang and Federico Kunze Küllmer
70d52948da
fix: eth_newPendingTransactionFilter doesn't return ethereum tx hash ( #1012 )
...
* Problem: eth_newPendingTransactionFilter don't return correct tx hash
Closes : #1011
Solution:
- use eth tx hash rather than tendermint one
* changelog
* remove copied TODO comment and ignore err result of Notify
* add e2e test
* fix ws client in e2e test
* fix test
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-03-24 07:56:59 +00:00
yihuang
bde62e2d31
cleanup an unused const ( #1009 )
2022-03-22 10:24:26 +01:00
yihuang
8bcdb2c0e5
make MaxTxGasWanted configurable ( #1004 )
2022-03-21 10:01:21 +01:00
yihuang
93a57bc330
feemarket: migration ( #1002 )
...
* increase feemarket's consensus version and add migration handler
Closes : #1001
* unit test
* fix linter
2022-03-21 08:27:22 +01:00
yihuang and Federico Kunze Küllmer
edf456985b
fix: set an upper bound to gasWanted to prevent DoS attack ( #991 )
...
Closes : #989
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-03-16 11:01:19 +00:00
yihuang and Federico Kunze Küllmer
49afc0f90d
fix: server should always use local rpc client ( #988 )
...
Closes : #987
Solution:
- use local rpc clint if json-rpc is enabled.
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-03-15 11:28:14 +01:00
yihuang
dbe9f705cd
rpc: add configurable timeouts to http server ( #979 )
...
* Add configurable timeouts to http server
Closes : #963
* add flags
* changelog
* fix toml
2022-03-09 08:31:51 +01:00
40d5eff9fa
fix: Metamask keeps failing sending transactions ( #968 )
...
* Problem: Metamask keeps failing sending transactions
Closes : #967
Solution:
- add 1/8 buffer on top of base fee for default gas price
* changelog
* fix typo
Co-authored-by: Freddy Caceres <freddy.caceres@crypto.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-03-03 20:50:40 +00:00
yihuang and Federico Kunze Küllmer
0d69a69625
fix: websocket client duplicated messages ( #955 )
...
* Problem: websocket client get duplicated messages
Closes : #954
Solution:
- localize the subscription management within current connection
* changelog
* fix linter
* fix test building
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-02-25 19:08:30 +00:00
yihuang
dcd2891b73
imp: redirect go-ethereum's logs to cosmos logger ( #948 )
...
* redirect go-ethereum's logs to cosmos logger
Closes : #862
Map go-ethereum's log levels to cosmos ones:
trace -> debug
debug -> debug
info -> info
warn -> info
error -> error
crit -> error
* changelog
* Apply suggestions from code review
* Apply suggestions from code review
2022-02-19 01:49:34 +01:00
yihuang and Federico Kunze Küllmer
f7009b0e94
fix: base fee check logic in state transition ( #932 )
...
* fix base fee check logic in state transition
- should check london hardfork first, otherwise it panic if feemarket not registered.
* fix lint
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-02-15 12:01:30 +01:00
yihuang
b51907a949
remove unused parameters from evm spec ( #934 )
2022-02-11 11:41:20 +01:00
yihuang and Federico Kunze Küllmer
724a06632b
fix: minimal-gas-prices and baseFeePerGas conflicts ( #916 )
...
* Problem: minimal-gas-prices and baseFeePerGas conflicts
Closes : #915
Solution:
- Don't check min-gas-price for evm tx if london hardfork and feemarket enabled.
comments and cleanup
changelog
* fix zero fee coins
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-26 10:44:41 +00:00
yihuang
e39a74998e
fix: default base fee state in genesis ( #919 )
...
* fix defualt base fee state in genesis
Closes : #918
Solution:
- initialise the default base fee value in genesis
* changelog
2022-01-26 11:36:07 +01:00
yihuang
317f5b43b5
fix insufficient fee error message ( #911 )
2022-01-17 07:12:13 +01:00
yihuang and Federico Kunze Küllmer
351e6d6eb3
rpc: make trace transaction api work with batch tx ( #907 )
...
* make trace transaction api work with batch tx
Closes : #906
fix linter
* review suggestion
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-16 15:36:19 +00:00
yihuang and Federico Kunze Küllmer
7d8664043e
impr: support batch eth txs ( #901 )
...
* support batch eth tx
Closes: 896
Allow multiple MsgEthereumTx in single tx
* fix transaction receipt api
* fix tx receipt api and accumulate tx gas used
* fix lint
* fix test
* fix rpc test
* cleanup
* fix cumulativeGasUsed and gasUsed
* fix lint
* Update app/ante/eth.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update app/ante/eth.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update rpc/ethereum/backend/utils.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* pr suggestions
* typo
* fix lint
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-14 10:37:33 +01:00
yihuang
aeb6aeb715
Problem: newPendingTransactions filter don't return ethereum tx hash ( #900 )
2022-01-13 13:12:57 +00:00
yihuang
5e15c64d02
fix: make gas estimation test reproducible ( #890 )
...
Closes : #536
Solution: Use a fixed test account.
The source of non-deterministic is tx's intrinsic gas is different according to different number of zeros in input data,
so to make sure the gas number is reproducible, and the randomly generated test address is included in that.
2022-01-07 14:04:16 +01:00
yihuang
e6c9b7723b
evm: improve test coverage of statedb package ( #888 )
...
Closes : #876
- coverage: 99.3% of statements
2022-01-06 18:10:51 +01:00
f5b61e914e
docs: update evm spec to cover statedb refactoring changes ( #885 )
...
* update evm spec to cover statedb refactoring changes
Closes : #879
* Update x/evm/spec/02_state.md
Co-authored-by: yihuang <huang@crypto.com >
* Update x/evm/spec/02_state.md
Co-authored-by: yihuang <huang@crypto.com >
Co-authored-by: Daniel Burckhardt <daniel.m.burckhardt@gmail.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-06 10:58:10 +01:00
yihuang and Federico Kunze Küllmer
ade84319e6
evm: refactor statedb implementation ( #729 )
...
* initial statedb module
unit tests
unit tests
keeper implementation
extract TxConfig
remove unused code
* keeper integration
* fix unit tests
* Apply suggestions from code review
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* fixup! initial statedb module
* changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-05 08:28:27 +01:00
yihuang
e9f1ab646c
fix: GetBlock rpc api reports wrong gasUsed ( #878 )
...
* GetBlock rpc api report wrong gasUsed
Closes : #877
Solution:
- workaround at rpc side, ignore the gasUsed in such cases.
* Update rpc/ethereum/backend/backend.go
* changelog
2022-01-05 08:26:59 +01:00
yihuang
8e4ff5aae2
evm: validate code hash in GenesisAccount ( #873 )
...
* Validate code hash in GenesisAccount
Closes : #872
* changelog
2022-01-04 15:21:32 +01:00
yihuang and Federico Kunze Küllmer
7c53e32c78
fix: several issues with the passing receipt to hooks change ( #869 )
...
Closes : #868
Solution:
- contract address in receipt should only be the newly created contract
- fix the order of operations in state transition
- compute contract address in `ApplyTransaction` on the fly
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-04 12:02:41 +01:00
yihuang
7ec5e5fdef
fix: set correct nonce in EthCall/EstimateGas ( #871 )
...
* fix: set correct nonce in EthCall/EstimateGas
Closes : #870
* Update CHANGELOG.md
* unit test
2022-01-04 11:55:30 +01:00
yihuang and Federico Kunze Küllmer
9f4828e5bb
fix: wrong gas limit is wrong when adjust base fee ( #832 )
...
Closes : #823
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2022-01-03 17:07:26 +01:00
yihuang and Federico Kunze Küllmer
ced5280571
fix: OOM when eth_getLogs response too large ( #860 )
...
* fix: OOM when eth_getLogs response too large
Closes : #858
- add limit to number of logs of filter response
- make block limit and log limit configurable
* return error if exceeds log limit
* Apply suggestions from code review
* parse from config
* read cli flags
* add to config template
* fix bloomFilter
* changelog
* add validation
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-12-29 22:47:25 +01:00
yihuang and Federico Kunze Küllmer
eb17366dcc
fix: consistent BaseFee check logic ( #855 )
...
Closes : #755
```
if not london_hardfork {
# reject DynamicFeeTx
# no `baseFeePerGas` field in block response
# baseFee = nil
} else {
# allow DynamicFeeTx
# add `baseFeePerGas` field in block response
if feemarketParams.NoBaseFee or height < feemarketParams.EnableHeight {
# baseFee = 0
} else {
# init baseFee to initBaseFee and adjust in later blocks
}
}
```
Update x/evm/keeper/keeper.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
add unit tests
Update app/ante/utils_test.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
changelog
2021-12-28 07:59:28 +00:00
yihuang
d822fee5c1
fix: contract address in contract creation receipt ( #851 )
...
* Problem: contract address in contract creation receipt is wrong
Closes : #850
- decrease nonce before evm.create
- add unit tests and rpc tests
* add changelog
2021-12-28 08:55:40 +01:00
yihuang and Federico Kunze Küllmer
8bc3cc471b
fix: web3 client doesn't expect a nil baseFeePerGas ( #854 )
...
Closes : #853
Solution:
- only set baseFeePerGas when base fee is not nil.
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-12-23 16:12:05 +00:00
e437c4331d
fix: increase nonce in ante handler for contract creation tx ( #809 )
...
Closes : #808
Solution:
- move nonce increment to ante handler
- revert nonce increment in apply message
build(deps): bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#833 )
Bumps [github.com/spf13/viper](https://github.com/spf13/viper ) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/spf13/viper/releases )
- [Commits](https://github.com/spf13/viper/compare/v1.9.0...v1.10.0 )
---
updated-dependencies:
- dependency-name: github.com/spf13/viper
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix: remove unused code (#834 )
Co-authored-by: Marko Baricevic <markobaricevic3778@gmail.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
rm
rm pkg
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-12-16 22:35:28 +00:00
yihuang and Federico Kunze Küllmer
514785bd89
rpc: optimize tx index lookup ( #810 )
...
Closes : #760
Solution:
- emit tx index to cosmos events
- rpc side try to use the events, but fallback to heavier approach when fails.
Update rpc/ethereum/namespaces/eth/api.go
changelog
fix lint
fix TxIndexFromEvents
fix
Update rpc/ethereum/backend/backend.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-12-16 22:30:22 +00:00
yihuang
e752d80e9f
feekeeper: remove redundant code ( #815 )
2021-12-16 23:24:53 +01:00
yihuang
845bef6dab
fix broken tracer unit test ( #847 )
2021-12-16 01:21:06 +00:00
yihuang
9828964f1f
fix: remove redundant ante handler ( #819 )
...
* remove redundant ante handler
They are already checked in EthValidateBasicDecorator
* changelog
2021-12-15 02:53:03 +00:00
ccc6f5b53d
fix: use EffectiveGasPrice in ante handler for dynamic fee tx ( #817 )
...
* Use effectiveGasPrice in ante handler for dynamic fee tx
Closes : #814
Solution:
- use effectiveGasPrice when check minimal-gas-prices, and deduct fee in ante handler
- implement an EthMempoolFeeDecorator
* add effectiveGasPrice to tx receipt
* changelog
* fix unit test
* fix comments
* add comments
* Apply suggestions from code review
Co-authored-by: Thomas Nguy <81727899+thomas-nguy@users.noreply.github.com >
* review suggestions
Co-authored-by: Thomas Nguy <81727899+thomas-nguy@users.noreply.github.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-12-15 02:17:03 +00:00
yihuang and Federico Kunze Küllmer
50e463725e
feemarket: update base fee in BeginBlock ( #822 )
...
* Update base fee in begin blocker
Closes : #820
* changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-12-15 02:10:52 +00:00
yihuang
924232f02e
fix: empty log topics shouldn't be encoded as nil ( #840 )
...
* Problem: empty topics shouldn't be encoded as nil
Closes : #839
Solution:
- encode it as empty array
* fix unit tests
* changelog
2021-12-14 15:52:22 +01:00
yihuang and Federico Kunze Küllmer
3b0fa63832
evm: clear access list for each transaction ( #802 )
...
* Clear access list for each transaction
Closes : #801
* changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-11-30 12:36:10 +01:00
yihuang and Federico Kunze Küllmer
e6d0eff957
evm: ForEachStorage semantic not compatible with go-ethereum ( #798 )
...
* Problem: ForEachStorage sematic not compatible with go-ethereum
Solution:
- reversed the semantic of return value of the callback function.
* changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-11-30 10:34:33 +00:00
yihuang
ee72632582
ante: remove unused AccessListDecorator ( #797 )
2021-11-30 09:06:34 +01:00
yihuang and Federico Kunze Küllmer
c8d4d3f9a3
fix: improve error message in SendTransaction json-rpc api ( #786 )
...
* fix error message in `SendTransaction` json-rpc api
Closes : #785
Solution:
- Remove `stacktrace.Propagate`s, and recover error message in jsonrpc server
changelog
fix error messages
* Update x/evm/keeper/msg_server.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-11-26 15:19:28 +01:00
yihuang
32eaec8d99
fix: web3 rpc api returns wrong block gas limit ( #782 )
...
* Problem: web3 rpc api returns wrong block gas limit
Closes : #777
Solution:
- pass in specific block height to the query
* Apply suggestions from code review
* changelog
2021-11-25 11:30:03 +00:00
yihuang and Federico Kunze Küllmer
b7e8dd8216
fix: don't revert gas refund logic when transaction reverted ( #751 )
...
* fix gas consumption when reverted
Apply suggestions from code review
changelog
* comments
* Update x/evm/keeper/state_transition.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-11-16 14:49:59 +00:00
2a205e561a
rpc: debug_traceTransaction fails for succesful tx ( #720 )
...
* Problem: traceTransaction fails for succesful tx
Solution:
- Change the context to the begining of the block, rather than the end
of it, while override block context to correct one
pass predecessors
pass current block information to grpc query
* changelog
* fix build
* fix lint
* refactor traceBlock
* update protobuf
* fix Predecessors
* traceBlock refactor
* refactor traceBlock response
* Update proto/ethermint/evm/v1/tx.proto
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update proto/ethermint/evm/v1/query.proto
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update proto/ethermint/evm/v1/query.proto
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update proto/ethermint/evm/v1/query.proto
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update proto/ethermint/evm/v1/query.proto
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update proto/ethermint/evm/v1/query.proto
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* check tx index is not out of bound
* fix build
* Update rpc/ethereum/namespaces/debug/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update rpc/ethereum/namespaces/debug/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update rpc/ethereum/namespaces/debug/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update rpc/ethereum/namespaces/debug/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* remove prealloc
* add traceBlock test
* Update x/evm/keeper/grpc_query.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* use bytes2Hex
* fix error message
* add comment
* Apply suggestions from code review
Co-authored-by: Freddy Caceres <freddy.caceres@crypto.com >
Co-authored-by: crypto-facs <84574577+crypto-facs@users.noreply.github.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-11-09 18:38:22 +00:00
yihuang and Federico Kunze Küllmer
7c7f3f02bb
tests: add message call benchmark ( #717 )
...
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-11-08 13:04:49 +00:00
yihuang and Federico Kunze Küllmer
10c49f7748
feat: add raw ethereum tx CLI ( #712 )
...
Closes #709
fix index
Apply suggestions from code review
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
fix lint
transaction decoding unit test
test BuildTx
fix lint
changelog
2021-11-02 12:20:19 +01:00
yihuang
d1446fc1f4
encoding: rm MsgEthereumTx custom support in TxConfig ( #714 )
...
* remove MsgEthereumTx support in TxConfig
Closes : #711
* changelog
2021-11-02 11:24:24 +01:00
yihuang
bc1d81c5e8
fix: Web3 RPC handlers panic ( #702 )
...
* Problem: Some Web3 RPC Handlers could panic
Closes : #701
Solution:
- return error rather than panic when decoding invalid tx
* add validation rules
* changelog
2021-10-26 13:13:27 +02:00
yihuang
1fe07edbf9
evm: refactor dup state transition code ( #674 )
...
* Problem: state transition code is duplicated
Closes : #672
Solution:
- move gas refund out from ApplyMessage
- move check into ApplyMessage
- move evm construction into ApplyMessage
- ensure context stack is clean after ApplyMessage return
fix unit tests
undo rename
add underflow check
* improve performance
- don't duplicate params loading
- passing EVMConfig around as pointer
2021-10-22 19:21:03 +02:00
yihuang
ac75a9a4a4
refactor: eth_call and eth_estimateGas don't need to pass base fee as field ( #671 )
...
Solution:
- load fee directly from state
changelog
2021-10-21 17:29:19 +02:00
yihuang
1000461a55
rpc: transaction receipt test ( #678 )
...
* Problem: No test on the transaction receipt api
Closes : #582
- add receipt rpc test for erc20 transfer logs
* lower gas fee
* build with go 1.17 in CI
* use go 1.17 in test-solidity
* fix merge
2021-10-20 21:00:17 +02:00
yihuang
2e067590a2
fix: nil pointer panic in ApplyNativeMessage ( #660 )
...
* Problem: nil pointer panic in ApplyNativeMessage
Solution:
- pass NoOpTracer
* use NewTracer
* changelog
2021-10-13 10:57:12 +02:00
yihuang and Federico Kunze Küllmer
78c8ceb244
evm: add benchmark for deep context stack ( #627 )
...
* Problem: deep context stack efficienty is not benchmarked
Closes : #626
Solution:
- add a benchmark to demonstrate an extremely inefficiency in deep
context stack
* Update x/evm/keeper/benchmark_test.go
* prefix storage is irrelevant
* add comment to state_transition.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-10-06 11:28:13 +00:00
202bc5f1cd
evm: fix iterator on deeply nested cache contexts ( #617 )
...
* Problem: iterator on deeply nested cache contexts is extremely slow
Closes : #616
Solution:
- flatten cache contexts before doing `GetTxLogsTransient`
* Update x/evm/keeper/context_stack.go
* changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com >
2021-10-05 16:08:55 +00:00
cda968bddd
evm, rpc: fix tx log attribute value is not parsable by some client ( #615 )
...
* Problem: tx log attribute value not parsable by some client
Closes : #614
Solution:
- encode the value to json string rather than bytes
Apply suggestions from code review
* rm cdc and changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com >
2021-10-05 10:26:31 +00:00
yihuang
d6a64a275a
evm: fix import/export genesis for contract storage ( #590 )
...
* Problem: import/export roundtrip test fail contract storage
Closes : #589
- don't hash the key again in InitGenesis
* changelog
* try to fix estimate-gas undeterministics Closes #536
2021-09-27 12:26:45 +02:00
yihuang and Federico Kunze Küllmer
e65582df71
deps: fix iavl node crash in concurrent query ( #583 )
...
Closes : #581
Solution:
- replace iavl dependency to v0.17.1
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-09-22 09:51:29 +00:00
yihuang
01b789c3e9
rpc: tx receipt don't contain events ( #580 )
...
* tx receipt don't contains events
- Should convert tx hash when query transaction logs
* tx index should start from 0
2021-09-22 06:01:35 -03:00
b59d9a23ea
evm: add ApplyNativeMessage ( #557 )
...
* add ApplyNativeMessage
Closes #533
* fix lint
* Update x/evm/types/tracer.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update x/evm/types/tracer.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* no-op tracer
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com >
2021-09-17 15:23:51 +00:00
yihuang and Federico Kunze Küllmer
116de54617
evm: remove tx logs and block bloom from chain state ( #556 )
...
Closes #452
fix unit tests
changelog and fix lint
fix unit test
Update ethereum/rpc/backend/backend.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Update ethereum/rpc/backend/utils.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-09-15 09:45:03 +00:00
yihuang and Federico Kunze Küllmer
8bcab7be27
docs: state revert logic ( #421 )
...
Closes #356
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-09-13 13:01:44 +00:00
yihuang and Federico Kunze Küllmer
089afe41a8
evm: implement ADR-002 EVM Hooks ( #417 )
...
* Allow evm to call native modules through logs
Closes #416
comment
add txHash parameter
review suggestions
add hooks test
* Update x/evm/keeper/hooks.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update x/evm/keeper/hooks_test.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update x/evm/keeper/keeper.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update x/evm/keeper/keeper.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update x/evm/keeper/keeper.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* use table tests
* update adr comment
* update adr
* changelog
* Update CHANGELOG.md
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-09-02 12:36:33 +00:00
yihuang
7f70429ac2
docs: ADR-002 EVM hooks ( #429 )
...
* Add adr-002 evm hooks proposal
* add bank send hook example
* fix typo
* add more details to the adr
* polishes
* add comments and missing sections
* explain the error translation
* update working, add consequences
* add reference to staking module hooks
* add ApplyTransaction snippet
2021-09-01 06:11:52 -04:00
yihuang and Federico Kunze Küllmer
a5ab608336
evm: benchmark contract execution ( #436 )
...
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-30 03:14:58 +00:00
yihuang and Federico Kunze Küllmer
d93205b711
fix: export chain state ( #446 )
...
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-17 12:06:08 +00:00
yihuang and Federico Kunze Küllmer
353455def9
evm: prepare access list in eth_call ( #348 )
...
Closes : #335
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-16 08:19:27 +00:00
yihuang and Federico Kunze Küllmer
df13b398ec
deps: use cosmos patched keyring ( #441 )
...
Closes #440
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-16 06:20:30 +00:00
yihuang
80edf65f85
build: upgrade panicwrap ( #425 )
...
Closes #311
2021-08-10 11:07:40 -04:00
yihuang and Federico Kunze Küllmer
010036457c
app: call SetModuleVersionMap in InitChainer ( #422 )
...
keep the scaffolding up-to-date:
https://github.com/cosmos/cosmos-sdk/blob/release/v0.43.x/simapp/app.go#L433
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-10 11:23:22 +00:00
yihuang and Federico Kunze Küllmer
9227e78c79
evm: use stack of contexts to implement snapshot revert ( #399 )
...
* use stack of contexts to implement snapshot revert
Closes #338
add exception revert test case
verify partial revert
mutate state after the reverted subcall
polish
update comments
name the module after the type name
remove the unnecessary Snapshot in outer layer
and add snapshot unit test
assert context stack is clean after tx processing
cleanups
fix context revert
fix comments
update comments
it's ok to commit in failed case too
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
update comment and error message
add comment to cacheContext
k -> cs
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
evm can handle state revert
renames and unit tests
* use table driven tests
* keep all the cosmos events
* changelog
* check for if commit function is nil
* fix changelog
* Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-10 07:22:46 +00:00
yihuang
73c2f8e529
evm: re-emit the cosmos events from cache context ( #415 )
...
Closes : #414
2021-08-09 09:38:43 +00:00
yihuang and Federico Kunze Küllmer
9bf3659718
evm: use clean context for GetCommittedState ( #383 )
...
* keep the original context for GetCommittedState api
* fix method mutation
* keep estimateGas consistant
* added test after the original context is recovered
* add integration test for the gas consumption of sstore
* test the committed case
* move methods to keeper module
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-08-04 07:49:02 +00:00
yihuang
54581269b8
evm: change log tx index to index in block ( #354 )
...
Closes #334
2021-07-26 04:40:59 -04:00
yihuang and Federico Kunze Küllmer
2828fa1e62
evm: fix keep balance when resetting an account ( #353 )
...
* keep balance when override account
* Update CHANGELOG.md
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-26 08:15:59 +00:00
yihuang and Federico Kunze Küllmer
f6dc80d949
evm: estimate gas unit tests ( #324 )
...
* add some unit tests for estimateGas
Also add some test environment setup, Closes #323
test estimateGas of erc20 token transfer
fix failed test case
the trick is to keep a clean transient store, by doing a commit
put artifacts to external file
* fix test failure
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-23 14:24:36 +00:00
yihuang and Federico Kunze Küllmer
e61594e10a
server: sync start command with cosmos-sdk v0.43-rc2 ( #341 )
...
* sync start command with cosmos-sdk 0.43
Closes #340
- add grpc web and rosetta server
- add tx/tm services
- add standalone mode
- update cosmos-sdk to 0.43.0-rc2, which fixed a bug in service startup
- add EnableUnsafeCORS option to evm rpc server
* set keyring options in root cmd and use viper prefix
* fix linter and pr suggestions
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-23 12:31:59 +00:00
yihuang and Federico Kunze Küllmer
3f136bf5d6
rpc: return ABCI state's latest block number ( #331 )
...
* return abci state's latest block number in rpc
Closes #318
* Update ethereum/rpc/backend/backend.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* add comments
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-22 11:06:44 -04:00
yihuang and Federico Kunze Küllmer
d54663c0b8
evm: fix infinite context usage on EndBlock ( #329 )
...
The previous code is not incorrect since the method `SetBlockBloom` use the `ctx` passed in rather than the `k.ctx`.
It's confusing that sometimes methods use ctx in parameter, sometimes use `k.ctx`, but that's another issue.
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-21 11:57:30 +00:00
yihuang and Federico Kunze Küllmer
14b38af8bc
rpc, evm: use binary search to estimate gas ( #272 )
...
* do binary search to estimate gas
Closes #268
- Also refactor ApplyMessage to be more reuseable
move binary search to rpc api side to have a clean context each try
remove EstimateGas grpc api
* extract BinSearch function and add unit test
* do estimateGas in grpc query
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-19 15:19:23 +00:00
yihuang and Federico Kunze Küllmer
c8ddb503c1
ci: add goreleaser workflow ( #295 )
...
Closes #305
patch panicwrap to fix build issue
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-16 09:30:34 +00:00
yihuang and Federico Kunze Küllmer
297a35dbdd
evm: treat all vm errors the same as reverted ( #276 )
...
Closes : #274
evm: fix `ExtraEIP` activation (#288 )
Closes : #287
Update x/evm/types/utils.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Add `Failed` utility function and changelog
2021-07-15 02:01:05 -04:00
yihuang
84febdddae
evm: fix ExtraEIP activation ( #288 )
...
Closes : #287
2021-07-14 11:10:31 +00:00
yihuang and Federico Kunze Küllmer
1a48e09e78
rpc: implement eth_getPendingTransactions ( #259 )
...
* Implement `eth_getPendingTransactions`
Closes #244
* refactor repeatitive code
* Update ethereum/rpc/namespaces/eth/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update ethereum/rpc/namespaces/eth/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update ethereum/rpc/namespaces/eth/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* Update ethereum/rpc/namespaces/eth/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
* test UnwrapEthereumMsg
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-12 17:42:53 +00:00
yihuang and Federico Kunze Küllmer
8f73d556c6
rpc: fix eth_getTransactionByHash tx in mempool ( #261 )
...
Closes #260
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-12 10:34:47 +00:00
yihuang and Federico Kunze Küllmer
0020e4f2cd
grpc: add eth_call query command ( #236 )
...
* add eth_call query command
Implement EthCall grpc query api
Closes #229
add eth_call query command
fix codec issue
use query client
use grpc status error and codes
validate address length in grpc handler
* Update x/evm/types/callargs.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-09 09:04:46 +00:00
yihuang
7951852bb0
rpc: implement pending nonce with UnconfirmedTx ( #243 )
...
* implement pending nonce with UnconfirmedTx
Closes #242
fix lint
* return early on error
2021-07-09 04:34:49 -04:00
yihuang
d0b890b794
rpc: support query historical state for GetTransactionCount ( #241 )
...
Closes #240
2021-07-09 02:19:20 -04:00
yihuang and Federico Kunze Küllmer
e6f1874cfc
rpc: extract sender address from msg signature ( #217 )
...
* extract real from address in rpc tx query api
Closes : #210
* Update x/evm/types/msg.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
2021-07-02 09:34:15 +00:00
yihuang
6e983a9da1
rpc: fix balance overflow ( #219 )
...
Closes #218
2021-07-02 05:29:47 -04:00
yihuang and Federico Kunze Küllmer
0113b4d2c0
fix: return ethereum-formatted tx hash to client ( #202 )
...
* return eth tx hash to client
Closes #67
Update ethereum/rpc/namespaces/eth/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
Update ethereum/rpc/namespaces/eth/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com >
change GetTxByEthHash to method
add entry to changelog
* use eth tx hash internally
2021-06-30 05:35:11 -04:00
yihuang
036ffb7a39
evm: update block bloom ( #193 )
...
Closes #139
2021-06-30 03:37:03 -04:00
yihuang and Federico Kunze
336703cfc9
evm: fix AddLog unmarshaling tx ( #192 )
...
* fix `AddLog` unmarshaling tx
Closes #187
* use cosmos tx in AddLog unit test
* Apply suggestions from code review
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com >
2021-06-29 06:54:29 -04:00
yihuang
fd19394fba
ante: don't skip EthSigVerificationDecorator for RecheckTx ( #186 )
...
Because it set the `From` field which is relied by other handlers
Closes #185
2021-06-25 09:28:28 -04:00
yihuang
95bd7563d4
rpc: extract msg from cosmos tx ( #163 )
...
Closes #162
2021-06-22 03:49:25 -04:00
yihuang and Federico Kunze
62fe3d7e80
rpc: SendTransaction wrap MsgEthereumTx in cosmos tx ( #161 )
...
* `SendTransaction` wrap `MsgEthereumTx` in cosmos tx
Closes #160
* Update ethereum/rpc/eth_api.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com >
2021-06-22 03:32:06 -04:00
yihuang and Federico Kunze
6d5a59646a
rpc: SendTransaction returns error message for invalid tx on broadcast sync mode ( #159 )
...
* SendTransaction returns error message for invalid tx
- use sync broadcast
- treat error response to error return
Closes : #158
* Apply suggestions from code review
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com >
2021-06-22 03:11:53 -04:00
yihuang
91ad6387bf
ante: ignore no signature error for evm transactions ( #143 )
...
fixes #118
don't sign unit test tx
since that's the same case as real tx
comment EthValidateBasicDecorator
2021-06-21 06:44:37 -04:00
yihuang
a3ee8a4622
rpc: fix default nonce ( #152 )
...
fixes #151
2021-06-21 04:02:05 -04:00