diff --git a/client/clientspace/clientcache/treecache.go b/client/clientspace/clientcache/treecache.go index 4dffd9e1..5d512f23 100644 --- a/client/clientspace/clientcache/treecache.go +++ b/client/clientspace/clientcache/treecache.go @@ -40,14 +40,14 @@ type updateListener struct { func (u *updateListener) Update(tree objecttree.ObjectTree) { log.With( zap.Strings("heads", tree.Heads()), - zap.String("tree id", tree.ID())). + zap.String("tree id", tree.Id())). Debug("updating tree") } func (u *updateListener) Rebuild(tree objecttree.ObjectTree) { log.With( zap.Strings("heads", tree.Heads()), - zap.String("tree id", tree.ID())). + zap.String("tree id", tree.Id())). Debug("rebuilding tree") } diff --git a/common/commonspace/commongetter.go b/common/commonspace/commongetter.go index 70f799c3..a7bcb2c5 100644 --- a/common/commonspace/commongetter.go +++ b/common/commonspace/commongetter.go @@ -25,11 +25,11 @@ func newCommonSpaceGetter(spaceId string, aclList *syncacl.SyncAcl, treeGetter t } func (c *commonSpaceGetter) GetObject(ctx context.Context, objectId string) (obj syncobjectgetter.SyncObject, err error) { - if c.aclList.ID() == objectId { + if c.aclList.Id() == objectId { obj = c.aclList return } - if c.settings.ID() == objectId { + if c.settings.Id() == objectId { obj = c.settings.(syncobjectgetter.SyncObject) return } diff --git a/common/commonspace/object/acl/list/aclrecordbuilder.go b/common/commonspace/object/acl/list/aclrecordbuilder.go index 28549ca7..ceee382b 100644 --- a/common/commonspace/object/acl/list/aclrecordbuilder.go +++ b/common/commonspace/object/acl/list/aclrecordbuilder.go @@ -170,7 +170,7 @@ func verifyRaw( } // verifying ID - if !cidutil.VerifyCID(recWithId.Payload, recWithId.Id) { + if !cidutil.VerifyCid(recWithId.Payload, recWithId.Id) { err = ErrIncorrectCID } return diff --git a/common/commonspace/object/acl/list/aclrecordbuilder_test.go b/common/commonspace/object/acl/list/aclrecordbuilder_test.go index 8c7408e3..32e5258b 100644 --- a/common/commonspace/object/acl/list/aclrecordbuilder_test.go +++ b/common/commonspace/object/acl/list/aclrecordbuilder_test.go @@ -27,7 +27,7 @@ func TestAclRecordBuilder_BuildUserJoin(t *testing.T) { aclList, err := BuildAclListWithIdentity(acc, st) require.NoError(t, err, "building acl list should be without error") - recordBuilder := newAclRecordBuilder(aclList.ID(), keychain.NewKeychain()) + recordBuilder := newAclRecordBuilder(aclList.Id(), keychain.NewKeychain()) rk, err := testKeychain.GetKey("key.Read.EncKey").(*acllistbuilder2.SymKey).Key.Raw() require.NoError(t, err) privKey, err := testKeychain.GetKey("key.Sign.Onetime1").(signingkey.PrivKey).Raw() @@ -37,7 +37,7 @@ func TestAclRecordBuilder_BuildUserJoin(t *testing.T) { require.NoError(t, err) marshalledJoin, err := userJoin.Marshal() require.NoError(t, err) - id, err := cidutil.NewCIDFromBytes(marshalledJoin) + id, err := cidutil.NewCidFromBytes(marshalledJoin) require.NoError(t, err) rawRec := &aclrecordproto.RawAclRecordWithId{ Payload: marshalledJoin, diff --git a/common/commonspace/object/acl/list/list.go b/common/commonspace/object/acl/list/list.go index dcbfeeed..cc452a51 100644 --- a/common/commonspace/object/acl/list/list.go +++ b/common/commonspace/object/acl/list/list.go @@ -24,7 +24,7 @@ type RWLocker interface { type AclList interface { RWLocker - ID() string + Id() string Root() *aclrecordproto.RawAclRecordWithId Records() []*AclRecord AclState() *AclState @@ -164,7 +164,7 @@ func (a *aclList) IsValidNext(rawRec *aclrecordproto.RawAclRecordWithId) (err er return } -func (a *aclList) ID() string { +func (a *aclList) Id() string { return a.id } diff --git a/common/commonspace/object/acl/list/mock_list/mock_list.go b/common/commonspace/object/acl/list/mock_list/mock_list.go index 5a5f57b9..f843217e 100644 --- a/common/commonspace/object/acl/list/mock_list/mock_list.go +++ b/common/commonspace/object/acl/list/mock_list/mock_list.go @@ -107,18 +107,18 @@ func (mr *MockAclListMockRecorder) Head() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Head", reflect.TypeOf((*MockAclList)(nil).Head)) } -// ID mocks base method. -func (m *MockAclList) ID() string { +// Id mocks base method. +func (m *MockAclList) Id() string { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ID") + ret := m.ctrl.Call(m, "Id") ret0, _ := ret[0].(string) return ret0 } -// ID indicates an expected call of ID. -func (mr *MockAclListMockRecorder) ID() *gomock.Call { +// Id indicates an expected call of Id. +func (mr *MockAclListMockRecorder) Id() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ID", reflect.TypeOf((*MockAclList)(nil).ID)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockAclList)(nil).Id)) } // IsAfter mocks base method. diff --git a/common/commonspace/object/acl/testutils/acllistbuilder/liststoragebuilder.go b/common/commonspace/object/acl/testutils/acllistbuilder/liststoragebuilder.go index b3f050aa..083867f0 100644 --- a/common/commonspace/object/acl/testutils/acllistbuilder/liststoragebuilder.go +++ b/common/commonspace/object/acl/testutils/acllistbuilder/liststoragebuilder.go @@ -73,7 +73,7 @@ func (t *AclListStorageBuilder) createRaw(rec proto.Marshaler, identity []byte) panic(err) } - id, _ := cidutil.NewCIDFromBytes(rawMarshalled) + id, _ := cidutil.NewCidFromBytes(rawMarshalled) return &aclrecordproto.RawAclRecordWithId{ Payload: rawMarshalled, diff --git a/common/commonspace/object/tree/objecttree/change.go b/common/commonspace/object/tree/objecttree/change.go index 9638a3dc..5b115a0f 100644 --- a/common/commonspace/object/tree/objecttree/change.go +++ b/common/commonspace/object/tree/objecttree/change.go @@ -7,7 +7,7 @@ import ( var ( ErrIncorrectSignature = errors.New("change has incorrect signature") - ErrIncorrectCID = errors.New("change has incorrect CID") + ErrIncorrectCid = errors.New("change has incorrect CID") ) // Change is an abstract type for all types of changes @@ -58,6 +58,6 @@ func NewChangeFromRoot(id string, ch *treechangeproto.RootChange, signature []by } } -func (ch *Change) CID() string { +func (ch *Change) Cid() string { return ch.Id } diff --git a/common/commonspace/object/tree/objecttree/changebuilder.go b/common/commonspace/object/tree/objecttree/changebuilder.go index a829522c..56d98d94 100644 --- a/common/commonspace/object/tree/objecttree/changebuilder.go +++ b/common/commonspace/object/tree/objecttree/changebuilder.go @@ -60,8 +60,8 @@ func (c *changeBuilder) ConvertFromRaw(rawIdChange *treechangeproto.RawTreeChang if verify { // verifying ID - if !cidutil.VerifyCID(rawIdChange.RawChange, rawIdChange.Id) { - err = ErrIncorrectCID + if !cidutil.VerifyCid(rawIdChange.RawChange, rawIdChange.Id) { + err = ErrIncorrectCid return } } @@ -131,7 +131,7 @@ func (c *changeBuilder) BuildInitialContent(payload InitialContent) (ch *Change, return } - id, err := cidutil.NewCIDFromBytes(marshalledRawChange) + id, err := cidutil.NewCidFromBytes(marshalledRawChange) if err != nil { return } @@ -186,7 +186,7 @@ func (c *changeBuilder) BuildContent(payload BuilderContent) (ch *Change, rawIdC return } - id, err := cidutil.NewCIDFromBytes(marshalledRawChange) + id, err := cidutil.NewCidFromBytes(marshalledRawChange) if err != nil { return } diff --git a/common/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go b/common/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go index a377f19b..571cdf91 100644 --- a/common/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go +++ b/common/commonspace/object/tree/objecttree/mock_objecttree/mock_objecttree.go @@ -171,18 +171,18 @@ func (mr *MockObjectTreeMockRecorder) Heads() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Heads", reflect.TypeOf((*MockObjectTree)(nil).Heads)) } -// ID mocks base method. -func (m *MockObjectTree) ID() string { +// Id mocks base method. +func (m *MockObjectTree) Id() string { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ID") + ret := m.ctrl.Call(m, "Id") ret0, _ := ret[0].(string) return ret0 } -// ID indicates an expected call of ID. -func (mr *MockObjectTreeMockRecorder) ID() *gomock.Call { +// Id indicates an expected call of Id. +func (mr *MockObjectTreeMockRecorder) Id() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ID", reflect.TypeOf((*MockObjectTree)(nil).ID)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockObjectTree)(nil).Id)) } // Iterate mocks base method. diff --git a/common/commonspace/object/tree/objecttree/objecttree.go b/common/commonspace/object/tree/objecttree/objecttree.go index 7ce6fc61..09a3012c 100644 --- a/common/commonspace/object/tree/objecttree/objecttree.go +++ b/common/commonspace/object/tree/objecttree/objecttree.go @@ -46,7 +46,7 @@ type ChangeConvertFunc = func(decrypted []byte) (any, error) type ObjectTree interface { RWLocker - ID() string + Id() string Header() *treechangeproto.RawTreeChangeWithId Heads() []string Root() *Change @@ -137,7 +137,7 @@ func (ot *objectTree) rebuildFromStorage(theirHeads []string, newChanges []*Chan return ot.validateTree(nil) } -func (ot *objectTree) ID() string { +func (ot *objectTree) Id() string { return ot.id } diff --git a/common/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go b/common/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go index 88a371d9..99a8e11c 100644 --- a/common/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go +++ b/common/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go @@ -309,18 +309,18 @@ func (mr *MockSyncTreeMockRecorder) Heads() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Heads", reflect.TypeOf((*MockSyncTree)(nil).Heads)) } -// ID mocks base method. -func (m *MockSyncTree) ID() string { +// Id mocks base method. +func (m *MockSyncTree) Id() string { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ID") + ret := m.ctrl.Call(m, "Id") ret0, _ := ret[0].(string) return ret0 } -// ID indicates an expected call of ID. -func (mr *MockSyncTreeMockRecorder) ID() *gomock.Call { +// Id indicates an expected call of Id. +func (mr *MockSyncTreeMockRecorder) Id() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ID", reflect.TypeOf((*MockSyncTree)(nil).ID)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSyncTree)(nil).Id)) } // Iterate mocks base method. diff --git a/common/commonspace/object/tree/synctree/synctree.go b/common/commonspace/object/tree/synctree/synctree.go index 02d21b06..4afd23e6 100644 --- a/common/commonspace/object/tree/synctree/synctree.go +++ b/common/commonspace/object/tree/synctree/synctree.go @@ -101,7 +101,7 @@ func DeriveSyncTree(ctx context.Context, deps CreateDeps) (id string, err error) deps.ObjectSync, deps.Configuration) - id = objTree.ID() + id = objTree.Id() heads := objTree.Heads() deps.HeadNotifiable.UpdateHeads(id, heads) @@ -122,7 +122,7 @@ func CreateSyncTree(ctx context.Context, deps CreateDeps) (id string, err error) deps.ObjectSync, deps.Configuration) - id = objTree.ID() + id = objTree.Id() heads := objTree.Heads() deps.HeadNotifiable.UpdateHeads(id, heads) @@ -264,9 +264,9 @@ func (s *syncTree) AddContent(ctx context.Context, content objecttree.SignableCh return } if s.notifiable != nil { - s.notifiable.UpdateHeads(s.ID(), res.Heads) + s.notifiable.UpdateHeads(s.Id(), res.Heads) } - s.syncStatus.HeadsChange(s.ID(), res.Heads) + s.syncStatus.HeadsChange(s.Id(), res.Heads) headUpdate := s.syncClient.CreateHeadUpdate(s, res.Added) err = s.syncClient.BroadcastAsync(headUpdate) return @@ -292,7 +292,7 @@ func (s *syncTree) AddRawChanges(ctx context.Context, changesPayload objecttree. } if res.Mode != objecttree.Nothing { if s.notifiable != nil { - s.notifiable.UpdateHeads(s.ID(), res.Heads) + s.notifiable.UpdateHeads(s.Id(), res.Heads) } headUpdate := s.syncClient.CreateHeadUpdate(s, res.Added) err = s.syncClient.BroadcastAsync(headUpdate) @@ -301,7 +301,7 @@ func (s *syncTree) AddRawChanges(ctx context.Context, changesPayload objecttree. } func (s *syncTree) Delete() (err error) { - log.With("id", s.ID()).Debug("deleting sync tree") + log.With("id", s.Id()).Debug("deleting sync tree") s.Lock() defer s.Unlock() if err = s.checkAlive(); err != nil { @@ -316,7 +316,7 @@ func (s *syncTree) Delete() (err error) { } func (s *syncTree) Close() (err error) { - log.With("id", s.ID()).Debug("closing sync tree") + log.With("id", s.Id()).Debug("closing sync tree") s.Lock() defer s.Unlock() if s.isClosed { @@ -350,6 +350,6 @@ func (s *syncTree) afterBuild() { } s.treeUsage.Add(1) if s.notifiable != nil { - s.notifiable.UpdateHeads(s.ID(), s.Heads()) + s.notifiable.UpdateHeads(s.Id(), s.Heads()) } } diff --git a/common/commonspace/object/tree/synctree/synctree_test.go b/common/commonspace/object/tree/synctree/synctree_test.go index b8c4bfe5..a160b726 100644 --- a/common/commonspace/object/tree/synctree/synctree_test.go +++ b/common/commonspace/object/tree/synctree/synctree_test.go @@ -75,7 +75,7 @@ func Test_DeriveSyncTree(t *testing.T) { SyncStatus: syncstatus.NewNoOpSyncStatus(), HeadNotifiable: headNotifiableMock, } - objTreeMock.EXPECT().ID().Return("id") + objTreeMock.EXPECT().Id().Return("id") _, err := DeriveSyncTree(ctx, deps) require.NoError(t, err) @@ -105,7 +105,7 @@ func Test_CreateSyncTree(t *testing.T) { headNotifiableMock.EXPECT().UpdateHeads("id", []string{"h1"}) syncClientMock.EXPECT().CreateHeadUpdate(gomock.Any(), gomock.Nil()).Return(headUpdate) syncClientMock.EXPECT().BroadcastAsync(gomock.Eq(headUpdate)).Return(nil) - objTreeMock.EXPECT().ID().Return("id") + objTreeMock.EXPECT().Id().Return("id") deps := CreateDeps{ AclList: aclListMock, SpaceId: spaceId, @@ -207,7 +207,7 @@ func Test_BuildSyncTree(t *testing.T) { Mode: objecttree.Append, Added: changes, } - objTreeMock.EXPECT().ID().Return("id").AnyTimes() + objTreeMock.EXPECT().Id().Return("id").AnyTimes() objTreeMock.EXPECT().AddContent(gomock.Any(), gomock.Eq(content)). Return(expectedRes, nil) diff --git a/common/commonspace/object/tree/synctree/synctreehandler.go b/common/commonspace/object/tree/synctree/synctreehandler.go index 501ef5a7..b66ba45f 100644 --- a/common/commonspace/object/tree/synctree/synctreehandler.go +++ b/common/commonspace/object/tree/synctree/synctreehandler.go @@ -84,7 +84,7 @@ func (s *syncTreeHandler) handleHeadUpdate( log := log.With("senderId", senderId). With("heads", objTree.Heads()). - With("treeId", objTree.ID()) + With("treeId", objTree.Id()) log.Debug("received head update message") defer func() { @@ -101,7 +101,7 @@ func (s *syncTreeHandler) handleHeadUpdate( // isEmptyUpdate is sent when the tree is brought up from cache if isEmptyUpdate { - log.With("treeId", objTree.ID()).Debug("is empty update") + log.With("treeId", objTree.Id()).Debug("is empty update") if slice.UnsortedEquals(objTree.Heads(), update.Heads) { return } @@ -151,7 +151,7 @@ func (s *syncTreeHandler) handleFullSyncRequest( log := log.With("senderId", senderId). With("heads", request.Heads). - With("treeId", s.objTree.ID()). + With("treeId", s.objTree.Id()). With("replyId", replyId) log.Debug("received full sync request message") @@ -192,7 +192,7 @@ func (s *syncTreeHandler) handleFullSyncResponse( ) log := log.With("senderId", senderId). With("heads", response.Heads). - With("treeId", s.objTree.ID()) + With("treeId", s.objTree.Id()) log.Debug("received full sync response message") defer func() { diff --git a/common/commonspace/object/tree/synctree/synctreehandler_test.go b/common/commonspace/object/tree/synctree/synctreehandler_test.go index 3840d9f5..1781b09a 100644 --- a/common/commonspace/object/tree/synctree/synctreehandler_test.go +++ b/common/commonspace/object/tree/synctree/synctreehandler_test.go @@ -89,7 +89,7 @@ func TestSyncHandler_HandleHeadUpdate(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), "").Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Heads().Return([]string{"h2"}).Times(2) fx.objectTreeMock.EXPECT().HasChanges(gomock.Eq([]string{"h1"})).Return(false) fx.objectTreeMock.EXPECT(). @@ -123,7 +123,7 @@ func TestSyncHandler_HandleHeadUpdate(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), "").Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Heads().Return([]string{"h2"}).AnyTimes() fx.objectTreeMock.EXPECT().HasChanges(gomock.Eq([]string{"h1"})).Return(false) fx.objectTreeMock.EXPECT(). @@ -159,7 +159,7 @@ func TestSyncHandler_HandleHeadUpdate(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), "").Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Heads().Return([]string{"h1"}).AnyTimes() fx.receiveQueueMock.EXPECT().ClearQueue(senderId) @@ -184,7 +184,7 @@ func TestSyncHandler_HandleHeadUpdate(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), "").Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Heads().Return([]string{"h2"}).AnyTimes() fx.syncClientMock.EXPECT(). CreateFullSyncRequest(gomock.Eq(fx.objectTreeMock), gomock.Eq([]string{"h1"}), gomock.Eq([]string{"h1"})). @@ -212,7 +212,7 @@ func TestSyncHandler_HandleHeadUpdate(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), "").Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Heads().Return([]string{"h1"}).AnyTimes() fx.receiveQueueMock.EXPECT().ClearQueue(senderId) @@ -242,7 +242,7 @@ func TestSyncHandler_HandleFullSyncRequest(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), "").Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Header().Return(nil) fx.objectTreeMock.EXPECT().Heads().Return([]string{"h2"}).AnyTimes() fx.objectTreeMock.EXPECT().HasChanges(gomock.Eq([]string{"h1"})).Return(false) @@ -280,7 +280,7 @@ func TestSyncHandler_HandleFullSyncRequest(t *testing.T) { fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) fx.objectTreeMock.EXPECT(). - ID().AnyTimes().Return(treeId) + Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Header().Return(nil) fx.objectTreeMock.EXPECT(). Heads(). @@ -313,7 +313,7 @@ func TestSyncHandler_HandleFullSyncRequest(t *testing.T) { fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, replyId, nil) fx.objectTreeMock.EXPECT(). - ID().AnyTimes().Return(treeId) + Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Header().Return(nil) fx.syncClientMock.EXPECT(). CreateFullSyncResponse(gomock.Eq(fx.objectTreeMock), gomock.Eq([]string{"h1"}), gomock.Eq([]string{"h1"})). @@ -342,7 +342,7 @@ func TestSyncHandler_HandleFullSyncRequest(t *testing.T) { fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, "", nil) fx.objectTreeMock.EXPECT(). - ID().AnyTimes().Return(treeId) + Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT().Header().Return(nil) fx.objectTreeMock.EXPECT(). Heads(). @@ -385,7 +385,7 @@ func TestSyncHandler_HandleFullSyncResponse(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), replyId).Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, replyId, nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT(). Heads(). Return([]string{"h2"}).AnyTimes() @@ -421,7 +421,7 @@ func TestSyncHandler_HandleFullSyncResponse(t *testing.T) { fx.receiveQueueMock.EXPECT().AddMessage(senderId, gomock.Eq(treeMsg), replyId).Return(false) fx.receiveQueueMock.EXPECT().GetMessage(senderId).Return(treeMsg, replyId, nil) - fx.objectTreeMock.EXPECT().ID().AnyTimes().Return(treeId) + fx.objectTreeMock.EXPECT().Id().AnyTimes().Return(treeId) fx.objectTreeMock.EXPECT(). Heads(). Return([]string{"h1"}).AnyTimes() diff --git a/common/commonspace/payloads.go b/common/commonspace/payloads.go index f711445b..c844e030 100644 --- a/common/commonspace/payloads.go +++ b/common/commonspace/payloads.go @@ -55,7 +55,7 @@ func storagePayloadForSpaceCreate(payload SpaceCreatePayload) (storagePayload sp if err != nil { return } - id, err := cidutil.NewCIDFromBytes(marshalled) + id, err := cidutil.NewCidFromBytes(marshalled) spaceId := NewSpaceId(id, payload.ReplicationKey) rawHeaderWithId := &spacesyncproto.RawSpaceHeaderWithId{ RawHeader: marshalled, @@ -163,7 +163,7 @@ func storagePayloadForSpaceDerive(payload SpaceDerivePayload) (storagePayload sp if err != nil { return } - id, err := cidutil.NewCIDFromBytes(marshalled) + id, err := cidutil.NewCidFromBytes(marshalled) spaceId := NewSpaceId(id, repKey) rawHeaderWithId := &spacesyncproto.RawSpaceHeaderWithId{ RawHeader: marshalled, @@ -238,7 +238,7 @@ func marshalAclRoot(aclRoot *aclrecordproto2.AclRoot, key signingkey.PrivKey) (r if err != nil { return } - aclHeadId, err := cidutil.NewCIDFromBytes(marshalledRaw) + aclHeadId, err := cidutil.NewCidFromBytes(marshalledRaw) if err != nil { return } diff --git a/common/commonspace/settings/idprovider.go b/common/commonspace/settings/idprovider.go index 7af4067b..980b6aa1 100644 --- a/common/commonspace/settings/idprovider.go +++ b/common/commonspace/settings/idprovider.go @@ -51,7 +51,7 @@ func (p *provider) ProvideIds(tr objecttree.ObjectTree, startId string) (ids []s } if startId == "" { - err = tr.IterateFrom(tr.ID(), convert, process) + err = tr.IterateFrom(tr.Id(), convert, process) } else { err = tr.IterateFrom(startId, convert, process) } diff --git a/common/commonspace/settings/idprovider_test.go b/common/commonspace/settings/idprovider_test.go index 7f52f051..5968ce04 100644 --- a/common/commonspace/settings/idprovider_test.go +++ b/common/commonspace/settings/idprovider_test.go @@ -78,7 +78,7 @@ func TestProvider_ProvideIds(t *testing.T) { t.Run("startId is empty", func(t *testing.T) { ch := &objecttree.Change{Id: "rootId"} objTree.EXPECT().Root().Return(ch) - objTree.EXPECT().ID().Return("id") + objTree.EXPECT().Id().Return("id") objTree.EXPECT().IterateFrom("id", gomock.Any(), gomock.Any()).Return(nil) _, _, err := prov.ProvideIds(objTree, "") require.NoError(t, err) diff --git a/common/commonspace/settings/settings.go b/common/commonspace/settings/settings.go index ac35cafa..68fe1628 100644 --- a/common/commonspace/settings/settings.go +++ b/common/commonspace/settings/settings.go @@ -136,7 +136,7 @@ func (s *settingsObject) Close() error { func (s *settingsObject) DeleteObject(id string) (err error) { s.Lock() defer s.Unlock() - if s.ID() == id { + if s.Id() == id { err = ErrDeleteSelf return } diff --git a/common/commonspace/settings/settings_test.go b/common/commonspace/settings/settings_test.go index 45e4e90a..f3f87be8 100644 --- a/common/commonspace/settings/settings_test.go +++ b/common/commonspace/settings/settings_test.go @@ -129,7 +129,7 @@ func TestSettingsObject_DeleteObject(t *testing.T) { delId := "delId" - fx.syncTree.EXPECT().ID().Return("syncId") + fx.syncTree.EXPECT().Id().Return("syncId") fx.delState.EXPECT().Exists(delId).Return(false) fx.spaceStorage.EXPECT().TreeStorage(delId).Return(nil, nil) res := []byte("settingsData") diff --git a/common/commonspace/spacestorage/mock_storage/mock_storage.go b/common/commonspace/spacestorage/mock_storage/mock_storage.go new file mode 100644 index 00000000..0d44e018 --- /dev/null +++ b/common/commonspace/spacestorage/mock_storage/mock_storage.go @@ -0,0 +1,266 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage (interfaces: SpaceStorageProvider,SpaceStorage) + +// Package mock_spacestorage is a generated GoMock package. +package mock_spacestorage + +import ( + reflect "reflect" + + app "github.com/anytypeio/go-anytype-infrastructure-experiments/common/app" + liststorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/liststorage" + treestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage" + spacestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage" + spacesyncproto "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto" + gomock "github.com/golang/mock/gomock" +) + +// MockSpaceStorageProvider is a mock of SpaceStorageProvider interface. +type MockSpaceStorageProvider struct { + ctrl *gomock.Controller + recorder *MockSpaceStorageProviderMockRecorder +} + +// MockSpaceStorageProviderMockRecorder is the mock recorder for MockSpaceStorageProvider. +type MockSpaceStorageProviderMockRecorder struct { + mock *MockSpaceStorageProvider +} + +// NewMockSpaceStorageProvider creates a new mock instance. +func NewMockSpaceStorageProvider(ctrl *gomock.Controller) *MockSpaceStorageProvider { + mock := &MockSpaceStorageProvider{ctrl: ctrl} + mock.recorder = &MockSpaceStorageProviderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockSpaceStorageProvider) EXPECT() *MockSpaceStorageProviderMockRecorder { + return m.recorder +} + +// CreateSpaceStorage mocks base method. +func (m *MockSpaceStorageProvider) CreateSpaceStorage(arg0 spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateSpaceStorage", arg0) + ret0, _ := ret[0].(spacestorage.SpaceStorage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateSpaceStorage indicates an expected call of CreateSpaceStorage. +func (mr *MockSpaceStorageProviderMockRecorder) CreateSpaceStorage(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSpaceStorage", reflect.TypeOf((*MockSpaceStorageProvider)(nil).CreateSpaceStorage), arg0) +} + +// Init mocks base method. +func (m *MockSpaceStorageProvider) Init(arg0 *app.App) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Init", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// Init indicates an expected call of Init. +func (mr *MockSpaceStorageProviderMockRecorder) Init(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init", reflect.TypeOf((*MockSpaceStorageProvider)(nil).Init), arg0) +} + +// Name mocks base method. +func (m *MockSpaceStorageProvider) Name() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Name") + ret0, _ := ret[0].(string) + return ret0 +} + +// Name indicates an expected call of Name. +func (mr *MockSpaceStorageProviderMockRecorder) Name() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Name", reflect.TypeOf((*MockSpaceStorageProvider)(nil).Name)) +} + +// SpaceStorage mocks base method. +func (m *MockSpaceStorageProvider) SpaceStorage(arg0 string) (spacestorage.SpaceStorage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SpaceStorage", arg0) + ret0, _ := ret[0].(spacestorage.SpaceStorage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SpaceStorage indicates an expected call of SpaceStorage. +func (mr *MockSpaceStorageProviderMockRecorder) SpaceStorage(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceStorage", reflect.TypeOf((*MockSpaceStorageProvider)(nil).SpaceStorage), arg0) +} + +// MockSpaceStorage is a mock of SpaceStorage interface. +type MockSpaceStorage struct { + ctrl *gomock.Controller + recorder *MockSpaceStorageMockRecorder +} + +// MockSpaceStorageMockRecorder is the mock recorder for MockSpaceStorage. +type MockSpaceStorageMockRecorder struct { + mock *MockSpaceStorage +} + +// NewMockSpaceStorage creates a new mock instance. +func NewMockSpaceStorage(ctrl *gomock.Controller) *MockSpaceStorage { + mock := &MockSpaceStorage{ctrl: ctrl} + mock.recorder = &MockSpaceStorageMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockSpaceStorage) EXPECT() *MockSpaceStorageMockRecorder { + return m.recorder +} + +// AclStorage mocks base method. +func (m *MockSpaceStorage) AclStorage() (liststorage.ListStorage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AclStorage") + ret0, _ := ret[0].(liststorage.ListStorage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AclStorage indicates an expected call of AclStorage. +func (mr *MockSpaceStorageMockRecorder) AclStorage() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AclStorage", reflect.TypeOf((*MockSpaceStorage)(nil).AclStorage)) +} + +// Close mocks base method. +func (m *MockSpaceStorage) Close() error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Close") + ret0, _ := ret[0].(error) + return ret0 +} + +// Close indicates an expected call of Close. +func (mr *MockSpaceStorageMockRecorder) Close() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockSpaceStorage)(nil).Close)) +} + +// CreateTreeStorage mocks base method. +func (m *MockSpaceStorage) CreateTreeStorage(arg0 treestorage.TreeStorageCreatePayload) (treestorage.TreeStorage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateTreeStorage", arg0) + ret0, _ := ret[0].(treestorage.TreeStorage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateTreeStorage indicates an expected call of CreateTreeStorage. +func (mr *MockSpaceStorageMockRecorder) CreateTreeStorage(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTreeStorage", reflect.TypeOf((*MockSpaceStorage)(nil).CreateTreeStorage), arg0) +} + +// Id mocks base method. +func (m *MockSpaceStorage) Id() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Id") + ret0, _ := ret[0].(string) + return ret0 +} + +// Id indicates an expected call of Id. +func (mr *MockSpaceStorageMockRecorder) Id() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSpaceStorage)(nil).Id)) +} + +// SetTreeDeletedStatus mocks base method. +func (m *MockSpaceStorage) SetTreeDeletedStatus(arg0, arg1 string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SetTreeDeletedStatus", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// SetTreeDeletedStatus indicates an expected call of SetTreeDeletedStatus. +func (mr *MockSpaceStorageMockRecorder) SetTreeDeletedStatus(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTreeDeletedStatus", reflect.TypeOf((*MockSpaceStorage)(nil).SetTreeDeletedStatus), arg0, arg1) +} + +// SpaceHeader mocks base method. +func (m *MockSpaceStorage) SpaceHeader() (*spacesyncproto.RawSpaceHeaderWithId, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SpaceHeader") + ret0, _ := ret[0].(*spacesyncproto.RawSpaceHeaderWithId) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SpaceHeader indicates an expected call of SpaceHeader. +func (mr *MockSpaceStorageMockRecorder) SpaceHeader() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceHeader", reflect.TypeOf((*MockSpaceStorage)(nil).SpaceHeader)) +} + +// SpaceSettingsId mocks base method. +func (m *MockSpaceStorage) SpaceSettingsId() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SpaceSettingsId") + ret0, _ := ret[0].(string) + return ret0 +} + +// SpaceSettingsId indicates an expected call of SpaceSettingsId. +func (mr *MockSpaceStorageMockRecorder) SpaceSettingsId() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceSettingsId", reflect.TypeOf((*MockSpaceStorage)(nil).SpaceSettingsId)) +} + +// StoredIds mocks base method. +func (m *MockSpaceStorage) StoredIds() ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StoredIds") + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StoredIds indicates an expected call of StoredIds. +func (mr *MockSpaceStorageMockRecorder) StoredIds() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StoredIds", reflect.TypeOf((*MockSpaceStorage)(nil).StoredIds)) +} + +// TreeDeletedStatus mocks base method. +func (m *MockSpaceStorage) TreeDeletedStatus(arg0 string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "TreeDeletedStatus", arg0) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// TreeDeletedStatus indicates an expected call of TreeDeletedStatus. +func (mr *MockSpaceStorageMockRecorder) TreeDeletedStatus(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeDeletedStatus", reflect.TypeOf((*MockSpaceStorage)(nil).TreeDeletedStatus), arg0) +} + +// TreeStorage mocks base method. +func (m *MockSpaceStorage) TreeStorage(arg0 string) (treestorage.TreeStorage, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "TreeStorage", arg0) + ret0, _ := ret[0].(treestorage.TreeStorage) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// TreeStorage indicates an expected call of TreeStorage. +func (mr *MockSpaceStorageMockRecorder) TreeStorage(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeStorage", reflect.TypeOf((*MockSpaceStorage)(nil).TreeStorage), arg0) +} diff --git a/common/util/cidutil/cid.go b/common/util/cidutil/cid.go index 1d80e97f..a08f130c 100644 --- a/common/util/cidutil/cid.go +++ b/common/util/cidutil/cid.go @@ -5,7 +5,7 @@ import ( mh "github.com/multiformats/go-multihash" ) -func NewCIDFromBytes(data []byte) (string, error) { +func NewCidFromBytes(data []byte) (string, error) { hash, err := mh.Sum(data, mh.SHA2_256, -1) if err != nil { return "", err @@ -13,7 +13,7 @@ func NewCIDFromBytes(data []byte) (string, error) { return cid.NewCidV1(cid.DagCBOR, hash).String(), nil } -func VerifyCID(data []byte, id string) bool { +func VerifyCid(data []byte, id string) bool { hash, err := mh.Sum(data, mh.SHA2_256, -1) if err != nil { return false diff --git a/common/util/peer/peer.go b/common/util/peer/peer.go index 32ea21ee..590a1ac0 100644 --- a/common/util/peer/peer.go +++ b/common/util/peer/peer.go @@ -6,7 +6,7 @@ import ( "github.com/libp2p/go-libp2p/core/peer" ) -func IDFromSigningPubKey(pubKey signingkey.PubKey) (peer.ID, error) { +func IdFromSigningPubKey(pubKey signingkey.PubKey) (peer.ID, error) { rawSigning, err := pubKey.Raw() if err != nil { return "", err diff --git a/node/acl/service.go b/node/acl/service.go index b71ecebe..b7845a6e 100644 --- a/node/acl/service.go +++ b/node/acl/service.go @@ -125,7 +125,7 @@ func (s *service) signAndMarshal(rawRec *aclrecordproto.RawAclRecord) (recId, pr if payload, err = rawRec.Marshal(); err != nil { return } - recCid, err := cidutil.NewCIDFromBytes(payload) + recCid, err := cidutil.NewCidFromBytes(payload) if err != nil { return } diff --git a/node/acl/service_test.go b/node/acl/service_test.go index a9741975..ca25f8f1 100644 --- a/node/acl/service_test.go +++ b/node/acl/service_test.go @@ -28,7 +28,7 @@ func TestService_CreateLog(t *testing.T) { clog = l }) - aclId, _ := cidutil.NewCIDFromBytes([]byte("aclId")) + aclId, _ := cidutil.NewCidFromBytes([]byte("aclId")) rec := &aclrecordproto.AclRecord{ PrevId: "", @@ -63,7 +63,7 @@ func TestService_AddRecord(t *testing.T) { clog = l }) - aclId, _ := cidutil.NewCIDFromBytes([]byte("aclId")) + aclId, _ := cidutil.NewCidFromBytes([]byte("aclId")) rec := &aclrecordproto.AclRecord{ PrevId: "", @@ -108,7 +108,7 @@ func TestService_Watch(t *testing.T) { fx := newFixture(t) defer fx.Finish(t) var expErr = fmt.Errorf("error") - aclId, _ := cidutil.NewCIDFromBytes([]byte("aclId")) + aclId, _ := cidutil.NewCidFromBytes([]byte("aclId")) aclIdBytes, _ := cidToByte(aclId) fx.mockClient.EXPECT().Watch(aclIdBytes, gomock.Any()).Do(func(aid []byte, w consensusclient.Watcher) { assert.Equal(t, aclIdBytes, aid) @@ -125,14 +125,14 @@ func TestService_Watch(t *testing.T) { t.Run("success", func(t *testing.T) { fx := newFixture(t) defer fx.Finish(t) - aclId, _ := cidutil.NewCIDFromBytes([]byte("aclId")) + aclId, _ := cidutil.NewCidFromBytes([]byte("aclId")) aclIdBytes, _ := cidToByte(aclId) fx.mockClient.EXPECT().Watch(aclIdBytes, gomock.Any()).Do(func(aid []byte, w consensusclient.Watcher) { assert.Equal(t, aclIdBytes, aid) go func() { time.Sleep(time.Millisecond * 10) - r1cid, _ := cidutil.NewCIDFromBytes([]byte("r1")) - r2cid, _ := cidutil.NewCIDFromBytes([]byte("r2")) + r1cid, _ := cidutil.NewCidFromBytes([]byte("r1")) + r2cid, _ := cidutil.NewCidFromBytes([]byte("r2")) r1cidB, _ := cidToByte(r1cid) r2cidB, _ := cidToByte(r2cid) w.AddConsensusRecords([]*consensusproto.Record{ diff --git a/node/acl/util_test.go b/node/acl/util_test.go index e042c49e..1ee3b056 100644 --- a/node/acl/util_test.go +++ b/node/acl/util_test.go @@ -7,7 +7,7 @@ import ( ) func TestCIDLen(t *testing.T) { - s, _ := cidutil.NewCIDFromBytes([]byte("some data")) + s, _ := cidutil.NewCidFromBytes([]byte("some data")) t.Log(s, len(s)) b, _ := cidToByte(s) t.Log(b, len(b)) diff --git a/util/cmd/nodesgen/gen.go b/util/cmd/nodesgen/gen.go index 2aa4888e..76b9d755 100644 --- a/util/cmd/nodesgen/gen.go +++ b/util/cmd/nodesgen/gen.go @@ -210,7 +210,7 @@ func genNodeConfig(addresses []string, apiAddresses []string, num int) (config.C return config.Config{}, err } - peerID, err := peer.IDFromSigningPubKey(signKey.GetPublic()) + peerID, err := peer.IdFromSigningPubKey(signKey.GetPublic()) if err != nil { return config.Config{}, err } @@ -264,7 +264,7 @@ func genClientConfig(addresses []string, apiAddresses []string, encKey encryptio return config.Config{}, err } - peerID, err := peer.IDFromSigningPubKey(peerKey.GetPublic()) + peerID, err := peer.IdFromSigningPubKey(peerKey.GetPublic()) if err != nil { return config.Config{}, err } @@ -318,7 +318,7 @@ func genConsensusConfig(addresses []string) (cconfig.Config, error) { return cconfig.Config{}, err } - peerID, err := peer.IDFromSigningPubKey(signKey.GetPublic()) + peerID, err := peer.IdFromSigningPubKey(signKey.GetPublic()) if err != nil { return cconfig.Config{}, err } @@ -367,7 +367,7 @@ func getFileNodeConfig(addresses []string, num int) (fconfig.Config, error) { return fconfig.Config{}, err } - peerID, err := peer.IDFromSigningPubKey(signKey.GetPublic()) + peerID, err := peer.IdFromSigningPubKey(signKey.GetPublic()) if err != nil { return fconfig.Config{}, err }