diff --git a/commonspace/object/tree/objecttree/objecttreefactory.go b/commonspace/object/tree/objecttree/objecttreefactory.go index dfa78f15..dc650bbb 100644 --- a/commonspace/object/tree/objecttree/objecttreefactory.go +++ b/commonspace/object/tree/objecttree/objecttreefactory.go @@ -5,8 +5,6 @@ import ( "github.com/anytypeio/any-sync/commonspace/object/tree/treechangeproto" "github.com/anytypeio/any-sync/commonspace/object/tree/treestorage" "github.com/anytypeio/any-sync/util/crypto" - "math/rand" - "time" ) type ObjectTreeCreatePayload struct { @@ -15,6 +13,8 @@ type ObjectTreeCreatePayload struct { ChangePayload []byte SpaceId string IsEncrypted bool + Seed []byte + Timestamp int64 } type HistoryTreeParams struct { @@ -85,19 +85,6 @@ func nonVerifiableTreeDeps( } } -func CreateObjectTreeRoot(payload ObjectTreeCreatePayload, aclList list.AclList) (root *treechangeproto.RawTreeChangeWithId, err error) { - bytes := make([]byte, 32) - _, err = rand.Read(bytes) - if err != nil { - return - } - return createObjectTreeRoot(payload, time.Now().Unix(), bytes, aclList) -} - -func DeriveObjectTreeRoot(payload ObjectTreeCreatePayload, aclList list.AclList) (root *treechangeproto.RawTreeChangeWithId, err error) { - return createObjectTreeRoot(payload, 0, nil, aclList) -} - func BuildEmptyDataObjectTree(treeStorage treestorage.TreeStorage, aclList list.AclList) (ObjectTree, error) { rootChange, err := treeStorage.Root() if err != nil { @@ -168,54 +155,7 @@ func BuildHistoryTree(params HistoryTreeParams) (HistoryTree, error) { return buildHistoryTree(deps, params) } -func CreateDerivedObjectTree( - payload ObjectTreeCreatePayload, - aclList list.AclList, - createStorage treestorage.TreeStorageCreatorFunc) (objTree ObjectTree, err error) { - return createObjectTree(payload, 0, nil, aclList, createStorage) -} - -func CreateObjectTree( - payload ObjectTreeCreatePayload, - aclList list.AclList, - createStorage treestorage.TreeStorageCreatorFunc) (objTree ObjectTree, err error) { - bytes := make([]byte, 32) - _, err = rand.Read(bytes) - if err != nil { - return - } - return createObjectTree(payload, time.Now().Unix(), bytes, aclList, createStorage) -} - -func createObjectTree( - payload ObjectTreeCreatePayload, - timestamp int64, - seed []byte, - aclList list.AclList, - createStorage treestorage.TreeStorageCreatorFunc) (objTree ObjectTree, err error) { - raw, err := createObjectTreeRoot(payload, timestamp, seed, aclList) - if err != nil { - return - } - - // create storage - st, err := createStorage(treestorage.TreeStorageCreatePayload{ - RootRawChange: raw, - Changes: []*treechangeproto.RawTreeChangeWithId{raw}, - Heads: []string{raw.Id}, - }) - if err != nil { - return - } - - return BuildObjectTree(st, aclList) -} - -func createObjectTreeRoot( - payload ObjectTreeCreatePayload, - timestamp int64, - seed []byte, - aclList list.AclList) (root *treechangeproto.RawTreeChangeWithId, err error) { +func CreateObjectTreeRoot(payload ObjectTreeCreatePayload, aclList list.AclList) (root *treechangeproto.RawTreeChangeWithId, err error) { aclList.RLock() aclHeadId := aclList.Head().Id aclList.RUnlock() @@ -229,8 +169,8 @@ func createObjectTreeRoot( SpaceId: payload.SpaceId, ChangeType: payload.ChangeType, ChangePayload: payload.ChangePayload, - Timestamp: timestamp, - Seed: seed, + Timestamp: payload.Timestamp, + Seed: payload.Seed, } _, root, err = NewChangeBuilder(crypto.NewKeyStorage(), nil).BuildRoot(cnt) diff --git a/commonspace/space.go b/commonspace/space.go index aca80d02..9c953175 100644 --- a/commonspace/space.go +++ b/commonspace/space.go @@ -88,7 +88,6 @@ type Space interface { DebugAllHeads() []headsync.TreeHeads Description() (SpaceDescription, error) - DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error) CreateTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error) PutTree(ctx context.Context, payload treestorage.TreeStorageCreatePayload, listener updatelistener.UpdateListener) (t objecttree.ObjectTree, err error) BuildTree(ctx context.Context, id string, opts BuildTreeOpts) (t objecttree.ObjectTree, err error) @@ -242,23 +241,6 @@ func (s *space) DebugAllHeads() []headsync.TreeHeads { return s.headSync.DebugAllHeads() } -func (s *space) DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error) { - if s.isClosed.Load() { - err = ErrSpaceClosed - return - } - root, err := objecttree.DeriveObjectTreeRoot(payload, s.aclList) - if err != nil { - return - } - res = treestorage.TreeStorageCreatePayload{ - RootRawChange: root, - Changes: []*treechangeproto.RawTreeChangeWithId{root}, - Heads: []string{root.Id}, - } - return -} - func (s *space) CreateTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error) { if s.isClosed.Load() { err = ErrSpaceClosed