* Fix eth tx hashes in json-rpc responses
Closes: #1175
- Remove Size_ field
- Validate From/Hash fields in ante handler
- Recompute tx hashes in json-rpc apis to cope with old blocks
Update CHANGELOG.md
remove Size_, validate Hash/From, add unit tests
update spec
Update CHANGELOG.md
Update app/ante/eth.go
populate From in SendRawTransaction
Apply suggestions from code review
keep Size_ field to avoid breaking tx format
* move some validation to ValidateBasic
* move validation to ValidateBasic
* make ToTransaction returns a valid msg
* restructure the protoTxProvider check
* add comment
* workaround tx hash issue in event parsing
* fix integration test
* fix unit test
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* 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>
* Check EnableCreate/EnableCall in ante handler
WIP: #1045
Reject tx early in ante handler, avoid deduct user fee for vain.
* add unit tests
* update changelog
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Federico Kunze Küllmer <federico.kunze94@gmail.com>
The account verification decorator uses the evm keeper methods which
already use the bank keeper, leaving the dependency unused.
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Fix GasMeter reset in AnteHandler - EthGasConsumeDecorator
Conforming to the spec:
e7066c4271/docs/basics/gas-fees.md
> Set newCtx.GasMeter to 0, with a limit of GasWanted.
> This step is extremely important, as it not only makes sure the transaction cannot consume infinite gas,
> but also that ctx.GasMeter is reset in-between each DeliverTx
> (ctx is set to newCtx after anteHandler is run, and the anteHandler is run each time DeliverTx is called).
* Compute gasWanted in ante handler based on msg gas
* Tests - check gas meter limit after EthGasConsumeDecorator ante handler runs
* Update CHANGELOG.md
* EthGasConsumeDecorator ante handler resets the gas meter only for CheckTx
* Reset the gas meter in Keeper.EthereumTx to an infinite gas meter
* Fix TestOutOfGasWhenDeployContract error check
* Move gas meter reset to the innermost EthAnteHandle
* add NewInfiniteGasMeterWithLimit for setting the user provided gas limit
Fixes block's consumed gas calculation in the block creation phase.
* Fix lint
* Fix lint
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* 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>
* 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
* clean up logic by ignoring cosmos gas meter
* set gas used in txResponse
* reset and set the gas in context
* rename ante handler
* fix refundedgas logic
* remove gas update logic in keeper
* update context in keeper
* add test for EthSetupContextDecorator
* fix broken test due to gas logic change
* ante: check that sender is a EOA
* fix: GetCodeSize handles nil case and comments
* docs: add TODO comment
* fix: use EmptyCodeHash check
* lint: evmtypes instead of types
* lint: fix suite error
* test: set code to act not as EOA
* undo comment on GetCodeSize
* keeper: fix input checks
* Apply suggestions from code review
Co-authored-by: Akash Khosla <me@akashkhosla.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>