fix(core/gas): Add consumed API for GasMeter (#21443)

This commit is contained in:
son trinh 2024-08-29 22:16:33 +07:00 committed by GitHub
parent 33c463ec27
commit 41a9af76e0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 2 deletions

View File

@ -38,6 +38,7 @@ type Meter interface {
Consume(amount Gas, descriptor string) error
Refund(amount Gas, descriptor string) error
Remaining() Gas
Consumed() Gas
Limit() Gas
}

View File

@ -100,6 +100,20 @@ func (mr *MockMeterMockRecorder) Consume(amount, descriptor interface{}) *gomock
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Consume", reflect.TypeOf((*MockMeter)(nil).Consume), amount, descriptor)
}
// Consumed mocks base method.
func (m *MockMeter) Consumed() gas.Gas {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Consumed")
ret0, _ := ret[0].(gas.Gas)
return ret0
}
// Consumed indicates an expected call of Consumed.
func (mr *MockMeterMockRecorder) Consumed() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Consumed", reflect.TypeOf((*MockMeter)(nil).Consumed))
}
// Limit mocks base method.
func (m *MockMeter) Limit() gas.Gas {
m.ctrl.T.Helper()

View File

@ -36,6 +36,10 @@ func (cgm CoreGasmeter) Consume(amount gas.Gas, descriptor string) error {
return nil
}
func (cgm CoreGasmeter) Consumed() gas.Gas {
return cgm.gm.GasConsumed()
}
func (cgm CoreGasmeter) Refund(amount gas.Gas, descriptor string) error {
cgm.gm.RefundGas(amount, descriptor)
return nil
@ -55,14 +59,14 @@ type SDKGasMeter struct {
}
func (gm SDKGasMeter) GasConsumed() storetypes.Gas {
return gm.gm.Remaining()
return gm.gm.Consumed()
}
func (gm SDKGasMeter) GasConsumedToLimit() storetypes.Gas {
if gm.IsPastLimit() {
return gm.gm.Limit()
}
return gm.gm.Remaining()
return gm.gm.Consumed()
}
func (gm SDKGasMeter) GasRemaining() storetypes.Gas {