diff --git a/glide.lock b/glide.lock index 1216c1a4b..7922e6dd9 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: 8c438edb7d269da439141e62f3e0c931fa9efaee54b13ce1e7330dc99179fddd -updated: 2017-07-20T15:39:36.659717024+02:00 +hash: 2848c30b31fb205f846dd7dfca14ebed8a3249cbc5aaa759066b2bab3e4bbf42 +updated: 2017-07-26T15:18:56.353872835-04:00 imports: - name: github.com/bgentry/speakeasy version: 4aabc24848ce5fd31929f7d1e4ea74d3709c14cd @@ -105,7 +105,7 @@ imports: - leveldb/table - leveldb/util - name: github.com/tendermint/abci - version: 7f5f48b6b9ec3964de4b07b6c3cd05d7c91aeee5 + version: 864d1f80b36b440bde030a5c18d8ac3aa8c2949d subpackages: - client - example/dummy @@ -133,16 +133,15 @@ imports: - data - data/base58 - name: github.com/tendermint/light-client - version: d63415027075bc5d74a98a718393b59b5c4279a5 + version: fcf4e411583135a1900157b8b0274c41e20ea3a1 subpackages: - certifiers - certifiers/client - certifiers/files - proofs - name: github.com/tendermint/merkleeyes - version: 102aaf5a8ffda1846413fb22805a94def2045b9f + version: fef0a1fc729f5b50c58a2dce04b4525aa06c2247 subpackages: - - app - client - iavl - name: github.com/tendermint/tendermint @@ -172,7 +171,7 @@ imports: - types - version - name: github.com/tendermint/tmlibs - version: efb56aaea7517220bb3f42ff87b8004d554a17ff + version: 2f6f3e6aa70bb19b70a6e73210273fa127041070 subpackages: - autofile - cli diff --git a/glide.yaml b/glide.yaml index 0f96978eb..e10ba05f9 100644 --- a/glide.yaml +++ b/glide.yaml @@ -29,7 +29,7 @@ import: - certifiers/client - certifiers/files - package: github.com/tendermint/merkleeyes - version: develop + version: unstable subpackages: - client - iavl diff --git a/state/merkle/state.go b/state/merkle.go similarity index 84% rename from state/merkle/state.go rename to state/merkle.go index 17c4ee25e..d735f34b6 100644 --- a/state/merkle/state.go +++ b/state/merkle.go @@ -1,10 +1,9 @@ -package merkle +package state import ( "errors" "math/rand" - "github.com/tendermint/basecoin/state" "github.com/tendermint/merkleeyes/iavl" "github.com/tendermint/tmlibs/merkle" ) @@ -79,7 +78,7 @@ type Bonsai struct { merkle.Tree } -var _ state.SimpleDB = &Bonsai{} +var _ SimpleDB = &Bonsai{} func NewBonsai(tree merkle.Tree) *Bonsai { return &Bonsai{ @@ -104,38 +103,39 @@ func (b *Bonsai) Remove(key []byte) (value []byte) { return } -func (b *Bonsai) List(start, end []byte, limit int) []state.Model { - var res []state.Model +func (b *Bonsai) List(start, end []byte, limit int) []Model { + res := []Model{} stopAtCount := func(key []byte, value []byte) (stop bool) { - m := state.Model{key, value} + m := Model{key, value} res = append(res, m) - return len(res) >= limit + // return false + return limit > 0 && len(res) >= limit } b.Tree.IterateRange(start, end, true, stopAtCount) return res } -func (b *Bonsai) First(start, end []byte) state.Model { - var m state.Model +func (b *Bonsai) First(start, end []byte) Model { + var m Model stopAtFirst := func(key []byte, value []byte) (stop bool) { - m = state.Model{key, value} + m = Model{key, value} return true } b.Tree.IterateRange(start, end, true, stopAtFirst) return m } -func (b *Bonsai) Last(start, end []byte) state.Model { - var m state.Model +func (b *Bonsai) Last(start, end []byte) Model { + var m Model stopAtFirst := func(key []byte, value []byte) (stop bool) { - m = state.Model{key, value} + m = Model{key, value} return true } b.Tree.IterateRange(start, end, false, stopAtFirst) return m } -func (b *Bonsai) Checkpoint() state.SimpleDB { +func (b *Bonsai) Checkpoint() SimpleDB { return &Bonsai{ id: b.id, Tree: b.Tree.Copy(), @@ -145,7 +145,7 @@ func (b *Bonsai) Checkpoint() state.SimpleDB { // Commit will take all changes from the checkpoint and write // them to the parent. // Returns an error if this is not a child of this one -func (b *Bonsai) Commit(sub state.SimpleDB) error { +func (b *Bonsai) Commit(sub SimpleDB) error { bb, ok := sub.(*Bonsai) if !ok || (b.id != bb.id) { return errors.New("Not a sub-transaction") diff --git a/state/store_test.go b/state/store_test.go index de1d8246a..2609d1197 100644 --- a/state/store_test.go +++ b/state/store_test.go @@ -4,11 +4,13 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/tendermint/merkleeyes/iavl" ) func GetDBs() []SimpleDB { return []SimpleDB{ NewMemKVStore(), + NewBonsai(iavl.NewIAVLTree(0, nil)), } }