Remove txGasLimit, update tests
This commit is contained in:
parent
03e220700e
commit
3d5b048444
|
@ -49,7 +49,6 @@ type BaseApp struct {
|
||||||
// must be set
|
// must be set
|
||||||
txDecoder sdk.TxDecoder // unmarshal []byte into sdk.Tx
|
txDecoder sdk.TxDecoder // unmarshal []byte into sdk.Tx
|
||||||
anteHandler sdk.AnteHandler // ante handler for fee and auth
|
anteHandler sdk.AnteHandler // ante handler for fee and auth
|
||||||
txGasLimit sdk.Gas // per-transaction gas limit
|
|
||||||
|
|
||||||
// may be nil
|
// may be nil
|
||||||
initChainer sdk.InitChainer // initialize state with validators and state blob
|
initChainer sdk.InitChainer // initialize state with validators and state blob
|
||||||
|
@ -74,7 +73,7 @@ var _ abci.Application = (*BaseApp)(nil)
|
||||||
|
|
||||||
// Create and name new BaseApp
|
// Create and name new BaseApp
|
||||||
// NOTE: The db is used to store the version number for now.
|
// NOTE: The db is used to store the version number for now.
|
||||||
func NewBaseApp(name string, cdc *wire.Codec, logger log.Logger, db dbm.DB, txGasLimit sdk.Gas) *BaseApp {
|
func NewBaseApp(name string, cdc *wire.Codec, logger log.Logger, db dbm.DB) *BaseApp {
|
||||||
app := &BaseApp{
|
app := &BaseApp{
|
||||||
Logger: logger,
|
Logger: logger,
|
||||||
name: name,
|
name: name,
|
||||||
|
@ -84,7 +83,6 @@ func NewBaseApp(name string, cdc *wire.Codec, logger log.Logger, db dbm.DB, txGa
|
||||||
router: NewRouter(),
|
router: NewRouter(),
|
||||||
codespacer: sdk.NewCodespacer(),
|
codespacer: sdk.NewCodespacer(),
|
||||||
txDecoder: defaultTxDecoder(cdc),
|
txDecoder: defaultTxDecoder(cdc),
|
||||||
txGasLimit: txGasLimit,
|
|
||||||
}
|
}
|
||||||
// Register the undefined & root codespaces, which should not be used by any modules
|
// Register the undefined & root codespaces, which should not be used by any modules
|
||||||
app.codespacer.RegisterOrPanic(sdk.CodespaceUndefined)
|
app.codespacer.RegisterOrPanic(sdk.CodespaceUndefined)
|
||||||
|
@ -235,9 +233,9 @@ func (app *BaseApp) initFromStore(mainKey sdk.StoreKey) error {
|
||||||
// NewContext returns a new Context with the correct store, the given header, and nil txBytes.
|
// NewContext returns a new Context with the correct store, the given header, and nil txBytes.
|
||||||
func (app *BaseApp) NewContext(isCheckTx bool, header abci.Header) sdk.Context {
|
func (app *BaseApp) NewContext(isCheckTx bool, header abci.Header) sdk.Context {
|
||||||
if isCheckTx {
|
if isCheckTx {
|
||||||
return sdk.NewContext(app.checkState.ms, header, true, nil, app.Logger, app.txGasLimit)
|
return sdk.NewContext(app.checkState.ms, header, true, nil, app.Logger, 0)
|
||||||
}
|
}
|
||||||
return sdk.NewContext(app.deliverState.ms, header, false, nil, app.Logger, app.txGasLimit)
|
return sdk.NewContext(app.deliverState.ms, header, false, nil, app.Logger, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
type state struct {
|
type state struct {
|
||||||
|
@ -253,7 +251,7 @@ func (app *BaseApp) setCheckState(header abci.Header) {
|
||||||
ms := app.cms.CacheMultiStore()
|
ms := app.cms.CacheMultiStore()
|
||||||
app.checkState = &state{
|
app.checkState = &state{
|
||||||
ms: ms,
|
ms: ms,
|
||||||
ctx: sdk.NewContext(ms, header, true, nil, app.Logger, app.txGasLimit),
|
ctx: sdk.NewContext(ms, header, true, nil, app.Logger, 0),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,7 +259,7 @@ func (app *BaseApp) setDeliverState(header abci.Header) {
|
||||||
ms := app.cms.CacheMultiStore()
|
ms := app.cms.CacheMultiStore()
|
||||||
app.deliverState = &state{
|
app.deliverState = &state{
|
||||||
ms: ms,
|
ms: ms,
|
||||||
ctx: sdk.NewContext(ms, header, false, nil, app.Logger, app.txGasLimit),
|
ctx: sdk.NewContext(ms, header, false, nil, app.Logger, 0),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ func newBaseApp(name string) *BaseApp {
|
||||||
db := dbm.NewMemDB()
|
db := dbm.NewMemDB()
|
||||||
codec := wire.NewCodec()
|
codec := wire.NewCodec()
|
||||||
wire.RegisterCrypto(codec)
|
wire.RegisterCrypto(codec)
|
||||||
return NewBaseApp(name, codec, logger, db, 10000)
|
return NewBaseApp(name, codec, logger, db)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMountStores(t *testing.T) {
|
func TestMountStores(t *testing.T) {
|
||||||
|
@ -63,7 +63,7 @@ func TestLoadVersion(t *testing.T) {
|
||||||
logger := defaultLogger()
|
logger := defaultLogger()
|
||||||
db := dbm.NewMemDB()
|
db := dbm.NewMemDB()
|
||||||
name := t.Name()
|
name := t.Name()
|
||||||
app := NewBaseApp(name, nil, logger, db, 10000)
|
app := NewBaseApp(name, nil, logger, db)
|
||||||
|
|
||||||
// make a cap key and mount the store
|
// make a cap key and mount the store
|
||||||
capKey := sdk.NewKVStoreKey("main")
|
capKey := sdk.NewKVStoreKey("main")
|
||||||
|
@ -85,7 +85,7 @@ func TestLoadVersion(t *testing.T) {
|
||||||
commitID := sdk.CommitID{1, res.Data}
|
commitID := sdk.CommitID{1, res.Data}
|
||||||
|
|
||||||
// reload
|
// reload
|
||||||
app = NewBaseApp(name, nil, logger, db, 10000)
|
app = NewBaseApp(name, nil, logger, db)
|
||||||
app.MountStoresIAVL(capKey)
|
app.MountStoresIAVL(capKey)
|
||||||
err = app.LoadLatestVersion(capKey) // needed to make stores non-nil
|
err = app.LoadLatestVersion(capKey) // needed to make stores non-nil
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
|
@ -151,7 +151,7 @@ func TestInitChainer(t *testing.T) {
|
||||||
name := t.Name()
|
name := t.Name()
|
||||||
db := dbm.NewMemDB()
|
db := dbm.NewMemDB()
|
||||||
logger := defaultLogger()
|
logger := defaultLogger()
|
||||||
app := NewBaseApp(name, nil, logger, db, 10000)
|
app := NewBaseApp(name, nil, logger, db)
|
||||||
// make cap keys and mount the stores
|
// make cap keys and mount the stores
|
||||||
// NOTE/TODO: mounting multiple stores is broken
|
// NOTE/TODO: mounting multiple stores is broken
|
||||||
// see https://github.com/cosmos/cosmos-sdk/issues/532
|
// see https://github.com/cosmos/cosmos-sdk/issues/532
|
||||||
|
@ -188,7 +188,7 @@ func TestInitChainer(t *testing.T) {
|
||||||
assert.Equal(t, value, res.Value)
|
assert.Equal(t, value, res.Value)
|
||||||
|
|
||||||
// reload app
|
// reload app
|
||||||
app = NewBaseApp(name, nil, logger, db, 10000)
|
app = NewBaseApp(name, nil, logger, db)
|
||||||
app.MountStoresIAVL(capKey, capKey2)
|
app.MountStoresIAVL(capKey, capKey2)
|
||||||
err = app.LoadLatestVersion(capKey) // needed to make stores non-nil
|
err = app.LoadLatestVersion(capKey) // needed to make stores non-nil
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
|
@ -328,7 +328,7 @@ func TestSimulateTx(t *testing.T) {
|
||||||
func TestTxGasLimits(t *testing.T) {
|
func TestTxGasLimits(t *testing.T) {
|
||||||
logger := defaultLogger()
|
logger := defaultLogger()
|
||||||
db := dbm.NewMemDB()
|
db := dbm.NewMemDB()
|
||||||
app := NewBaseApp(t.Name(), nil, logger, db, 0)
|
app := NewBaseApp(t.Name(), nil, logger, db)
|
||||||
|
|
||||||
// make a cap key and mount the store
|
// make a cap key and mount the store
|
||||||
capKey := sdk.NewKVStoreKey("main")
|
capKey := sdk.NewKVStoreKey("main")
|
||||||
|
@ -336,7 +336,10 @@ func TestTxGasLimits(t *testing.T) {
|
||||||
err := app.LoadLatestVersion(capKey) // needed to make stores non-nil
|
err := app.LoadLatestVersion(capKey) // needed to make stores non-nil
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
|
|
||||||
app.SetAnteHandler(func(ctx sdk.Context, tx sdk.Tx) (newCtx sdk.Context, res sdk.Result, abort bool) { return })
|
app.SetAnteHandler(func(ctx sdk.Context, tx sdk.Tx) (newCtx sdk.Context, res sdk.Result, abort bool) {
|
||||||
|
newCtx = ctx.WithGasMeter(sdk.NewGasMeter(0))
|
||||||
|
return
|
||||||
|
})
|
||||||
app.Router().AddRoute(msgType, func(ctx sdk.Context, msg sdk.Msg) sdk.Result {
|
app.Router().AddRoute(msgType, func(ctx sdk.Context, msg sdk.Msg) sdk.Result {
|
||||||
ctx.GasMeter().ConsumeGas(10, "counter")
|
ctx.GasMeter().ConsumeGas(10, "counter")
|
||||||
return sdk.Result{}
|
return sdk.Result{}
|
||||||
|
|
|
@ -51,7 +51,7 @@ func NewGaiaApp(logger log.Logger, db dbm.DB) *GaiaApp {
|
||||||
|
|
||||||
// create your application object
|
// create your application object
|
||||||
var app = &GaiaApp{
|
var app = &GaiaApp{
|
||||||
BaseApp: bam.NewBaseApp(appName, cdc, logger, db, 1000000),
|
BaseApp: bam.NewBaseApp(appName, cdc, logger, db),
|
||||||
cdc: cdc,
|
cdc: cdc,
|
||||||
keyMain: sdk.NewKVStoreKey("main"),
|
keyMain: sdk.NewKVStoreKey("main"),
|
||||||
keyAccount: sdk.NewKVStoreKey("acc"),
|
keyAccount: sdk.NewKVStoreKey("acc"),
|
||||||
|
|
|
@ -48,7 +48,7 @@ func NewBasecoinApp(logger log.Logger, db dbm.DB) *BasecoinApp {
|
||||||
|
|
||||||
// Create your application object.
|
// Create your application object.
|
||||||
var app = &BasecoinApp{
|
var app = &BasecoinApp{
|
||||||
BaseApp: bam.NewBaseApp(appName, cdc, logger, db, 1000000),
|
BaseApp: bam.NewBaseApp(appName, cdc, logger, db),
|
||||||
cdc: cdc,
|
cdc: cdc,
|
||||||
keyMain: sdk.NewKVStoreKey("main"),
|
keyMain: sdk.NewKVStoreKey("main"),
|
||||||
keyAccount: sdk.NewKVStoreKey("acc"),
|
keyAccount: sdk.NewKVStoreKey("acc"),
|
||||||
|
|
|
@ -56,7 +56,7 @@ func NewDemocoinApp(logger log.Logger, db dbm.DB) *DemocoinApp {
|
||||||
|
|
||||||
// Create your application object.
|
// Create your application object.
|
||||||
var app = &DemocoinApp{
|
var app = &DemocoinApp{
|
||||||
BaseApp: bam.NewBaseApp(appName, cdc, logger, db, 1000000),
|
BaseApp: bam.NewBaseApp(appName, cdc, logger, db),
|
||||||
cdc: cdc,
|
cdc: cdc,
|
||||||
capKeyMainStore: sdk.NewKVStoreKey("main"),
|
capKeyMainStore: sdk.NewKVStoreKey("main"),
|
||||||
capKeyAccountStore: sdk.NewKVStoreKey("acc"),
|
capKeyAccountStore: sdk.NewKVStoreKey("acc"),
|
||||||
|
|
|
@ -32,7 +32,7 @@ func main() {
|
||||||
var capKeyMainStore = sdk.NewKVStoreKey("main")
|
var capKeyMainStore = sdk.NewKVStoreKey("main")
|
||||||
|
|
||||||
// Create BaseApp.
|
// Create BaseApp.
|
||||||
var baseApp = bam.NewBaseApp("kvstore", nil, logger, db, 10000)
|
var baseApp = bam.NewBaseApp("kvstore", nil, logger, db)
|
||||||
|
|
||||||
// Set mounts for BaseApp's MultiStore.
|
// Set mounts for BaseApp's MultiStore.
|
||||||
baseApp.MountStoresIAVL(capKeyMainStore)
|
baseApp.MountStoresIAVL(capKeyMainStore)
|
||||||
|
|
|
@ -29,7 +29,7 @@ func NewApp(rootDir string, logger log.Logger) (abci.Application, error) {
|
||||||
capKeyMainStore := sdk.NewKVStoreKey("main")
|
capKeyMainStore := sdk.NewKVStoreKey("main")
|
||||||
|
|
||||||
// Create BaseApp.
|
// Create BaseApp.
|
||||||
baseApp := bam.NewBaseApp("kvstore", nil, logger, db, 10000)
|
baseApp := bam.NewBaseApp("kvstore", nil, logger, db)
|
||||||
|
|
||||||
// Set mounts for BaseApp's MultiStore.
|
// Set mounts for BaseApp's MultiStore.
|
||||||
baseApp.MountStoresIAVL(capKeyMainStore)
|
baseApp.MountStoresIAVL(capKeyMainStore)
|
||||||
|
|
|
@ -43,7 +43,7 @@ func NewContext(ms MultiStore, header abci.Header, isCheckTx bool, txBytes []byt
|
||||||
c = c.WithIsCheckTx(isCheckTx)
|
c = c.WithIsCheckTx(isCheckTx)
|
||||||
c = c.WithTxBytes(txBytes)
|
c = c.WithTxBytes(txBytes)
|
||||||
c = c.WithLogger(logger)
|
c = c.WithLogger(logger)
|
||||||
c = c.WithGasMeter(NewGasMeter(gasLimit))
|
c = c.WithGasMeter(NewInfiniteGasMeter())
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
18
types/gas.go
18
types/gas.go
|
@ -38,3 +38,21 @@ func (g *basicGasMeter) ConsumeGas(amount Gas, descriptor string) {
|
||||||
panic(ErrorOutOfGas{descriptor})
|
panic(ErrorOutOfGas{descriptor})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type infiniteGasMeter struct {
|
||||||
|
consumed Gas
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewInfiniteGasMeter() GasMeter {
|
||||||
|
return &infiniteGasMeter{
|
||||||
|
consumed: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *infiniteGasMeter) GasConsumed() Gas {
|
||||||
|
return g.consumed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *infiniteGasMeter) ConsumeGas(amount Gas, descriptor string) {
|
||||||
|
g.consumed += amount
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue