diff --git a/go.mod b/go.mod index c60a051..0c97c59 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/brainiac-five/pot +module github.com/ethersphere/proximity-order-trie go 1.24.0 diff --git a/kvs_test.go b/kvs_test.go index ce006e1..a537f71 100644 --- a/kvs_test.go +++ b/kvs_test.go @@ -109,4 +109,29 @@ func TestPotKvs_Save(t *testing.T) { assert.NoError(t, err) assert.Equal(t, val1, val) }) + t.Run("Save KVS with two items, after-load values exist", func(t *testing.T) { + ls := createLs() + kvs1, _ := pot.NewSwarmKvs(ls) + + err := kvs1.Put(ctx, key1, val1) + assert.NoError(t, err) + + err = kvs1.Put(ctx, key2, val2) + assert.NoError(t, err) + + ref, err := kvs1.Save(ctx) + assert.NoError(t, err) + + // New KVS + kvs2, err := pot.NewSwarmKvsReference(ctx, ls, ref) + assert.NoError(t, err) + + val, err := kvs2.Get(ctx, key1) + assert.NoError(t, err) + assert.Equal(t, val1, val) + + val, err = kvs2.Get(ctx, key2) + assert.NoError(t, err) + assert.Equal(t, val2, val) + }) } diff --git a/pkg/elements/persist.go b/pkg/elements/persist.go index 791faab..17efee2 100644 --- a/pkg/elements/persist.go +++ b/pkg/elements/persist.go @@ -106,7 +106,7 @@ func (n *SwarmNode) UnmarshalBinary(buf []byte) error { c := 0 poMap := make([]int8, 0, 32) for i := 0; i < 256; i++ { - if bitMap[i/8]&(1<<(i%8)) != 0 { + if bitMap[i/8]&(1<<(7-i%8)) != 0 { poMap = append(poMap, int8(i)) c++ }