Skip to content

Commit 6c1856c

Browse files
committed
fix go lint
1 parent 870c0dc commit 6c1856c

File tree

3 files changed

+70
-59
lines changed

3 files changed

+70
-59
lines changed

precompiles/bank2/bank.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ import (
1010
"github.com/ethereum/go-ethereum/core/vm"
1111
"github.com/ethereum/go-ethereum/crypto"
1212

13-
sdkmath "cosmossdk.io/math"
14-
sdk "github.com/cosmos/cosmos-sdk/types"
15-
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
13+
_ "embed"
14+
1615
"github.com/cosmos/evm/x/vm/statedb"
1716
evmtypes "github.com/cosmos/evm/x/vm/types"
1817

19-
_ "embed"
18+
sdkmath "cosmossdk.io/math"
19+
20+
sdk "github.com/cosmos/cosmos-sdk/types"
21+
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
2022
)
2123

2224
var (
@@ -50,9 +52,7 @@ const (
5052
MethodTransferFrom
5153
)
5254

53-
var (
54-
_ vm.PrecompiledContract = &Precompile{}
55-
)
55+
var _ vm.PrecompiledContract = &Precompile{}
5656

5757
type Precompile struct {
5858
msgServer BankMsgServer
@@ -113,7 +113,7 @@ func (p Precompile) Decimals(ctx sdk.Context, input []byte) ([]byte, error) {
113113
return nil, vm.ErrExecutionReverted
114114
}
115115

116-
return []byte{uint8(metadata.DenomUnits[0].Exponent)}, nil
116+
return []byte{uint8(metadata.DenomUnits[0].Exponent)}, nil //nolint:gosec // G115: range is checked above
117117
}
118118

119119
// TotalSupply

precompiles/bank2/bank_test.go

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,30 @@ package bank2
22

33
import (
44
"math/big"
5+
"slices"
56
"strings"
67
"testing"
78

8-
"github.com/holiman/uint256"
9-
"github.com/stretchr/testify/require"
10-
119
"github.com/ethereum/go-ethereum/accounts/abi"
1210
"github.com/ethereum/go-ethereum/common"
1311
"github.com/ethereum/go-ethereum/core/vm"
12+
"github.com/holiman/uint256"
13+
"github.com/stretchr/testify/require"
14+
15+
_ "embed"
1416

15-
"cosmossdk.io/log"
16-
sdkmath "cosmossdk.io/math"
17-
"cosmossdk.io/store"
1817
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
18+
1919
dbm "github.com/cosmos/cosmos-db"
20-
sdk "github.com/cosmos/cosmos-sdk/types"
21-
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
2220
"github.com/cosmos/evm/testutil/constants"
2321
evmtypes "github.com/cosmos/evm/x/vm/types"
2422

25-
_ "embed"
23+
"cosmossdk.io/log"
24+
sdkmath "cosmossdk.io/math"
25+
"cosmossdk.io/store"
26+
27+
sdk "github.com/cosmos/cosmos-sdk/types"
28+
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
2629
)
2730

2831
var (
@@ -55,6 +58,7 @@ type TokenInfo struct {
5558
}
5659

5760
func Setup(t *testing.T, token TokenInfo, mintTo common.Address, mintAmount uint64) *vm.EVM {
61+
t.Helper()
5862
nativeDenom := evmtypes.GetEVMCoinDenom()
5963

6064
rawdb := dbm.NewMemDB()
@@ -119,6 +123,7 @@ func TestBankPrecompile(t *testing.T) {
119123
erc20 := ERC20ContractAddress(BankPrecompile, token.Denom)
120124

121125
setup := func(t *testing.T) *vm.EVM {
126+
t.Helper()
122127
return Setup(t, token, user1, amount)
123128
}
124129

@@ -133,38 +138,45 @@ func TestBankPrecompile(t *testing.T) {
133138
{"name", MethodName, user1, []byte(token.Denom), []byte(token.Name), nil},
134139
{"symbol", MethodSymbol, user1, []byte(token.Denom), []byte(token.Symbol), nil},
135140
{"decimals", MethodDecimals, user1, []byte(token.Denom), []byte{token.Decimals}, nil},
136-
{"totalSupply", MethodTotalSupply, user1,
141+
{
142+
"totalSupply", MethodTotalSupply, user1,
137143
[]byte(token.Denom),
138144
common.LeftPadBytes(new(big.Int).SetUint64(amount).Bytes(), 32),
139145
nil,
140146
},
141-
{"balanceOf", MethodBalanceOf, user1,
142-
append(user1.Bytes(), []byte(token.Denom)...),
147+
{
148+
"balanceOf", MethodBalanceOf, user1,
149+
slices.Concat(user1.Bytes(), []byte(token.Denom)),
143150
common.LeftPadBytes(new(big.Int).SetUint64(amount).Bytes(), 32),
144151
nil,
145152
},
146-
{"balanceOf-empty", MethodBalanceOf, user2,
147-
append(user2.Bytes(), []byte(token.Denom)...),
153+
{
154+
"balanceOf-empty", MethodBalanceOf, user2,
155+
slices.Concat(user2.Bytes(), []byte(token.Denom)),
148156
common.LeftPadBytes([]byte{}, 32),
149157
nil,
150158
},
151-
{"transferFrom-owner", MethodTransferFrom, user1,
152-
TransferFromInput(user1, user2, big.NewInt(100), token.Denom),
159+
{
160+
"transferFrom-owner", MethodTransferFrom, user1,
161+
slices.Concat(user1.Bytes(), user2.Bytes(), common.LeftPadBytes(big.NewInt(100).Bytes(), 32), []byte(token.Denom)),
153162
[]byte{1},
154163
nil,
155164
},
156-
{"transferFrom-erc20", MethodTransferFrom, erc20,
157-
TransferFromInput(user1, user2, big.NewInt(100), token.Denom),
165+
{
166+
"transferFrom-erc20", MethodTransferFrom, erc20,
167+
slices.Concat(user1.Bytes(), user2.Bytes(), common.LeftPadBytes(big.NewInt(100).Bytes(), 32), []byte(token.Denom)),
158168
[]byte{1},
159169
nil,
160170
},
161-
{"transferFrom-unauthorized", MethodTransferFrom, user2,
162-
TransferFromInput(user1, user2, big.NewInt(100), token.Denom),
171+
{
172+
"transferFrom-unauthorized", MethodTransferFrom, user2,
173+
slices.Concat(user1.Bytes(), user2.Bytes(), common.LeftPadBytes(big.NewInt(100).Bytes(), 32), []byte(token.Denom)),
163174
nil,
164175
vm.ErrExecutionReverted,
165176
},
166-
{"transferFrom-insufficient-balance", MethodTransferFrom, user2,
167-
TransferFromInput(user2, user1, big.NewInt(100), token.Denom),
177+
{
178+
"transferFrom-insufficient-balance", MethodTransferFrom, user2,
179+
slices.Concat(user2.Bytes(), user1.Bytes(), common.LeftPadBytes(big.NewInt(100).Bytes(), 32), []byte(token.Denom)),
168180
nil,
169181
vm.ErrExecutionReverted,
170182
},
@@ -177,7 +189,7 @@ func TestBankPrecompile(t *testing.T) {
177189
for _, tc := range testCases {
178190
t.Run(tc.name, func(t *testing.T) {
179191
evm := setup(t)
180-
input := append([]byte{byte(tc.method)}, tc.input...)
192+
input := slices.Concat([]byte{byte(tc.method)}, tc.input)
181193
ret, _, err := evm.Call(tc.caller, BankPrecompile, input, GasLimit, uint256.NewInt(0))
182194
if tc.expErr != nil {
183195
require.Equal(t, tc.expErr, err)
@@ -206,6 +218,7 @@ func TestBankERC20(t *testing.T) {
206218
nativeERC20 := ERC20ContractAddress(BankPrecompile, evmtypes.GetEVMCoinDenom())
207219

208220
setup := func(t *testing.T) *vm.EVM {
221+
t.Helper()
209222
evm := Setup(t, token, user1, amount)
210223
DeployERC20(t, evm, BankPrecompile, evmtypes.GetEVMCoinDenom())
211224
return evm
@@ -224,27 +237,32 @@ func TestBankERC20(t *testing.T) {
224237
{"symbol", "symbol", zero, erc20, nil, []interface{}{token.Symbol}, nil},
225238
{"decimals", "decimals", zero, erc20, nil, []interface{}{token.Decimals}, nil},
226239
{"totalSupply", "totalSupply", zero, erc20, nil, []interface{}{bigAmount}, nil},
227-
{"balanceOf", "balanceOf", zero, erc20,
240+
{
241+
"balanceOf", "balanceOf", zero, erc20,
228242
[]interface{}{user1},
229243
[]interface{}{bigAmount},
230244
nil,
231245
},
232-
{"balanceOf-empty", "balanceOf", zero, erc20,
246+
{
247+
"balanceOf-empty", "balanceOf", zero, erc20,
233248
[]interface{}{user2},
234249
[]interface{}{common.Big0},
235250
nil,
236251
},
237-
{"transfer", "transfer", user1, erc20,
252+
{
253+
"transfer", "transfer", user1, erc20,
238254
[]interface{}{user2, big.NewInt(100)},
239255
[]interface{}{true},
240256
nil,
241257
},
242-
{"transfer-insufficient-balance", "transfer", user2, erc20,
258+
{
259+
"transfer-insufficient-balance", "transfer", user2, erc20,
243260
[]interface{}{user1, big.NewInt(100)},
244261
nil,
245262
vm.ErrExecutionReverted,
246263
},
247-
{"native-fail", "transfer", user1, nativeERC20,
264+
{
265+
"native-fail", "transfer", user1, nativeERC20,
248266
[]interface{}{user2, big.NewInt(100)},
249267
nil,
250268
vm.ErrExecutionReverted,
@@ -261,7 +279,7 @@ func TestBankERC20(t *testing.T) {
261279
input, err := method.Inputs.Pack(tc.input...)
262280
require.NoError(t, err)
263281

264-
ret, _, err := evm.Call(tc.caller, tc.token, append(method.ID, input...), GasLimit, uint256.NewInt(0))
282+
ret, _, err := evm.Call(tc.caller, tc.token, slices.Concat(method.ID, input), GasLimit, uint256.NewInt(0))
265283
if tc.expErr != nil {
266284
require.Equal(t, tc.expErr, err)
267285
return
@@ -275,17 +293,10 @@ func TestBankERC20(t *testing.T) {
275293
}
276294
}
277295

278-
func TransferFromInput(from, to common.Address, amount *big.Int, denom string) []byte {
279-
fixedBuf := make([]byte, 20+20+32) // from + to + amount
280-
copy(fixedBuf[0:20], from.Bytes())
281-
copy(fixedBuf[20:40], to.Bytes())
282-
copy(fixedBuf[40:72], common.LeftPadBytes(amount.Bytes(), 32))
283-
return append(fixedBuf, []byte(denom)...)
284-
}
285-
286296
// DeployCreate2 deploys the deterministic contract factory
287297
// https://github.com/Arachnid/deterministic-deployment-proxy
288298
func DeployCreate2(t *testing.T, evm *vm.EVM) {
299+
t.Helper()
289300
caller := common.HexToAddress("0x3fAB184622Dc19b6109349B94811493BF2a45362")
290301
code := common.FromHex("604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3")
291302
_, address, _, err := evm.Create(caller, code, GasLimit, uint256.NewInt(0))
@@ -294,10 +305,10 @@ func DeployCreate2(t *testing.T, evm *vm.EVM) {
294305
}
295306

296307
func DeployERC20(t *testing.T, evm *vm.EVM, bank common.Address, denom string) {
308+
t.Helper()
297309
caller := common.BigToAddress(common.Big0)
298310

299-
initcode := append(ERC20Bin, ERC20Constructor(denom, bank)...)
300-
input := append(ERC20Salt, initcode...)
311+
input := slices.Concat(ERC20Salt, ERC20Bin, ERC20Constructor(denom, bank))
301312
_, _, err := evm.Call(caller, Create2FactoryAddress, input, GasLimit, uint256.NewInt(0))
302313
require.NoError(t, err)
303314

precompiles/bank2/mock.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,19 @@ import (
44
"context"
55
"math/big"
66

7+
"github.com/ethereum/go-ethereum/common"
8+
"github.com/ethereum/go-ethereum/core"
9+
"github.com/ethereum/go-ethereum/core/vm"
10+
11+
"github.com/cosmos/evm/x/vm/statedb"
12+
evmtypes "github.com/cosmos/evm/x/vm/types"
13+
714
errorsmod "cosmossdk.io/errors"
815
sdkmath "cosmossdk.io/math"
16+
917
sdk "github.com/cosmos/cosmos-sdk/types"
1018
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
1119
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
12-
"github.com/cosmos/evm/x/vm/statedb"
13-
evmtypes "github.com/cosmos/evm/x/vm/types"
14-
"github.com/ethereum/go-ethereum/common"
15-
"github.com/ethereum/go-ethereum/core"
16-
"github.com/ethereum/go-ethereum/core/vm"
1720
)
1821

1922
type MockBankKeeper struct {
@@ -49,12 +52,11 @@ func (k MockBankKeeper) registerDenom(denom string, metadata banktypes.Metadata)
4952
}
5053

5154
func (k MockBankKeeper) mint(to sdk.AccAddress, amt sdk.Coins) {
52-
addrKey := string(to)
5355
for _, coin := range amt {
54-
m := k.balances[addrKey]
56+
m := k.balances[string(to)]
5557
if m == nil {
5658
m = make(map[string]int64)
57-
k.balances[addrKey] = m
59+
k.balances[string(to)] = m
5860
}
5961
amount := coin.Amount.Int64()
6062
m[coin.Denom] += amount
@@ -63,10 +65,9 @@ func (k MockBankKeeper) mint(to sdk.AccAddress, amt sdk.Coins) {
6365
}
6466

6567
func (k MockBankKeeper) burn(from sdk.AccAddress, amt sdk.Coins) error {
66-
addrKey := string(from)
6768
for _, coin := range amt {
6869
amount := coin.Amount.Int64()
69-
m, ok := k.balances[addrKey]
70+
m, ok := k.balances[string(from)]
7071
if !ok {
7172
return errorsmod.Wrapf(sdkerrors.ErrInsufficientFunds, "address: 0x%x, denom: %s, expect: %d, got: %d", from.Bytes(), coin.Denom, amount, 0)
7273
}
@@ -98,9 +99,8 @@ func (k MockBankKeeper) GetDenomMetaData(ctx context.Context, denom string) (ban
9899
}
99100

100101
func (k MockBankKeeper) GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin {
101-
addrKey := string(addr)
102102
amount := int64(0)
103-
if m, ok := k.balances[addrKey]; ok {
103+
if m, ok := k.balances[string(addr)]; ok {
104104
amount = m[denom]
105105
}
106106

0 commit comments

Comments
 (0)