Skip to content
This repository has been archived by the owner on Apr 4, 2024. It is now read-only.

Release v0.20.0-rc3 #1529

Merged
merged 70 commits into from
Dec 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
457e25a
deps(sdk): bump to v0.46.4 (#1423)
danburck Nov 2, 2022
192eb96
imp: reduce integration test block time to 2s (#1428)
facs95 Nov 2, 2022
708e781
build(deps): bump github.com/onsi/gomega from 1.23.0 to 1.24.0 (#1429)
dependabot[bot] Nov 3, 2022
41425fc
fix(rpc): different result from `eth_getProof` comparing with Ethereu…
mmsqe Nov 6, 2022
cb632c6
Refactor EIP-712 signature verification (#1397)
austinchandra Nov 7, 2022
ff0c969
fix: build test on mac by updating to python3.10 (#1437)
mmsqe Nov 9, 2022
b820ff7
build(deps): bump loader-utils from 1.4.0 to 1.4.1 in /tests/solidity…
dependabot[bot] Nov 9, 2022
89fdd19
imp(evm): improve performance of EstimateGas (#1444)
fedekunze Nov 9, 2022
b2155e7
fix(rpc): decode `finalized` block number (#1442)
fedekunze Nov 10, 2022
32bd0c1
build(deps): bump github.com/onsi/gomega from 1.24.0 to 1.24.1 (#1449)
dependabot[bot] Nov 10, 2022
a107aa2
build(deps): bump github.com/spf13/viper from 1.13.0 to 1.14.0 (#1439)
dependabot[bot] Nov 10, 2022
432ee4a
fix: unstable tx_priority test (#1440)
mmsqe Nov 10, 2022
4837b8b
build(deps): bump github.com/cosmos/ibc-go/v5 from 5.0.1 to 5.1.0 (#1…
dependabot[bot] Nov 10, 2022
3abda6e
build(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 (…
dependabot[bot] Nov 14, 2022
052134a
refactor(all): refactor errors import to use cosmossdk.io (#1456)
GAtom22 Nov 14, 2022
b8d9629
build(deps): bump alpine from 3.16.2 to 3.16.3 (#1453)
dependabot[bot] Nov 14, 2022
80d4cb3
Empty KV gas config (#1460)
facs95 Nov 15, 2022
6d4cf26
test: remove unused integration tests (#1462)
facs95 Nov 15, 2022
c20a500
fix: remove e2e github action (#1463)
facs95 Nov 16, 2022
d591775
build(deps): bump loader-utils from 1.4.1 to 1.4.2 in /tests/solidity…
dependabot[bot] Nov 16, 2022
71e51aa
chore (deps): Update geth version to v1.10.25 (#1413)
ramacarlucho Nov 16, 2022
5f418c7
Add EIP-712 encoding support type for any array (#1430)
austinchandra Nov 16, 2022
d450bed
fix: extend geth config on integration tests (#1467)
adisaran64 Nov 17, 2022
9e5f4aa
tests: Add unit tests for rpc client endpoints (#1409)
Vvaradinov Nov 17, 2022
04bdccd
Refactor to omit empty optionals from EIP-712 type generation (#1459)
austinchandra Nov 17, 2022
6455785
fix: protogen scripts were not correctly implemented (#1466)
MalteHerrmann Nov 17, 2022
58c756e
added gas consumption test (#1474)
adisaran64 Nov 18, 2022
e2939a3
build(deps): bump github.com/cosmos/cosmos-proto (#1475)
dependabot[bot] Nov 18, 2022
ebc47af
fix: chain-id in grpc query is not initialized without abci event (#1…
yihuang Nov 18, 2022
37e394f
fix(evm): Simplify Gas Math (#1452)
Nov 18, 2022
feed84b
imp(ante): refactor `AnteHandler` (#1455)
fedekunze Nov 18, 2022
be40f2b
tests: add additional gas consumption tests (#1477)
adisaran64 Nov 19, 2022
f70dafd
chore: update proto make commands (#1471)
MalteHerrmann Nov 20, 2022
391cfa9
Remove unbound labels from added custom tendermint metrics (#1434)
v-homsi Nov 20, 2022
f0f3810
deps: bump SDK to v0.46.6 (#1486)
fedekunze Nov 22, 2022
9c41edb
fear(eip712): Add EIP-712 encoding for multiple messages of the same …
austinchandra Nov 23, 2022
645e49b
fix: enable `fixIssue172` flag for non-deterministic keyring test (#1…
mmsqe Nov 23, 2022
8256649
fix(tests): Delete inconsistent test (#1481)
ramacarlucho Nov 23, 2022
712ce3b
build(deps): bump alpine from 3.16.3 to 3.17.0 (#1492)
dependabot[bot] Nov 23, 2022
d8408a8
build(deps): bump google.golang.org/grpc from 1.50.1 to 1.51.0 (#1490)
dependabot[bot] Nov 23, 2022
99356a4
build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#1489)
dependabot[bot] Nov 23, 2022
f7f1e1c
chore: refactor imports naming for clarity (#1491)
austinchandra Nov 23, 2022
f4c7be2
fix: align empty account result for old blocks as ethereum (#1484)
mmsqe Nov 25, 2022
16fb2e1
imp(ante): refactor AnteHandler (#1479)
fedekunze Nov 25, 2022
3752485
chore: Update linter and protogen configuration (#1478)
MalteHerrmann Nov 25, 2022
9fb4c05
fix(server): telemetry setup (#1497)
fedekunze Nov 25, 2022
8866ae0
chore(evm) - Delete deprecated store migrations (#1498)
Vvaradinov Nov 25, 2022
15e4da3
fix(evm): Added Cancun and Shanghai blocks to ChainConfig (#1499)
Vvaradinov Nov 25, 2022
18a0bd7
chore(app): add store listener to Ethermint app (#1501)
MalteHerrmann Nov 28, 2022
8b9fa27
build(deps): bump cosmossdk.io/math from 1.0.0-beta.3 to 1.0.0-beta.4…
dependabot[bot] Nov 28, 2022
1788e94
fix(app): register node service (#1505)
fedekunze Nov 28, 2022
5fbe109
fix(cmd): add missing GetAuxToFeeCommand (#1504)
fedekunze Nov 29, 2022
831588c
chore(feemarket): Delete deprecated migration logic (#1508)
Vvaradinov Nov 29, 2022
a5c927b
Remove simulation checks (#1507)
Vvaradinov Nov 29, 2022
7f196ce
chore: verify fees refactor (#1496)
fedekunze Nov 29, 2022
fac43e5
json-rpc(filters) fix block hash on newBlock filter (#1503)
GAtom22 Nov 30, 2022
b59dd75
fix(ci): add gitleaks config (#1513)
4rgon4ut Nov 30, 2022
ecd7639
tests(filters): add/improve integration tests for JSON-RPC methods (#…
GAtom22 Nov 30, 2022
7f8b51e
build(deps): bump minimist in /tests/integration_tests/hardhat (#1516)
dependabot[bot] Nov 30, 2022
7a042c4
tests(filters): add logs by topic test case (#1515)
GAtom22 Dec 1, 2022
fac90c1
chore(all): markdownlint (#1522)
fedekunze Dec 1, 2022
1154b1e
build(deps): bump github.com/cosmos/cosmos-proto (#1525)
dependabot[bot] Dec 2, 2022
5b43aab
build(deps): bump decode-uri-component in /tests/solidity (#1526)
dependabot[bot] Dec 2, 2022
a230c0e
tests(integration): block gas limit tests (#1500)
adisaran64 Dec 2, 2022
d9fc677
chore(ante): deprecate legacy EIP-712 signature verification via Ante…
austinchandra Dec 2, 2022
9077172
feat(ci): add Golang dependency vulnerability check (#1528)
fedekunze Dec 2, 2022
39309e0
chore(evm): add comment regarding RANDOM opcode (#1520)
austinchandra Dec 2, 2022
6fdafe4
Merge branch 'main' into facs95/v0.20.0-rc3
facs95 Dec 2, 2022
add74fa
update release date
facs95 Dec 2, 2022
f378969
update changelog
facs95 Dec 2, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Dependency Review"
on: pull_request

permissions:
contents: read

jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: 1.19
check-latest: true
- name: "Checkout Repository"
uses: actions/checkout@v3
- uses: technote-space/get-diff-action@v6.1.1
with:
PATTERNS: |
**/**.go
go.mod
go.sum
- name: "Dependency Review"
uses: actions/dependency-review-action@v3
if: env.GIT_DIFF
- name: "Go vulnerability check"
run: make vulncheck
if: env.GIT_DIFF
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
args: --timeout 10m
github-token: ${{ secrets.github_token }}
# Check only if there are differences in the source code
if: "env.GIT_DIFF"
if: env.GIT_DIFF
markdown-lint:
name: Run markdown-lint
runs-on: ubuntu-latest
Expand Down
8 changes: 5 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,10 @@ Ref: https://keepachangelog.com/en/1.0.0/

# Changelog

## [v0.20.0-rc3] - 2022-11-30
## [v0.20.0-rc3] - 2022-12-02

### State Machine Breaking

* (deps) [#1419](https://github.com/evmos/ethermint/pull/1419) Add ics23 patch for dragonberry and bump iavl to v0.19.4
* (deps) [#1361](https://github.com/evmos/ethermint/pull/1361) Bump ibc-go to [`v5.1.0`](https://github.com/cosmos/ibc-go/releases/tag/v5.1.0)
* (evm) [\#1272](https://github.com/evmos/ethermint/pull/1272) Implement modular interface for the EVM.
* (deps) [#1168](https://github.com/evmos/ethermint/pull/1168) Upgrade Cosmos SDK to [`v0.46.6`](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.46.6).
Expand All @@ -51,15 +50,18 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (ante) [1460](https://github.com/evmos/ethermint/pull/1460) Add KV Gas config on ethereum Txs.
* (eth) [#1459](https://github.com/evmos/ethermint/pull/1459) Added support for messages with optional types omitted on eip712.
* (geth) [#1413](https://github.com/evmos/ethermint/pull/1413) Update go-ethereum version to [`v1.10.26`](https://github.com/ethereum/go-ethereum/releases/tag/v1.10.26).
* (deps) [#1419](https://github.com/evmos/ethermint/pull/1419) Add ics23 patch for dragonberry and bump iavl to v0.19.4

### API Breaking

* (ante) [#1521](https://github.com/evmos/ethermint/pull/1521) Deprecate support for legacy EIP-712 signature verification implementation via AnteHandler decorator.
* (ante) [#1214](https://github.com/evmos/ethermint/pull/1214) Set mempool priority to EVM transactions.
* (evm) [#1405](https://github.com/evmos/ethermint/pull/1405) Add parameter `chainID` to evm keeper's `EVMConfig` method, so caller can choose to not use the cached `eip155ChainID`.

### Features

- (app) [#1501](https://github.com/evmos/ethermint/pull/1501) Set default File store listener for application from [ADR38](https://docs.cosmos.network/v0.47/architecture/adr-038-state-listening)
* (ci) [#1528](https://github.com/evmos/ethermint/pull/1528) Add Golang dependency vulnerability checker.
* (app) [#1501](https://github.com/evmos/ethermint/pull/1501) Set default File store listener for application from [ADR38](https://docs.cosmos.network/v0.47/architecture/adr-038-state-listening)

### Improvements

Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ clean:

all: build

build-all: tools build lint test
build-all: tools build lint test vulncheck

.PHONY: distclean clean build-all

Expand Down Expand Up @@ -273,6 +273,10 @@ go.sum: go.mod
go mod verify
go mod tidy

vulncheck: $(BUILDDIR)/
GOBIN=$(BUILDDIR) go install golang.org/x/vuln/cmd/govulncheck@latest
$(BUILDDIR)/govulncheck ./...

###############################################################################
### Documentation ###
###############################################################################
Expand Down
4 changes: 2 additions & 2 deletions app/ante/ante.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
// handle as *evmtypes.MsgEthereumTx
anteHandler = newEthAnteHandler(options)
case "/ethermint.types.v1.ExtensionOptionsWeb3Tx":
// handle as normal Cosmos SDK tx, except signature is checked for EIP712 representation
anteHandler = newCosmosAnteHandlerEip712(options)
// Deprecated: Handle as normal Cosmos SDK tx, except signature is checked for Legacy EIP712 representation
anteHandler = NewLegacyCosmosAnteHandlerEip712(options)
case "/ethermint.types.v1.ExtensionOptionDynamicFeeTx":
// cosmos-sdk tx with dynamic fee extension
anteHandler = newCosmosAnteHandler(options)
Expand Down
43 changes: 36 additions & 7 deletions app/ante/eip712.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
authante "github.com/cosmos/cosmos-sdk/x/auth/ante"
"github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx"
authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing"
ibcante "github.com/cosmos/ibc-go/v5/modules/core/ante"

ethcrypto "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/crypto/secp256k1"
Expand All @@ -32,27 +33,55 @@ func init() {
ethermintCodec = codec.NewProtoCodec(registry)
}

// Eip712SigVerificationDecorator Verify all signatures for a tx and return an error if any are invalid. Note,
// the Eip712SigVerificationDecorator decorator will not get executed on ReCheck.
// Deprecated: NewLegacyCosmosAnteHandlerEip712 creates an AnteHandler to process legacy EIP-712
// transactions, as defined by the presence of an ExtensionOptionsWeb3Tx extension.
func NewLegacyCosmosAnteHandlerEip712(options HandlerOptions) sdk.AnteHandler {
return sdk.ChainAnteDecorators(
RejectMessagesDecorator{}, // reject MsgEthereumTxs
authante.NewSetUpContextDecorator(),
authante.NewValidateBasicDecorator(),
authante.NewTxTimeoutHeightDecorator(),
NewMinGasPriceDecorator(options.FeeMarketKeeper, options.EvmKeeper),
authante.NewValidateMemoDecorator(options.AccountKeeper),
authante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper),
authante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker),
// SetPubKeyDecorator must be called before all signature verification decorators
authante.NewSetPubKeyDecorator(options.AccountKeeper),
authante.NewValidateSigCountDecorator(options.AccountKeeper),
authante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer),
// Note: signature verification uses EIP instead of the cosmos signature validator
NewLegacyEip712SigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
authante.NewIncrementSequenceDecorator(options.AccountKeeper),
ibcante.NewRedundantRelayDecorator(options.IBCKeeper),
NewGasWantedDecorator(options.EvmKeeper, options.FeeMarketKeeper),
)
}

// Deprecated: LegacyEip712SigVerificationDecorator Verify all signatures for a tx and return an error if any are invalid. Note,
// the LegacyEip712SigVerificationDecorator decorator will not get executed on ReCheck.
// NOTE: As of v0.20.0, EIP-712 signature verification is handled by the ethsecp256k1 public key (see ethsecp256k1.go)
//
// CONTRACT: Pubkeys are set in context for all signers before this decorator runs
// CONTRACT: Tx must implement SigVerifiableTx interface
type Eip712SigVerificationDecorator struct {
type LegacyEip712SigVerificationDecorator struct {
ak evmtypes.AccountKeeper
signModeHandler authsigning.SignModeHandler
}

// NewEip712SigVerificationDecorator creates a new Eip712SigVerificationDecorator
func NewEip712SigVerificationDecorator(ak evmtypes.AccountKeeper, signModeHandler authsigning.SignModeHandler) Eip712SigVerificationDecorator {
return Eip712SigVerificationDecorator{
// Deprecated: NewLegacyEip712SigVerificationDecorator creates a new LegacyEip712SigVerificationDecorator
func NewLegacyEip712SigVerificationDecorator(
ak evmtypes.AccountKeeper,
signModeHandler authsigning.SignModeHandler,
) LegacyEip712SigVerificationDecorator {
return LegacyEip712SigVerificationDecorator{
ak: ak,
signModeHandler: signModeHandler,
}
}

// AnteHandle handles validation of EIP712 signed cosmos txs.
// it is not run on RecheckTx
func (svd Eip712SigVerificationDecorator) AnteHandle(ctx sdk.Context,
func (svd LegacyEip712SigVerificationDecorator) AnteHandle(ctx sdk.Context,
tx sdk.Tx,
simulate bool,
next sdk.AnteHandler,
Expand Down
12 changes: 12 additions & 0 deletions app/ante/eth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/evmos/ethermint/app/ante"
"github.com/evmos/ethermint/server/config"
"github.com/evmos/ethermint/tests"
ethermint "github.com/evmos/ethermint/types"
"github.com/evmos/ethermint/x/evm/statedb"
evmtypes "github.com/evmos/ethermint/x/evm/types"

Expand Down Expand Up @@ -180,6 +181,9 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
tx2.From = addr.Hex()
tx2Priority := int64(1)

tx3GasLimit := ethermint.BlockGasLimit(suite.ctx) + uint64(1)
tx3 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), tx3GasLimit, gasPrice, nil, nil, nil, &ethtypes.AccessList{{Address: addr, StorageKeys: nil}})

dynamicFeeTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), tx2GasLimit,
nil, // gasPrice
new(big.Int).Add(baseFee, big.NewInt(evmtypes.DefaultPriorityReduction.Int64()*2)), // gasFeeCap
Expand Down Expand Up @@ -216,6 +220,14 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
false, false,
0,
},
{
"gas limit above block gas limit",
tx3,
math.MaxUint64,
func() {},
false, false,
0,
},
{
"not enough balance for fees",
tx2,
Expand Down
24 changes: 0 additions & 24 deletions app/ante/handler_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,27 +87,3 @@ func newCosmosAnteHandler(options HandlerOptions) sdk.AnteHandler {
NewGasWantedDecorator(options.EvmKeeper, options.FeeMarketKeeper),
)
}

func newCosmosAnteHandlerEip712(options HandlerOptions) sdk.AnteHandler {
return sdk.ChainAnteDecorators(
RejectMessagesDecorator{}, // reject MsgEthereumTxs
ante.NewSetUpContextDecorator(),
// NOTE: extensions option decorator removed
// ante.NewRejectExtensionOptionsDecorator(),
ante.NewValidateBasicDecorator(),
ante.NewTxTimeoutHeightDecorator(),
NewMinGasPriceDecorator(options.FeeMarketKeeper, options.EvmKeeper),
ante.NewValidateMemoDecorator(options.AccountKeeper),
ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper),
ante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker),
// SetPubKeyDecorator must be called before all signature verification decorators
ante.NewSetPubKeyDecorator(options.AccountKeeper),
ante.NewValidateSigCountDecorator(options.AccountKeeper),
ante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer),
// Note: signature verification uses EIP instead of the cosmos signature validator
NewEip712SigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
ante.NewIncrementSequenceDecorator(options.AccountKeeper),
ibcante.NewRedundantRelayDecorator(options.IBCKeeper),
NewGasWantedDecorator(options.EvmKeeper, options.FeeMarketKeeper),
)
}
4 changes: 1 addition & 3 deletions cmd/ethermintd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ import (
"github.com/evmos/ethermint/version"
)

const (
flagLong = "long"
)
const flagLong = "long"

func init() {
infoCmd.Flags().Bool(flagLong, false, "Print full information")
Expand Down
2 changes: 1 addition & 1 deletion default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
, rev ? "dirty"
}:
let
version = "v0.17.1";
version = "v0.20.0-rc2";
pname = "ethermintd";
tags = [ "netgo" ];
ldflags = lib.concatStringsSep "\n" ([
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/armon/go-metrics v0.4.1
github.com/btcsuite/btcd v0.22.1
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce
github.com/cosmos/cosmos-proto v1.0.0-alpha8
github.com/cosmos/cosmos-proto v1.0.0-beta.1
github.com/cosmos/cosmos-sdk v0.46.6
github.com/cosmos/go-bip39 v1.0.0
github.com/cosmos/gogoproto v1.4.3
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,8 @@ github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44=
github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU=
github.com/cosmos/cosmos-proto v1.0.0-alpha8 h1:d3pCRuMYYvGA5bM0ZbbjKn+AoQD4A7dyNG2wzwWalUw=
github.com/cosmos/cosmos-proto v1.0.0-alpha8/go.mod h1:6/p+Bc4O8JKeZqe0VqUGTX31eoYqemTT4C1hLCWsO7I=
github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0=
github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE=
github.com/cosmos/cosmos-sdk v0.46.6 h1:K9EZsqOZ2jQX3bIQUpn7Hk/YCoaJWRLU56PzvpX8INk=
github.com/cosmos/cosmos-sdk v0.46.6/go.mod h1:JNklMfXo7MhDF1j/jxZCmDyOYyqhVoKB22e8p1ATEqA=
github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 h1:iKclrn3YEOwk4jQHT2ulgzuXyxmzmPczUalMwW4XH9k=
Expand Down
4 changes: 2 additions & 2 deletions gomod2nix.toml
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ schema = 3
version = "v1.0.4"
hash = "sha256-JvcBXBdjdmnaW/nyf/tw/uaOAGn1b78yxrtl2/Rs3kA="
[mod."github.com/cosmos/cosmos-proto"]
version = "v1.0.0-alpha8"
hash = "sha256-iXzXoS5Kfh5DBy+PhdFWraDWXda/3M4j7j4VECjv4CA="
version = "v1.0.0-beta.1"
hash = "sha256-oATkuj+fM5eBn+ywO+w/tL0AFSIEkx0J3Yz+VhVe0QA="
[mod."github.com/cosmos/cosmos-sdk"]
version = "v0.46.6"
hash = "sha256-H1VZxZUWXhpXiY3A9smLp09MEGpXmh+XvX6YUiXPcpQ="
Expand Down
7 changes: 3 additions & 4 deletions tests/integration_tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,11 @@ pytest -s -vv

If you're changing anything on the ethermint rpc, rerun the first command.


## Caching

You can enable Binary Cache to speed up the tests:

```
$ nix-env -iA cachix -f https://cachix.org/api/v1/install
$ cachix use ethermint
```
nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use ethermint
```
15 changes: 9 additions & 6 deletions tests/integration_tests/hardhat/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 30 additions & 0 deletions tests/integration_tests/test_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
deploy_contract,
send_successful_transaction,
send_transaction,
w3_wait_for_new_blocks,
)

# Smart contract names
Expand All @@ -21,6 +22,35 @@
TRANSFER_TOPIC = Web3.keccak(text="Transfer(address,address,uint256)")


def test_get_logs_by_topic(cluster):
w3: Web3 = cluster.w3

contract, _ = deploy_contract(w3, CONTRACTS["Greeter"])

topic = Web3.keccak(text="ChangeGreeting(address,string)")

# with tx
tx = contract.functions.setGreeting("world").build_transaction()
receipt = send_transaction(w3, tx)
assert receipt.status == 1

# The getLogs method under the hood works as a filter
# with the specified topics and a block range.
# If the block range is not specified, it defaults
# to fromBlock: "latest", toBlock: "latest".
# Then, if we make a getLogs call within the same block that the tx
# happened, we will get a log in the result. However, if we make the call
# one or more blocks later, the result will be an empty array.
logs = w3.eth.get_logs({"topics": [topic.hex()]})

assert len(logs) == 1
assert logs[0]["address"] == contract.address

w3_wait_for_new_blocks(w3, 2)
logs = w3.eth.get_logs({"topics": [topic.hex()]})
assert len(logs) == 0


def test_pending_transaction_filter(cluster):
w3: Web3 = cluster.w3
flt = w3.eth.filter("pending")
Expand Down
Loading