* imp(evm): Migrate from old Cosmos SDK params module to new way of keeping params in module Keeper
* Updated changelog
* Apply changes from code review
* (impv): Added Shanghai and Cancun blocks to current types and latest migration
* (tests): Update unit tests to include Shanghai and Cancun blocks
* (fix) - ran golangci-lint on the entire project
* (fix) - remove deprecated params method
* (impv): added marshaling of booleans per individual param key
* (impv): added individual param getting and setting
* (impv): replaced getters with individual param
* (impv): added amino codec for MsgEthereumTx
* Added changes suggested in code review
* (fix): updated the migration files for v4
* (fix): fixed unit tests panic for incorrect interface
* (fix): updated module msg handler
* (fix): rename to original params getter method
* (refactor): registered implementation for the new msg
* (refactor): added correct amino codec for MsgUpdateParams and removed for MsgEthTx
* Applied changes from code review
* (fix): removed unnecessary duplicate
* (fix): removed params_legacy from the types and moved logic to migration
* (fix): Added v4 mocks to the migrations_test
* (fix): undo all the non related work regarding the Cancun and Shanghai blocks
* (fix): reverted linting the entire project - will make a separate PR for it
* Applied changes from review
* Applied changes from code review
* (fix): removed comments
* (fix): Ran formatter and fixed linting issues on unsed functions
* (fix): Linting issues resolved
* (fix): refactor migrations and added default EIPs
* (fix): Combined into one call
* (fix): Added more straightforward way to handle migration
* (fix): corrected migration test
* Applied changes from code review
* (fix): Linter fix
* (fix): Linter
* (fix): Lint proto files
* Apply suggestions from code review
Co-authored-by: MalteHerrmann <42640438+MalteHerrmann@users.noreply.github.com>
* (fix): Added new block to migration
* (fix): Added additional comments and formatted proto files
* (fix): Added name to unit test cases
* (fix): removed unused import
* Apply changes from code review
* (fix): typo
* (fix): remove HTTP endpoint exposure
* Apply suggestions from code review
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* applied changes from code review
* fix: extra line added in merge removed
* fix: applied changes from code review
Co-authored-by: MalteHerrmann <42640438+MalteHerrmann@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
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>
Uses the fastest slice making idiom of creating the well known
size of a slice using
make([]sdk.Attribute, len(response.Logs))
for i, log := range response.Logs {
txLogAttrs[i] = ...
}
instead of
make([]sdk.Attribute, 0)
for _, log := range response.Logs {
txLogAttrs = append(txLogAttrs, ...)
}
which had a few problems:
1. Using 0 for size then appending is quite slow yet we know the exact size
2. Using append instead of indexing is slower
If we examine the advisory at https://bencher.orijtech.com/perfclinic/sliceupdate/
and the verdict at https://bencher.orijtech.com/perfclinic/sliceupdate/#verdict
this new scheme shows a massive improvement in that call site.
Fixes#825
* 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>
* 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>