refactor: remove header type from NewContext (#17426)

Co-authored-by: marbar3778 <marbar3778@yahoo.com>
This commit is contained in:
Marko
2023-08-21 16:29:20 +00:00
committed by GitHub
co-authored by marbar3778
parent dc62bd7ade
commit 393dcc1f2a
38 changed files with 79 additions and 102 deletions
+12 -6
View File
@@ -121,14 +121,14 @@ func (c Context) Err() error {
}
// create a new context
func NewContext(ms storetypes.MultiStore, header cmtproto.Header, isCheckTx bool, logger log.Logger) Context {
// https://github.com/gogo/protobuf/issues/519
header.Time = header.Time.UTC()
func NewContext(ms storetypes.MultiStore, isCheckTx bool, logger log.Logger) Context {
h := cmtproto.Header{}
h.Time = h.Time.UTC()
return Context{
baseCtx: context.Background(),
ms: ms,
header: header,
chainID: header.ChainID,
header: h,
chainID: h.ChainID,
checkTx: isCheckTx,
logger: logger,
gasMeter: storetypes.NewInfiniteGasMeter(),
@@ -136,6 +136,9 @@ func NewContext(ms storetypes.MultiStore, header cmtproto.Header, isCheckTx bool
eventManager: NewEventManager(),
kvGasConfig: storetypes.KVGasConfig(),
transientKVGasConfig: storetypes.TransientGasConfig(),
headerInfo: header.Info{
Time: h.Time.UTC(),
},
}
}
@@ -156,6 +159,9 @@ func (c Context) WithBlockHeader(header cmtproto.Header) Context {
// https://github.com/gogo/protobuf/issues/519
header.Time = header.Time.UTC()
c.header = header
// when calling withBlockheader on a new context chainID in the struct is empty
c.chainID = header.ChainID
return c
}
@@ -303,7 +309,7 @@ func (c Context) WithCometInfo(cometInfo comet.BlockInfo) Context {
// WithHeaderInfo returns a Context with an updated header info
func (c Context) WithHeaderInfo(headerInfo header.Info) Context {
// Settime to UTC
// Set time to UTC
headerInfo.Time = headerInfo.Time.UTC()
c.headerInfo = headerInfo
return c
+6 -7
View File
@@ -84,7 +84,6 @@ func (s *contextTestSuite) TestContextWithCustom() {
ctrl := gomock.NewController(s.T())
s.T().Cleanup(ctrl.Finish)
header := cmtproto.Header{}
height := int64(1)
chainid := "chainid"
ischeck := true
@@ -97,8 +96,8 @@ func (s *contextTestSuite) TestContextWithCustom() {
headerHash := []byte("headerHash")
zeroGasCfg := storetypes.GasConfig{}
ctx = types.NewContext(nil, header, ischeck, logger)
s.Require().Equal(header, ctx.BlockHeader())
ctx = types.NewContext(nil, ischeck, logger)
s.Require().Equal(cmtproto.Header{}, ctx.BlockHeader())
ctx = ctx.
WithBlockHeight(height).
@@ -152,7 +151,7 @@ func (s *contextTestSuite) TestContextHeader() {
addr := secp256k1.GenPrivKey().PubKey().Address()
proposer := types.ConsAddress(addr)
ctx = types.NewContext(nil, cmtproto.Header{}, false, nil)
ctx = types.NewContext(nil, false, nil)
ctx = ctx.
WithBlockHeight(height).
@@ -166,7 +165,7 @@ func (s *contextTestSuite) TestContextHeader() {
func (s *contextTestSuite) TestWithBlockTime() {
now := time.Now()
ctx := types.NewContext(nil, cmtproto.Header{}, false, nil)
ctx := types.NewContext(nil, false, nil)
ctx = ctx.WithBlockTime(now)
cmttime2 := cmttime.Canonical(now)
s.Require().Equal(ctx.BlockTime(), cmttime2)
@@ -215,7 +214,7 @@ func (s *contextTestSuite) TestContextHeaderClone() {
for name, tc := range cases {
tc := tc
s.T().Run(name, func(t *testing.T) {
ctx := types.NewContext(nil, tc.h, false, nil)
ctx := types.NewContext(nil, false, nil).WithBlockHeader(tc.h)
s.Require().Equal(tc.h.Height, ctx.BlockHeight())
s.Require().Equal(tc.h.Time.UTC(), ctx.BlockTime())
@@ -229,7 +228,7 @@ func (s *contextTestSuite) TestContextHeaderClone() {
}
func (s *contextTestSuite) TestUnwrapSDKContext() {
sdkCtx := types.NewContext(nil, cmtproto.Header{}, false, nil)
sdkCtx := types.NewContext(nil, false, nil)
ctx := types.WrapSDKContext(sdkCtx)
sdkCtx2 := types.UnwrapSDKContext(ctx)
s.Require().Equal(sdkCtx, sdkCtx2)
+2 -3
View File
@@ -5,7 +5,6 @@ import (
"math/rand"
"testing"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
protov2 "google.golang.org/protobuf/proto"
@@ -132,7 +131,7 @@ func fetchTxs(iterator mempool.Iterator, maxBytes int64) []sdk.Tx {
func (s *MempoolTestSuite) TestDefaultMempool() {
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 10)
txCount := 1000
var txs []testTx
@@ -224,7 +223,7 @@ func TestMempoolTestSuite(t *testing.T) {
}
func (s *MempoolTestSuite) TestSampleTxs() {
ctxt := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctxt := sdk.NewContext(nil, false, log.NewNopLogger())
t := s.T()
s.resetMempool()
mp := s.mempool
+7 -8
View File
@@ -7,7 +7,6 @@ import (
"testing"
"time"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/stretchr/testify/require"
"cosmossdk.io/log"
@@ -62,7 +61,7 @@ func TestOutOfOrder(t *testing.T) {
func (s *MempoolTestSuite) TestPriorityNonceTxOrder() {
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 5)
sa := accounts[0].Address
sb := accounts[1].Address
@@ -260,7 +259,7 @@ func (s *MempoolTestSuite) TestPriorityNonceTxOrder() {
}
func (s *MempoolTestSuite) TestPriorityTies() {
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 3)
sa := accounts[0].Address
sb := accounts[1].Address
@@ -383,7 +382,7 @@ func (s *MempoolTestSuite) TestRandomGeneratedTxs() {
)
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
seed := time.Now().UnixNano()
t.Logf("running with seed: %d", seed)
@@ -419,7 +418,7 @@ func (s *MempoolTestSuite) TestRandomWalkTxs() {
s.mempool = mempool.DefaultPriorityMempool()
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
seed := time.Now().UnixNano()
// interesting failing seeds:
@@ -592,7 +591,7 @@ func TestTxOrderN(t *testing.T) {
func TestPriorityNonceMempool_NextSenderTx(t *testing.T) {
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 2)
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accA := accounts[0].Address
accB := accounts[1].Address
@@ -622,7 +621,7 @@ func TestPriorityNonceMempool_NextSenderTx(t *testing.T) {
func TestNextSenderTx_TxLimit(t *testing.T) {
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 2)
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
sa := accounts[0].Address
sb := accounts[1].Address
@@ -695,7 +694,7 @@ func TestNextSenderTx_TxLimit(t *testing.T) {
func TestNextSenderTx_TxReplacement(t *testing.T) {
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 1)
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
sa := accounts[0].Address
txs := []testTx{
+1 -2
View File
@@ -3,7 +3,6 @@ package mempool_test
import (
"sort"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/stretchr/testify/require"
"pgregory.net/rapid"
@@ -34,7 +33,7 @@ func AddressGenerator(t *rapid.T) *rapid.Generator[sdk.AccAddress] {
}
func testMempoolProperties(t *rapid.T) {
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
mp := mempool.NewSenderNonceMempool()
genMultipleAddress := rapid.SliceOfNDistinct(AddressGenerator(t), 1, 10, func(acc sdk.AccAddress) string {
+3 -4
View File
@@ -5,7 +5,6 @@ import (
"math/rand"
"testing"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/stretchr/testify/require"
"cosmossdk.io/log"
@@ -17,7 +16,7 @@ import (
func (s *MempoolTestSuite) TestTxOrder() {
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 5)
sa := accounts[0].Address
sb := accounts[1].Address
@@ -141,7 +140,7 @@ func (s *MempoolTestSuite) TestTxOrder() {
func (s *MempoolTestSuite) TestMaxTx() {
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 1)
mp := mempool.NewSenderNonceMempool(mempool.SenderNonceMaxTxOpt(1))
@@ -171,7 +170,7 @@ func (s *MempoolTestSuite) TestMaxTx() {
func (s *MempoolTestSuite) TestTxNotFoundOnSender() {
t := s.T()
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
accounts := simtypes.RandomAccounts(rand.New(rand.NewSource(0)), 1)
mp := mempool.NewSenderNonceMempool()
+4 -5
View File
@@ -8,7 +8,6 @@ import (
"testing"
abci "github.com/cometbft/cometbft/abci/types"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/golang/mock/gomock"
"github.com/spf13/cobra"
"github.com/stretchr/testify/require"
@@ -240,7 +239,7 @@ func TestManager_InitGenesis(t *testing.T) {
require.NotNil(t, mm)
require.Equal(t, 3, len(mm.Modules))
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
interfaceRegistry := types.NewInterfaceRegistry()
cdc := codec.NewProtoCodec(interfaceRegistry)
genesisData := map[string]json.RawMessage{"module1": json.RawMessage(`{"key": "value"}`)}
@@ -284,7 +283,7 @@ func TestManager_ExportGenesis(t *testing.T) {
require.NotNil(t, mm)
require.Equal(t, 3, len(mm.Modules))
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
interfaceRegistry := types.NewInterfaceRegistry()
cdc := codec.NewProtoCodec(interfaceRegistry)
mockAppModule1.EXPECT().ExportGenesis(gomock.Eq(ctx), gomock.Eq(cdc)).AnyTimes().Return(json.RawMessage(`{"key1": "value1"}`))
@@ -370,7 +369,7 @@ func TestCoreAPIManager_InitGenesis(t *testing.T) {
require.NotNil(t, mm)
require.Equal(t, 1, len(mm.Modules))
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
interfaceRegistry := types.NewInterfaceRegistry()
cdc := codec.NewProtoCodec(interfaceRegistry)
genesisData := map[string]json.RawMessage{"module1": json.RawMessage(`{"key": "value"}`)}
@@ -394,7 +393,7 @@ func TestCoreAPIManager_ExportGenesis(t *testing.T) {
require.NotNil(t, mm)
require.Equal(t, 2, len(mm.Modules))
ctx := sdk.NewContext(nil, cmtproto.Header{}, false, log.NewNopLogger())
ctx := sdk.NewContext(nil, false, log.NewNopLogger())
interfaceRegistry := types.NewInterfaceRegistry()
cdc := codec.NewProtoCodec(interfaceRegistry)
want := map[string]json.RawMessage{