Cleanup from PR comments

This commit is contained in:
Ethan Frey 2017-08-04 13:50:55 +02:00
parent 21e2399fc4
commit 2f4f875dd4
5 changed files with 39 additions and 37 deletions

View File

@ -112,7 +112,7 @@ func (app *Basecoin) DeliverTx(txBytes []byte) abci.Result {
return errors.Result(err)
}
app.addValChange(res.Diff)
return res.ToABCI()
return basecoin.ToABCI(res)
}
// CheckTx - ABCI
@ -132,7 +132,7 @@ func (app *Basecoin) CheckTx(txBytes []byte) abci.Result {
if err != nil {
return errors.Result(err)
}
return res.ToABCI()
return basecoin.ToABCI(res)
}
// Query - ABCI
@ -182,7 +182,7 @@ func (app *Basecoin) EndBlock(height uint64) (res abci.ResponseEndBlock) {
func (app *Basecoin) addValChange(diffs []*abci.Validator) {
for _, d := range diffs {
idx := findVal(d, app.pending)
idx := pubKeyIndex(d, app.pending)
if idx >= 0 {
app.pending[idx] = d
} else {
@ -192,7 +192,7 @@ func (app *Basecoin) addValChange(diffs []*abci.Validator) {
}
// return index of list with validator of same PubKey, or -1 if no match
func findVal(val *abci.Validator, list []*abci.Validator) int {
func pubKeyIndex(val *abci.Validator, list []*abci.Validator) int {
for i, v := range list {
if bytes.Equal(val.PubKey, v.PubKey) {
return i

View File

@ -15,22 +15,21 @@ import (
//-----------------------------------
// Test cases start here
func power() uint64 {
// % can return negative numbers, so this ensures result is positive
func randPower() uint64 {
return uint64(cmn.RandInt()%50 + 60)
}
func makeVal() *abci.Validator {
return &abci.Validator{
PubKey: cmn.RandBytes(10),
Power: power(),
Power: randPower(),
}
}
// newPower returns a copy of the validator with a different power
func newPower(val *abci.Validator) *abci.Validator {
// withNewPower returns a copy of the validator with a different power
func withNewPower(val *abci.Validator) *abci.Validator {
res := *val
res.Power = power()
res.Power = randPower()
if res.Power == val.Power {
panic("no no")
}
@ -48,8 +47,8 @@ func TestEndBlock(t *testing.T) {
val1 := makeVal()
val2 := makeVal()
val3 := makeVal()
val1a := newPower(val1)
val2a := newPower(val2)
val1a := withNewPower(val1)
val2a := withNewPower(val2)
cases := [...]struct {
changes [][]*abci.Validator

View File

@ -35,7 +35,7 @@ type Checker interface {
CheckTx(ctx Context, store state.SimpleDB, tx Tx) (CheckResult, error)
}
// CheckerFunc (like http.HandlerFunc) is a shortcut for making wrapers
// CheckerFunc (like http.HandlerFunc) is a shortcut for making wrappers
type CheckerFunc func(Context, state.SimpleDB, Tx) (CheckResult, error)
func (c CheckerFunc) CheckTx(ctx Context, store state.SimpleDB, tx Tx) (CheckResult, error) {
@ -47,7 +47,7 @@ type Deliver interface {
DeliverTx(ctx Context, store state.SimpleDB, tx Tx) (DeliverResult, error)
}
// DeliverFunc (like http.HandlerFunc) is a shortcut for making wrapers
// DeliverFunc (like http.HandlerFunc) is a shortcut for making wrappers
type DeliverFunc func(Context, state.SimpleDB, Tx) (DeliverResult, error)
func (c DeliverFunc) DeliverTx(ctx Context, store state.SimpleDB, tx Tx) (DeliverResult, error) {
@ -59,7 +59,7 @@ type InitStater interface {
InitState(l log.Logger, store state.SimpleDB, module, key, value string) (string, error)
}
// InitStateFunc (like http.HandlerFunc) is a shortcut for making wrapers
// InitStateFunc (like http.HandlerFunc) is a shortcut for making wrappers
type InitStateFunc func(log.Logger, state.SimpleDB, string, string, string) (string, error)
func (c InitStateFunc) InitState(l log.Logger, store state.SimpleDB, module, key, value string) (string, error) {
@ -71,7 +71,7 @@ type InitValidater interface {
InitValidate(log log.Logger, store state.SimpleDB, vals []*abci.Validator)
}
// InitValidateFunc (like http.HandlerFunc) is a shortcut for making wrapers
// InitValidateFunc (like http.HandlerFunc) is a shortcut for making wrappers
type InitValidateFunc func(log.Logger, state.SimpleDB, []*abci.Validator)
func (c InitValidateFunc) InitValidate(l log.Logger, store state.SimpleDB, vals []*abci.Validator) {
@ -80,8 +80,17 @@ func (c InitValidateFunc) InitValidate(l log.Logger, store state.SimpleDB, vals
//---------- results and some wrappers --------
type Dataer interface {
// Result is a common interface of CheckResult and GetResult
type Result interface {
GetData() data.Bytes
GetLog() string
}
func ToABCI(r Result) abci.Result {
return abci.Result{
Data: r.GetData(),
Log: r.GetLog(),
}
}
// CheckResult captures any non-error abci result
@ -104,19 +113,16 @@ func NewCheck(gasAllocated uint, log string) CheckResult {
}
}
var _ Dataer = CheckResult{}
func (r CheckResult) ToABCI() abci.Result {
return abci.Result{
Data: r.Data,
Log: r.Log,
}
}
var _ Result = CheckResult{}
func (r CheckResult) GetData() data.Bytes {
return r.Data
}
func (r CheckResult) GetLog() string {
return r.Log
}
// DeliverResult captures any non-error abci result
// to make sure people use error for error cases
type DeliverResult struct {
@ -126,19 +132,16 @@ type DeliverResult struct {
GasUsed uint
}
var _ Dataer = DeliverResult{}
func (r DeliverResult) ToABCI() abci.Result {
return abci.Result{
Data: r.Data,
Log: r.Log,
}
}
var _ Result = DeliverResult{}
func (r DeliverResult) GetData() data.Bytes {
return r.Data
}
func (r DeliverResult) GetLog() string {
return r.Log
}
// placeholders
// holders
type NopCheck struct{}

View File

@ -48,10 +48,10 @@ func (SimpleFeeMiddleware) Name() string {
// CheckTx - check the transaction
func (h SimpleFeeMiddleware) CheckTx(ctx basecoin.Context, store state.SimpleDB, tx basecoin.Tx, next basecoin.Checker) (res basecoin.CheckResult, err error) {
fee, err := h.verifyFee(ctx, tx)
if IsSkipFeesErr(err) {
return next.CheckTx(ctx, store, tx)
}
if err != nil {
if IsSkipFeesErr(err) {
return next.CheckTx(ctx, store, tx)
}
return res, err
}

View File

@ -80,7 +80,7 @@ func TestPermissionSandbox(t *testing.T) {
}
}
func checkPerm(t *testing.T, idx int, data []byte, check func(error) bool, res basecoin.Dataer, err error) {
func checkPerm(t *testing.T, idx int, data []byte, check func(error) bool, res basecoin.Result, err error) {
assert := assert.New(t)
if len(data) > 0 {