Skip to content

Commit f0da02f

Browse files
committed
upgrade to go-ethereum 1.13
fix CanTranfer args
1 parent 56d558c commit f0da02f

21 files changed

+304
-265
lines changed

app/ante/eth.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package ante
1717

1818
import (
19+
"fmt"
1920
"math"
2021
"math/big"
2122

@@ -24,6 +25,7 @@ import (
2425

2526
sdk "github.com/cosmos/cosmos-sdk/types"
2627
errortypes "github.com/cosmos/cosmos-sdk/types/errors"
28+
"github.com/holiman/uint256"
2729

2830
ethermint "github.com/zeta-chain/ethermint/types"
2931
"github.com/zeta-chain/ethermint/x/evm/keeper"
@@ -93,7 +95,7 @@ func (avd EthAccountVerificationDecorator) AnteHandle(
9395
"the sender is not EOA: address %s, codeHash <%s>", fromAddr, acct.CodeHash)
9496
}
9597

96-
if err := keeper.CheckSenderBalance(sdkmath.NewIntFromBigInt(acct.Balance), txData); err != nil {
98+
if err := keeper.CheckSenderBalance(sdkmath.NewIntFromBigInt(acct.Balance.ToBig()), txData); err != nil {
9799
return ctx, errorsmod.Wrap(err, "failed to check sender balance")
98100
}
99101
}
@@ -302,9 +304,14 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate
302304
stateDB := statedb.New(ctx, ctd.evmKeeper, statedb.NewEmptyTxConfig(common.BytesToHash(ctx.HeaderHash().Bytes())))
303305
evm := ctd.evmKeeper.NewEVM(ctx, coreMsg, cfg, evmtypes.NewNoOpTracer(), stateDB)
304306

307+
valueU256, isOverflow := uint256.FromBig(coreMsg.Value)
308+
if isOverflow {
309+
return ctx, fmt.Errorf("%v is not a valid uint256", coreMsg.Value)
310+
}
311+
305312
// check that caller has enough balance to cover asset transfer for **topmost** call
306313
// NOTE: here the gas consumed is from the context with the infinite gas meter
307-
if coreMsg.Value.Sign() > 0 && !evm.Context.CanTransfer(stateDB, coreMsg.From, coreMsg.Value) {
314+
if coreMsg.Value.Sign() > 0 && !evm.Context.CanTransfer(stateDB, coreMsg.From, valueU256) {
308315
return ctx, errorsmod.Wrapf(
309316
errortypes.ErrInsufficientFunds,
310317
"failed to transfer %s from address %s using the EVM block context transfer function",

app/ante/eth_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"math/big"
66

77
sdk "github.com/cosmos/cosmos-sdk/types"
8+
"github.com/holiman/uint256"
89

910
"github.com/zeta-chain/ethermint/app/ante"
1011
"github.com/zeta-chain/ethermint/server/config"
@@ -68,7 +69,7 @@ func (suite AnteTestSuite) TestNewEthAccountVerificationDecorator() {
6869
"success new account",
6970
tx,
7071
func() {
71-
vmdb.AddBalance(addr, big.NewInt(1000000))
72+
vmdb.AddBalance(addr, uint256.NewInt(1000000))
7273
},
7374
true,
7475
true,
@@ -80,7 +81,7 @@ func (suite AnteTestSuite) TestNewEthAccountVerificationDecorator() {
8081
acc := suite.app.AccountKeeper.NewAccountWithAddress(suite.ctx, addr.Bytes())
8182
suite.app.AccountKeeper.SetAccount(suite.ctx, acc)
8283

83-
vmdb.AddBalance(addr, big.NewInt(1000000))
84+
vmdb.AddBalance(addr, uint256.NewInt(1000000))
8485
},
8586
true,
8687
true,
@@ -241,7 +242,7 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
241242
tx2,
242243
0,
243244
func() {
244-
vmdb.AddBalance(addr, big.NewInt(1000000))
245+
vmdb.AddBalance(addr, uint256.NewInt(1000000))
245246
},
246247
false, true,
247248
0,
@@ -251,7 +252,7 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
251252
tx2,
252253
0,
253254
func() {
254-
vmdb.AddBalance(addr, big.NewInt(1000000))
255+
vmdb.AddBalance(addr, uint256.NewInt(1000000))
255256
suite.ctx = suite.ctx.WithBlockGasMeter(sdk.NewGasMeter(1))
256257
},
257258
false, true,
@@ -262,7 +263,7 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
262263
tx2,
263264
tx2GasLimit, // it's capped
264265
func() {
265-
vmdb.AddBalance(addr, big.NewInt(1001000000000000))
266+
vmdb.AddBalance(addr, uint256.NewInt(1001000000000000))
266267
suite.ctx = suite.ctx.WithBlockGasMeter(sdk.NewGasMeter(10000000000000000000))
267268
},
268269
true, false,
@@ -273,7 +274,7 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
273274
dynamicFeeTx,
274275
tx2GasLimit, // it's capped
275276
func() {
276-
vmdb.AddBalance(addr, big.NewInt(1001000000000000))
277+
vmdb.AddBalance(addr, uint256.NewInt(1001000000000000))
277278
suite.ctx = suite.ctx.WithBlockGasMeter(sdk.NewGasMeter(10000000000000000000))
278279
},
279280
true, false,
@@ -284,7 +285,7 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
284285
dynamicFeeTx,
285286
0, // for reCheckTX mode, gas limit should be set to 0
286287
func() {
287-
vmdb.AddBalance(addr, big.NewInt(1001000000000000))
288+
vmdb.AddBalance(addr, uint256.NewInt(1001000000000000))
288289
suite.ctx = suite.ctx.WithIsReCheckTx(true)
289290
},
290291
true, false,
@@ -378,7 +379,7 @@ func (suite AnteTestSuite) TestCanTransferDecorator() {
378379
acc := suite.app.AccountKeeper.NewAccountWithAddress(suite.ctx, addr.Bytes())
379380
suite.app.AccountKeeper.SetAccount(suite.ctx, acc)
380381

381-
vmdb.AddBalance(addr, big.NewInt(1000000))
382+
vmdb.AddBalance(addr, uint256.NewInt(1000000))
382383
},
383384
true,
384385
},

app/ante/sigs_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package ante_test
33
import (
44
"math/big"
55

6+
"github.com/holiman/uint256"
67
"github.com/zeta-chain/ethermint/tests"
78
"github.com/zeta-chain/ethermint/x/evm/statedb"
89
evmtypes "github.com/zeta-chain/ethermint/x/evm/types"
@@ -17,7 +18,7 @@ func (suite AnteTestSuite) TestSignatures() {
1718

1819
acc := statedb.NewEmptyAccount()
1920
acc.Nonce = 1
20-
acc.Balance = big.NewInt(10000000000)
21+
acc.Balance = uint256.NewInt(10000000000)
2122

2223
suite.app.EvmKeeper.SetAccount(suite.ctx, addr, *acc)
2324
msgEthereumTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)

go.mod

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ require (
1818
github.com/cosmos/gogoproto v1.7.0
1919
github.com/cosmos/ibc-go/v7 v7.2.0
2020
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
21-
github.com/ethereum/go-ethereum v1.12.2
21+
github.com/ethereum/go-ethereum v1.13.15
2222
github.com/golang/protobuf v1.5.4
2323
github.com/gorilla/mux v1.8.0
2424
github.com/gorilla/websocket v1.5.0
2525
github.com/grpc-ecosystem/grpc-gateway v1.16.0
26+
github.com/holiman/uint256 v1.2.4
2627
github.com/improbable-eng/grpc-web v0.15.0
2728
github.com/onsi/ginkgo/v2 v2.7.0
2829
github.com/onsi/gomega v1.26.0
@@ -38,6 +39,7 @@ require (
3839
github.com/tidwall/gjson v1.14.4
3940
github.com/tidwall/sjson v1.2.5
4041
github.com/tyler-smith/go-bip39 v1.1.0
42+
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
4143
golang.org/x/net v0.23.0
4244
golang.org/x/text v0.14.0
4345
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80
@@ -58,15 +60,15 @@ require (
5860
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
5961
github.com/99designs/keyring v1.2.1 // indirect
6062
github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect
61-
github.com/DataDog/zstd v1.5.2 // indirect
62-
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
63-
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
63+
github.com/Microsoft/go-winio v0.6.1 // indirect
64+
github.com/StackExchange/wmi v1.2.1 // indirect
65+
github.com/VictoriaMetrics/fastcache v1.12.1 // indirect
6466
github.com/allegro/bigcache v1.2.1 // indirect
6567
github.com/aws/aws-sdk-go v1.44.203 // indirect
6668
github.com/beorn7/perks v1.0.1 // indirect
6769
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
6870
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
69-
github.com/bits-and-blooms/bitset v1.7.0 // indirect
71+
github.com/bits-and-blooms/bitset v1.10.0 // indirect
7072
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
7173
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect
7274
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
@@ -76,19 +78,19 @@ require (
7678
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
7779
github.com/cockroachdb/errors v1.10.0 // indirect
7880
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
79-
github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 // indirect
8081
github.com/cockroachdb/redact v1.1.5 // indirect
8182
github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect
8283
github.com/confio/ics23/go v0.9.0 // indirect
8384
github.com/consensys/bavard v0.1.13 // indirect
84-
github.com/consensys/gnark-crypto v0.10.0 // indirect
85+
github.com/consensys/gnark-crypto v0.12.1 // indirect
8586
github.com/cosmos/btcutil v1.0.5 // indirect
8687
github.com/cosmos/gogogateway v1.2.0 // indirect
8788
github.com/cosmos/iavl v0.20.1 // indirect
8889
github.com/cosmos/ics23/go v0.10.0 // indirect
8990
github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect
9091
github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect
91-
github.com/crate-crypto/go-kzg-4844 v0.3.0 // indirect
92+
github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect
93+
github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect
9294
github.com/creachadair/taskgroup v0.4.2 // indirect
9395
github.com/danieljoos/wincred v1.1.2 // indirect
9496
github.com/deckarep/golang-set/v2 v2.1.0 // indirect
@@ -98,22 +100,22 @@ require (
98100
github.com/dgraph-io/ristretto v0.1.1 // indirect
99101
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
100102
github.com/dlclark/regexp2 v1.7.0 // indirect
101-
github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3 // indirect
103+
github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127 // indirect
102104
github.com/dustin/go-humanize v1.0.1 // indirect
103105
github.com/dvsekhvalnov/jose2go v1.6.0 // indirect
104-
github.com/ethereum/c-kzg-4844 v0.3.1 // indirect
106+
github.com/ethereum/c-kzg-4844 v0.4.0 // indirect
105107
github.com/felixge/httpsnoop v1.0.4 // indirect
106108
github.com/fsnotify/fsnotify v1.7.0 // indirect
107109
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff // indirect
110+
github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect
108111
github.com/getsentry/sentry-go v0.23.0 // indirect
109112
github.com/go-kit/kit v0.12.0 // indirect
110113
github.com/go-kit/log v0.2.1 // indirect
111114
github.com/go-logfmt/logfmt v0.6.0 // indirect
112115
github.com/go-logr/logr v1.3.0 // indirect
113116
github.com/go-logr/stdr v1.2.2 // indirect
114-
github.com/go-ole/go-ole v1.2.6 // indirect
117+
github.com/go-ole/go-ole v1.3.0 // indirect
115118
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
116-
github.com/go-stack/stack v1.8.1 // indirect
117119
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
118120
github.com/gofrs/flock v0.8.1 // indirect
119121
github.com/gogo/googleapis v1.4.1 // indirect
@@ -144,9 +146,8 @@ require (
144146
github.com/hashicorp/hcl v1.0.0 // indirect
145147
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
146148
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
147-
github.com/holiman/uint256 v1.2.3 // indirect
148149
github.com/huandu/skiplist v1.2.0 // indirect
149-
github.com/huin/goupnp v1.0.3 // indirect
150+
github.com/huin/goupnp v1.3.0 // indirect
150151
github.com/inconshreveable/mousetrap v1.1.0 // indirect
151152
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
152153
github.com/jmespath/go-jmespath v0.4.0 // indirect
@@ -161,7 +162,7 @@ require (
161162
github.com/manifoldco/promptui v0.9.0 // indirect
162163
github.com/mattn/go-colorable v0.1.13 // indirect
163164
github.com/mattn/go-isatty v0.0.20 // indirect
164-
github.com/mattn/go-runewidth v0.0.9 // indirect
165+
github.com/mattn/go-runewidth v0.0.13 // indirect
165166
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
166167
github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect
167168
github.com/minio/highwayhash v1.0.2 // indirect
@@ -179,6 +180,7 @@ require (
179180
github.com/prometheus/common v0.42.0 // indirect
180181
github.com/prometheus/procfs v0.9.0 // indirect
181182
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
183+
github.com/rivo/uniseg v0.2.0 // indirect
182184
github.com/rogpeppe/go-internal v1.11.0 // indirect
183185
github.com/rs/zerolog v1.33.0 // indirect
184186
github.com/sagikazarmark/locafero v0.4.0 // indirect
@@ -195,8 +197,8 @@ require (
195197
github.com/tendermint/go-amino v0.16.0 // indirect
196198
github.com/tidwall/match v1.1.1 // indirect
197199
github.com/tidwall/pretty v1.2.0 // indirect
198-
github.com/tklauser/go-sysconf v0.3.10 // indirect
199-
github.com/tklauser/numcpus v0.4.0 // indirect
200+
github.com/tklauser/go-sysconf v0.3.12 // indirect
201+
github.com/tklauser/numcpus v0.6.1 // indirect
200202
github.com/ulikunitz/xz v0.5.11 // indirect
201203
github.com/zondax/hid v0.9.2 // indirect
202204
github.com/zondax/ledger-go v0.14.3 // indirect
@@ -210,19 +212,19 @@ require (
210212
go.uber.org/atomic v1.10.0 // indirect
211213
go.uber.org/multierr v1.9.0 // indirect
212214
golang.org/x/crypto v0.21.0 // indirect
213-
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
215+
golang.org/x/mod v0.14.0 // indirect
214216
golang.org/x/oauth2 v0.16.0 // indirect
215217
golang.org/x/sync v0.6.0 // indirect
216218
golang.org/x/sys v0.22.0 // indirect
217219
golang.org/x/term v0.18.0 // indirect
218220
golang.org/x/time v0.5.0 // indirect
221+
golang.org/x/tools v0.15.0 // indirect
219222
google.golang.org/api v0.155.0 // indirect
220223
google.golang.org/appengine v1.6.8 // indirect
221224
google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect
222225
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
223226
google.golang.org/protobuf v1.33.0 // indirect
224227
gopkg.in/ini.v1 v1.67.0 // indirect
225-
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
226228
gopkg.in/yaml.v3 v3.0.1 // indirect
227229
nhooyr.io/websocket v1.8.6 // indirect
228230
pgregory.net/rapid v1.1.0 // indirect
@@ -239,4 +241,4 @@ replace (
239241
)
240242

241243
// ZetaChain maintained replacements
242-
replace github.com/ethereum/go-ethereum => github.com/zeta-chain/go-ethereum v1.12.3-0.20241015175757-891ef9f51367
244+
replace github.com/ethereum/go-ethereum => github.com/zeta-chain/go-ethereum v1.13.16-0.20241018211122-a3509360e99b

0 commit comments

Comments
 (0)