* add grpc only mode flag
* add change log
* add tmNode nil check
* only flag to modes
* fix close for query mode
* fix hint
* keep grpc-only & json-rpc-only
* rm space
* mv apiSrv close
* mv cpuProfileCleanup
* mv tmNode stop
* disable indexer on query only
which need tm client on start
* update nix
* revert json-rpc-only change
* imp(rpc) Add support for EVM RPC metrics
- Support --metrics flag
- Add EVM rpc metrics server config
* Update as per PR feedback
Co-authored-by: Freddy Caceres <facs95@gmail.com>
* fix: `index-eth-tx` cmd fail on empty indexer db
Solution:
- start from latest height is db is empty
* update gomod2nix
* Update CHANGELOG.md
Co-authored-by: Freddy Caceres <facs95@gmail.com>
* Store eth tx index separately
Closes: #1075
Solution:
- run a optional indexer service
- adapt the json-rpc to the more efficient query
changelog
changelog
fix lint
fix backward compatibility
fix lint
timeout
better strconv
fix linter
fix package name
add cli command to index old tx
fix for loop
indexer cmd don't have access to local rpc
workaround exceed block gas limit situation
add unit tests for indexer
refactor
polish the indexer module
Update server/config/toml.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
improve comments
share code between GetTxByEthHash and GetTxByIndex
fix unit test
Update server/indexer.go
Co-authored-by: Freddy Caceres <facs95@gmail.com>
* Apply suggestions from code review
* test enable-indexer in integration test
* fix go lint
* address review suggestions
* fix linter
* address review suggestions
- test indexer in backend unit test
- add comments
* fix build
* fix test
* service name
Co-authored-by: Freddy Caceres <facs95@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Reuse cosmos-sdk client library to create keyring
Extracted from https://github.com/evmos/ethermint/pull/1168
Cleanup cmd code for easier to migration to cosmos-sdk 0.46
* Update cosmos-sdk v0.46
prepare for implementing cosmos-sdk feemarket and tx prioritization
changelog
refactor cmd
use sdkmath
fix lint
fix unit tests
fix unit test genesis
fix unit tests
fix unit test env setup
fix unit tests
fix unit tests
register PrivKey impl
fix extension options
fix lint
fix unit tests
make HandlerOption.Validate private
gofumpt
fix msg response decoding
fix sim test
bump cosmos-sdk version
fix sim test
sdk 46
fix unit test
fix unit tests
update ibc-go
* Emit eth tx hash in ante handler to support query failed transactions
WIP: #1045
Solution:
- emit eth tx hash in ante handler
- modify rpc to use it
fix ante handler
support failed tx in receipt
add unit tests
need to patch cosmos-sdk to work
update cosmos-sdk to v0.45.x release branch
fix failed status
fix unit tests
add unit test cases
cleanup dead code
Apply suggestions from code review
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
fix lint
fix review suggestions
fix build
fix gas used of failed tx
add back the redundant events
* fix get tx by index
* add unit tests for events
* Update rpc/types/events.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* update comments
* refactoring
* Update rpc/namespaces/ethereum/eth/api.go
* fix lint
* Apply suggestions from code review
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
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>
* x/evm/keeper: save 24B with Go in-condition variable idiom
The prior code doubly invoked (*ethereum/go-ethereum/core/types.Transaction).To()
which is quite expensive, and firstly copies 20 bytes each time, then
that gets rounded up to the proper size class/pointer alignment so on
64-bit machines 20B -> 24B.
Isolating a benchmark for this code per issue #826 shows this saves
quite a bit of bytes and some nano seconds which all count up towards
the transactions per seconds being processed:
```shell
$ benchstat before.txt after.txt
name old time/op new time/op delta
CopyAddr-8 38.4ns ± 3% 19.3ns ± 3% -49.66% (p=0.000 n=10+10)
name old alloc/op new alloc/op delta
CopyAddr-8 48.0B ± 0% 24.0B ± 0% -50.00% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
CopyAddr-8 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10)
```
Fixes#826
* changelog
* lint
* Revert stray changes that were used in testing
* rm log
Co-authored-by: Federico Kunze Küllmer <federico.kunze94@gmail.com>
* remove gosec warnigs with medium severity
* Improvement(Ethermint): Fix gosec vulnerabilities
* Improvement(Evmos): address pr comments
* Improvement(Ethermint): Fix flags test by using PersistentFlags() instead of Flags()
* Improvement(Ethermint): Fix return of defer function
* Improvement(Ethermint): Replace PersistentFlags with Flags
* Apply suggestions from code review
* Improvement(Ethermint): Use persisentFlags again and remove required attribute for chain id
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Problem: No way to limit total number of filters that can be created
Solution: Add a config parameter to set the total number of filters that can be created
* Add defer statement for releasing locks
* Change default value for filter cap to 200
* Changed data type of filter cap to int32
* Add changelog entry
* Update CHANGELOG.md
* Fix struct alignment
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
It's better to always close the db before exit, so we will be noticed
when any error happens. Otherwise, serious errors can silently happen,
e.g, corrupted db, pending write missing ...
Fixes#538