mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-27 07:42:14 +00:00
linting: add to Makefile & do some fixes
This commit is contained in:
parent
2130c329eb
commit
d6e03d2368
43
Makefile
43
Makefile
@ -1,11 +1,15 @@
|
|||||||
.PHONY: all test get_vendor_deps ensure_tools
|
.PHONY: all test get_vendor_deps ensure_tools
|
||||||
|
|
||||||
GOTOOLS = \
|
GOTOOLS = \
|
||||||
github.com/Masterminds/glide
|
github.com/Masterminds/glide \
|
||||||
|
github.com/alecthomas/gometalinter
|
||||||
|
|
||||||
REPO:=github.com/tendermint/tmlibs
|
REPO:=github.com/tendermint/tmlibs
|
||||||
|
|
||||||
all: test
|
all: test
|
||||||
|
|
||||||
|
NOVENDOR = go list github.com/tendermint/tmlibs/... | grep -v /vendor/
|
||||||
|
|
||||||
test:
|
test:
|
||||||
go test `glide novendor`
|
go test `glide novendor`
|
||||||
|
|
||||||
@ -16,3 +20,40 @@ get_vendor_deps: ensure_tools
|
|||||||
|
|
||||||
ensure_tools:
|
ensure_tools:
|
||||||
go get $(GOTOOLS)
|
go get $(GOTOOLS)
|
||||||
|
|
||||||
|
metalinter: ensure_tools
|
||||||
|
@gometalinter --install
|
||||||
|
gometalinter --vendor --deadline=600s --enable-all --disable=lll ./...
|
||||||
|
|
||||||
|
metalinter_test: ensure_tools
|
||||||
|
@gometalinter --install
|
||||||
|
gometalinter --vendor --deadline=600s --disable-all \
|
||||||
|
--enable=deadcode \
|
||||||
|
--enable=gas \
|
||||||
|
--enable=goconst \
|
||||||
|
--enable=goimports \
|
||||||
|
--enable=gosimple \
|
||||||
|
--enable=gotype \
|
||||||
|
--enable=ineffassign \
|
||||||
|
--enable=megacheck \
|
||||||
|
--enable=misspell \
|
||||||
|
--enable=staticcheck \
|
||||||
|
--enable=safesql \
|
||||||
|
--enable=structcheck \
|
||||||
|
--enable=unconvert \
|
||||||
|
--enable=unused \
|
||||||
|
--enable=varcheck \
|
||||||
|
--enable=vetshadow \
|
||||||
|
--enable=interfacer \
|
||||||
|
--enable=unparam \
|
||||||
|
--enable=vet \
|
||||||
|
./...
|
||||||
|
|
||||||
|
#--enable=aligncheck \
|
||||||
|
#--enable=dupl \
|
||||||
|
#--enable=errcheck \
|
||||||
|
#--enable=gocyclo \
|
||||||
|
#--enable=golint \ <== comments on anything exported
|
||||||
|
#--enable=interfacer \
|
||||||
|
#--enable=unparam \
|
||||||
|
#--enable=vet \
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
|
// nolint: goimports
|
||||||
package autofile
|
package autofile
|
||||||
|
|
||||||
import (
|
import (
|
||||||
. "github.com/tendermint/tmlibs/common"
|
|
||||||
"os"
|
"os"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"syscall"
|
"syscall"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
. "github.com/tendermint/tmlibs/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSIGHUP(t *testing.T) {
|
func TestSIGHUP(t *testing.T) {
|
||||||
|
@ -107,7 +107,6 @@ func (g *Group) OnStart() error {
|
|||||||
func (g *Group) OnStop() {
|
func (g *Group) OnStop() {
|
||||||
g.BaseService.OnStop()
|
g.BaseService.OnStop()
|
||||||
g.ticker.Stop()
|
g.ticker.Stop()
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) SetHeadSizeLimit(limit int64) {
|
func (g *Group) SetHeadSizeLimit(limit int64) {
|
||||||
@ -568,8 +567,7 @@ func (gr *GroupReader) ReadLine() (string, error) {
|
|||||||
bytesRead, err := gr.curReader.ReadBytes('\n')
|
bytesRead, err := gr.curReader.ReadBytes('\n')
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
// Open the next file
|
// Open the next file
|
||||||
err := gr.openFile(gr.curIndex + 1)
|
if err := gr.openFile(gr.curIndex + 1); err != nil {
|
||||||
if err != nil {
|
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if len(bytesRead) > 0 && bytesRead[len(bytesRead)-1] == byte('\n') {
|
if len(bytesRead) > 0 && bytesRead[len(bytesRead)-1] == byte('\n') {
|
||||||
|
@ -100,8 +100,7 @@ func TestCheckHeadSizeLimit(t *testing.T) {
|
|||||||
|
|
||||||
// Write 1000 bytes 999 times.
|
// Write 1000 bytes 999 times.
|
||||||
for i := 0; i < 999; i++ {
|
for i := 0; i < 999; i++ {
|
||||||
err := g.WriteLine(RandStr(999))
|
if err := g.WriteLine(RandStr(999)); err != nil {
|
||||||
if err != nil {
|
|
||||||
t.Fatal("Error appending to head", err)
|
t.Fatal("Error appending to head", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ func initSighupWatcher() {
|
|||||||
signal.Notify(c, syscall.SIGHUP)
|
signal.Notify(c, syscall.SIGHUP)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for _ = range c {
|
for range c {
|
||||||
sighupWatchers.closeAll()
|
sighupWatchers.closeAll()
|
||||||
atomic.AddInt32(&sighupCounter, 1)
|
atomic.AddInt32(&sighupCounter, 1)
|
||||||
}
|
}
|
||||||
|
@ -49,8 +49,6 @@ func TestParseLogLevel(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
logger = logger
|
|
||||||
|
|
||||||
buf.Reset()
|
buf.Reset()
|
||||||
|
|
||||||
logger.With("module", "wire").Debug("Kingpin")
|
logger.With("module", "wire").Debug("Kingpin")
|
||||||
|
@ -55,6 +55,7 @@ func TestSmall(t *testing.T) {
|
|||||||
This test is quite hacky because it relies on SetFinalizer
|
This test is quite hacky because it relies on SetFinalizer
|
||||||
which isn't guaranteed to run at all.
|
which isn't guaranteed to run at all.
|
||||||
*/
|
*/
|
||||||
|
// nolint: megacheck
|
||||||
func _TestGCFifo(t *testing.T) {
|
func _TestGCFifo(t *testing.T) {
|
||||||
|
|
||||||
const numElements = 1000000
|
const numElements = 1000000
|
||||||
@ -102,6 +103,7 @@ func _TestGCFifo(t *testing.T) {
|
|||||||
This test is quite hacky because it relies on SetFinalizer
|
This test is quite hacky because it relies on SetFinalizer
|
||||||
which isn't guaranteed to run at all.
|
which isn't guaranteed to run at all.
|
||||||
*/
|
*/
|
||||||
|
// nolint: megacheck
|
||||||
func _TestGCRandom(t *testing.T) {
|
func _TestGCRandom(t *testing.T) {
|
||||||
|
|
||||||
const numElements = 1000000
|
const numElements = 1000000
|
||||||
@ -132,7 +134,7 @@ func _TestGCRandom(t *testing.T) {
|
|||||||
for _, i := range rand.Perm(numElements) {
|
for _, i := range rand.Perm(numElements) {
|
||||||
el := els[i]
|
el := els[i]
|
||||||
l.Remove(el)
|
l.Remove(el)
|
||||||
el = el.Next()
|
_ = el.Next()
|
||||||
}
|
}
|
||||||
|
|
||||||
runtime.GC()
|
runtime.GC()
|
||||||
@ -153,7 +155,7 @@ func TestScanRightDeleteRandom(t *testing.T) {
|
|||||||
l := New()
|
l := New()
|
||||||
stop := make(chan struct{})
|
stop := make(chan struct{})
|
||||||
|
|
||||||
els := make([]*CElement, numElements, numElements)
|
els := make([]*CElement, numElements)
|
||||||
for i := 0; i < numElements; i++ {
|
for i := 0; i < numElements; i++ {
|
||||||
el := l.PushBack(i)
|
el := l.PushBack(i)
|
||||||
els[i] = el
|
els[i] = el
|
||||||
|
@ -10,7 +10,7 @@ type CMap struct {
|
|||||||
|
|
||||||
func NewCMap() *CMap {
|
func NewCMap() *CMap {
|
||||||
return &CMap{
|
return &CMap{
|
||||||
m: make(map[string]interface{}, 0),
|
m: make(map[string]interface{}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ func (cm *CMap) Size() int {
|
|||||||
func (cm *CMap) Clear() {
|
func (cm *CMap) Clear() {
|
||||||
cm.l.Lock()
|
cm.l.Lock()
|
||||||
defer cm.l.Unlock()
|
defer cm.l.Unlock()
|
||||||
cm.m = make(map[string]interface{}, 0)
|
cm.m = make(map[string]interface{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cm *CMap) Values() []interface{} {
|
func (cm *CMap) Values() []interface{} {
|
||||||
|
@ -21,7 +21,7 @@ func (se StackError) Error() string {
|
|||||||
// panic wrappers
|
// panic wrappers
|
||||||
|
|
||||||
// A panic resulting from a sanity check means there is a programmer error
|
// A panic resulting from a sanity check means there is a programmer error
|
||||||
// and some gaurantee is not satisfied.
|
// and some guarantee is not satisfied.
|
||||||
func PanicSanity(v interface{}) {
|
func PanicSanity(v interface{}) {
|
||||||
panic(Fmt("Panicked on a Sanity Check: %v", v))
|
panic(Fmt("Panicked on a Sanity Check: %v", v))
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ func TestWriteCode(t *testing.T) {
|
|||||||
common.WriteCode(w, &marshalFailer{}, code)
|
common.WriteCode(w, &marshalFailer{}, code)
|
||||||
wantCode := http.StatusBadRequest
|
wantCode := http.StatusBadRequest
|
||||||
assert.Equal(t, w.Code, wantCode, "#%d", i)
|
assert.Equal(t, w.Code, wantCode, "#%d", i)
|
||||||
assert.True(t, strings.Contains(string(w.Body.Bytes()), errFooFailed.Error()),
|
assert.True(t, strings.Contains(w.Body.String(), errFooFailed.Error()),
|
||||||
"#%d: expected %q in the error message", i, errFooFailed)
|
"#%d: expected %q in the error message", i, errFooFailed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
common/os.go
10
common/os.go
@ -8,6 +8,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"strings"
|
"strings"
|
||||||
|
"syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -17,7 +18,7 @@ var (
|
|||||||
func TrapSignal(cb func()) {
|
func TrapSignal(cb func()) {
|
||||||
c := make(chan os.Signal, 1)
|
c := make(chan os.Signal, 1)
|
||||||
signal.Notify(c, os.Interrupt)
|
signal.Notify(c, os.Interrupt)
|
||||||
signal.Notify(c, os.Kill)
|
signal.Notify(c, syscall.SIGTERM)
|
||||||
go func() {
|
go func() {
|
||||||
for sig := range c {
|
for sig := range c {
|
||||||
fmt.Printf("captured %v, exiting...\n", sig)
|
fmt.Printf("captured %v, exiting...\n", sig)
|
||||||
@ -83,12 +84,7 @@ func MustReadFile(filePath string) []byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func WriteFile(filePath string, contents []byte, mode os.FileMode) error {
|
func WriteFile(filePath string, contents []byte, mode os.FileMode) error {
|
||||||
err := ioutil.WriteFile(filePath, contents, mode)
|
return ioutil.WriteFile(filePath, contents, mode)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// fmt.Printf("File written to %v.\n", filePath)
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func MustWriteFile(filePath string, contents []byte, mode os.FileMode) {
|
func MustWriteFile(filePath string, contents []byte, mode os.FileMode) {
|
||||||
|
@ -31,10 +31,7 @@ func LeftPadString(s string, totalLength int) string {
|
|||||||
func IsHex(s string) bool {
|
func IsHex(s string) bool {
|
||||||
if len(s) > 2 && s[:2] == "0x" {
|
if len(s) > 2 && s[:2] == "0x" {
|
||||||
_, err := hex.DecodeString(s[2:])
|
_, err := hex.DecodeString(s[2:])
|
||||||
if err != nil {
|
return err == nil
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import (
|
|||||||
func TestAddListenerForEventFireOnce(t *testing.T) {
|
func TestAddListenerForEventFireOnce(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
messages := make(chan EventData)
|
messages := make(chan EventData)
|
||||||
@ -34,7 +34,7 @@ func TestAddListenerForEventFireOnce(t *testing.T) {
|
|||||||
func TestAddListenerForEventFireMany(t *testing.T) {
|
func TestAddListenerForEventFireMany(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
doneSum := make(chan uint64)
|
doneSum := make(chan uint64)
|
||||||
@ -63,7 +63,7 @@ func TestAddListenerForEventFireMany(t *testing.T) {
|
|||||||
func TestAddListenerForDifferentEvents(t *testing.T) {
|
func TestAddListenerForDifferentEvents(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
doneSum := make(chan uint64)
|
doneSum := make(chan uint64)
|
||||||
@ -108,7 +108,7 @@ func TestAddListenerForDifferentEvents(t *testing.T) {
|
|||||||
func TestAddDifferentListenerForDifferentEvents(t *testing.T) {
|
func TestAddDifferentListenerForDifferentEvents(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
doneSum1 := make(chan uint64)
|
doneSum1 := make(chan uint64)
|
||||||
@ -168,7 +168,7 @@ func TestAddDifferentListenerForDifferentEvents(t *testing.T) {
|
|||||||
func TestAddAndRemoveListener(t *testing.T) {
|
func TestAddAndRemoveListener(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
doneSum1 := make(chan uint64)
|
doneSum1 := make(chan uint64)
|
||||||
@ -213,7 +213,7 @@ func TestAddAndRemoveListener(t *testing.T) {
|
|||||||
func TestRemoveListener(t *testing.T) {
|
func TestRemoveListener(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
count := 10
|
count := 10
|
||||||
@ -266,7 +266,7 @@ func TestRemoveListener(t *testing.T) {
|
|||||||
func TestRemoveListenersAsync(t *testing.T) {
|
func TestRemoveListenersAsync(t *testing.T) {
|
||||||
evsw := NewEventSwitch()
|
evsw := NewEventSwitch()
|
||||||
started, err := evsw.Start()
|
started, err := evsw.Start()
|
||||||
if started == false || err != nil {
|
if !started || err != nil {
|
||||||
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
t.Errorf("Failed to start EventSwitch, error: %v", err)
|
||||||
}
|
}
|
||||||
doneSum1 := make(chan uint64)
|
doneSum1 := make(chan uint64)
|
||||||
@ -377,5 +377,4 @@ func fireEvents(evsw EventSwitch, event string, doneChan chan uint64,
|
|||||||
}
|
}
|
||||||
doneChan <- sentSum
|
doneChan <- sentSum
|
||||||
close(doneChan)
|
close(doneChan)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
@ -171,10 +171,7 @@ func statusesAreEqual(s1 *Status, s2 *Status) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func durationsAreEqual(d1 time.Duration, d2 time.Duration, maxDeviation time.Duration) bool {
|
func durationsAreEqual(d1 time.Duration, d2 time.Duration, maxDeviation time.Duration) bool {
|
||||||
if d2-d1 <= maxDeviation {
|
return d2-d1 <= maxDeviation
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ratesAreEqual(r1 int64, r2 int64, maxDeviation int64) bool {
|
func ratesAreEqual(r1 int64, r2 int64, maxDeviation int64) bool {
|
||||||
|
@ -73,8 +73,7 @@ func TestVariousLevels(t *testing.T) {
|
|||||||
func TestLevelContext(t *testing.T) {
|
func TestLevelContext(t *testing.T) {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
|
|
||||||
var logger log.Logger
|
logger := log.NewTMJSONLogger(&buf)
|
||||||
logger = log.NewTMJSONLogger(&buf)
|
|
||||||
logger = log.NewFilter(logger, log.AllowError())
|
logger = log.NewFilter(logger, log.AllowError())
|
||||||
logger = logger.With("context", "value")
|
logger = logger.With("context", "value")
|
||||||
|
|
||||||
@ -93,8 +92,7 @@ func TestLevelContext(t *testing.T) {
|
|||||||
func TestVariousAllowWith(t *testing.T) {
|
func TestVariousAllowWith(t *testing.T) {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
|
|
||||||
var logger log.Logger
|
logger := log.NewTMJSONLogger(&buf)
|
||||||
logger = log.NewTMJSONLogger(&buf)
|
|
||||||
|
|
||||||
logger1 := log.NewFilter(logger, log.AllowError(), log.AllowInfoWith("context", "value"))
|
logger1 := log.NewFilter(logger, log.AllowError(), log.AllowInfoWith("context", "value"))
|
||||||
logger1.With("context", "value").Info("foo", "bar", "baz")
|
logger1.With("context", "value").Info("foo", "bar", "baz")
|
||||||
|
@ -49,9 +49,10 @@ func (l tmfmtLogger) Log(keyvals ...interface{}) error {
|
|||||||
enc.Reset()
|
enc.Reset()
|
||||||
defer tmfmtEncoderPool.Put(enc)
|
defer tmfmtEncoderPool.Put(enc)
|
||||||
|
|
||||||
|
const unknown = "unknown"
|
||||||
lvl := "none"
|
lvl := "none"
|
||||||
msg := "unknown"
|
msg := unknown
|
||||||
module := "unknown"
|
module := unknown
|
||||||
|
|
||||||
// indexes of keys to skip while encoding later
|
// indexes of keys to skip while encoding later
|
||||||
excludeIndexes := make([]int, 0)
|
excludeIndexes := make([]int, 0)
|
||||||
@ -90,7 +91,7 @@ func (l tmfmtLogger) Log(keyvals ...interface{}) error {
|
|||||||
// Stopping ... - message
|
// Stopping ... - message
|
||||||
enc.buf.WriteString(fmt.Sprintf("%c[%s] %-44s ", lvl[0]-32, time.Now().UTC().Format("01-02|15:04:05.000"), msg))
|
enc.buf.WriteString(fmt.Sprintf("%c[%s] %-44s ", lvl[0]-32, time.Now().UTC().Format("01-02|15:04:05.000"), msg))
|
||||||
|
|
||||||
if module != "unknown" {
|
if module != unknown {
|
||||||
enc.buf.WriteString("module=" + module + " ")
|
enc.buf.WriteString("module=" + module + " ")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,8 +14,7 @@ import (
|
|||||||
func TestTracingLogger(t *testing.T) {
|
func TestTracingLogger(t *testing.T) {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
|
|
||||||
var logger log.Logger
|
logger := log.NewTMJSONLogger(&buf)
|
||||||
logger = log.NewTMJSONLogger(&buf)
|
|
||||||
|
|
||||||
logger1 := log.NewTracingLogger(logger)
|
logger1 := log.NewTracingLogger(logger)
|
||||||
err1 := errors.New("Courage is grace under pressure.")
|
err1 := errors.New("Courage is grace under pressure.")
|
||||||
|
@ -22,6 +22,7 @@ For larger datasets, use IAVLTree.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// nolint: goimports
|
||||||
package merkle
|
package merkle
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -31,8 +32,8 @@ import (
|
|||||||
|
|
||||||
"golang.org/x/crypto/ripemd160"
|
"golang.org/x/crypto/ripemd160"
|
||||||
|
|
||||||
. "github.com/tendermint/tmlibs/common"
|
|
||||||
"github.com/tendermint/go-wire"
|
"github.com/tendermint/go-wire"
|
||||||
|
. "github.com/tendermint/tmlibs/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SimpleHashFromTwoHashes(left []byte, right []byte) []byte {
|
func SimpleHashFromTwoHashes(left []byte, right []byte) []byte {
|
||||||
|
@ -15,8 +15,8 @@ func Run(dir string, command string, args []string) (string, bool, error) {
|
|||||||
<-proc.WaitCh
|
<-proc.WaitCh
|
||||||
|
|
||||||
if proc.ExitState.Success() {
|
if proc.ExitState.Success() {
|
||||||
return string(outFile.Bytes()), true, nil
|
return outFile.String(), true, nil
|
||||||
} else {
|
} else {
|
||||||
return string(outFile.Bytes()), false, nil
|
return outFile.String(), false, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
// nolint: megacheck
|
||||||
|
// nolint: varcheck
|
||||||
|
// nolint: deadcode
|
||||||
package query
|
package query
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user