Skip to content

Commit

Permalink
imp(all): Bump to latest state on Evmos main (0402a01c) (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
MalteHerrmann authored Jan 30, 2025
1 parent e95afb0 commit d2cab8a
Show file tree
Hide file tree
Showing 71 changed files with 2,580 additions and 444 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/bsr-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1.47.2
- uses: bufbuild/buf-setup-action@v1.50.0
# Push evmOS protos to the Buf Schema Registry
- uses: bufbuild/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
go.mod
go.sum
*.toml
- uses: golangci/golangci-lint-action@v6.1.1
- uses: golangci/golangci-lint-action@v6.2.0
with:
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
version: latest
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/proto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1.47.2
- uses: bufbuild/buf-setup-action@v1.50.0
- uses: bufbuild/buf-lint-action@v1
with:
input: "proto"
Expand All @@ -41,7 +41,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1.47.2
- uses: bufbuild/buf-setup-action@v1.50.0
- uses: bufbuild/buf-breaking-action@v1
with:
input: "proto"
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
This changelog was created using the `clu` binary
(https://github.com/MalteHerrmann/changelog-utils).
-->

# Changelog

## Unreleased

### Improvements

- (all) [#69](https://github.com/evmos/os/pull/69) Bump to latest state on Evmos main (0402a01c).
- (erc20) [#57](https://github.com/evmos/os/pull/57) Reference EIP-7528 (native asset address) in default ERC-20 params.
- (all) [#60](https://github.com/evmos/os/pull/60) Apply latest changes from Evmos repo (f943af3b to b72a32d76).
- (cli) [#55](https://github.com/evmos/os/pull/55) Add missing list key types subcommand.
Expand Down
9 changes: 6 additions & 3 deletions ante/evm/06_account_verification_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ func (suite *EvmAnteTestSuite) TestVerifyAccountBalance() {
keyring := testkeyring.New(2)
unitNetwork := network.NewUnitTestNetwork(
network.WithPreFundedAccounts(keyring.GetAllAccAddrs()...),
network.WithChainID(suite.chainID),
)
grpcHandler := grpc.NewIntegrationHandler(unitNetwork)
txFactory := factory.New(unitNetwork, grpcHandler)
Expand Down Expand Up @@ -53,10 +54,12 @@ func (suite *EvmAnteTestSuite) TestVerifyAccountBalance() {
suite.Require().NoError(err)

// Make tx cost greater than balance
balanceResp, err := grpcHandler.GetBalanceFromBank(senderKey.AccAddr, unitNetwork.GetBaseDenom())
balanceResp, err := grpcHandler.GetBalanceFromEVM(senderKey.AccAddr)
suite.Require().NoError(err)

invalidAmount := balanceResp.Balance.Amount.Add(math.NewInt(100))
balance, ok := math.NewIntFromString(balanceResp.Balance)
suite.Require().True(ok)
invalidAmount := balance.Add(math.NewInt(100))
txArgs.Amount = invalidAmount.BigInt()
return statedbAccount, txArgs
},
Expand Down Expand Up @@ -98,7 +101,7 @@ func (suite *EvmAnteTestSuite) TestVerifyAccountBalance() {
}

for _, tc := range testCases {
suite.Run(fmt.Sprintf("%v_%v", evmtypes.GetTxTypeName(suite.ethTxType), tc.name), func() {
suite.Run(fmt.Sprintf("%v_%v_%v", evmtypes.GetTxTypeName(suite.ethTxType), suite.chainID, tc.name), func() {
// Perform test logic
statedbAccount, txArgs := tc.generateAccountAndArgs()
txData, err := txArgs.ToTxData()
Expand Down
10 changes: 7 additions & 3 deletions ante/evm/07_can_transfer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
func (suite *EvmAnteTestSuite) TestCanTransfer() {
keyring := testkeyring.New(1)
unitNetwork := network.NewUnitTestNetwork(
network.WithChainID(suite.chainID),
network.WithPreFundedAccounts(keyring.GetAllAccAddrs()...),
)
grpcHandler := grpc.NewIntegrationHandler(unitNetwork)
Expand All @@ -45,9 +46,12 @@ func (suite *EvmAnteTestSuite) TestCanTransfer() {
expectedError: errortypes.ErrInsufficientFunds,
isLondon: true,
malleate: func(txArgs *evmtypes.EvmTxArgs) {
balanceResp, err := grpcHandler.GetBalanceFromBank(senderKey.AccAddr, unitNetwork.GetBaseDenom())
balanceResp, err := grpcHandler.GetBalanceFromEVM(senderKey.AccAddr)
suite.Require().NoError(err)
invalidAmount := balanceResp.Balance.Amount.Add(math.NewInt(1)).BigInt()

balance, ok := math.NewIntFromString(balanceResp.Balance)
suite.Require().True(ok)
invalidAmount := balance.Add(math.NewInt(1)).BigInt()
txArgs.Amount = invalidAmount
},
},
Expand All @@ -61,7 +65,7 @@ func (suite *EvmAnteTestSuite) TestCanTransfer() {
}

for _, tc := range testCases {
suite.Run(fmt.Sprintf("%v_%v", evmtypes.GetTxTypeName(suite.ethTxType), tc.name), func() {
suite.Run(fmt.Sprintf("%v_%v_%v", evmtypes.GetTxTypeName(suite.ethTxType), suite.chainID, tc.name), func() {
baseFeeResp, err := grpcHandler.GetEvmBaseFee()
suite.Require().NoError(err)
ethCfg := unitNetwork.GetEVMChainConfig()
Expand Down
55 changes: 31 additions & 24 deletions ante/evm/08_gas_consume_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
package evm_test

import (
"fmt"

sdkmath "cosmossdk.io/math"
sdktypes "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
Expand All @@ -12,11 +14,13 @@ import (
"github.com/evmos/os/testutil/integration/os/grpc"
testkeyring "github.com/evmos/os/testutil/integration/os/keyring"
"github.com/evmos/os/testutil/integration/os/network"
evmtypes "github.com/evmos/os/x/evm/types"
)

func (suite *EvmAnteTestSuite) TestUpdateCumulativeGasWanted() {
keyring := testkeyring.New(1)
unitNetwork := network.NewUnitTestNetwork(
network.WithChainID(suite.chainID),
network.WithPreFundedAccounts(keyring.GetAllAccAddrs()...),
)

Expand Down Expand Up @@ -89,6 +93,7 @@ func (suite *EvmAnteTestSuite) TestUpdateCumulativeGasWanted() {
func (suite *EvmAnteTestSuite) TestConsumeGasAndEmitEvent() {
keyring := testkeyring.New(1)
unitNetwork := network.NewUnitTestNetwork(
network.WithChainID(suite.chainID),
network.WithPreFundedAccounts(keyring.GetAllAccAddrs()...),
)
grpcHandler := grpc.NewIntegrationHandler(unitNetwork)
Expand All @@ -97,22 +102,20 @@ func (suite *EvmAnteTestSuite) TestConsumeGasAndEmitEvent() {
testCases := []struct {
name string
expectedError string
fees sdktypes.Coins
feesAmt sdkmath.Int
getSender func() sdktypes.AccAddress
}{
{
name: "success: fees are zero and event emitted",
fees: sdktypes.Coins{},
name: "success: fees are zero and event emitted",
feesAmt: sdkmath.NewInt(0),
getSender: func() sdktypes.AccAddress {
// Return prefunded sender
return keyring.GetKey(0).AccAddr
},
},
{
name: "success: there are non zero fees, user has sufficient bank balances and event emitted",
fees: sdktypes.Coins{
sdktypes.NewCoin(unitNetwork.GetBaseDenom(), sdkmath.NewInt(1000)),
},
name: "success: there are non zero fees, user has sufficient bank balances and event emitted",
feesAmt: sdkmath.NewInt(1000),
getSender: func() sdktypes.AccAddress {
// Return prefunded sender
return keyring.GetKey(0).AccAddr
Expand All @@ -121,9 +124,7 @@ func (suite *EvmAnteTestSuite) TestConsumeGasAndEmitEvent() {
{
name: "fail: insufficient user balance, event is NOT emitted",
expectedError: "failed to deduct transaction costs from user balance",
fees: sdktypes.Coins{
sdktypes.NewCoin(unitNetwork.GetBaseDenom(), sdkmath.NewInt(1000)),
},
feesAmt: sdkmath.NewInt(1000),
getSender: func() sdktypes.AccAddress {
// Set up account with too little balance (but not zero)
index := keyring.AddKey()
Expand All @@ -145,18 +146,23 @@ func (suite *EvmAnteTestSuite) TestConsumeGasAndEmitEvent() {
}

for _, tc := range testCases {
suite.Run(tc.name, func() {
suite.Run(fmt.Sprintf("%v_%v_%v", evmtypes.GetTxTypeName(suite.ethTxType), suite.chainID, tc.name), func() {
sender := tc.getSender()
prevBalance, err := grpcHandler.GetAllBalances(
sender,
)

resp, err := grpcHandler.GetBalanceFromEVM(sender)
suite.Require().NoError(err)
prevBalance, ok := sdkmath.NewIntFromString(resp.Balance)
suite.Require().True(ok)

evmDecimals := evmtypes.GetEVMCoinDecimals()
feesAmt := tc.feesAmt.Mul(evmDecimals.ConversionFactor())
fees := sdktypes.NewCoins(sdktypes.NewCoin(unitNetwork.GetBaseDenom(), feesAmt))

// Function under test
err = evmante.ConsumeFeesAndEmitEvent(
unitNetwork.GetContext(),
unitNetwork.App.EVMKeeper,
tc.fees,
fees,
sender,
)

Expand All @@ -166,31 +172,32 @@ func (suite *EvmAnteTestSuite) TestConsumeGasAndEmitEvent() {

// Check events are not present
events := unitNetwork.GetContext().EventManager().Events()
suite.Require().Zero(len(events))
suite.Require().Zero(len(events), "required no events to be emitted")
} else {
suite.Require().NoError(err)

// Check fees are deducted
afterBalance, err := grpcHandler.GetAllBalances(
sender,
)
resp, err := grpcHandler.GetBalanceFromEVM(sender)
suite.Require().NoError(err)
expectedBalance := prevBalance.Balances.Sub(tc.fees...)
suite.Require().True(
expectedBalance.Equal(afterBalance.Balances),
)
afterBalance, ok := sdkmath.NewIntFromString(resp.Balance)
suite.Require().True(ok)

suite.Require().NoError(err)
expectedBalance := prevBalance.Sub(feesAmt)
suite.Require().True(expectedBalance.Equal(afterBalance), "expected different balance after fees deduction")

// Event to be emitted
expectedEvent := sdktypes.NewEvent(
sdktypes.EventTypeTx,
sdktypes.NewAttribute(sdktypes.AttributeKeyFee, tc.fees.String()),
sdktypes.NewAttribute(sdktypes.AttributeKeyFee, fees.String()),
)
// Check events are present
events := unitNetwork.GetContext().EventManager().Events()
suite.Require().NotZero(len(events))
suite.Require().Contains(
events,
expectedEvent,
"expected different events after fees deduction",
)
}

Expand Down
1 change: 1 addition & 0 deletions ante/evm/09_increment_sequence_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
func (suite *EvmAnteTestSuite) TestIncrementSequence() {
keyring := testkeyring.New(1)
unitNetwork := network.NewUnitTestNetwork(
network.WithChainID(suite.chainID),
network.WithPreFundedAccounts(keyring.GetAllAccAddrs()...),
)
grpcHandler := grpc.NewIntegrationHandler(unitNetwork)
Expand Down
13 changes: 9 additions & 4 deletions ante/evm/10_gas_wanted_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
package evm_test

import (
"fmt"

storetypes "cosmossdk.io/store/types"
errortypes "github.com/cosmos/cosmos-sdk/types/errors"

Expand All @@ -13,16 +15,18 @@ import (
testkeyring "github.com/evmos/os/testutil/integration/os/keyring"
"github.com/evmos/os/testutil/integration/os/network"
integrationutils "github.com/evmos/os/testutil/integration/os/utils"
evmtypes "github.com/evmos/os/x/evm/types"
)

func (suite *EvmAnteTestSuite) TestCheckGasWanted() {
keyring := testkeyring.New(1)
unitNetwork := network.NewUnitTestNetwork(
network.WithChainID(suite.chainID),
network.WithPreFundedAccounts(keyring.GetAllAccAddrs()...),
)
grpcHandler := grpc.NewIntegrationHandler(unitNetwork)
txFactory := factory.New(unitNetwork, grpcHandler)
commonGasLimit := uint64(100000)
commonGasLimit := uint64(100_000)

testCases := []struct {
name string
Expand Down Expand Up @@ -69,16 +73,17 @@ func (suite *EvmAnteTestSuite) TestCheckGasWanted() {
// Set basefee param to false
feeMarketParams, err := grpcHandler.GetFeeMarketParams()
suite.Require().NoError(err)

feeMarketParams.Params.NoBaseFee = true
err = integrationutils.UpdateFeeMarketParams(integrationutils.UpdateParamsInput{
Tf: txFactory,
Network: unitNetwork,
Pk: keyring.GetPrivKey(0),
Params: feeMarketParams.Params,
})
suite.Require().NoError(err)
suite.Require().NoError(err, "expected no error when updating fee market params")

blockMeter := storetypes.NewGasMeter(commonGasLimit + 10000)
blockMeter := storetypes.NewGasMeter(commonGasLimit + 10_000)
return unitNetwork.GetContext().WithBlockGasMeter(blockMeter)
},
isLondon: true,
Expand All @@ -87,7 +92,7 @@ func (suite *EvmAnteTestSuite) TestCheckGasWanted() {
}

for _, tc := range testCases {
suite.Run(tc.name, func() {
suite.Run(fmt.Sprintf("%v_%v_%v", evmtypes.GetTxTypeName(suite.ethTxType), suite.chainID, tc.name), func() {
sender := keyring.GetKey(0)
txArgs, err := txFactory.GenerateDefaultTxTypeArgs(
sender.Addr,
Expand Down
21 changes: 12 additions & 9 deletions ante/evm/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"testing"

gethtypes "github.com/ethereum/go-ethereum/core/types"
testconstants "github.com/evmos/os/testutil/constants"
"github.com/stretchr/testify/suite"
)

Expand All @@ -15,16 +16,18 @@ type EvmAnteTestSuite struct {

// To make sure that every tests is run with all the tx types
ethTxType int
chainID string
}

func TestEvmAnteTestSuite(t *testing.T) {
suite.Run(t, &EvmAnteTestSuite{
ethTxType: gethtypes.DynamicFeeTxType,
})
suite.Run(t, &EvmAnteTestSuite{
ethTxType: gethtypes.LegacyTxType,
})
suite.Run(t, &EvmAnteTestSuite{
ethTxType: gethtypes.AccessListTxType,
})
txTypes := []int{gethtypes.DynamicFeeTxType, gethtypes.LegacyTxType, gethtypes.AccessListTxType}
chainIDs := []string{testconstants.ExampleChainID, testconstants.SixDecimalsChainID}
for _, txType := range txTypes {
for _, chainID := range chainIDs {
suite.Run(t, &EvmAnteTestSuite{
ethTxType: txType,
chainID: chainID,
})
}
}
}
Loading

0 comments on commit d2cab8a

Please sign in to comment.