diff --git a/internal/apiserver/route_get_groups.go b/internal/apiserver/route_get_groups.go index 4bac62fe65..1972d3e70b 100644 --- a/internal/apiserver/route_get_groups.go +++ b/internal/apiserver/route_get_groups.go @@ -38,7 +38,7 @@ var getGroups = &ffapi.Route{ Extensions: &coreExtensions{ FilterFactory: database.GroupQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return filterResult(cr.or.PrivateMessaging().GetGroupsNS(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.PrivateMessaging().GetGroups(cr.ctx, cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_groups_test.go b/internal/apiserver/route_get_groups_test.go index 09f961c9e9..fde6a2072a 100644 --- a/internal/apiserver/route_get_groups_test.go +++ b/internal/apiserver/route_get_groups_test.go @@ -34,7 +34,7 @@ func TestGetGroups(t *testing.T) { mpm := &privatemessagingmocks.Manager{} o.On("PrivateMessaging").Return(mpm) - mpm.On("GetGroupsNS", mock.Anything, "mynamespace", mock.Anything). + mpm.On("GetGroups", mock.Anything, mock.Anything). Return([]*core.Group{}, nil, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_identities.go b/internal/apiserver/route_get_identities.go index 067902ffc8..0457f32d31 100644 --- a/internal/apiserver/route_get_identities.go +++ b/internal/apiserver/route_get_identities.go @@ -42,9 +42,9 @@ var getIdentities = &ffapi.Route{ FilterFactory: database.IdentityQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { if strings.EqualFold(r.QP["fetchverifiers"], "true") { - return filterResult(cr.or.NetworkMap().GetIdentitiesWithVerifiers(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetIdentitiesWithVerifiers(cr.ctx, cr.filter)) } - return filterResult(cr.or.NetworkMap().GetIdentities(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetIdentities(cr.ctx, cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_identities_test.go b/internal/apiserver/route_get_identities_test.go index 4fc9b0e8a6..be9be45948 100644 --- a/internal/apiserver/route_get_identities_test.go +++ b/internal/apiserver/route_get_identities_test.go @@ -34,7 +34,7 @@ func TestGetIdentities(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentities", mock.Anything, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil) + mnm.On("GetIdentities", mock.Anything, mock.Anything).Return([]*core.Identity{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) @@ -48,7 +48,7 @@ func TestGetIdentitiesWithVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentitiesWithVerifiers", mock.Anything, "ns1", mock.Anything).Return([]*core.IdentityWithVerifiers{}, nil, nil) + mnm.On("GetIdentitiesWithVerifiers", mock.Anything, mock.Anything).Return([]*core.IdentityWithVerifiers{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_get_identity_by_did.go b/internal/apiserver/route_get_identity_by_did.go index 2223545a49..e8025c0c01 100644 --- a/internal/apiserver/route_get_identity_by_did.go +++ b/internal/apiserver/route_get_identity_by_did.go @@ -42,9 +42,9 @@ var getIdentityByDID = &ffapi.Route{ Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { if strings.EqualFold(r.QP["fetchverifiers"], "true") { - return cr.or.NetworkMap().GetIdentityByDIDWithVerifiers(cr.ctx, extractNamespace(r.PP), r.PP["did"]) + return cr.or.NetworkMap().GetIdentityByDIDWithVerifiers(cr.ctx, r.PP["did"]) } - return cr.or.NetworkMap().GetIdentityByDID(cr.ctx, extractNamespace(r.PP), r.PP["did"]) + return cr.or.NetworkMap().GetIdentityByDID(cr.ctx, r.PP["did"]) }, }, } diff --git a/internal/apiserver/route_get_identity_by_did_test.go b/internal/apiserver/route_get_identity_by_did_test.go index 48fb10bd99..99b4501b97 100644 --- a/internal/apiserver/route_get_identity_by_did_test.go +++ b/internal/apiserver/route_get_identity_by_did_test.go @@ -34,7 +34,7 @@ func TestGetIdentityByDID(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetIdentityByDID", mock.Anything, "default", "did:firefly:org/org_1"). + nmn.On("GetIdentityByDID", mock.Anything, "did:firefly:org/org_1"). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) @@ -49,7 +49,7 @@ func TestGetIdentityByDIDWithVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetIdentityByDIDWithVerifiers", mock.Anything, "default", "did:firefly:org/org_1"). + nmn.On("GetIdentityByDIDWithVerifiers", mock.Anything, "did:firefly:org/org_1"). Return(&core.IdentityWithVerifiers{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_identity_by_id.go b/internal/apiserver/route_get_identity_by_id.go index e9a87756e9..f489682993 100644 --- a/internal/apiserver/route_get_identity_by_id.go +++ b/internal/apiserver/route_get_identity_by_id.go @@ -42,9 +42,9 @@ var getIdentityByID = &ffapi.Route{ Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { if strings.EqualFold(r.QP["fetchverifiers"], "true") { - return cr.or.NetworkMap().GetIdentityByIDWithVerifiers(cr.ctx, extractNamespace(r.PP), r.PP["iid"]) + return cr.or.NetworkMap().GetIdentityByIDWithVerifiers(cr.ctx, r.PP["iid"]) } - return cr.or.NetworkMap().GetIdentityByID(cr.ctx, extractNamespace(r.PP), r.PP["iid"]) + return cr.or.NetworkMap().GetIdentityByID(cr.ctx, r.PP["iid"]) }, }, } diff --git a/internal/apiserver/route_get_identity_by_id_test.go b/internal/apiserver/route_get_identity_by_id_test.go index bdcc00539e..ba1ce51441 100644 --- a/internal/apiserver/route_get_identity_by_id_test.go +++ b/internal/apiserver/route_get_identity_by_id_test.go @@ -34,7 +34,7 @@ func TestGetIdentityByID(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentityByID", mock.Anything, "ns1", "id1").Return(&core.Identity{}, nil, nil) + mnm.On("GetIdentityByID", mock.Anything, "id1").Return(&core.Identity{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) @@ -48,7 +48,7 @@ func TestGetIdentityByIDWithVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentityByIDWithVerifiers", mock.Anything, "ns1", "id1").Return(&core.IdentityWithVerifiers{}, nil, nil) + mnm.On("GetIdentityByIDWithVerifiers", mock.Anything, "id1").Return(&core.IdentityWithVerifiers{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_get_identity_did.go b/internal/apiserver/route_get_identity_did.go index 8eb6591840..78db46d9c9 100644 --- a/internal/apiserver/route_get_identity_did.go +++ b/internal/apiserver/route_get_identity_did.go @@ -38,7 +38,7 @@ var getIdentityDID = &ffapi.Route{ JSONOutputCodes: []int{http.StatusOK}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return cr.or.NetworkMap().GetDIDDocForIndentityByID(cr.ctx, extractNamespace(r.PP), r.PP["iid"]) + return cr.or.NetworkMap().GetDIDDocForIndentityByID(cr.ctx, r.PP["iid"]) }, }, } diff --git a/internal/apiserver/route_get_identity_did_test.go b/internal/apiserver/route_get_identity_did_test.go index 1ac5b38c1e..21c8558732 100644 --- a/internal/apiserver/route_get_identity_did_test.go +++ b/internal/apiserver/route_get_identity_did_test.go @@ -34,7 +34,7 @@ func TestGetIdentityDID(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetDIDDocForIndentityByID", mock.Anything, "ns1", "id1").Return(&networkmap.DIDDocument{}, nil, nil) + mnm.On("GetDIDDocForIndentityByID", mock.Anything, "id1").Return(&networkmap.DIDDocument{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_get_identity_verifiers.go b/internal/apiserver/route_get_identity_verifiers.go index e31a2fd20a..2b79eb1ac5 100644 --- a/internal/apiserver/route_get_identity_verifiers.go +++ b/internal/apiserver/route_get_identity_verifiers.go @@ -40,7 +40,7 @@ var getIdentityVerifiers = &ffapi.Route{ Extensions: &coreExtensions{ FilterFactory: database.VerifierQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return filterResult(cr.or.NetworkMap().GetIdentityVerifiers(cr.ctx, extractNamespace(r.PP), r.PP["iid"], cr.filter)) + return filterResult(cr.or.NetworkMap().GetIdentityVerifiers(cr.ctx, r.PP["iid"], cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_identity_verifiers_test.go b/internal/apiserver/route_get_identity_verifiers_test.go index 115a928209..5b11aef3c8 100644 --- a/internal/apiserver/route_get_identity_verifiers_test.go +++ b/internal/apiserver/route_get_identity_verifiers_test.go @@ -34,7 +34,7 @@ func TestGetIdentityVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentityVerifiers", mock.Anything, "ns1", "id1", mock.Anything).Return([]*core.Verifier{}, nil, nil) + mnm.On("GetIdentityVerifiers", mock.Anything, "id1", mock.Anything).Return([]*core.Verifier{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_get_net_did.go b/internal/apiserver/route_get_net_did.go index 5f04259f92..8757cfa969 100644 --- a/internal/apiserver/route_get_net_did.go +++ b/internal/apiserver/route_get_net_did.go @@ -43,9 +43,9 @@ var getNetworkIdentityByDID = &ffapi.Route{ Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { if strings.EqualFold(r.QP["fetchverifiers"], "true") { - return cr.or.NetworkMap().GetIdentityByDIDWithVerifiers(cr.ctx, extractNamespace(r.PP), r.PP["did"]) + return cr.or.NetworkMap().GetIdentityByDIDWithVerifiers(cr.ctx, r.PP["did"]) } - return cr.or.NetworkMap().GetIdentityByDID(cr.ctx, extractNamespace(r.PP), r.PP["did"]) + return cr.or.NetworkMap().GetIdentityByDID(cr.ctx, r.PP["did"]) }, }, } diff --git a/internal/apiserver/route_get_net_did_test.go b/internal/apiserver/route_get_net_did_test.go index fe96806448..4eb25e0dff 100644 --- a/internal/apiserver/route_get_net_did_test.go +++ b/internal/apiserver/route_get_net_did_test.go @@ -34,7 +34,7 @@ func TestGetNetIdentityByDID(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetIdentityByDID", mock.Anything, "default", "did:firefly:org/org_1"). + nmn.On("GetIdentityByDID", mock.Anything, "did:firefly:org/org_1"). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) @@ -49,7 +49,7 @@ func TestGetNetIdentityByDIDWithVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetIdentityByDIDWithVerifiers", mock.Anything, "default", "did:firefly:org/org_1"). + nmn.On("GetIdentityByDIDWithVerifiers", mock.Anything, "did:firefly:org/org_1"). Return(&core.IdentityWithVerifiers{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_net_diddoc.go b/internal/apiserver/route_get_net_diddoc.go index 25d2f4262d..f83240c00d 100644 --- a/internal/apiserver/route_get_net_diddoc.go +++ b/internal/apiserver/route_get_net_diddoc.go @@ -37,7 +37,7 @@ var getNetworkDIDDocByDID = &ffapi.Route{ JSONOutputCodes: []int{http.StatusOK}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return cr.or.NetworkMap().GetDIDDocForIndentityByDID(cr.ctx, extractNamespace(r.PP), r.PP["did"]) + return cr.or.NetworkMap().GetDIDDocForIndentityByDID(cr.ctx, r.PP["did"]) }, }, } diff --git a/internal/apiserver/route_get_net_diddoc_test.go b/internal/apiserver/route_get_net_diddoc_test.go index 46ee15ceb6..a836d9f341 100644 --- a/internal/apiserver/route_get_net_diddoc_test.go +++ b/internal/apiserver/route_get_net_diddoc_test.go @@ -34,7 +34,7 @@ func TestGetDIDDocByDID(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetDIDDocForIndentityByDID", mock.Anything, "default", "did:firefly:org/org_1"). + nmn.On("GetDIDDocForIndentityByDID", mock.Anything, "did:firefly:org/org_1"). Return(&networkmap.DIDDocument{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_net_identities.go b/internal/apiserver/route_get_net_identities.go index 8fe8c80a59..e7ede2d24a 100644 --- a/internal/apiserver/route_get_net_identities.go +++ b/internal/apiserver/route_get_net_identities.go @@ -42,9 +42,9 @@ var getNetworkIdentities = &ffapi.Route{ FilterFactory: database.IdentityQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { if strings.EqualFold(r.QP["fetchverifiers"], "true") { - return filterResult(cr.or.NetworkMap().GetIdentitiesWithVerifiers(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetIdentitiesWithVerifiers(cr.ctx, cr.filter)) } - return filterResult(cr.or.NetworkMap().GetIdentities(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetIdentities(cr.ctx, cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_net_identities_test.go b/internal/apiserver/route_get_net_identities_test.go index 2f769b138f..91c0cc7509 100644 --- a/internal/apiserver/route_get_net_identities_test.go +++ b/internal/apiserver/route_get_net_identities_test.go @@ -34,7 +34,7 @@ func TestGetNetIdentities(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentities", mock.Anything, "default", mock.Anything).Return([]*core.Identity{}, nil, nil) + mnm.On("GetIdentities", mock.Anything, mock.Anything).Return([]*core.Identity{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) @@ -48,7 +48,7 @@ func TestGetNetIdentitiesWithVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetIdentitiesWithVerifiers", mock.Anything, "default", mock.Anything).Return([]*core.IdentityWithVerifiers{}, nil, nil) + mnm.On("GetIdentitiesWithVerifiers", mock.Anything, mock.Anything).Return([]*core.IdentityWithVerifiers{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_get_net_node.go b/internal/apiserver/route_get_net_node.go index 9aa506fd7c..5653e16739 100644 --- a/internal/apiserver/route_get_net_node.go +++ b/internal/apiserver/route_get_net_node.go @@ -38,7 +38,7 @@ var getNetworkNode = &ffapi.Route{ JSONOutputCodes: []int{http.StatusOK}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - output, err = cr.or.NetworkMap().GetNodeByNameOrID(cr.ctx, extractNamespace(r.PP), r.PP["nameOrId"]) + output, err = cr.or.NetworkMap().GetNodeByNameOrID(cr.ctx, r.PP["nameOrId"]) return output, err }, }, diff --git a/internal/apiserver/route_get_net_node_test.go b/internal/apiserver/route_get_net_node_test.go index 6c3e49565a..c3768dc019 100644 --- a/internal/apiserver/route_get_net_node_test.go +++ b/internal/apiserver/route_get_net_node_test.go @@ -34,7 +34,7 @@ func TestGetNode(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetNodeByNameOrID", mock.Anything, "default", "node12345"). + nmn.On("GetNodeByNameOrID", mock.Anything, "node12345"). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_net_nodes.go b/internal/apiserver/route_get_net_nodes.go index d93c3d4f02..16713712e5 100644 --- a/internal/apiserver/route_get_net_nodes.go +++ b/internal/apiserver/route_get_net_nodes.go @@ -38,7 +38,7 @@ var getNetworkNodes = &ffapi.Route{ Extensions: &coreExtensions{ FilterFactory: database.IdentityQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return filterResult(cr.or.NetworkMap().GetNodes(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetNodes(cr.ctx, cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_net_nodes_test.go b/internal/apiserver/route_get_net_nodes_test.go index cdade72c9a..63ac9f5912 100644 --- a/internal/apiserver/route_get_net_nodes_test.go +++ b/internal/apiserver/route_get_net_nodes_test.go @@ -34,7 +34,7 @@ func TestGetNodess(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetNodes", mock.Anything, "default", mock.Anything). + mnm.On("GetNodes", mock.Anything, mock.Anything). Return([]*core.Identity{}, nil, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_net_org.go b/internal/apiserver/route_get_net_org.go index cc33e33c1b..08da6faabc 100644 --- a/internal/apiserver/route_get_net_org.go +++ b/internal/apiserver/route_get_net_org.go @@ -38,7 +38,7 @@ var getNetworkOrg = &ffapi.Route{ JSONOutputCodes: []int{http.StatusOK}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - output, err = cr.or.NetworkMap().GetOrganizationByNameOrID(cr.ctx, extractNamespace(r.PP), r.PP["nameOrId"]) + output, err = cr.or.NetworkMap().GetOrganizationByNameOrID(cr.ctx, r.PP["nameOrId"]) return output, err }, }, diff --git a/internal/apiserver/route_get_net_org_test.go b/internal/apiserver/route_get_net_org_test.go index eabf1e51c3..bea14bb6f6 100644 --- a/internal/apiserver/route_get_net_org_test.go +++ b/internal/apiserver/route_get_net_org_test.go @@ -34,7 +34,7 @@ func TestGetOrg(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - nmn.On("GetOrganizationByNameOrID", mock.Anything, "default", "org12345"). + nmn.On("GetOrganizationByNameOrID", mock.Anything, "org12345"). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_net_orgs.go b/internal/apiserver/route_get_net_orgs.go index 6735e80fc2..daec866bc9 100644 --- a/internal/apiserver/route_get_net_orgs.go +++ b/internal/apiserver/route_get_net_orgs.go @@ -38,7 +38,7 @@ var getNetworkOrgs = &ffapi.Route{ Extensions: &coreExtensions{ FilterFactory: database.IdentityQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return filterResult(cr.or.NetworkMap().GetOrganizations(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetOrganizations(cr.ctx, cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_net_orgs_test.go b/internal/apiserver/route_get_net_orgs_test.go index f86ece85a8..e995b30fb8 100644 --- a/internal/apiserver/route_get_net_orgs_test.go +++ b/internal/apiserver/route_get_net_orgs_test.go @@ -34,7 +34,7 @@ func TestGetOrganizations(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetOrganizations", mock.Anything, "default", mock.Anything). + mnm.On("GetOrganizations", mock.Anything, mock.Anything). Return([]*core.Identity{}, nil, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_status.go b/internal/apiserver/route_get_status.go index 4270edccc5..cdcb31ab02 100644 --- a/internal/apiserver/route_get_status.go +++ b/internal/apiserver/route_get_status.go @@ -36,7 +36,7 @@ var getStatus = &ffapi.Route{ JSONOutputCodes: []int{http.StatusOK}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - output, err = cr.or.GetStatus(cr.ctx, extractNamespace(r.PP)) + output, err = cr.or.GetStatus(cr.ctx) return output, err }, }, diff --git a/internal/apiserver/route_get_status_test.go b/internal/apiserver/route_get_status_test.go index a8ef1cd979..e64a1169da 100644 --- a/internal/apiserver/route_get_status_test.go +++ b/internal/apiserver/route_get_status_test.go @@ -31,7 +31,7 @@ func TestGetStatus(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - o.On("GetStatus", mock.Anything, "default"). + o.On("GetStatus", mock.Anything). Return(&core.NodeStatus{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_get_verifier_by_id.go b/internal/apiserver/route_get_verifier_by_id.go index 65d98feb72..70b5026a00 100644 --- a/internal/apiserver/route_get_verifier_by_id.go +++ b/internal/apiserver/route_get_verifier_by_id.go @@ -38,7 +38,7 @@ var getVerifierByID = &ffapi.Route{ JSONOutputCodes: []int{http.StatusOK}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return cr.or.NetworkMap().GetVerifierByHash(cr.ctx, extractNamespace(r.PP), r.PP["hash"]) + return cr.or.NetworkMap().GetVerifierByHash(cr.ctx, r.PP["hash"]) }, }, } diff --git a/internal/apiserver/route_get_verifier_by_id_test.go b/internal/apiserver/route_get_verifier_by_id_test.go index 9862869912..4401343698 100644 --- a/internal/apiserver/route_get_verifier_by_id_test.go +++ b/internal/apiserver/route_get_verifier_by_id_test.go @@ -34,7 +34,7 @@ func TestGetVerifierByID(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetVerifierByHash", mock.Anything, "ns1", "hashid1").Return(&core.Verifier{}, nil, nil) + mnm.On("GetVerifierByHash", mock.Anything, "hashid1").Return(&core.Verifier{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_get_verifiers.go b/internal/apiserver/route_get_verifiers.go index 8b606025b6..9fa36008bc 100644 --- a/internal/apiserver/route_get_verifiers.go +++ b/internal/apiserver/route_get_verifiers.go @@ -38,7 +38,7 @@ var getVerifiers = &ffapi.Route{ Extensions: &coreExtensions{ FilterFactory: database.VerifierQueryFactory, CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - return filterResult(cr.or.NetworkMap().GetVerifiers(cr.ctx, extractNamespace(r.PP), cr.filter)) + return filterResult(cr.or.NetworkMap().GetVerifiers(cr.ctx, cr.filter)) }, }, } diff --git a/internal/apiserver/route_get_verifiers_test.go b/internal/apiserver/route_get_verifiers_test.go index 055ebefe43..f8cc7fa1ac 100644 --- a/internal/apiserver/route_get_verifiers_test.go +++ b/internal/apiserver/route_get_verifiers_test.go @@ -34,7 +34,7 @@ func TestGetVerifiers(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("GetVerifiers", mock.Anything, "ns1", mock.Anything).Return([]*core.Verifier{}, nil, nil) + mnm.On("GetVerifiers", mock.Anything, mock.Anything).Return([]*core.Verifier{}, nil, nil) r.ServeHTTP(res, req) assert.Equal(t, 200, res.Result().StatusCode) diff --git a/internal/apiserver/route_patch_update_identity.go b/internal/apiserver/route_patch_update_identity.go index 9a08b3d3df..c70b877df4 100644 --- a/internal/apiserver/route_patch_update_identity.go +++ b/internal/apiserver/route_patch_update_identity.go @@ -43,7 +43,7 @@ var patchUpdateIdentity = &ffapi.Route{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { waitConfirm := strings.EqualFold(r.QP["confirm"], "true") r.SuccessStatus = syncRetcode(waitConfirm) - org, err := cr.or.NetworkMap().UpdateIdentity(cr.ctx, extractNamespace(r.PP), r.PP["iid"], r.Input.(*core.IdentityUpdateDTO), waitConfirm) + org, err := cr.or.NetworkMap().UpdateIdentity(cr.ctx, r.PP["iid"], r.Input.(*core.IdentityUpdateDTO), waitConfirm) return org, err }, }, diff --git a/internal/apiserver/route_patch_update_identity_test.go b/internal/apiserver/route_patch_update_identity_test.go index e275ba92ee..e017a4f2d6 100644 --- a/internal/apiserver/route_patch_update_identity_test.go +++ b/internal/apiserver/route_patch_update_identity_test.go @@ -39,7 +39,7 @@ func TestUpdateIdentity(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("UpdateIdentity", mock.Anything, "ns1", "id1", mock.AnythingOfType("*core.IdentityUpdateDTO"), false). + mnm.On("UpdateIdentity", mock.Anything, "id1", mock.AnythingOfType("*core.IdentityUpdateDTO"), false). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_post_network_action.go b/internal/apiserver/route_post_network_action.go index af36c4482f..061ab95413 100644 --- a/internal/apiserver/route_post_network_action.go +++ b/internal/apiserver/route_post_network_action.go @@ -36,7 +36,7 @@ var postNetworkAction = &ffapi.Route{ JSONOutputCodes: []int{http.StatusAccepted}, Extensions: &coreExtensions{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { - err = cr.or.SubmitNetworkAction(cr.ctx, extractNamespace(r.PP), r.Input.(*core.NetworkAction)) + err = cr.or.SubmitNetworkAction(cr.ctx, r.Input.(*core.NetworkAction)) return r.Input, err }, }, diff --git a/internal/apiserver/route_post_network_action_test.go b/internal/apiserver/route_post_network_action_test.go index 08be427ce3..fe401d2586 100644 --- a/internal/apiserver/route_post_network_action_test.go +++ b/internal/apiserver/route_post_network_action_test.go @@ -36,7 +36,7 @@ func TestPostNetworkAction(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - o.On("SubmitNetworkAction", mock.Anything, "default", mock.AnythingOfType("*core.NetworkAction")).Return(nil) + o.On("SubmitNetworkAction", mock.Anything, mock.AnythingOfType("*core.NetworkAction")).Return(nil) r.ServeHTTP(res, req) assert.Equal(t, 202, res.Result().StatusCode) diff --git a/internal/apiserver/route_post_new_identity.go b/internal/apiserver/route_post_new_identity.go index 3cbc53dc3d..2625057cae 100644 --- a/internal/apiserver/route_post_new_identity.go +++ b/internal/apiserver/route_post_new_identity.go @@ -41,7 +41,7 @@ var postNewIdentity = &ffapi.Route{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { waitConfirm := strings.EqualFold(r.QP["confirm"], "true") r.SuccessStatus = syncRetcode(waitConfirm) - org, err := cr.or.NetworkMap().RegisterIdentity(cr.ctx, extractNamespace(r.PP), r.Input.(*core.IdentityCreateDTO), waitConfirm) + org, err := cr.or.NetworkMap().RegisterIdentity(cr.ctx, r.Input.(*core.IdentityCreateDTO), waitConfirm) return org, err }, }, diff --git a/internal/apiserver/route_post_new_identity_test.go b/internal/apiserver/route_post_new_identity_test.go index c19bb18c93..c74bfadae2 100644 --- a/internal/apiserver/route_post_new_identity_test.go +++ b/internal/apiserver/route_post_new_identity_test.go @@ -39,7 +39,7 @@ func TestNewIdentity(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("RegisterIdentity", mock.Anything, "ns1", mock.AnythingOfType("*core.IdentityCreateDTO"), false). + mnm.On("RegisterIdentity", mock.Anything, mock.AnythingOfType("*core.IdentityCreateDTO"), false). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_post_new_node_self.go b/internal/apiserver/route_post_new_node_self.go index 4df08250d3..47a24990aa 100644 --- a/internal/apiserver/route_post_new_node_self.go +++ b/internal/apiserver/route_post_new_node_self.go @@ -41,7 +41,7 @@ var postNodesSelf = &ffapi.Route{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { waitConfirm := strings.EqualFold(r.QP["confirm"], "true") r.SuccessStatus = syncRetcode(waitConfirm) - node, err := cr.or.NetworkMap().RegisterNode(cr.ctx, extractNamespace(r.PP), waitConfirm) + node, err := cr.or.NetworkMap().RegisterNode(cr.ctx, waitConfirm) return node, err }, }, diff --git a/internal/apiserver/route_post_new_node_self_test.go b/internal/apiserver/route_post_new_node_self_test.go index acdc0c5c93..aa0ab0f69b 100644 --- a/internal/apiserver/route_post_new_node_self_test.go +++ b/internal/apiserver/route_post_new_node_self_test.go @@ -39,7 +39,7 @@ func TestPostNewNodeSelf(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("RegisterNode", mock.Anything, "default", false). + mnm.On("RegisterNode", mock.Anything, false). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_post_new_organization.go b/internal/apiserver/route_post_new_organization.go index 97ff10ced7..1309e17b78 100644 --- a/internal/apiserver/route_post_new_organization.go +++ b/internal/apiserver/route_post_new_organization.go @@ -41,7 +41,7 @@ var postNewOrganization = &ffapi.Route{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { waitConfirm := strings.EqualFold(r.QP["confirm"], "true") r.SuccessStatus = syncRetcode(waitConfirm) - _, err = cr.or.NetworkMap().RegisterOrganization(cr.ctx, extractNamespace(r.PP), r.Input.(*core.IdentityCreateDTO), waitConfirm) + _, err = cr.or.NetworkMap().RegisterOrganization(cr.ctx, r.Input.(*core.IdentityCreateDTO), waitConfirm) return r.Input, err }, }, diff --git a/internal/apiserver/route_post_new_organization_self.go b/internal/apiserver/route_post_new_organization_self.go index e47d75707d..629aa6bc2e 100644 --- a/internal/apiserver/route_post_new_organization_self.go +++ b/internal/apiserver/route_post_new_organization_self.go @@ -41,7 +41,7 @@ var postNewOrganizationSelf = &ffapi.Route{ CoreJSONHandler: func(r *ffapi.APIRequest, cr *coreRequest) (output interface{}, err error) { waitConfirm := strings.EqualFold(r.QP["confirm"], "true") r.SuccessStatus = syncRetcode(waitConfirm) - org, err := cr.or.NetworkMap().RegisterNodeOrganization(cr.ctx, extractNamespace(r.PP), waitConfirm) + org, err := cr.or.NetworkMap().RegisterNodeOrganization(cr.ctx, waitConfirm) return org, err }, }, diff --git a/internal/apiserver/route_post_new_organization_self_test.go b/internal/apiserver/route_post_new_organization_self_test.go index 7a7353ec3b..e9900f1f8b 100644 --- a/internal/apiserver/route_post_new_organization_self_test.go +++ b/internal/apiserver/route_post_new_organization_self_test.go @@ -39,7 +39,7 @@ func TestNewOrganizationSelf(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("RegisterNodeOrganization", mock.Anything, "default", false). + mnm.On("RegisterNodeOrganization", mock.Anything, false). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/apiserver/route_post_new_organization_test.go b/internal/apiserver/route_post_new_organization_test.go index e859e59019..bdcaaadd70 100644 --- a/internal/apiserver/route_post_new_organization_test.go +++ b/internal/apiserver/route_post_new_organization_test.go @@ -39,7 +39,7 @@ func TestNewOrganization(t *testing.T) { req.Header.Set("Content-Type", "application/json; charset=utf-8") res := httptest.NewRecorder() - mnm.On("RegisterOrganization", mock.Anything, "default", mock.AnythingOfType("*core.IdentityCreateDTO"), false). + mnm.On("RegisterOrganization", mock.Anything, mock.AnythingOfType("*core.IdentityCreateDTO"), false). Return(&core.Identity{}, nil) r.ServeHTTP(res, req) diff --git a/internal/assets/manager_test.go b/internal/assets/manager_test.go index e9073b5e13..0f95abc2ad 100644 --- a/internal/assets/manager_test.go +++ b/internal/assets/manager_test.go @@ -57,7 +57,7 @@ func newTestAssetsCommon(t *testing.T, metrics bool) (*assetManager, func()) { mti := &tokenmocks.Plugin{} mm := &metricsmocks.Manager{} mom := &operationmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mm.On("IsMetricsEnabled").Return(metrics) mm.On("TransferSubmitted", mock.Anything) mom.On("RegisterHandler", mock.Anything, mock.Anything, mock.Anything) diff --git a/internal/assets/token_approval.go b/internal/assets/token_approval.go index 26679935cb..42d3bb093e 100644 --- a/internal/assets/token_approval.go +++ b/internal/assets/token_approval.go @@ -145,6 +145,6 @@ func (am *assetManager) validateApproval(ctx context.Context, ns string, approva if pool.State != core.TokenPoolStateConfirmed { return nil, i18n.NewError(ctx, coremsgs.MsgTokenPoolNotConfirmed) } - approval.Key, err = am.identity.NormalizeSigningKey(ctx, ns, approval.Key, am.keyNormalization) + approval.Key, err = am.identity.NormalizeSigningKey(ctx, approval.Key, am.keyNormalization) return pool, err } diff --git a/internal/assets/token_approval_test.go b/internal/assets/token_approval_test.go index 04e6aef1ce..52a045fcd4 100644 --- a/internal/assets/token_approval_test.go +++ b/internal/assets/token_approval_test.go @@ -69,7 +69,7 @@ func TestTokenApprovalSuccess(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenApproval).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -108,7 +108,7 @@ func TestTokenApprovalSuccessUnknownIdentity(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenApproval).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -165,7 +165,7 @@ func TestApprovalBadConnector(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.TokenApproval(context.Background(), "ns1", approval, false) @@ -206,7 +206,7 @@ func TestApprovalDefaultPoolSuccess(t *testing.T) { filterResult := &database.FilterResult{ TotalCount: &totalCount, } - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPools", context.Background(), mock.MatchedBy((func(f database.AndFilter) bool { info, _ := f.Finalize() return info.Count && info.Limit == 1 @@ -272,7 +272,7 @@ func TestApprovalBadPool(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(nil, fmt.Errorf("pop")) _, err := am.TokenApproval(context.Background(), "ns1", approval, false) @@ -324,7 +324,7 @@ func TestApprovalIdentityFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.TokenApproval(context.Background(), "ns1", approval, false) @@ -356,7 +356,7 @@ func TestApprovalFail(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenApproval).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -394,7 +394,7 @@ func TestApprovalTransactionFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenApproval).Return(nil, fmt.Errorf("pop")) @@ -427,7 +427,7 @@ func TestApprovalOperationsFail(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenApproval).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(fmt.Errorf("pop")) @@ -460,7 +460,7 @@ func TestTokenApprovalConfirm(t *testing.T) { msa := am.syncasync.(*syncasyncmocks.Bridge) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenApproval).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -508,7 +508,7 @@ func TestApprovalPrepare(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "key", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) err := sender.Prepare(context.Background()) diff --git a/internal/assets/token_pool.go b/internal/assets/token_pool.go index 2134d4f82a..67c670710d 100644 --- a/internal/assets/token_pool.go +++ b/internal/assets/token_pool.go @@ -52,7 +52,7 @@ func (am *assetManager) CreateTokenPool(ctx context.Context, ns string, pool *co } var err error - pool.Key, err = am.identity.NormalizeSigningKey(ctx, ns, pool.Key, am.keyNormalization) + pool.Key, err = am.identity.NormalizeSigningKey(ctx, pool.Key, am.keyNormalization) if err != nil { return nil, err } diff --git a/internal/assets/token_pool_test.go b/internal/assets/token_pool_test.go index 1df083b87c..569d59631f 100644 --- a/internal/assets/token_pool_test.go +++ b/internal/assets/token_pool_test.go @@ -100,7 +100,7 @@ func TestCreateTokenPoolDefaultConnectorSuccess(t *testing.T) { mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("resolved-key", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("resolved-key", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -215,7 +215,7 @@ func TestCreateTokenPoolIdentityFail(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) _, err := am.CreateTokenPool(context.Background(), "ns1", pool, false) assert.EqualError(t, err, "pop") @@ -238,7 +238,7 @@ func TestCreateTokenPoolWrongConnector(t *testing.T) { mdm := am.data.(*datamocks.Manager) mim := am.identity.(*identitymanagermocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) _, err := am.CreateTokenPool(context.Background(), "ns1", pool, false) @@ -264,7 +264,7 @@ func TestCreateTokenPoolFail(t *testing.T) { mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -297,7 +297,7 @@ func TestCreateTokenPoolTransactionFail(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(nil, fmt.Errorf("pop")) @@ -324,7 +324,7 @@ func TestCreateTokenPoolOpInsertFail(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(fmt.Errorf("pop")) @@ -353,7 +353,7 @@ func TestCreateTokenPoolSyncSuccess(t *testing.T) { mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -387,7 +387,7 @@ func TestCreateTokenPoolAsyncSuccess(t *testing.T) { mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -423,7 +423,7 @@ func TestCreateTokenPoolConfirm(t *testing.T) { mom := am.operations.(*operationmocks.Manager) mdi.On("GetTokenPool", context.Background(), "ns1", "testpool").Return(nil, nil) mdm.On("VerifyNamespaceExists", context.Background(), "ns1").Return(nil) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenPool).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) msa.On("WaitForTokenPool", context.Background(), "ns1", mock.Anything, mock.Anything). diff --git a/internal/assets/token_transfer.go b/internal/assets/token_transfer.go index 02d4d354e4..9b4cbabf92 100644 --- a/internal/assets/token_transfer.go +++ b/internal/assets/token_transfer.go @@ -106,7 +106,7 @@ func (am *assetManager) validateTransfer(ctx context.Context, ns string, transfe if pool.State != core.TokenPoolStateConfirmed { return nil, i18n.NewError(ctx, coremsgs.MsgTokenPoolNotConfirmed) } - if transfer.Key, err = am.identity.NormalizeSigningKey(ctx, ns, transfer.Key, am.keyNormalization); err != nil { + if transfer.Key, err = am.identity.NormalizeSigningKey(ctx, transfer.Key, am.keyNormalization); err != nil { return nil, err } if transfer.From == "" { diff --git a/internal/assets/token_transfer_test.go b/internal/assets/token_transfer_test.go index 3e9af842ea..3faed28454 100644 --- a/internal/assets/token_transfer_test.go +++ b/internal/assets/token_transfer_test.go @@ -91,7 +91,7 @@ func TestMintTokensSuccess(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -126,7 +126,7 @@ func TestMintTokensBadConnector(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.MintTokens(context.Background(), "ns1", mint, false) @@ -179,7 +179,7 @@ func TestMintTokenDefaultPoolSuccess(t *testing.T) { filterResult := &database.FilterResult{ TotalCount: &totalCount, } - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPools", context.Background(), mock.MatchedBy((func(f database.AndFilter) bool { info, _ := f.Finalize() return info.Count && info.Limit == 1 @@ -337,7 +337,7 @@ func TestMintTokensIdentityFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.MintTokens(context.Background(), "ns1", mint, false) @@ -366,7 +366,7 @@ func TestMintTokensFail(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -403,7 +403,7 @@ func TestMintTokensOperationFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(fmt.Errorf("pop")) @@ -437,7 +437,7 @@ func TestMintTokensConfirm(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -480,7 +480,7 @@ func TestBurnTokensSuccess(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -515,7 +515,7 @@ func TestBurnTokensIdentityFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.BurnTokens(context.Background(), "ns1", burn, false) @@ -546,7 +546,7 @@ func TestBurnTokensConfirm(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -592,7 +592,7 @@ func TestTransferTokensSuccess(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -656,7 +656,7 @@ func TestTransferTokensIdentityFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.TransferTokens(context.Background(), "ns1", transfer, false) @@ -680,7 +680,7 @@ func TestTransferTokensNoFromOrTo(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) _, err := am.TransferTokens(context.Background(), "ns1", transfer, false) @@ -711,7 +711,7 @@ func TestTransferTokensTransactionFail(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(nil, fmt.Errorf("pop")) @@ -761,7 +761,7 @@ func TestTransferTokensWithBroadcastMessage(t *testing.T) { mms := &sysmessagingmocks.MessageSender{} mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -824,7 +824,7 @@ func TestTransferTokensWithBroadcastMessageSendFail(t *testing.T) { mms := &sysmessagingmocks.MessageSender{} mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -916,7 +916,7 @@ func TestTransferTokensWithPrivateMessage(t *testing.T) { mms := &sysmessagingmocks.MessageSender{} mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -993,7 +993,7 @@ func TestTransferTokensConfirm(t *testing.T) { mim := am.identity.(*identitymanagermocks.Manager) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) @@ -1058,7 +1058,7 @@ func TestTransferTokensWithBroadcastConfirm(t *testing.T) { msa := am.syncasync.(*syncasyncmocks.Bridge) mth := am.txHelper.(*txcommonmocks.Helper) mom := am.operations.(*operationmocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil) mth.On("SubmitNewTransaction", context.Background(), "ns1", core.TransactionTypeTokenTransfer).Return(fftypes.NewUUID(), nil) @@ -1139,7 +1139,7 @@ func TestTransferPrepare(t *testing.T) { mdi := am.database.(*databasemocks.Plugin) mim := am.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", context.Background(), "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) + mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x12345", nil) mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil) err := sender.Prepare(context.Background()) diff --git a/internal/batch/batch_manager_test.go b/internal/batch/batch_manager_test.go index a77d0b6569..3fda1ebb80 100644 --- a/internal/batch/batch_manager_test.go +++ b/internal/batch/batch_manager_test.go @@ -47,7 +47,7 @@ func newTestBatchManager(t *testing.T) (*batchManager, func()) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, err := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) assert.NoError(t, err) return bm.(*batchManager), bm.(*batchManager).cancelCtx @@ -59,7 +59,7 @@ func TestE2EDispatchBroadcast(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mni.On("GetNodeUUID", mock.Anything, "ns1").Return(fftypes.NewUUID()) readyForDispatch := make(chan bool) waitForDispatch := make(chan *DispatchState) @@ -175,7 +175,7 @@ func TestE2EDispatchPrivateUnpinned(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mni.On("GetNodeUUID", mock.Anything, "ns1").Return(fftypes.NewUUID()) readyForDispatch := make(chan bool) waitForDispatch := make(chan *DispatchState) @@ -286,7 +286,7 @@ func TestDispatchUnknownType(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) ctx, cancel := context.WithCancel(context.Background()) bmi, _ := NewBatchManager(ctx, mni, mdi, mdm, txHelper) bm := bmi.(*batchManager) @@ -317,7 +317,7 @@ func TestGetInvalidBatchTypeMsg(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, _ := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) defer bm.Close() _, err := bm.(*batchManager).getProcessor(core.BatchTypeBroadcast, "wrong", nil, "ns1", &core.SignerRef{}) @@ -328,7 +328,7 @@ func TestMessageSequencerCancelledContext(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mdi.On("GetMessageIDs", mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")).Once() bm, _ := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) defer bm.Close() @@ -343,7 +343,7 @@ func TestMessageSequencerMissingMessageData(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, _ := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) bm.RegisterDispatcher("utdispatcher", core.TransactionTypeNone, []core.MessageType{core.MessageTypeBroadcast}, func(c context.Context, state *DispatchState) error { @@ -385,7 +385,7 @@ func TestMessageSequencerUpdateMessagesFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mni.On("GetNodeUUID", mock.Anything, "ns1").Return(fftypes.NewUUID()) ctx, cancelCtx := context.WithCancel(context.Background()) bm, _ := NewBatchManager(ctx, mni, mdi, mdm, txHelper) @@ -441,7 +441,7 @@ func TestMessageSequencerDispatchFail(t *testing.T) { mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} mni.On("GetNodeUUID", mock.Anything, "ns1").Return(fftypes.NewUUID()) - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) ctx, cancelCtx := context.WithCancel(context.Background()) bm, _ := NewBatchManager(ctx, mni, mdi, mdm, txHelper) bm.RegisterDispatcher("utdispatcher", core.TransactionTypeBatchPin, []core.MessageType{core.MessageTypeBroadcast}, @@ -482,7 +482,7 @@ func TestMessageSequencerUpdateBatchFail(t *testing.T) { mni := &sysmessagingmocks.LocalNodeInfo{} mni.On("GetNodeUUID", mock.Anything, "ns1").Return(fftypes.NewUUID()) ctx, cancelCtx := context.WithCancel(context.Background()) - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, _ := NewBatchManager(ctx, mni, mdi, mdm, txHelper) bm.RegisterDispatcher("utdispatcher", core.TransactionTypeBatchPin, []core.MessageType{core.MessageTypeBroadcast}, func(c context.Context, state *DispatchState) error { @@ -565,7 +565,7 @@ func TestAssembleMessageDataNilData(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, _ := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) bm.Close() mdm.On("GetMessageWithDataCached", mock.Anything, mock.Anything).Return(nil, nil, false, nil) @@ -577,7 +577,7 @@ func TestGetMessageDataFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, _ := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) mdm.On("GetMessageWithDataCached", mock.Anything, mock.Anything).Return(nil, nil, false, fmt.Errorf("pop")) bm.Close() @@ -590,7 +590,7 @@ func TestGetMessageNotFound(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mni := &sysmessagingmocks.LocalNodeInfo{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) bm, _ := NewBatchManager(context.Background(), mni, mdi, mdm, txHelper) mdm.On("GetMessageWithDataCached", mock.Anything, mock.Anything).Return(nil, nil, false, nil) bm.Close() diff --git a/internal/batch/batch_processor_test.go b/internal/batch/batch_processor_test.go index 5bbdafdb9e..a8f0988dd3 100644 --- a/internal/batch/batch_processor_test.go +++ b/internal/batch/batch_processor_test.go @@ -41,7 +41,7 @@ func newTestBatchProcessor(t *testing.T, dispatch DispatchHandler) (func(), *dat mdi := bm.database.(*databasemocks.Plugin) mni := bm.ni.(*sysmessagingmocks.LocalNodeInfo) mdm := bm.data.(*datamocks.Manager) - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mni.On("GetNodeUUID", mock.Anything, "ns1").Return(fftypes.NewUUID()).Maybe() bp := newBatchProcessor(bm, &batchProcessorConf{ namespace: "ns1", diff --git a/internal/broadcast/datatype_test.go b/internal/broadcast/datatype_test.go index 7caf092d37..6878330cbd 100644 --- a/internal/broadcast/datatype_test.go +++ b/internal/broadcast/datatype_test.go @@ -61,7 +61,7 @@ func TestBroadcastDatatypeBadValue(t *testing.T) { mdm.On("VerifyNamespaceExists", mock.Anything, "ns1").Return(nil) mdm.On("CheckDatatype", mock.Anything, "ns1", mock.Anything).Return(nil) mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) _, err := bm.BroadcastDatatype(context.Background(), "ns1", &core.Datatype{ Namespace: "ns1", Name: "ent1", @@ -77,7 +77,7 @@ func TestBroadcastUpsertFail(t *testing.T) { mdm := bm.data.(*datamocks.Manager) mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) mdm.On("WriteNewMessage", mock.Anything, mock.Anything, mock.Anything).Return(fmt.Errorf("pop")) mdm.On("VerifyNamespaceExists", mock.Anything, "ns1").Return(nil) mdm.On("CheckDatatype", mock.Anything, "ns1", mock.Anything).Return(nil) @@ -121,7 +121,7 @@ func TestBroadcastOk(t *testing.T) { mdm := bm.data.(*datamocks.Manager) mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) mdm.On("VerifyNamespaceExists", mock.Anything, "ns1").Return(nil) mdm.On("CheckDatatype", mock.Anything, "ns1", mock.Anything).Return(nil) mdm.On("WriteNewMessage", mock.Anything, mock.Anything, mock.Anything).Return(nil) diff --git a/internal/broadcast/definition.go b/internal/broadcast/definition.go index 1373a6312b..f5549f0ff8 100644 --- a/internal/broadcast/definition.go +++ b/internal/broadcast/definition.go @@ -34,7 +34,7 @@ func (bm *broadcastManager) BroadcastDefinitionAsNode(ctx context.Context, ns st func (bm *broadcastManager) BroadcastDefinition(ctx context.Context, ns string, def core.Definition, signingIdentity *core.SignerRef, tag string, waitConfirm bool) (msg *core.Message, err error) { - err = bm.identity.ResolveInputSigningIdentity(ctx, ns, signingIdentity) + err = bm.identity.ResolveInputSigningIdentity(ctx, signingIdentity) if err != nil { return nil, err } @@ -46,7 +46,7 @@ func (bm *broadcastManager) BroadcastDefinition(ctx context.Context, ns string, // The blockchain "key" will be normalized, but the "author" will pass through unchecked func (bm *broadcastManager) BroadcastIdentityClaim(ctx context.Context, ns string, def *core.IdentityClaim, signingIdentity *core.SignerRef, tag string, waitConfirm bool) (msg *core.Message, err error) { - signingIdentity.Key, err = bm.identity.NormalizeSigningKey(ctx, ns, signingIdentity.Key, identity.KeyNormalizationBlockchainPlugin) + signingIdentity.Key, err = bm.identity.NormalizeSigningKey(ctx, signingIdentity.Key, identity.KeyNormalizationBlockchainPlugin) if err != nil { return nil, err } diff --git a/internal/broadcast/definition_test.go b/internal/broadcast/definition_test.go index 8004c7a84d..cc440c6e97 100644 --- a/internal/broadcast/definition_test.go +++ b/internal/broadcast/definition_test.go @@ -35,7 +35,7 @@ func TestBroadcastDefinitionAsNodeConfirm(t *testing.T) { msa := bm.syncasync.(*syncasyncmocks.Bridge) mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) msa.On("WaitForMessage", bm.ctx, "ns1", mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) _, err := bm.BroadcastDefinitionAsNode(bm.ctx, "ns1", &core.Namespace{}, core.SystemTagDefineNamespace, true) @@ -52,7 +52,7 @@ func TestBroadcastIdentityClaim(t *testing.T) { msa := bm.syncasync.(*syncasyncmocks.Bridge) mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "0x1234", identity.KeyNormalizationBlockchainPlugin).Return("", nil) + mim.On("NormalizeSigningKey", mock.Anything, "0x1234", identity.KeyNormalizationBlockchainPlugin).Return("", nil) msa.On("WaitForMessage", bm.ctx, "ns1", mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) _, err := bm.BroadcastIdentityClaim(bm.ctx, "ns1", &core.IdentityClaim{ @@ -72,7 +72,7 @@ func TestBroadcastIdentityClaimFail(t *testing.T) { mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "0x1234", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", mock.Anything, "0x1234", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) _, err := bm.BroadcastIdentityClaim(bm.ctx, "ns1", &core.IdentityClaim{ Identity: &core.Identity{}, @@ -92,7 +92,7 @@ func TestBroadcastDatatypeDefinitionAsNodeConfirm(t *testing.T) { mim := bm.identity.(*identitymanagermocks.Manager) ns := "customNamespace" - mim.On("ResolveInputSigningIdentity", mock.Anything, ns, mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) msa.On("WaitForMessage", bm.ctx, ns, mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) _, err := bm.BroadcastDefinitionAsNode(bm.ctx, ns, &core.Datatype{}, core.SystemTagDefineNamespace, true) @@ -107,7 +107,7 @@ func TestBroadcastDefinitionBadIdentity(t *testing.T) { defer cancel() mim := bm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(fmt.Errorf("pop")) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(fmt.Errorf("pop")) _, err := bm.BroadcastDefinition(bm.ctx, "ns1", &core.Namespace{}, &core.SignerRef{ Author: "wrong", Key: "wrong", diff --git a/internal/broadcast/message.go b/internal/broadcast/message.go index be2d9ff286..d76af43aba 100644 --- a/internal/broadcast/message.go +++ b/internal/broadcast/message.go @@ -122,7 +122,7 @@ func (s *broadcastSender) resolve(ctx context.Context) error { // Resolve the sending identity if msg.Header.Type != core.MessageTypeDefinition || msg.Header.Tag != core.SystemTagIdentityClaim { - if err := s.mgr.identity.ResolveInputSigningIdentity(ctx, msg.Header.Namespace, &msg.Header.SignerRef); err != nil { + if err := s.mgr.identity.ResolveInputSigningIdentity(ctx, &msg.Header.SignerRef); err != nil { return i18n.WrapError(ctx, err, coremsgs.MsgAuthorInvalid) } } diff --git a/internal/broadcast/message_test.go b/internal/broadcast/message_test.go index 246947dd1c..0acbbd1162 100644 --- a/internal/broadcast/message_test.go +++ b/internal/broadcast/message_test.go @@ -42,7 +42,7 @@ func TestBroadcastMessageOk(t *testing.T) { mdm.On("VerifyNamespaceExists", ctx, "ns1").Return(nil) mdm.On("ResolveInlineData", ctx, mock.Anything).Return(nil) mdm.On("WriteNewMessage", mock.Anything, mock.Anything, mock.Anything).Return(nil) - mim.On("ResolveInputSigningIdentity", ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", ctx, mock.Anything).Return(nil) msg, err := bm.BroadcastMessage(ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -74,7 +74,7 @@ func TestBroadcastMessageWaitConfirmOk(t *testing.T) { ctx := context.Background() mdm.On("VerifyNamespaceExists", ctx, "ns1").Return(nil) mdm.On("ResolveInlineData", ctx, mock.Anything).Return(nil) - mim.On("ResolveInputSigningIdentity", ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", ctx, mock.Anything).Return(nil) replyMsg := &core.Message{ Header: core.MessageHeader{ @@ -128,7 +128,7 @@ func TestBroadcastMessageTooLarge(t *testing.T) { } }). Return(nil) - mim.On("ResolveInputSigningIdentity", ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", ctx, mock.Anything).Return(nil) _, err := bm.BroadcastMessage(ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -157,7 +157,7 @@ func TestBroadcastMessageBadInput(t *testing.T) { ctx := context.Background() mdm.On("VerifyNamespaceExists", ctx, "ns1").Return(nil) mdm.On("ResolveInlineData", ctx, mock.Anything).Return(fmt.Errorf("pop")) - mim.On("ResolveInputSigningIdentity", ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", ctx, mock.Anything).Return(nil) _, err := bm.BroadcastMessage(ctx, "ns1", &core.MessageInOut{ InlineData: core.InlineData{ @@ -177,7 +177,7 @@ func TestBroadcastMessageBadIdentity(t *testing.T) { mim := bm.identity.(*identitymanagermocks.Manager) mdm := bm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", ctx, "ns1").Return(nil) - mim.On("ResolveInputSigningIdentity", ctx, "ns1", mock.Anything).Return(fmt.Errorf("pop")) + mim.On("ResolveInputSigningIdentity", ctx, mock.Anything).Return(fmt.Errorf("pop")) _, err := bm.BroadcastMessage(ctx, "ns1", &core.MessageInOut{ InlineData: core.InlineData{ @@ -199,7 +199,7 @@ func TestBroadcastPrepare(t *testing.T) { ctx := context.Background() mdm.On("VerifyNamespaceExists", ctx, "ns1").Return(nil) mdm.On("ResolveInlineData", ctx, mock.Anything).Return(nil) - mim.On("ResolveInputSigningIdentity", ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", ctx, mock.Anything).Return(nil) msg := &core.MessageInOut{ Message: core.Message{ diff --git a/internal/broadcast/tokenpool_test.go b/internal/broadcast/tokenpool_test.go index 51fb04b3f7..afada1625a 100644 --- a/internal/broadcast/tokenpool_test.go +++ b/internal/broadcast/tokenpool_test.go @@ -95,7 +95,7 @@ func TestBroadcastTokenPoolBroadcastFail(t *testing.T) { }, } - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) mdm.On("VerifyNamespaceExists", mock.Anything, "ns1").Return(nil) mdm.On("WriteNewMessage", mock.Anything, mock.Anything).Return(fmt.Errorf("pop")) @@ -123,7 +123,7 @@ func TestBroadcastTokenPoolOk(t *testing.T) { }, } - mim.On("ResolveInputSigningIdentity", mock.Anything, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", mock.Anything, mock.Anything).Return(nil) mdm.On("VerifyNamespaceExists", mock.Anything, "ns1").Return(nil) mdm.On("WriteNewMessage", mock.Anything, mock.Anything).Return(nil) diff --git a/internal/contracts/manager.go b/internal/contracts/manager.go index 396cdb6e78..c19240c8c4 100644 --- a/internal/contracts/manager.go +++ b/internal/contracts/manager.go @@ -218,7 +218,7 @@ func (cm *contractManager) writeInvokeTransaction(ctx context.Context, ns string } func (cm *contractManager) InvokeContract(ctx context.Context, ns string, req *core.ContractCallRequest, waitConfirm bool) (res interface{}, err error) { - req.Key, err = cm.identity.NormalizeSigningKey(ctx, ns, req.Key, identity.KeyNormalizationBlockchainPlugin) + req.Key, err = cm.identity.NormalizeSigningKey(ctx, req.Key, identity.KeyNormalizationBlockchainPlugin) if err != nil { return nil, err } diff --git a/internal/contracts/manager_test.go b/internal/contracts/manager_test.go index 40ee242068..ff3ac7b659 100644 --- a/internal/contracts/manager_test.go +++ b/internal/contracts/manager_test.go @@ -48,7 +48,7 @@ func newTestContractManager() *contractManager { mim := &identitymanagermocks.Manager{} mbi := &blockchainmocks.Plugin{} mom := &operationmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) msa := &syncasyncmocks.Bridge{} mbi.On("GetFFIParamValidator", mock.Anything).Return(nil, nil) mom.On("RegisterHandler", mock.Anything, mock.Anything, mock.Anything) @@ -83,7 +83,7 @@ func TestNewContractManagerFFISchemaLoaderFail(t *testing.T) { mim := &identitymanagermocks.Manager{} mbi := &blockchainmocks.Plugin{} mom := &operationmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) msa := &syncasyncmocks.Bridge{} mbi.On("GetFFIParamValidator", mock.Anything).Return(nil, fmt.Errorf("pop")) _, err := NewContractManager(context.Background(), mdi, mbm, mim, mbi, mom, txHelper, msa) @@ -97,7 +97,7 @@ func TestNewContractManagerFFISchemaLoader(t *testing.T) { mim := &identitymanagermocks.Manager{} mbi := &blockchainmocks.Plugin{} mom := &operationmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) msa := &syncasyncmocks.Bridge{} mbi.On("GetFFIParamValidator", mock.Anything).Return(ðereum.FFIParamValidator{}, nil) mom.On("RegisterHandler", mock.Anything, mock.Anything, mock.Anything) @@ -1278,7 +1278,7 @@ func TestInvokeContract(t *testing.T) { } mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(fftypes.NewUUID(), nil) - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdi.On("InsertOperation", mock.Anything, mock.MatchedBy(func(op *core.Operation) bool { return op.Namespace == "ns1" && op.Type == core.OpTypeBlockchainInvoke && op.Plugin == "mockblockchain" })).Return(nil) @@ -1318,7 +1318,7 @@ func TestInvokeContractConfirm(t *testing.T) { } mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(fftypes.NewUUID(), nil) - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdi.On("InsertOperation", mock.Anything, mock.MatchedBy(func(op *core.Operation) bool { return op.Namespace == "ns1" && op.Type == core.OpTypeBlockchainInvoke && op.Plugin == "mockblockchain" })).Return(nil) @@ -1364,7 +1364,7 @@ func TestInvokeContractFail(t *testing.T) { } mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(fftypes.NewUUID(), nil) - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdi.On("InsertOperation", mock.Anything, mock.MatchedBy(func(op *core.Operation) bool { return op.Namespace == "ns1" && op.Type == core.OpTypeBlockchainInvoke && op.Plugin == "mockblockchain" })).Return(nil) @@ -1393,7 +1393,7 @@ func TestInvokeContractFailNormalizeSigningKey(t *testing.T) { Location: fftypes.JSONAnyPtr(""), } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) _, err := cm.InvokeContract(context.Background(), "ns1", req, false) @@ -1411,7 +1411,7 @@ func TestInvokeContractFailResolve(t *testing.T) { Location: fftypes.JSONAnyPtr(""), } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mbi.On("InvokeContract", mock.Anything, mock.AnythingOfType("*fftypes.UUID"), "key-resolved", req.Location, req.Method, req.Input).Return(nil) _, err := cm.InvokeContract(context.Background(), "ns1", req, false) @@ -1436,7 +1436,7 @@ func TestInvokeContractTXFail(t *testing.T) { }, } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(nil, fmt.Errorf("pop")) _, err := cm.InvokeContract(context.Background(), "ns1", req, false) @@ -1456,7 +1456,7 @@ func TestInvokeContractMethodNotFound(t *testing.T) { MethodPath: "set", } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdb.On("GetFFIMethod", mock.Anything, "ns1", req.Interface, req.MethodPath).Return(nil, fmt.Errorf("pop")) _, err := cm.InvokeContract(context.Background(), "ns1", req, false) @@ -1493,7 +1493,7 @@ func TestInvokeContractMethodBadInput(t *testing.T) { }, }, } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) _, err := cm.InvokeContract(context.Background(), "ns1", req, false) assert.Regexp(t, "FF10304", err) @@ -1518,7 +1518,7 @@ func TestQueryContract(t *testing.T) { }, } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", mock.Anything, mock.MatchedBy(func(op *core.Operation) bool { return op.Namespace == "ns1" && op.Type == core.OpTypeBlockchainInvoke && op.Plugin == "mockblockchain" @@ -1547,7 +1547,7 @@ func TestCallContractInvalidType(t *testing.T) { }, } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", mock.Anything, mock.MatchedBy(func(op *core.Operation) bool { return op.Namespace == "ns1" && op.Type == core.OpTypeBlockchainInvoke && op.Plugin == "mockblockchain" @@ -1782,7 +1782,7 @@ func TestInvokeContractAPI(t *testing.T) { Location: fftypes.JSONAnyPtr(""), } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdb.On("GetContractAPIByName", mock.Anything, "ns1", "banana").Return(api, nil) mth.On("SubmitNewTransaction", mock.Anything, "ns1", core.TransactionTypeContractInvoke).Return(fftypes.NewUUID(), nil) mdi.On("InsertOperation", mock.Anything, mock.MatchedBy(func(op *core.Operation) bool { @@ -1817,7 +1817,7 @@ func TestInvokeContractAPIFailContractLookup(t *testing.T) { }, } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdb.On("GetContractAPIByName", mock.Anything, "ns1", "banana").Return(nil, fmt.Errorf("pop")) _, err := cm.InvokeContractAPI(context.Background(), "ns1", "banana", "peel", req, false) @@ -1838,7 +1838,7 @@ func TestInvokeContractAPIContractNotFound(t *testing.T) { }, } - mim.On("NormalizeSigningKey", mock.Anything, "ns1", "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) + mim.On("NormalizeSigningKey", mock.Anything, "", identity.KeyNormalizationBlockchainPlugin).Return("key-resolved", nil) mdb.On("GetContractAPIByName", mock.Anything, "ns1", "banana").Return(nil, nil) _, err := cm.InvokeContractAPI(context.Background(), "ns1", "banana", "peel", req, false) diff --git a/internal/database/sqlcommon/group_sql.go b/internal/database/sqlcommon/group_sql.go index 5125ef7d54..8a93589f61 100644 --- a/internal/database/sqlcommon/group_sql.go +++ b/internal/database/sqlcommon/group_sql.go @@ -243,12 +243,12 @@ func (s *SQLCommon) groupResult(ctx context.Context, row *sql.Rows) (*core.Group return &group, nil } -func (s *SQLCommon) GetGroupByHash(ctx context.Context, hash *fftypes.Bytes32) (group *core.Group, err error) { +func (s *SQLCommon) GetGroupByHash(ctx context.Context, namespace string, hash *fftypes.Bytes32) (group *core.Group, err error) { rows, _, err := s.query(ctx, groupsTable, sq.Select(groupColumns...). From(groupsTable). - Where(sq.Eq{"hash": hash}), + Where(sq.Eq{"hash": hash, "namespace": namespace}), ) if err != nil { return nil, err @@ -273,8 +273,8 @@ func (s *SQLCommon) GetGroupByHash(ctx context.Context, hash *fftypes.Bytes32) ( return group, nil } -func (s *SQLCommon) GetGroups(ctx context.Context, filter database.Filter) (group []*core.Group, res *database.FilterResult, err error) { - query, fop, fi, err := s.filterSelect(ctx, "", sq.Select(groupColumns...).From(groupsTable), filter, groupFilterFieldMap, []interface{}{"sequence"}) +func (s *SQLCommon) GetGroups(ctx context.Context, namespace string, filter database.Filter) (group []*core.Group, res *database.FilterResult, err error) { + query, fop, fi, err := s.filterSelect(ctx, "", sq.Select(groupColumns...).From(groupsTable), filter, groupFilterFieldMap, []interface{}{"sequence"}, sq.Eq{"namespace": namespace}) if err != nil { return nil, nil, err } @@ -303,33 +303,3 @@ func (s *SQLCommon) GetGroups(ctx context.Context, filter database.Filter) (grou return groups, s.queryRes(ctx, groupsTable, tx, fop, fi), err } - -func (s *SQLCommon) UpdateGroup(ctx context.Context, hash *fftypes.Bytes32, update database.Update) (err error) { - return s.UpdateGroups(ctx, database.GroupQueryFactory.NewFilter(ctx).Eq("hash", hash), update) -} - -func (s *SQLCommon) UpdateGroups(ctx context.Context, filter database.Filter, update database.Update) (err error) { - - ctx, tx, autoCommit, err := s.beginOrUseTx(ctx) - if err != nil { - return err - } - defer s.rollbackTx(ctx, tx, autoCommit) - - query, err := s.buildUpdate(sq.Update(groupsTable), update, groupFilterFieldMap) - if err != nil { - return err - } - - query, err = s.filterUpdate(ctx, query, filter, opFilterFieldMap) - if err != nil { - return err - } - - _, err = s.updateTx(ctx, groupsTable, tx, query, nil /* no change event for filter based update */) - if err != nil { - return err - } - - return s.commitTx(ctx, tx, autoCommit) -} diff --git a/internal/database/sqlcommon/group_sql_test.go b/internal/database/sqlcommon/group_sql_test.go index 73845508d5..b75840559c 100644 --- a/internal/database/sqlcommon/group_sql_test.go +++ b/internal/database/sqlcommon/group_sql_test.go @@ -60,7 +60,7 @@ func TestUpsertGroupE2EWithDB(t *testing.T) { assert.NoError(t, err) // Check we get the exact same group back - groupRead, err := s.GetGroupByHash(ctx, group.Hash) + groupRead, err := s.GetGroupByHash(ctx, "ns1", group.Hash) assert.NoError(t, err) groupJson, _ := json.Marshal(&group) groupReadJson, _ := json.Marshal(&groupRead) @@ -83,7 +83,7 @@ func TestUpsertGroupE2EWithDB(t *testing.T) { assert.NoError(t, err) // Check we get the exact same group back - note the removal of one of the data elements - groupRead, err = s.GetGroupByHash(ctx, group.Hash) + groupRead, err = s.GetGroupByHash(ctx, "ns1", group.Hash) assert.NoError(t, err) groupJson, _ = json.Marshal(&groupUpdated) groupReadJson, _ = json.Marshal(&groupRead) @@ -97,7 +97,7 @@ func TestUpsertGroupE2EWithDB(t *testing.T) { fb.Eq("message", groupUpdated.Message), fb.Gt("created", "0"), ) - groups, _, err := s.GetGroups(ctx, filter) + groups, _, err := s.GetGroups(ctx, "ns1", filter) assert.NoError(t, err) assert.Equal(t, 1, len(groups)) groupReadJson, _ = json.Marshal(groups[0]) @@ -108,26 +108,10 @@ func TestUpsertGroupE2EWithDB(t *testing.T) { fb.Eq("hash", groupUpdated.Hash.String()), fb.Eq("created", "0"), ) - groups, _, err = s.GetGroups(ctx, filter) + groups, _, err = s.GetGroups(ctx, "ns1", filter) assert.NoError(t, err) assert.Equal(t, 0, len(groups)) - // Update (testing what's possible at the DB layer) - newHash := fftypes.NewRandB32() - up := database.GroupQueryFactory.NewUpdate(ctx). - Set("hash", newHash) - err = s.UpdateGroup(ctx, group.Hash, up) - assert.NoError(t, err) - - // Test find updated value - filter = fb.And( - fb.Eq("hash", newHash), - ) - groups, res, err := s.GetGroups(ctx, filter.Count(true)) - assert.NoError(t, err) - assert.Equal(t, 1, len(groups)) - assert.Equal(t, int64(1), *res.TotalCount) - s.callbacks.AssertExpectations(t) } @@ -314,7 +298,7 @@ func TestGetGroupByIDSelectFail(t *testing.T) { s, mock := newMockProvider().init() groupID := fftypes.NewRandB32() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) - _, err := s.GetGroupByHash(context.Background(), groupID) + _, err := s.GetGroupByHash(context.Background(), "ns1", groupID) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -323,7 +307,7 @@ func TestGetGroupByIDNotFound(t *testing.T) { s, mock := newMockProvider().init() groupID := fftypes.NewRandB32() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"hash"})) - group, err := s.GetGroupByHash(context.Background(), groupID) + group, err := s.GetGroupByHash(context.Background(), "ns1", groupID) assert.NoError(t, err) assert.Nil(t, group) assert.NoError(t, mock.ExpectationsWereMet()) @@ -333,7 +317,7 @@ func TestGetGroupByIDScanFail(t *testing.T) { s, mock := newMockProvider().init() groupID := fftypes.NewRandB32() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"hash"}).AddRow("only one")) - _, err := s.GetGroupByHash(context.Background(), groupID) + _, err := s.GetGroupByHash(context.Background(), "ns1", groupID) assert.Regexp(t, "FF10121", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -344,7 +328,7 @@ func TestGetGroupByIDLoadMembersFail(t *testing.T) { mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows(groupColumns). AddRow(nil, "ns1", "name1", fftypes.NewRandB32(), fftypes.Now())) mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) - _, err := s.GetGroupByHash(context.Background(), groupID) + _, err := s.GetGroupByHash(context.Background(), "ns1", groupID) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -352,7 +336,7 @@ func TestGetGroupByIDLoadMembersFail(t *testing.T) { func TestGetGroupsBuildQueryFail(t *testing.T) { s, _ := newMockProvider().init() f := database.GroupQueryFactory.NewFilter(context.Background()).Eq("hash", map[bool]bool{true: false}) - _, _, err := s.GetGroups(context.Background(), f) + _, _, err := s.GetGroups(context.Background(), "ns1", f) assert.Regexp(t, "FF00143.*hash", err) } @@ -360,7 +344,7 @@ func TestGetGroupsQueryFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) f := database.GroupQueryFactory.NewFilter(context.Background()).Eq("hash", "") - _, _, err := s.GetGroups(context.Background(), f) + _, _, err := s.GetGroups(context.Background(), "ns1", f) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -369,7 +353,7 @@ func TestGetGroupsReadGroupFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"hash"}).AddRow("only one")) f := database.GroupQueryFactory.NewFilter(context.Background()).Eq("hash", "") - _, _, err := s.GetGroups(context.Background(), f) + _, _, err := s.GetGroups(context.Background(), "ns1", f) assert.Regexp(t, "FF10121", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -380,42 +364,7 @@ func TestGetGroupsLoadMembersFail(t *testing.T) { AddRow(nil, "ns1", "group1", fftypes.NewRandB32(), fftypes.Now())) mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) f := database.GroupQueryFactory.NewFilter(context.Background()).Gt("created", "0") - _, _, err := s.GetGroups(context.Background(), f) + _, _, err := s.GetGroups(context.Background(), "ns1", f) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } - -func TestGroupUpdateBeginFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin().WillReturnError(fmt.Errorf("pop")) - u := database.GroupQueryFactory.NewUpdate(context.Background()).Set("hash", "anything") - err := s.UpdateGroup(context.Background(), fftypes.NewRandB32(), u) - assert.Regexp(t, "FF10114", err) -} - -func TestGroupUpdateBuildQueryFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - u := database.GroupQueryFactory.NewUpdate(context.Background()).Set("hash", map[bool]bool{true: false}) - err := s.UpdateGroup(context.Background(), fftypes.NewRandB32(), u) - assert.Regexp(t, "FF00143.*hash", err) -} - -func TestGroupsUpdateBuildFilterFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - f := database.GroupQueryFactory.NewFilter(context.Background()).Eq("hash", map[bool]bool{true: false}) - u := database.GroupQueryFactory.NewUpdate(context.Background()).Set("description", "my desc") - err := s.UpdateGroups(context.Background(), f, u) - assert.Regexp(t, "FF00143.*hash", err) -} - -func TestGroupUpdateFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - mock.ExpectExec("UPDATE .*").WillReturnError(fmt.Errorf("pop")) - mock.ExpectRollback() - u := database.GroupQueryFactory.NewUpdate(context.Background()).Set("description", fftypes.NewUUID()) - err := s.UpdateGroup(context.Background(), fftypes.NewRandB32(), u) - assert.Regexp(t, "FF10117", err) -} diff --git a/internal/database/sqlcommon/identity_sql.go b/internal/database/sqlcommon/identity_sql.go index 16b29102f9..d5563c7f03 100644 --- a/internal/database/sqlcommon/identity_sql.go +++ b/internal/database/sqlcommon/identity_sql.go @@ -197,17 +197,17 @@ func (s *SQLCommon) GetIdentityByName(ctx context.Context, iType core.IdentityTy return s.getIdentityPred(ctx, name, sq.Eq{"itype": iType, "namespace": namespace, "name": name}) } -func (s *SQLCommon) GetIdentityByDID(ctx context.Context, did string) (identity *core.Identity, err error) { - return s.getIdentityPred(ctx, did, sq.Eq{"did": did}) +func (s *SQLCommon) GetIdentityByDID(ctx context.Context, namespace, did string) (identity *core.Identity, err error) { + return s.getIdentityPred(ctx, did, sq.Eq{"did": did, "namespace": namespace}) } -func (s *SQLCommon) GetIdentityByID(ctx context.Context, id *fftypes.UUID) (identity *core.Identity, err error) { - return s.getIdentityPred(ctx, id.String(), sq.Eq{"id": id}) +func (s *SQLCommon) GetIdentityByID(ctx context.Context, namespace string, id *fftypes.UUID) (identity *core.Identity, err error) { + return s.getIdentityPred(ctx, id.String(), sq.Eq{"id": id, "namespace": namespace}) } -func (s *SQLCommon) GetIdentities(ctx context.Context, filter database.Filter) (identities []*core.Identity, fr *database.FilterResult, err error) { +func (s *SQLCommon) GetIdentities(ctx context.Context, namespace string, filter database.Filter) (identities []*core.Identity, fr *database.FilterResult, err error) { - query, fop, fi, err := s.filterSelect(ctx, "", sq.Select(identityColumns...).From(identitiesTable), filter, identityFilterFieldMap, []interface{}{"sequence"}) + query, fop, fi, err := s.filterSelect(ctx, "", sq.Select(identityColumns...).From(identitiesTable), filter, identityFilterFieldMap, []interface{}{"sequence"}, sq.Eq{"namespace": namespace}) if err != nil { return nil, nil, err } @@ -230,25 +230,3 @@ func (s *SQLCommon) GetIdentities(ctx context.Context, filter database.Filter) ( return identities, s.queryRes(ctx, identitiesTable, tx, fop, fi), err } - -func (s *SQLCommon) UpdateIdentity(ctx context.Context, id *fftypes.UUID, update database.Update) (err error) { - - ctx, tx, autoCommit, err := s.beginOrUseTx(ctx) - if err != nil { - return err - } - defer s.rollbackTx(ctx, tx, autoCommit) - - query, err := s.buildUpdate(sq.Update(identitiesTable), update, identityFilterFieldMap) - if err != nil { - return err - } - query = query.Where(sq.Eq{"id": id}) - - _, err = s.updateTx(ctx, identitiesTable, tx, query, nil /* no change events for filter based updates */) - if err != nil { - return err - } - - return s.commitTx(ctx, tx, autoCommit) -} diff --git a/internal/database/sqlcommon/identity_sql_test.go b/internal/database/sqlcommon/identity_sql_test.go index 891e53497b..01f84137a8 100644 --- a/internal/database/sqlcommon/identity_sql_test.go +++ b/internal/database/sqlcommon/identity_sql_test.go @@ -57,13 +57,13 @@ func TestIdentitiesE2EWithDB(t *testing.T) { } s.callbacks.On("UUIDCollectionNSEvent", database.CollectionIdentities, core.ChangeEventTypeCreated, "ns1", identityID).Return() - s.callbacks.On("UUIDCollectionNSEvent", database.CollectionIdentities, core.ChangeEventTypeUpdated, "ns2", identityID).Return() + s.callbacks.On("UUIDCollectionNSEvent", database.CollectionIdentities, core.ChangeEventTypeUpdated, "ns1", identityID).Return() err := s.UpsertIdentity(ctx, identity, database.UpsertOptimizationNew) assert.NoError(t, err) // Check we get the exact same identity back - identityRead, err := s.GetIdentityByID(ctx, identity.ID) + identityRead, err := s.GetIdentityByID(ctx, "ns1", identity.ID) assert.NoError(t, err) assert.NotNil(t, identityRead) identityJson, _ := json.Marshal(&identity) @@ -78,7 +78,7 @@ func TestIdentitiesE2EWithDB(t *testing.T) { DID: "did:firefly:/nodes/2", Parent: fftypes.NewUUID(), Type: core.IdentityTypeNode, - Namespace: "ns2", + Namespace: "ns1", Name: "identity2", }, IdentityProfile: core.IdentityProfile{ @@ -108,31 +108,13 @@ func TestIdentitiesE2EWithDB(t *testing.T) { fb.Eq("description", string(identityUpdated.Description)), fb.Eq("did", identityUpdated.DID), ) - identityRes, res, err := s.GetIdentities(ctx, filter.Count(true)) + identityRes, res, err := s.GetIdentities(ctx, "ns1", filter.Count(true)) assert.NoError(t, err) assert.Equal(t, 1, len(identityRes)) assert.Equal(t, int64(1), *res.TotalCount) identityReadJson, _ = json.Marshal(identityRes[0]) assert.Equal(t, string(identityJson), string(identityReadJson)) - // Update - updateTime := fftypes.Now() - up := database.IdentityQueryFactory.NewUpdate(ctx).Set("created", updateTime) - err = s.UpdateIdentity(ctx, identityUpdated.ID, up) - assert.NoError(t, err) - - // Test find updated value - filter = fb.And( - fb.Eq("did", identityUpdated.DID), - fb.Eq("messages.claim", identityUpdated.Messages.Claim), - fb.Eq("messages.verification", identityUpdated.Messages.Verification), - fb.Eq("messages.update", identityUpdated.Messages.Update), - fb.Eq("created", updateTime.String()), - ) - identities, _, err := s.GetIdentities(ctx, filter) - assert.NoError(t, err) - assert.Equal(t, 1, len(identities)) - s.callbacks.AssertExpectations(t) } @@ -207,7 +189,7 @@ func TestUpsertIdentityFailCommit(t *testing.T) { func TestGetIdentityByIDSelectFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) - _, err := s.GetIdentityByID(context.Background(), fftypes.NewUUID()) + _, err := s.GetIdentityByID(context.Background(), "ns1", fftypes.NewUUID()) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -223,7 +205,7 @@ func TestGetIdentityByNameSelectFail(t *testing.T) { func TestGetIdentityByIdentitySelectFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) - _, err := s.GetIdentityByDID(context.Background(), "did:firefly:org/org1") + _, err := s.GetIdentityByDID(context.Background(), "ns1", "did:firefly:org/org1") assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -231,7 +213,7 @@ func TestGetIdentityByIdentitySelectFail(t *testing.T) { func TestGetIdentityByIDNotFound(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"identity", "identity", "identity"})) - msg, err := s.GetIdentityByID(context.Background(), fftypes.NewUUID()) + msg, err := s.GetIdentityByID(context.Background(), "ns1", fftypes.NewUUID()) assert.NoError(t, err) assert.Nil(t, msg) assert.NoError(t, mock.ExpectationsWereMet()) @@ -240,7 +222,7 @@ func TestGetIdentityByIDNotFound(t *testing.T) { func TestGetIdentityByIDScanFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"identity"}).AddRow("only one")) - _, err := s.GetIdentityByID(context.Background(), fftypes.NewUUID()) + _, err := s.GetIdentityByID(context.Background(), "ns1", fftypes.NewUUID()) assert.Regexp(t, "FF10121", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -249,7 +231,7 @@ func TestGetIdentityQueryFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) f := database.IdentityQueryFactory.NewFilter(context.Background()).Eq("did", "") - _, _, err := s.GetIdentities(context.Background(), f) + _, _, err := s.GetIdentities(context.Background(), "ns1", f) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -257,7 +239,7 @@ func TestGetIdentityQueryFail(t *testing.T) { func TestGetIdentityBuildQueryFail(t *testing.T) { s, _ := newMockProvider().init() f := database.IdentityQueryFactory.NewFilter(context.Background()).Eq("did", map[bool]bool{true: false}) - _, _, err := s.GetIdentities(context.Background(), f) + _, _, err := s.GetIdentities(context.Background(), "ns1", f) assert.Regexp(t, "FF00143.*type", err) } @@ -265,33 +247,7 @@ func TestGetIdentityReadMessageFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"did"}).AddRow("only one")) f := database.IdentityQueryFactory.NewFilter(context.Background()).Eq("did", "") - _, _, err := s.GetIdentities(context.Background(), f) + _, _, err := s.GetIdentities(context.Background(), "ns1", f) assert.Regexp(t, "FF10121", err) assert.NoError(t, mock.ExpectationsWereMet()) } - -func TestIdentityUpdateBeginFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin().WillReturnError(fmt.Errorf("pop")) - u := database.IdentityQueryFactory.NewUpdate(context.Background()).Set("did", "anything") - err := s.UpdateIdentity(context.Background(), fftypes.NewUUID(), u) - assert.Regexp(t, "FF10114", err) -} - -func TestIdentityUpdateBuildQueryFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - u := database.IdentityQueryFactory.NewUpdate(context.Background()).Set("did", map[bool]bool{true: false}) - err := s.UpdateIdentity(context.Background(), fftypes.NewUUID(), u) - assert.Regexp(t, "FF00143.*did", err) -} - -func TestIdentityUpdateFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - mock.ExpectExec("UPDATE .*").WillReturnError(fmt.Errorf("pop")) - mock.ExpectRollback() - u := database.IdentityQueryFactory.NewUpdate(context.Background()).Set("did", fftypes.NewUUID()) - err := s.UpdateIdentity(context.Background(), fftypes.NewUUID(), u) - assert.Regexp(t, "FF10117", err) -} diff --git a/internal/database/sqlcommon/verifier_sql.go b/internal/database/sqlcommon/verifier_sql.go index 99c12f5e29..2392d42de8 100644 --- a/internal/database/sqlcommon/verifier_sql.go +++ b/internal/database/sqlcommon/verifier_sql.go @@ -163,13 +163,13 @@ func (s *SQLCommon) GetVerifierByValue(ctx context.Context, vType core.VerifierT return s.getVerifierPred(ctx, value, sq.Eq{"vtype": vType, "namespace": namespace, "value": value}) } -func (s *SQLCommon) GetVerifierByHash(ctx context.Context, hash *fftypes.Bytes32) (verifier *core.Verifier, err error) { - return s.getVerifierPred(ctx, hash.String(), sq.Eq{"hash": hash}) +func (s *SQLCommon) GetVerifierByHash(ctx context.Context, namespace string, hash *fftypes.Bytes32) (verifier *core.Verifier, err error) { + return s.getVerifierPred(ctx, hash.String(), sq.Eq{"hash": hash, "namespace": namespace}) } -func (s *SQLCommon) GetVerifiers(ctx context.Context, filter database.Filter) (verifiers []*core.Verifier, fr *database.FilterResult, err error) { +func (s *SQLCommon) GetVerifiers(ctx context.Context, namespace string, filter database.Filter) (verifiers []*core.Verifier, fr *database.FilterResult, err error) { - query, fop, fi, err := s.filterSelect(ctx, "", sq.Select(verifierColumns...).From(verifiersTable), filter, verifierFilterFieldMap, []interface{}{"sequence"}) + query, fop, fi, err := s.filterSelect(ctx, "", sq.Select(verifierColumns...).From(verifiersTable), filter, verifierFilterFieldMap, []interface{}{"sequence"}, sq.Eq{"namespace": namespace}) if err != nil { return nil, nil, err } @@ -192,25 +192,3 @@ func (s *SQLCommon) GetVerifiers(ctx context.Context, filter database.Filter) (v return verifiers, s.queryRes(ctx, verifiersTable, tx, fop, fi), err } - -func (s *SQLCommon) UpdateVerifier(ctx context.Context, hash *fftypes.Bytes32, update database.Update) (err error) { - - ctx, tx, autoCommit, err := s.beginOrUseTx(ctx) - if err != nil { - return err - } - defer s.rollbackTx(ctx, tx, autoCommit) - - query, err := s.buildUpdate(sq.Update(verifiersTable), update, verifierFilterFieldMap) - if err != nil { - return err - } - query = query.Where(sq.Eq{"hash": hash}) - - _, err = s.updateTx(ctx, verifiersTable, tx, query, nil /* no change events for filter based updates */) - if err != nil { - return err - } - - return s.commitTx(ctx, tx, autoCommit) -} diff --git a/internal/database/sqlcommon/verifier_sql_test.go b/internal/database/sqlcommon/verifier_sql_test.go index 1d885ca7a6..90759fbb99 100644 --- a/internal/database/sqlcommon/verifier_sql_test.go +++ b/internal/database/sqlcommon/verifier_sql_test.go @@ -55,7 +55,7 @@ func TestVerifiersE2EWithDB(t *testing.T) { assert.NoError(t, err) // Check we get the exact same verifier back - verifierRead, err := s.GetVerifierByHash(ctx, verifier.Hash) + verifierRead, err := s.GetVerifierByHash(ctx, "ns1", verifier.Hash) assert.NoError(t, err) assert.NotNil(t, verifierRead) verifierJson, _ := json.Marshal(&verifier) @@ -90,28 +90,13 @@ func TestVerifiersE2EWithDB(t *testing.T) { fb.Eq("value", string(verifierUpdated.Value)), fb.Eq("namespace", verifierUpdated.Namespace), ) - verifierRes, res, err := s.GetVerifiers(ctx, filter.Count(true)) + verifierRes, res, err := s.GetVerifiers(ctx, "ns1", filter.Count(true)) assert.NoError(t, err) assert.Equal(t, 1, len(verifierRes)) assert.Equal(t, int64(1), *res.TotalCount) verifierReadJson, _ = json.Marshal(verifierRes[0]) assert.Equal(t, string(verifierJson), string(verifierReadJson)) - // Update - updateTime := fftypes.Now() - up := database.VerifierQueryFactory.NewUpdate(ctx).Set("created", updateTime) - err = s.UpdateVerifier(ctx, verifierUpdated.Hash, up) - assert.NoError(t, err) - - // Test find updated value - filter = fb.And( - fb.Eq("value", verifierUpdated.Value), - fb.Eq("created", updateTime.String()), - ) - verifiers, _, err := s.GetVerifiers(ctx, filter) - assert.NoError(t, err) - assert.Equal(t, 1, len(verifiers)) - s.callbacks.AssertExpectations(t) } @@ -170,7 +155,7 @@ func TestUpsertVerifierFailCommit(t *testing.T) { func TestGetVerifierByHashSelectFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) - _, err := s.GetVerifierByHash(context.Background(), fftypes.NewRandB32()) + _, err := s.GetVerifierByHash(context.Background(), "ns1", fftypes.NewRandB32()) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -194,7 +179,7 @@ func TestGetVerifierByVerifierSelectFail(t *testing.T) { func TestGetVerifierByHashNotFound(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"verifier", "verifier", "verifier"})) - msg, err := s.GetVerifierByHash(context.Background(), fftypes.NewRandB32()) + msg, err := s.GetVerifierByHash(context.Background(), "ns1", fftypes.NewRandB32()) assert.NoError(t, err) assert.Nil(t, msg) assert.NoError(t, mock.ExpectationsWereMet()) @@ -203,7 +188,7 @@ func TestGetVerifierByHashNotFound(t *testing.T) { func TestGetVerifierByHashScanFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"verifier"}).AddRow("only one")) - _, err := s.GetVerifierByHash(context.Background(), fftypes.NewRandB32()) + _, err := s.GetVerifierByHash(context.Background(), "ns1", fftypes.NewRandB32()) assert.Regexp(t, "FF10121", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -212,7 +197,7 @@ func TestGetVerifierQueryFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnError(fmt.Errorf("pop")) f := database.VerifierQueryFactory.NewFilter(context.Background()).Eq("value", "") - _, _, err := s.GetVerifiers(context.Background(), f) + _, _, err := s.GetVerifiers(context.Background(), "ns1", f) assert.Regexp(t, "FF10115", err) assert.NoError(t, mock.ExpectationsWereMet()) } @@ -220,7 +205,7 @@ func TestGetVerifierQueryFail(t *testing.T) { func TestGetVerifierBuildQueryFail(t *testing.T) { s, _ := newMockProvider().init() f := database.VerifierQueryFactory.NewFilter(context.Background()).Eq("value", map[bool]bool{true: false}) - _, _, err := s.GetVerifiers(context.Background(), f) + _, _, err := s.GetVerifiers(context.Background(), "ns1", f) assert.Regexp(t, "FF00143.*type", err) } @@ -228,33 +213,7 @@ func TestGetVerifierReadMessageFail(t *testing.T) { s, mock := newMockProvider().init() mock.ExpectQuery("SELECT .*").WillReturnRows(sqlmock.NewRows([]string{"value"}).AddRow("only one")) f := database.VerifierQueryFactory.NewFilter(context.Background()).Eq("value", "") - _, _, err := s.GetVerifiers(context.Background(), f) + _, _, err := s.GetVerifiers(context.Background(), "ns1", f) assert.Regexp(t, "FF10121", err) assert.NoError(t, mock.ExpectationsWereMet()) } - -func TestVerifierUpdateBeginFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin().WillReturnError(fmt.Errorf("pop")) - u := database.VerifierQueryFactory.NewUpdate(context.Background()).Set("value", "anything") - err := s.UpdateVerifier(context.Background(), fftypes.NewRandB32(), u) - assert.Regexp(t, "FF10114", err) -} - -func TestVerifierUpdateBuildQueryFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - u := database.VerifierQueryFactory.NewUpdate(context.Background()).Set("value", map[bool]bool{true: false}) - err := s.UpdateVerifier(context.Background(), fftypes.NewRandB32(), u) - assert.Regexp(t, "FF00143.*value", err) -} - -func TestVerifierUpdateFail(t *testing.T) { - s, mock := newMockProvider().init() - mock.ExpectBegin() - mock.ExpectExec("UPDATE .*").WillReturnError(fmt.Errorf("pop")) - mock.ExpectRollback() - u := database.VerifierQueryFactory.NewUpdate(context.Background()).Set("value", fftypes.NewUUID()) - err := s.UpdateVerifier(context.Background(), fftypes.NewRandB32(), u) - assert.Regexp(t, "FF10117", err) -} diff --git a/internal/definitions/definition_handler.go b/internal/definitions/definition_handler.go index 66ae478ee8..f5ff854e2d 100644 --- a/internal/definitions/definition_handler.go +++ b/internal/definitions/definition_handler.go @@ -95,6 +95,7 @@ type DefinitionBatchState interface { } type definitionHandlers struct { + namespace string database database.Plugin blockchain blockchain.Plugin exchange dataexchange.Plugin @@ -104,11 +105,12 @@ type definitionHandlers struct { contracts contracts.Manager } -func NewDefinitionHandler(ctx context.Context, di database.Plugin, bi blockchain.Plugin, dx dataexchange.Plugin, dm data.Manager, im identity.Manager, am assets.Manager, cm contracts.Manager) (DefinitionHandler, error) { +func NewDefinitionHandler(ctx context.Context, ns string, di database.Plugin, bi blockchain.Plugin, dx dataexchange.Plugin, dm data.Manager, im identity.Manager, am assets.Manager, cm contracts.Manager) (DefinitionHandler, error) { if di == nil || bi == nil || dx == nil || dm == nil || im == nil || am == nil || cm == nil { return nil, i18n.NewError(ctx, coremsgs.MsgInitializationNilDepError, "DefinitionHandler") } return &definitionHandlers{ + namespace: ns, database: di, blockchain: bi, exchange: dx, diff --git a/internal/definitions/definition_handler_identity_claim.go b/internal/definitions/definition_handler_identity_claim.go index c4eed54667..22dbb4ae8a 100644 --- a/internal/definitions/definition_handler_identity_claim.go +++ b/internal/definitions/definition_handler_identity_claim.go @@ -149,7 +149,7 @@ func (dh *definitionHandlers) handleIdentityClaim(ctx context.Context, state Def existingIdentity, err := dh.database.GetIdentityByName(ctx, identity.Type, identity.Namespace, identity.Name) if err == nil && existingIdentity == nil { - existingIdentity, err = dh.database.GetIdentityByID(ctx, identity.ID) + existingIdentity, err = dh.database.GetIdentityByID(ctx, dh.namespace, identity.ID) } if err != nil { return HandlerResult{Action: ActionRetry}, err // retry database errors diff --git a/internal/definitions/definition_handler_identity_claim_test.go b/internal/definitions/definition_handler_identity_claim_test.go index b106c1a878..e46f6eca8b 100644 --- a/internal/definitions/definition_handler_identity_claim_test.go +++ b/internal/definitions/definition_handler_identity_claim_test.go @@ -149,7 +149,7 @@ func TestHandleDefinitionIdentityClaimCustomWithExistingParentVerificationOk(t * mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return([]*core.Message{ {Header: core.MessageHeader{ID: fftypes.NewUUID(), Tag: "skipped missing data"}}, @@ -200,7 +200,7 @@ func TestHandleDefinitionIdentityClaimIdempotentReplay(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(custom1, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(custom1, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(&core.Verifier{ Identity: custom1.ID, Namespace: "ns1", @@ -245,7 +245,7 @@ func TestHandleDefinitionIdentityClaimFailInsertIdentity(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return([]*core.Message{}, nil, nil) mdi.On("UpsertVerifier", ctx, mock.Anything, database.UpsertOptimizationNew).Return(nil) @@ -277,7 +277,7 @@ func TestHandleDefinitionIdentityClaimVerificationDataFail(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return([]*core.Message{}, nil, nil) @@ -307,7 +307,7 @@ func TestHandleDefinitionIdentityClaimVerificationMissingData(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return([]*core.Message{}, nil, nil) @@ -337,7 +337,7 @@ func TestHandleDefinitionIdentityClaimFailInsertVerifier(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return([]*core.Message{}, nil, nil) mdi.On("UpsertVerifier", ctx, mock.Anything, database.UpsertOptimizationNew).Return(fmt.Errorf("pop")) @@ -368,7 +368,7 @@ func TestHandleDefinitionIdentityClaimCustomMissingParentVerificationOk(t *testi mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return([]*core.Message{}, nil, nil) @@ -392,7 +392,7 @@ func TestHandleDefinitionIdentityClaimCustomParentVerificationFail(t *testing.T) mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("GetMessages", ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) @@ -416,7 +416,7 @@ func TestHandleDefinitionIdentityClaimVerifierClash(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(&core.Verifier{ Hash: fftypes.NewRandB32(), }, nil) @@ -441,7 +441,7 @@ func TestHandleDefinitionIdentityClaimVerifierError(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, fmt.Errorf("pop")) action, err := dh.HandleDefinitionBroadcast(ctx, bs, claimMsg, core.DataArray{claimData}, fftypes.NewUUID()) @@ -489,7 +489,7 @@ func TestHandleDefinitionIdentityClaimIdentityError(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, fmt.Errorf("pop")) action, err := dh.HandleDefinitionBroadcast(ctx, bs, claimMsg, core.DataArray{claimData}, fftypes.NewUUID()) assert.Equal(t, HandlerResult{Action: ActionRetry}, action) diff --git a/internal/definitions/definition_handler_identity_verification_test.go b/internal/definitions/definition_handler_identity_verification_test.go index 1807dbb448..92b34e6854 100644 --- a/internal/definitions/definition_handler_identity_verification_test.go +++ b/internal/definitions/definition_handler_identity_verification_test.go @@ -45,7 +45,7 @@ func TestHandleDefinitionIdentityVerificationWithExistingClaimOk(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetMessageByID", ctx, claimMsg.Header.ID).Return(nil, nil) // Simulate pending confirm in same pin batch mdi.On("GetIdentityByName", ctx, custom1.Type, custom1.Namespace, custom1.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, custom1.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", custom1.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "0x12345").Return(nil, nil) mdi.On("UpsertIdentity", ctx, mock.MatchedBy(func(identity *core.Identity) bool { assert.Equal(t, *claimMsg.Header.ID, *identity.Messages.Claim) diff --git a/internal/definitions/definition_handler_network_node.go b/internal/definitions/definition_handler_network_node.go index a019b6de4b..b739251a8f 100644 --- a/internal/definitions/definition_handler_network_node.go +++ b/internal/definitions/definition_handler_network_node.go @@ -30,7 +30,7 @@ func (dh *definitionHandlers) handleDeprecatedNodeBroadcast(ctx context.Context, return HandlerResult{Action: ActionReject}, i18n.NewError(ctx, coremsgs.MsgDefRejectedBadPayload, "node", msg.Header.ID) } - owner, err := dh.identity.FindIdentityForVerifier(ctx, []core.IdentityType{core.IdentityTypeOrg}, core.LegacySystemNamespace, &core.VerifierRef{ + owner, err := dh.identity.FindIdentityForVerifier(ctx, []core.IdentityType{core.IdentityTypeOrg}, &core.VerifierRef{ Type: dh.blockchain.VerifierType(), Value: nodeOld.Owner, }) diff --git a/internal/definitions/definition_handler_network_node_test.go b/internal/definitions/definition_handler_network_node_test.go index 957644f1fe..bb90053616 100644 --- a/internal/definitions/definition_handler_network_node_test.go +++ b/internal/definitions/definition_handler_network_node_test.go @@ -103,7 +103,7 @@ func TestHandleDeprecatedNodeDefinitionOK(t *testing.T) { parent, _, _ := testDeprecatedRootOrg(t) mim := dh.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ctx, []core.IdentityType{core.IdentityTypeOrg}, core.LegacySystemNamespace, &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ctx, []core.IdentityType{core.IdentityTypeOrg}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: node.Owner, }).Return(parent.Migrated().Identity, nil) @@ -111,7 +111,7 @@ func TestHandleDeprecatedNodeDefinitionOK(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, core.IdentityTypeNode, core.LegacySystemNamespace, node.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, node.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", node.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeFFDXPeerID, core.LegacySystemNamespace, "member_0").Return(nil, nil) mdi.On("UpsertIdentity", ctx, mock.MatchedBy(func(identity *core.Identity) bool { assert.Equal(t, *msg.Header.ID, *identity.Messages.Claim) @@ -163,7 +163,7 @@ func TestHandleDeprecatedNodeDefinitionFailOrgLookup(t *testing.T) { node, msg, data := testDeprecatedRootNode(t) mim := dh.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ctx, []core.IdentityType{core.IdentityTypeOrg}, core.LegacySystemNamespace, &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ctx, []core.IdentityType{core.IdentityTypeOrg}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: node.Owner, }).Return(nil, fmt.Errorf("pop")) @@ -184,7 +184,7 @@ func TestHandleDeprecatedNodeDefinitionOrgNotFound(t *testing.T) { node, msg, data := testDeprecatedRootNode(t) mim := dh.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ctx, []core.IdentityType{core.IdentityTypeOrg}, core.LegacySystemNamespace, &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ctx, []core.IdentityType{core.IdentityTypeOrg}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: node.Owner, }).Return(nil, nil) diff --git a/internal/definitions/definition_handler_network_org_test.go b/internal/definitions/definition_handler_network_org_test.go index 179f056184..869fd6e0b2 100644 --- a/internal/definitions/definition_handler_network_org_test.go +++ b/internal/definitions/definition_handler_network_org_test.go @@ -94,7 +94,7 @@ func TestHandleDeprecatedOrgDefinitionOK(t *testing.T) { mdi := dh.database.(*databasemocks.Plugin) mdi.On("GetIdentityByName", ctx, core.IdentityTypeOrg, core.LegacySystemNamespace, org.Name).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, org.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", org.ID).Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, core.LegacySystemNamespace, msg.Header.Key).Return(nil, nil) mdi.On("UpsertIdentity", ctx, mock.MatchedBy(func(identity *core.Identity) bool { assert.Equal(t, *msg.Header.ID, *identity.Messages.Claim) diff --git a/internal/definitions/definition_handler_test.go b/internal/definitions/definition_handler_test.go index f32c6d4c7a..8ef28629ca 100644 --- a/internal/definitions/definition_handler_test.go +++ b/internal/definitions/definition_handler_test.go @@ -42,7 +42,7 @@ func newTestDefinitionHandler(t *testing.T) (*definitionHandlers, *testDefinitio mam := &assetmocks.Manager{} mcm := &contractmocks.Manager{} mbi.On("VerifierType").Return(core.VerifierTypeEthAddress).Maybe() - dh, _ := NewDefinitionHandler(context.Background(), mdi, mbi, mdx, mdm, mim, mam, mcm) + dh, _ := NewDefinitionHandler(context.Background(), "ns1", mdi, mbi, mdx, mdm, mim, mam, mcm) return dh.(*definitionHandlers), newTestDefinitionBatchState(t) } @@ -83,7 +83,7 @@ func (bs *testDefinitionBatchState) assertNoFinalizers() { } func TestInitFail(t *testing.T) { - _, err := NewDefinitionHandler(context.Background(), nil, nil, nil, nil, nil, nil, nil) + _, err := NewDefinitionHandler(context.Background(), "", nil, nil, nil, nil, nil, nil, nil) assert.Regexp(t, "FF10128", err) } diff --git a/internal/events/aggregator.go b/internal/events/aggregator.go index 3b0e3c299d..d62865fba2 100644 --- a/internal/events/aggregator.go +++ b/internal/events/aggregator.go @@ -389,7 +389,7 @@ func (ag *aggregator) checkOnchainConsistency(ctx context.Context, msg *core.Mes resolvedAuthor, err := ag.identity.FindIdentityForVerifier(ctx, []core.IdentityType{ core.IdentityTypeOrg, core.IdentityTypeCustom, - }, msg.Header.Namespace, verifierRef) + }, verifierRef) if err != nil { return false, err } diff --git a/internal/events/aggregator_test.go b/internal/events/aggregator_test.go index 9e4e6007b4..0200755c14 100644 --- a/internal/events/aggregator_test.go +++ b/internal/events/aggregator_test.go @@ -158,7 +158,7 @@ func TestAggregationMaskedZeroNonceMatch(t *testing.T) { mpm := ag.messaging.(*privatemessagingmocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: member2key, }).Return(member2org, nil) @@ -299,7 +299,7 @@ func TestAggregationMaskedNextSequenceMatch(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: member2key, }).Return(member2org, nil) @@ -409,7 +409,7 @@ func TestAggregationBroadcast(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: member1key, }).Return(member1org, nil) @@ -498,7 +498,7 @@ func TestAggregationMigratedBroadcast(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: member1key, }).Return(member1org, nil) @@ -592,7 +592,7 @@ func TestAggregationMigratedBroadcastNilMessageID(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: member1key, }).Return(member1org, nil) @@ -660,7 +660,7 @@ func TestAggregationMigratedBroadcastInvalid(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: member1key, }).Return(member1org, nil) @@ -1049,7 +1049,7 @@ func TestProcessMsgFailDispatch(t *testing.T) { mdm.On("GetMessageWithDataCached", ag.ctx, mock.Anything, data.CRORequirePublicBlobRefs).Return(msg, nil, true, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) err := ag.processMessage(ag.ctx, &core.BatchManifest{}, &core.Pin{Sequence: 12345, Signer: "0x12345"}, 10, &core.MessageManifestEntry{ MessageRef: core.MessageRef{ @@ -1090,7 +1090,7 @@ func TestProcessMsgFailPinUpdate(t *testing.T) { Pins: core.FFStringArray{pin.String()}, } - mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", ag.ctx, []core.IdentityType{core.IdentityTypeOrg, core.IdentityTypeCustom}, &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", }).Return(org1, nil) @@ -1374,7 +1374,7 @@ func TestAttemptMessageDispatchFailValidateData(t *testing.T) { mim := ag.identity.(*identitymanagermocks.Manager) org1 := newTestOrg("org1") - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdm.On("GetMessageData", ag.ctx, mock.Anything, true).Return(core.DataArray{}, true, nil) mdm.On("ValidateAll", ag.ctx, mock.Anything).Return(false, fmt.Errorf("pop")) @@ -1397,7 +1397,7 @@ func TestAttemptMessageDispatchMissingBlobs(t *testing.T) { mim := ag.identity.(*identitymanagermocks.Manager) org1 := newTestOrg("org1") - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdi := ag.database.(*databasemocks.Plugin) mdi.On("GetBlobMatchingHash", ag.ctx, blobHash).Return(nil, nil) @@ -1422,7 +1422,7 @@ func TestAttemptMessageDispatchMissingTransfers(t *testing.T) { mim := ag.identity.(*identitymanagermocks.Manager) org1 := newTestOrg("org1") - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdi := ag.database.(*databasemocks.Plugin) mdi.On("GetTokenTransfers", ag.ctx, mock.Anything).Return([]*core.TokenTransfer{}, nil, nil) @@ -1451,7 +1451,7 @@ func TestAttemptMessageDispatchGetTransfersFail(t *testing.T) { mim := ag.identity.(*identitymanagermocks.Manager) org1 := newTestOrg("org1") - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdi := ag.database.(*databasemocks.Plugin) mdi.On("GetTokenTransfers", ag.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) @@ -1492,7 +1492,7 @@ func TestAttemptMessageDispatchTransferMismatch(t *testing.T) { }} mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdi := ag.database.(*databasemocks.Plugin) mdi.On("GetTokenTransfers", ag.ctx, mock.Anything).Return(transfers, nil, nil) @@ -1513,7 +1513,7 @@ func TestDefinitionBroadcastActionRejectCustomCorrelator(t *testing.T) { org1 := newTestOrg("org1") mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) customCorrelator := fftypes.NewUUID() msh := ag.definitions.(*definitionsmocks.DefinitionHandler) @@ -1571,7 +1571,7 @@ func TestDefinitionBroadcastInvalidSigner(t *testing.T) { org1 := newTestOrg("org1") mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(nil, nil) mdm := ag.data.(*datamocks.Manager) mdm.On("GetMessageData", ag.ctx, mock.Anything, true).Return(core.DataArray{}, true, nil) @@ -1618,7 +1618,7 @@ func TestDispatchBroadcastQueuesLaterDispatch(t *testing.T) { msg1, msg2, org1, manifest := newTestManifest(core.MessageTypeDefinition, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdm := ag.data.(*datamocks.Manager) mdm.On("GetMessageWithDataCached", ag.ctx, msg1.Header.ID, data.CRORequirePublicBlobRefs).Return(msg1, core.DataArray{}, true, nil).Once() @@ -1648,7 +1648,7 @@ func TestDispatchPrivateQueuesLaterDispatch(t *testing.T) { msg1, msg2, org1, manifest := newTestManifest(core.MessageTypePrivate, groupID) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdm := ag.data.(*datamocks.Manager) mdm.On("GetMessageWithDataCached", ag.ctx, msg1.Header.ID, data.CRORequirePins).Return(msg1, core.DataArray{}, true, nil).Once() @@ -1690,7 +1690,7 @@ func TestDispatchPrivateNextPinIncremented(t *testing.T) { msg1, msg2, org1, manifest := newTestManifest(core.MessageTypePrivate, groupID) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdm := ag.data.(*datamocks.Manager) mdm.On("GetMessageWithDataCached", ag.ctx, msg1.Header.ID, data.CRORequirePins).Return(msg1, core.DataArray{}, true, nil).Once() @@ -1731,7 +1731,7 @@ func TestDefinitionBroadcastActionRetry(t *testing.T) { msg1, _, org1, _ := newTestManifest(core.MessageTypeDefinition, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) msh := ag.definitions.(*definitionsmocks.DefinitionHandler) msh.On("HandleDefinitionBroadcast", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(definitions.HandlerResult{Action: definitions.ActionRetry}, fmt.Errorf("pop")) @@ -1751,7 +1751,7 @@ func TestDefinitionBroadcastRejectSignerLookupFail(t *testing.T) { msg1, _, _, _ := newTestManifest(core.MessageTypeDefinition, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) _, valid, err := ag.attemptMessageDispatch(ag.ctx, msg1, nil, nil, &batchState{}, &core.Pin{Signer: "0x12345"}) assert.Regexp(t, "pop", err) @@ -1767,7 +1767,7 @@ func TestDefinitionBroadcastRejectSignerLookupWrongOrg(t *testing.T) { msg1, _, _, _ := newTestManifest(core.MessageTypeDefinition, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(newTestOrg("org2"), nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(newTestOrg("org2"), nil) _, valid, err := ag.attemptMessageDispatch(ag.ctx, msg1, nil, nil, &batchState{}, &core.Pin{Signer: "0x12345"}) assert.NoError(t, err) @@ -1797,7 +1797,7 @@ func TestDefinitionBroadcastParkUnregisteredSignerIdentityClaim(t *testing.T) { msg1.Header.Tag = core.SystemTagIdentityClaim mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(nil, nil) msh := ag.definitions.(*definitionsmocks.DefinitionHandler) msh.On("HandleDefinitionBroadcast", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(definitions.HandlerResult{Action: definitions.ActionWait}, nil) @@ -1818,7 +1818,7 @@ func TestDefinitionBroadcastRootUnregisteredOk(t *testing.T) { msg1, _, _, _ := newTestManifest(core.MessageTypeDefinition, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(nil, nil) _, valid, err := ag.attemptMessageDispatch(ag.ctx, msg1, nil, nil, &batchState{}, &core.Pin{Signer: "0x12345"}) assert.NoError(t, err) @@ -1834,7 +1834,7 @@ func TestDefinitionBroadcastActionWait(t *testing.T) { msg1, _, org1, _ := newTestManifest(core.MessageTypeDefinition, nil) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) msh := ag.definitions.(*definitionsmocks.DefinitionHandler) msh.On("HandleDefinitionBroadcast", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(definitions.HandlerResult{Action: definitions.ActionWait}, nil) @@ -1857,7 +1857,7 @@ func TestAttemptMessageDispatchEventFail(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdm.On("ValidateAll", ag.ctx, mock.Anything).Return(true, nil) mdi.On("InsertEvent", ag.ctx, mock.Anything).Return(fmt.Errorf("pop")) @@ -1885,7 +1885,7 @@ func TestAttemptMessageDispatchGroupInit(t *testing.T) { mdm := ag.data.(*datamocks.Manager) mim := ag.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything, mock.Anything).Return(org1, nil) + mim.On("FindIdentityForVerifier", ag.ctx, mock.Anything, mock.Anything).Return(org1, nil) mdm.On("GetMessageData", ag.ctx, mock.Anything, true).Return(core.DataArray{}, true, nil) mdm.On("ValidateAll", ag.ctx, mock.Anything).Return(true, nil) mdi.On("InsertEvent", ag.ctx, mock.Anything).Return(nil) diff --git a/internal/events/dx_callbacks.go b/internal/events/dx_callbacks.go index 75895c875f..c1668fc9e6 100644 --- a/internal/events/dx_callbacks.go +++ b/internal/events/dx_callbacks.go @@ -30,11 +30,11 @@ import ( // Check data exchange peer the data came from, has been registered to the org listed in the batch. // Note the on-chain identity check is performed separately by the aggregator (across broadcast and private consistently). -func (em *eventManager) checkReceivedOffchainIdentity(ctx context.Context, ns, peerID, author string) (node *core.Identity, err error) { +func (em *eventManager) checkReceivedOffchainIdentity(ctx context.Context, peerID, author string) (node *core.Identity, err error) { l := log.L(em.ctx) // Resolve the node for the peer ID - node, err = em.identity.FindIdentityForVerifier(ctx, []core.IdentityType{core.IdentityTypeNode}, ns, &core.VerifierRef{ + node, err = em.identity.FindIdentityForVerifier(ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: peerID, }) @@ -43,7 +43,7 @@ func (em *eventManager) checkReceivedOffchainIdentity(ctx context.Context, ns, p } // Find the identity in the mesage - org, retryable, err := em.identity.CachedIdentityLookupMustExist(ctx, ns, author) + org, retryable, err := em.identity.CachedIdentityLookupMustExist(ctx, author) if err != nil && retryable { l.Errorf("Failed to retrieve org: %v", err) return nil, err // retryable error @@ -95,7 +95,7 @@ func (em *eventManager) privateBatchReceived(peerID string, batch *core.Batch, w } } - node, err := em.checkReceivedOffchainIdentity(ctx, batch.Namespace, peerID, batch.Author) + node, err := em.checkReceivedOffchainIdentity(ctx, peerID, batch.Author) if err != nil { return err } diff --git a/internal/events/dx_callbacks_test.go b/internal/events/dx_callbacks_test.go index 2e7e8e13a1..e808b1af51 100644 --- a/internal/events/dx_callbacks_test.go +++ b/internal/events/dx_callbacks_test.go @@ -148,11 +148,11 @@ func TestPinnedReceiveOK(t *testing.T) { mdi := em.database.(*databasemocks.Plugin) mdx := &dataexchangemocks.Plugin{} mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertDataArray", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertMessages", em.ctx, mock.Anything, mock.AnythingOfType("database.PostCompletionHook")).Return(nil, nil).Run(func(args mock.Arguments) { @@ -195,11 +195,11 @@ func TestMessageReceiveOkBadBatchIgnored(t *testing.T) { mdx := &dataexchangemocks.Plugin{} mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mde := newMessageReceived("peer1", b, "") em.messageReceived(mdx, mde) @@ -221,11 +221,11 @@ func TestMessageReceivePersistBatchError(t *testing.T) { mdx := &dataexchangemocks.Plugin{} mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(fmt.Errorf("pop")) // no ack as we are simulating termination mid retry @@ -344,7 +344,7 @@ func TestMessageReceiveNodeLookupError(t *testing.T) { }) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(nil, fmt.Errorf("pop")) @@ -371,11 +371,11 @@ func TestMessageReceiveGetCandidateOrgFail(t *testing.T) { mdx := &dataexchangemocks.Plugin{} mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(nil, true, fmt.Errorf("pop")) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(nil, true, fmt.Errorf("pop")) // no ack as we are simulating termination mid retry mde := newMessageReceivedNoAck("peer1", b) @@ -398,11 +398,11 @@ func TestMessageReceiveGetCandidateOrgNotFound(t *testing.T) { mdx := &dataexchangemocks.Plugin{} mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(nil, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(nil, false, nil) mde := newMessageReceived("peer1", b, "") em.messageReceived(mdx, mde) @@ -423,11 +423,11 @@ func TestMessageReceiveGetCandidateOrgNotMatch(t *testing.T) { org1 := newTestOrg("org1") node1 := newTestNode("node1", org1) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(newTestOrg("org2"), false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(newTestOrg("org2"), false, nil) mde := newMessageReceived("peer1", b, "") em.messageReceived(mdx, mde) @@ -544,11 +544,11 @@ func TestMessageReceiveMessageIdentityFail(t *testing.T) { mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org2, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org2, false, nil) mim.On("CachedIdentityLookupByID", em.ctx, org2.Parent).Return(nil, fmt.Errorf("pop")) // no ack as we are simulating termination mid retry @@ -574,11 +574,11 @@ func TestMessageReceiveMessageIdentityParentNotFound(t *testing.T) { mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org2, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org2, false, nil) mim.On("CachedIdentityLookupByID", em.ctx, org2.Parent).Return(nil, nil) mde := newMessageReceived("peer1", b, "") @@ -604,11 +604,11 @@ func TestMessageReceiveMessageIdentityIncorrect(t *testing.T) { mdx.On("Name").Return("utdx") mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org2, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org2, false, nil) mim.On("CachedIdentityLookupByID", em.ctx, org2.Parent).Return(org3, nil) mde := newMessageReceived("peer1", b, "") @@ -635,11 +635,11 @@ func TestMessageReceiveMessagePersistMessageFail(t *testing.T) { org1 := newTestOrg("org1") node1 := newTestNode("node1", org1) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertDataArray", em.ctx, mock.Anything).Return(nil) mdi.On("InsertMessages", em.ctx, mock.Anything, mock.AnythingOfType("database.PostCompletionHook")).Return(fmt.Errorf("optimization fail")) @@ -671,11 +671,11 @@ func TestMessageReceiveMessagePersistDataFail(t *testing.T) { org1 := newTestOrg("org1") node1 := newTestNode("node1", org1) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertDataArray", em.ctx, mock.Anything).Return(fmt.Errorf("optimization miss")) mdi.On("UpsertData", em.ctx, mock.Anything, database.UpsertOptimizationExisting).Return(fmt.Errorf("pop")) @@ -706,11 +706,11 @@ func TestMessageReceiveUnpinnedBatchOk(t *testing.T) { mpm := em.messaging.(*privatemessagingmocks.Manager) mpm.On("EnsureLocalGroup", em.ctx, mock.Anything).Return(true, nil) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertDataArray", em.ctx, mock.Anything).Return(nil) mdi.On("InsertMessages", em.ctx, mock.Anything, mock.AnythingOfType("database.PostCompletionHook")).Return(nil, nil).Run(func(args mock.Arguments) { @@ -747,11 +747,11 @@ func TestMessageReceiveUnpinnedBatchConfirmMessagesFail(t *testing.T) { mpm := em.messaging.(*privatemessagingmocks.Manager) mpm.On("EnsureLocalGroup", em.ctx, mock.Anything).Return(true, nil) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertDataArray", em.ctx, mock.Anything).Return(nil) mdi.On("InsertMessages", em.ctx, mock.Anything, mock.AnythingOfType("database.PostCompletionHook")).Return(nil, nil).Run(func(args mock.Arguments) { @@ -788,11 +788,11 @@ func TestMessageReceiveUnpinnedBatchPersistEventFail(t *testing.T) { mpm := em.messaging.(*privatemessagingmocks.Manager) mpm.On("EnsureLocalGroup", em.ctx, mock.Anything).Return(true, nil) mim := em.identity.(*identitymanagermocks.Manager) - mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, "ns1", &core.VerifierRef{ + mim.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeNode}, &core.VerifierRef{ Type: core.VerifierTypeFFDXPeerID, Value: "peer1", }).Return(node1, nil) - mim.On("CachedIdentityLookupMustExist", em.ctx, "ns1", "signingOrg").Return(org1, false, nil) + mim.On("CachedIdentityLookupMustExist", em.ctx, "signingOrg").Return(org1, false, nil) mdi.On("UpsertBatch", em.ctx, mock.Anything).Return(nil, nil) mdi.On("InsertDataArray", em.ctx, mock.Anything).Return(nil) mdi.On("InsertMessages", em.ctx, mock.Anything, mock.AnythingOfType("database.PostCompletionHook")).Return(nil, nil).Run(func(args mock.Arguments) { diff --git a/internal/events/event_dispatcher_test.go b/internal/events/event_dispatcher_test.go index 2ec7319ae8..92dc78c095 100644 --- a/internal/events/event_dispatcher_test.go +++ b/internal/events/event_dispatcher_test.go @@ -48,7 +48,7 @@ func newTestEventDispatcher(sub *subscription) (*eventDispatcher, func()) { mdm := &datamocks.Manager{} mbm := &broadcastmocks.Manager{} mpm := &privatemessagingmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) ctx, cancel := context.WithCancel(context.Background()) return newEventDispatcher(ctx, mei, mdi, mdm, mbm, mpm, fftypes.NewUUID().String(), sub, newEventNotifier(ctx, "ut"), txHelper), func() { cancel() diff --git a/internal/events/event_manager_test.go b/internal/events/event_manager_test.go index 96f5db2a0d..8f396586ac 100644 --- a/internal/events/event_manager_test.go +++ b/internal/events/event_manager_test.go @@ -80,7 +80,7 @@ func newTestEventManagerCommon(t *testing.T, metrics, dbconcurrency bool) (*even mni := &sysmessagingmocks.LocalNodeInfo{} mdd := &shareddownloadmocks.Manager{} mmi := &metricsmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mmi.On("IsMetricsEnabled").Return(metrics) if metrics { mmi.On("TransferConfirmed", mock.Anything) @@ -144,7 +144,7 @@ func TestStartStopBadTransports(t *testing.T) { mam := &assetmocks.Manager{} msd := &shareddownloadmocks.Manager{} mm := &metricsmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mdi.On("Capabilities").Return(&database.Capabilities{Concurrency: false}).Maybe() mbi.On("VerifierType").Return(core.VerifierTypeEthAddress) _, err := NewEventManager(context.Background(), "ns1", mni, mpi, mdi, mbi, mim, msh, mdm, mbm, mpm, mam, msd, mm, txHelper) diff --git a/internal/events/network_action.go b/internal/events/network_action.go index d3fe860d0a..2a0d516d3d 100644 --- a/internal/events/network_action.go +++ b/internal/events/network_action.go @@ -44,7 +44,7 @@ func (em *eventManager) actionTerminate(bi blockchain.Plugin, event *blockchain. func (em *eventManager) BlockchainNetworkAction(bi blockchain.Plugin, action string, event *blockchain.Event, signingKey *core.VerifierRef) error { return em.retry.Do(em.ctx, "handle network action", func(attempt int) (retry bool, err error) { // Verify that the action came from a registered root org - resolvedAuthor, err := em.identity.FindIdentityForVerifier(em.ctx, []core.IdentityType{core.IdentityTypeOrg}, core.LegacySystemNamespace, signingKey) + resolvedAuthor, err := em.identity.FindIdentityForVerifier(em.ctx, []core.IdentityType{core.IdentityTypeOrg}, signingKey) if err != nil { return true, err } diff --git a/internal/events/network_action_test.go b/internal/events/network_action_test.go index 5fdadea3d6..a3ce942685 100644 --- a/internal/events/network_action_test.go +++ b/internal/events/network_action_test.go @@ -46,7 +46,7 @@ func TestNetworkAction(t *testing.T) { mth := em.txHelper.(*txcommonmocks.Helper) mii := em.identity.(*identitymanagermocks.Manager) - mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, "ff_system", verifier).Return(&core.Identity{}, nil) + mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, verifier).Return(&core.Identity{}, nil) mdi.On("GetBlockchainEventByProtocolID", em.ctx, "ff_system", (*fftypes.UUID)(nil), "0001").Return(nil, nil) mth.On("InsertBlockchainEvent", em.ctx, mock.MatchedBy(func(be *core.BlockchainEvent) bool { return be.ProtocolID == "0001" @@ -77,8 +77,8 @@ func TestNetworkActionUnknownIdentity(t *testing.T) { mbi := &blockchainmocks.Plugin{} mii := em.identity.(*identitymanagermocks.Manager) - mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, "ff_system", verifier).Return(nil, fmt.Errorf("pop")).Once() - mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, "ff_system", verifier).Return(nil, nil).Once() + mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, verifier).Return(nil, fmt.Errorf("pop")).Once() + mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, verifier).Return(nil, nil).Once() err := em.BlockchainNetworkAction(mbi, "terminate", &blockchain.Event{}, verifier) assert.NoError(t, err) @@ -99,7 +99,7 @@ func TestNetworkActionNonRootIdentity(t *testing.T) { mbi := &blockchainmocks.Plugin{} mii := em.identity.(*identitymanagermocks.Manager) - mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, "ff_system", verifier).Return(&core.Identity{ + mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, verifier).Return(&core.Identity{ IdentityBase: core.IdentityBase{ Parent: fftypes.NewUUID(), }, @@ -124,7 +124,7 @@ func TestNetworkActionUnknown(t *testing.T) { mbi := &blockchainmocks.Plugin{} mii := em.identity.(*identitymanagermocks.Manager) - mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, "ff_system", verifier).Return(&core.Identity{}, nil) + mii.On("FindIdentityForVerifier", em.ctx, []core.IdentityType{core.IdentityTypeOrg}, verifier).Return(&core.Identity{}, nil) err := em.BlockchainNetworkAction(mbi, "bad", &blockchain.Event{}, verifier) assert.NoError(t, err) diff --git a/internal/events/subscription_manager_test.go b/internal/events/subscription_manager_test.go index 8cffc58b84..19b5e5527f 100644 --- a/internal/events/subscription_manager_test.go +++ b/internal/events/subscription_manager_test.go @@ -44,7 +44,7 @@ func newTestSubManager(t *testing.T, mei *eventsmocks.Plugin) (*subscriptionMana mdm := &datamocks.Manager{} mbm := &broadcastmocks.Manager{} mpm := &privatemessagingmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) ctx, cancel := context.WithCancel(context.Background()) mei.On("Name").Return("ut") @@ -172,7 +172,7 @@ func TestSubManagerBadPlugin(t *testing.T) { mdm := &datamocks.Manager{} mbm := &broadcastmocks.Manager{} mpm := &privatemessagingmocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) coreconfig.Reset() config.Set(coreconfig.EventTransportsEnabled, []string{"!unknown!"}) _, err := newSubscriptionManager(context.Background(), mdi, mdm, newEventNotifier(context.Background(), "ut"), mbm, mpm, txHelper) diff --git a/internal/identity/identitymanager.go b/internal/identity/identitymanager.go index 5408e8f33d..85a3592f5a 100644 --- a/internal/identity/identitymanager.go +++ b/internal/identity/identitymanager.go @@ -41,50 +41,49 @@ const ( ) type Manager interface { - ResolveInputSigningIdentity(ctx context.Context, namespace string, signerRef *core.SignerRef) (err error) - NormalizeSigningKey(ctx context.Context, namespace, inputKey string, keyNormalizationMode int) (signingKey string, err error) - FindIdentityForVerifier(ctx context.Context, iTypes []core.IdentityType, namespace string, verifier *core.VerifierRef) (identity *core.Identity, err error) + ResolveInputSigningIdentity(ctx context.Context, signerRef *core.SignerRef) (err error) + NormalizeSigningKey(ctx context.Context, inputKey string, keyNormalizationMode int) (signingKey string, err error) + FindIdentityForVerifier(ctx context.Context, iTypes []core.IdentityType, verifier *core.VerifierRef) (identity *core.Identity, err error) ResolveIdentitySigner(ctx context.Context, identity *core.Identity) (parentSigner *core.SignerRef, err error) CachedIdentityLookupByID(ctx context.Context, id *fftypes.UUID) (identity *core.Identity, err error) - CachedIdentityLookupMustExist(ctx context.Context, namespace, did string) (identity *core.Identity, retryable bool, err error) - CachedIdentityLookupNilOK(ctx context.Context, namespace, did string) (identity *core.Identity, retryable bool, err error) - CachedVerifierLookup(ctx context.Context, vType core.VerifierType, namespace, value string) (verifier *core.Verifier, err error) - GetMultipartyRootVerifier(ctx context.Context, namespace string) (*core.VerifierRef, error) - GetMultipartyRootOrg(ctx context.Context, namespace string) (*core.Identity, error) + CachedIdentityLookupMustExist(ctx context.Context, did string) (identity *core.Identity, retryable bool, err error) + CachedIdentityLookupNilOK(ctx context.Context, did string) (identity *core.Identity, retryable bool, err error) + CachedVerifierLookup(ctx context.Context, vType core.VerifierType, value string) (verifier *core.Verifier, err error) + GetMultipartyRootVerifier(ctx context.Context) (*core.VerifierRef, error) + GetMultipartyRootOrg(ctx context.Context) (*core.Identity, error) VerifyIdentityChain(ctx context.Context, identity *core.Identity) (immediateParent *core.Identity, retryable bool, err error) } type identityManager struct { - database database.Plugin - blockchain blockchain.Plugin - data data.Manager - + database database.Plugin + blockchain blockchain.Plugin + data data.Manager + namespace string defaultKey string orgName string orgKey string - multipartyRootVerifier map[string]*core.VerifierRef - multipartyRootOrg map[string]*core.Identity + multipartyRootVerifier *core.VerifierRef + multipartyRootOrg *core.Identity identityCacheTTL time.Duration identityCache *ccache.Cache signingKeyCacheTTL time.Duration signingKeyCache *ccache.Cache } -func NewIdentityManager(ctx context.Context, defaultKey, orgName, orgKey string, di database.Plugin, bi blockchain.Plugin, dm data.Manager) (Manager, error) { +func NewIdentityManager(ctx context.Context, ns, defaultKey, orgName, orgKey string, di database.Plugin, bi blockchain.Plugin, dm data.Manager) (Manager, error) { if di == nil || bi == nil || dm == nil { return nil, i18n.NewError(ctx, coremsgs.MsgInitializationNilDepError, "IdentityManager") } im := &identityManager{ - database: di, - blockchain: bi, - data: dm, - defaultKey: defaultKey, - orgName: orgName, - orgKey: orgKey, - multipartyRootVerifier: make(map[string]*core.VerifierRef), - multipartyRootOrg: make(map[string]*core.Identity), - identityCacheTTL: config.GetDuration(coreconfig.IdentityManagerCacheTTL), - signingKeyCacheTTL: config.GetDuration(coreconfig.IdentityManagerCacheTTL), + database: di, + blockchain: bi, + data: dm, + namespace: ns, + defaultKey: defaultKey, + orgName: orgName, + orgKey: orgKey, + identityCacheTTL: config.GetDuration(coreconfig.IdentityManagerCacheTTL), + signingKeyCacheTTL: config.GetDuration(coreconfig.IdentityManagerCacheTTL), } // For the identity and signingkey caches, we just treat them all equally sized and the max items im.identityCache = ccache.New( @@ -109,9 +108,9 @@ func ParseKeyNormalizationConfig(strConfigVal string) int { // NormalizeSigningKey takes in only a "key" (which may be empty to use the default) to be normalized and returned. // This is for cases where keys are used directly without an "author" field alongside them (custom contracts, tokens), // or when the author is known by the caller and should not / cannot be confirmed prior to sending (identity claims) -func (im *identityManager) NormalizeSigningKey(ctx context.Context, namespace, inputKey string, keyNormalizationMode int) (signingKey string, err error) { +func (im *identityManager) NormalizeSigningKey(ctx context.Context, inputKey string, keyNormalizationMode int) (signingKey string, err error) { if inputKey == "" { - verifierRef, err := im.getDefaultVerifier(ctx, namespace) + verifierRef, err := im.getDefaultVerifier(ctx) if err != nil { return "", err } @@ -132,14 +131,14 @@ func (im *identityManager) NormalizeSigningKey(ctx context.Context, namespace, i // ResolveInputIdentity takes in blockchain signing input information from an API call (which may // include author or key or both), and updates it with fully resolved and normalized values -func (im *identityManager) ResolveInputSigningIdentity(ctx context.Context, namespace string, signerRef *core.SignerRef) (err error) { +func (im *identityManager) ResolveInputSigningIdentity(ctx context.Context, signerRef *core.SignerRef) (err error) { log.L(ctx).Debugf("Resolving identity input: key='%s' author='%s'", signerRef.Key, signerRef.Author) var verifier *core.VerifierRef switch { case signerRef.Author == "" && signerRef.Key == "": // Nothing specified: use the default node identity - err = im.resolveDefaultSigningIdentity(ctx, namespace, signerRef) + err = im.resolveDefaultSigningIdentity(ctx, signerRef) if err != nil { return err } @@ -154,7 +153,7 @@ func (im *identityManager) ResolveInputSigningIdentity(ctx context.Context, name identity, err := im.FindIdentityForVerifier(ctx, []core.IdentityType{ core.IdentityTypeOrg, core.IdentityTypeCustom, - }, namespace, verifier) + }, verifier) switch { case err != nil: return err @@ -169,7 +168,7 @@ func (im *identityManager) ResolveInputSigningIdentity(ctx context.Context, name } case signerRef.Author != "": // Key is unrecognized, but an author was specified: use the key and resolve author to DID - identity, _, err := im.CachedIdentityLookupMustExist(ctx, namespace, signerRef.Author) + identity, _, err := im.CachedIdentityLookupMustExist(ctx, signerRef.Author) if err != nil { return err } @@ -180,7 +179,7 @@ func (im *identityManager) ResolveInputSigningIdentity(ctx context.Context, name case signerRef.Author != "": // Author specified (without key): use the first blockchain key associated with it - identity, _, err := im.CachedIdentityLookupMustExist(ctx, namespace, signerRef.Author) + identity, _, err := im.CachedIdentityLookupMustExist(ctx, signerRef.Author) if err != nil { return err } @@ -204,7 +203,7 @@ func (im *identityManager) firstVerifierForIdentity(ctx context.Context, vType c fb.Eq("type", vType), fb.Eq("identity", identity.ID), ) - verifiers, _, err := im.database.GetVerifiers(ctx, filter) + verifiers, _, err := im.database.GetVerifiers(ctx, im.namespace, filter) if err != nil { return nil, true /* DB Error */, err } @@ -215,12 +214,12 @@ func (im *identityManager) firstVerifierForIdentity(ctx context.Context, vType c } // resolveDefaultSigningIdentity adds the default signing identity into a message -func (im *identityManager) resolveDefaultSigningIdentity(ctx context.Context, namespace string, signerRef *core.SignerRef) (err error) { - verifierRef, err := im.getDefaultVerifier(ctx, namespace) +func (im *identityManager) resolveDefaultSigningIdentity(ctx context.Context, signerRef *core.SignerRef) (err error) { + verifierRef, err := im.getDefaultVerifier(ctx) if err != nil { return err } - identity, err := im.GetMultipartyRootOrg(ctx, namespace) + identity, err := im.GetMultipartyRootOrg(ctx) if err != nil { return err } @@ -230,17 +229,17 @@ func (im *identityManager) resolveDefaultSigningIdentity(ctx context.Context, na } // getDefaultVerifier gets the default blockchain verifier via the configuration -func (im *identityManager) getDefaultVerifier(ctx context.Context, namespace string) (verifier *core.VerifierRef, err error) { +func (im *identityManager) getDefaultVerifier(ctx context.Context) (verifier *core.VerifierRef, err error) { if im.defaultKey != "" { return im.normalizeKeyViaBlockchainPlugin(ctx, im.defaultKey) } - return im.GetMultipartyRootVerifier(ctx, namespace) + return im.GetMultipartyRootVerifier(ctx) } // GetMultipartyRootVerifier gets the blockchain verifier of the root org via the configuration -func (im *identityManager) GetMultipartyRootVerifier(ctx context.Context, namespace string) (*core.VerifierRef, error) { - if key, ok := im.multipartyRootVerifier[namespace]; ok { - return key, nil +func (im *identityManager) GetMultipartyRootVerifier(ctx context.Context) (*core.VerifierRef, error) { + if im.multipartyRootVerifier != nil { + return im.multipartyRootVerifier, nil } if im.orgKey == "" { @@ -251,7 +250,7 @@ func (im *identityManager) GetMultipartyRootVerifier(ctx context.Context, namesp if err != nil { return nil, err } - im.multipartyRootVerifier[namespace] = verifier + im.multipartyRootVerifier = verifier return verifier, nil } @@ -277,8 +276,8 @@ func (im *identityManager) normalizeKeyViaBlockchainPlugin(ctx context.Context, } // FindIdentityForVerifier is a reverse lookup function to look up an identity registered as owner of the specified verifier -func (im *identityManager) FindIdentityForVerifier(ctx context.Context, iTypes []core.IdentityType, namespace string, verifier *core.VerifierRef) (identity *core.Identity, err error) { - identity, err = im.cachedIdentityLookupByVerifierRef(ctx, namespace, verifier) +func (im *identityManager) FindIdentityForVerifier(ctx context.Context, iTypes []core.IdentityType, verifier *core.VerifierRef) (identity *core.Identity, err error) { + identity, err = im.cachedIdentityLookupByVerifierRef(ctx, im.namespace, verifier) if err != nil || identity != nil { return identity, err } @@ -286,16 +285,16 @@ func (im *identityManager) FindIdentityForVerifier(ctx context.Context, iTypes [ } // GetMultipartyRootOrg returns the identity of the organization that owns the node, if fully registered within the given namespace -func (im *identityManager) GetMultipartyRootOrg(ctx context.Context, namespace string) (*core.Identity, error) { - if id, ok := im.multipartyRootOrg[namespace]; ok { - return id, nil +func (im *identityManager) GetMultipartyRootOrg(ctx context.Context) (*core.Identity, error) { + if im.multipartyRootOrg != nil { + return im.multipartyRootOrg, nil } - verifierRef, err := im.GetMultipartyRootVerifier(ctx, namespace) + verifierRef, err := im.GetMultipartyRootVerifier(ctx) if err != nil { return nil, err } - identity, err := im.cachedIdentityLookupByVerifierRef(ctx, namespace, verifierRef) + identity, err := im.cachedIdentityLookupByVerifierRef(ctx, im.namespace, verifierRef) if err != nil || identity == nil { return nil, i18n.WrapError(ctx, err, coremsgs.MsgLocalOrgLookupFailed, im.orgName, verifierRef.Value) } @@ -303,7 +302,7 @@ func (im *identityManager) GetMultipartyRootOrg(ctx context.Context, namespace s if identity.Type != core.IdentityTypeOrg || identity.Name != im.orgName { return nil, i18n.NewError(ctx, coremsgs.MsgLocalOrgLookupFailed, im.orgName, verifierRef.Value) } - im.multipartyRootOrg[namespace] = identity + im.multipartyRootOrg = identity return identity, nil } @@ -389,12 +388,13 @@ func (im *identityManager) cachedIdentityLookupByVerifierRef(ctx context.Context return nil, err } else if verifier == nil { if namespace != core.LegacySystemNamespace && im.blockchain.NetworkVersion() == 1 { - // For V1 networks, fall back to SystemNamespace for looking up identities + // For V1 networks, fall back to LegacySystemNamespace for looking up identities + // This assumes that the system namespace shares a database with this manager's namespace! return im.cachedIdentityLookupByVerifierRef(ctx, core.LegacySystemNamespace, verifierRef) } return nil, err } - identity, err := im.database.GetIdentityByID(ctx, verifier.Identity) + identity, err := im.database.GetIdentityByID(ctx, namespace, verifier.Identity) if err != nil { return nil, err } @@ -406,7 +406,7 @@ func (im *identityManager) cachedIdentityLookupByVerifierRef(ctx context.Context return identity, nil } -func (im *identityManager) CachedIdentityLookupNilOK(ctx context.Context, namespace, didLookupStr string) (identity *core.Identity, retryable bool, err error) { +func (im *identityManager) CachedIdentityLookupNilOK(ctx context.Context, didLookupStr string) (identity *core.Identity, retryable bool, err error) { // Use an LRU cache for the author identity, as it's likely for the same identity to be re-used over and over cacheKey := fmt.Sprintf("did=%s", didLookupStr) defer func() { @@ -427,21 +427,21 @@ func (im *identityManager) CachedIdentityLookupNilOK(ctx context.Context, namesp return nil, false, i18n.NewError(ctx, coremsgs.MsgDIDResolverUnknown, didLookupStr) } // Look up by the full DID - if identity, err = im.database.GetIdentityByDID(ctx, didLookupStr); err != nil { + if identity, err = im.database.GetIdentityByDID(ctx, im.namespace, didLookupStr); err != nil { return nil, true /* DB Error */, err } if identity == nil && strings.HasPrefix(didLookupStr, core.FireFlyOrgDIDPrefix) { // We allow the UUID to be used to resolve DIDs as an alias to the name uuid, err := fftypes.ParseUUID(ctx, strings.TrimPrefix(didLookupStr, core.FireFlyOrgDIDPrefix)) if err == nil { - if identity, err = im.database.GetIdentityByID(ctx, uuid); err != nil { + if identity, err = im.database.GetIdentityByID(ctx, im.namespace, uuid); err != nil { return nil, true /* DB Error */, err } } } } else { // If there is just a name in there, then it could be an Org type identity (from the very original usage of the field) - if identity, err = im.database.GetIdentityByName(ctx, core.IdentityTypeOrg, namespace, didLookupStr); err != nil { + if identity, err = im.database.GetIdentityByName(ctx, core.IdentityTypeOrg, im.namespace, didLookupStr); err != nil { return nil, true /* DB Error */, err } } @@ -454,8 +454,8 @@ func (im *identityManager) CachedIdentityLookupNilOK(ctx context.Context, namesp return identity, false, nil } -func (im *identityManager) CachedIdentityLookupMustExist(ctx context.Context, namespace, didLookupStr string) (identity *core.Identity, retryable bool, err error) { - identity, retryable, err = im.CachedIdentityLookupNilOK(ctx, namespace, didLookupStr) +func (im *identityManager) CachedIdentityLookupMustExist(ctx context.Context, didLookupStr string) (identity *core.Identity, retryable bool, err error) { + identity, retryable, err = im.CachedIdentityLookupNilOK(ctx, didLookupStr) if err != nil { return nil, retryable, err } @@ -472,7 +472,7 @@ func (im *identityManager) CachedIdentityLookupByID(ctx context.Context, id *fft cached.Extend(im.identityCacheTTL) identity = cached.Value().(*core.Identity) } else { - identity, err = im.database.GetIdentityByID(ctx, id) + identity, err = im.database.GetIdentityByID(ctx, im.namespace, id) if err != nil || identity == nil { return identity, err } @@ -482,14 +482,14 @@ func (im *identityManager) CachedIdentityLookupByID(ctx context.Context, id *fft return identity, nil } -func (im *identityManager) CachedVerifierLookup(ctx context.Context, vType core.VerifierType, namespace, value string) (verifier *core.Verifier, err error) { +func (im *identityManager) CachedVerifierLookup(ctx context.Context, vType core.VerifierType, value string) (verifier *core.Verifier, err error) { // Use an LRU cache for the author identity, as it's likely for the same identity to be re-used over and over - cacheKey := fmt.Sprintf("v=%s|%s|%s", vType, namespace, value) + cacheKey := fmt.Sprintf("v=%s|%s", vType, value) if cached := im.identityCache.Get(cacheKey); cached != nil { cached.Extend(im.identityCacheTTL) verifier = cached.Value().(*core.Verifier) } else { - verifier, err = im.database.GetVerifierByValue(ctx, vType, namespace, value) + verifier, err = im.database.GetVerifierByValue(ctx, vType, im.namespace, value) if err != nil || verifier == nil { return verifier, err } diff --git a/internal/identity/identitymanager_test.go b/internal/identity/identitymanager_test.go index 2b35d8c68e..ef5d30206f 100644 --- a/internal/identity/identitymanager_test.go +++ b/internal/identity/identitymanager_test.go @@ -41,13 +41,13 @@ func newTestIdentityManager(t *testing.T) (context.Context, *identityManager) { mbi.On("VerifierType").Return(core.VerifierTypeEthAddress).Maybe() ctx := context.Background() - im, err := NewIdentityManager(ctx, "", "", "", mdi, mbi, mdm) + im, err := NewIdentityManager(ctx, "ns1", "", "", "", mdi, mbi, mdm) assert.NoError(t, err) return ctx, im.(*identityManager) } func TestNewIdentityManagerMissingDeps(t *testing.T) { - _, err := NewIdentityManager(context.Background(), "", "", "", nil, nil, nil) + _, err := NewIdentityManager(context.Background(), "", "", "", "", nil, nil, nil) assert.Regexp(t, "FF10128", err) } @@ -56,7 +56,7 @@ func TestResolveInputSigningIdentityNoKey(t *testing.T) { ctx, im := newTestIdentityManager(t) msgIdentity := &core.SignerRef{} - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "FF10354", err) } @@ -83,7 +83,7 @@ func TestResolveInputSigningIdentityOrgFallbackOk(t *testing.T) { Value: "fullkey123", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, orgID). + mdi.On("GetIdentityByID", ctx, "ns1", orgID). Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, @@ -95,7 +95,7 @@ func TestResolveInputSigningIdentityOrgFallbackOk(t *testing.T) { }, nil) msgIdentity := &core.SignerRef{} - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.NoError(t, err) assert.Equal(t, "did:firefly:org/org1", msgIdentity.Author) assert.Equal(t, "fullkey123", msgIdentity.Key) @@ -124,7 +124,7 @@ func TestResolveInputSigningIdentityByKeyOk(t *testing.T) { Value: "fullkey123", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, idID). + mdi.On("GetIdentityByID", ctx, "ns1", idID). Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: idID, @@ -138,7 +138,7 @@ func TestResolveInputSigningIdentityByKeyOk(t *testing.T) { msgIdentity := &core.SignerRef{ Key: "mykey123", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.NoError(t, err) assert.Equal(t, "did:firefly:ns/ns1/myid", msgIdentity.Author) assert.Equal(t, "fullkey123", msgIdentity.Key) @@ -162,7 +162,7 @@ func TestResolveInputSigningIdentityAnonymousKeyWithAuthorOk(t *testing.T) { mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "fullkey123").Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "fullkey123").Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, core.LegacySystemNamespace, "fullkey123").Return(nil, nil) - mdi.On("GetIdentityByDID", ctx, "did:firefly:ns/ns1/myid"). + mdi.On("GetIdentityByDID", ctx, "ns1", "did:firefly:ns/ns1/myid"). Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: idID, @@ -177,7 +177,7 @@ func TestResolveInputSigningIdentityAnonymousKeyWithAuthorOk(t *testing.T) { Key: "mykey123", Author: "did:firefly:ns/ns1/myid", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.NoError(t, err) assert.Equal(t, "did:firefly:ns/ns1/myid", msgIdentity.Author) assert.Equal(t, "fullkey123", msgIdentity.Key) @@ -203,7 +203,7 @@ func TestResolveInputSigningIdentityKeyWithNoAuthorFail(t *testing.T) { msgIdentity := &core.SignerRef{ Key: "mykey123", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "FF10356", err) mbi.AssertExpectations(t) @@ -230,7 +230,7 @@ func TestResolveInputSigningIdentityByKeyDIDMismatch(t *testing.T) { Value: "fullkey123", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, idID). + mdi.On("GetIdentityByID", ctx, "ns1", idID). Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: idID, @@ -245,7 +245,7 @@ func TestResolveInputSigningIdentityByKeyDIDMismatch(t *testing.T) { Key: "mykey123", Author: "did:firefly:ns/ns1/notmyid", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "FF10355", err) mbi.AssertExpectations(t) @@ -268,14 +268,14 @@ func TestResolveInputSigningIdentityByKeyNotFound(t *testing.T) { Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, core.LegacySystemNamespace, "fullkey123"). Return(nil, nil) - mdi.On("GetIdentityByDID", ctx, "did:firefly:ns/ns1/unknown"). + mdi.On("GetIdentityByDID", ctx, "ns1", "did:firefly:ns/ns1/unknown"). Return(nil, nil) msgIdentity := &core.SignerRef{ Key: "mykey123", Author: "did:firefly:ns/ns1/unknown", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "FF10277", err) mbi.AssertExpectations(t) @@ -297,7 +297,7 @@ func TestResolveInputSigningIdentityByKeyFail(t *testing.T) { msgIdentity := &core.SignerRef{ Key: "mykey123", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "pop", err) mbi.AssertExpectations(t) @@ -315,7 +315,7 @@ func TestResolveInputSigningIdentityByKeyResolveFail(t *testing.T) { msgIdentity := &core.SignerRef{ Key: "mykey123", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "pop", err) mbi.AssertExpectations(t) @@ -338,7 +338,7 @@ func TestResolveInputSigningIdentityByOrgNameOk(t *testing.T) { Type: core.IdentityTypeOrg, }, }, nil) - mdi.On("GetVerifiers", ctx, mock.Anything). + mdi.On("GetVerifiers", ctx, "ns1", mock.Anything). Return([]*core.Verifier{ (&core.Verifier{ Identity: idID, @@ -353,7 +353,7 @@ func TestResolveInputSigningIdentityByOrgNameOk(t *testing.T) { msgIdentity := &core.SignerRef{ Author: "org1", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.NoError(t, err) assert.Equal(t, "did:firefly:org/org1", msgIdentity.Author) assert.Equal(t, "fullkey123", msgIdentity.Key) @@ -373,7 +373,7 @@ func TestResolveInputSigningIdentityByOrgLookkupNotFound(t *testing.T) { msgIdentity := &core.SignerRef{ Author: "org1", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "FF10277", err) mdi.AssertExpectations(t) @@ -391,7 +391,7 @@ func TestResolveInputSigningIdentityByOrgLookkupFail(t *testing.T) { msgIdentity := &core.SignerRef{ Author: "org1", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "pop", err) mdi.AssertExpectations(t) @@ -415,12 +415,12 @@ func TestResolveInputSigningIdentityByOrgVerifierFail(t *testing.T) { Type: core.IdentityTypeOrg, }, }, nil) - mdi.On("GetVerifiers", ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + mdi.On("GetVerifiers", ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) msgIdentity := &core.SignerRef{ Author: "org1", } - err := im.ResolveInputSigningIdentity(ctx, "ns1", msgIdentity) + err := im.ResolveInputSigningIdentity(ctx, msgIdentity) assert.Regexp(t, "pop", err) mdi.AssertExpectations(t) @@ -436,7 +436,7 @@ func TestNormalizeSigningKeyDefault(t *testing.T) { mbi := im.blockchain.(*blockchainmocks.Plugin) mbi.On("NormalizeSigningKey", ctx, "key123").Return("fullkey123", nil) - resolvedKey, err := im.NormalizeSigningKey(ctx, "ns1", "", KeyNormalizationBlockchainPlugin) + resolvedKey, err := im.NormalizeSigningKey(ctx, "", KeyNormalizationBlockchainPlugin) assert.NoError(t, err) assert.Equal(t, "fullkey123", resolvedKey) @@ -453,7 +453,7 @@ func TestNormalizeSigningKeyOrgFallbackOk(t *testing.T) { mbi := im.blockchain.(*blockchainmocks.Plugin) mbi.On("NormalizeSigningKey", ctx, "key123").Return("fullkey123", nil) - resolvedKey, err := im.NormalizeSigningKey(ctx, "ns1", "", KeyNormalizationBlockchainPlugin) + resolvedKey, err := im.NormalizeSigningKey(ctx, "", KeyNormalizationBlockchainPlugin) assert.NoError(t, err) assert.Equal(t, "fullkey123", resolvedKey) @@ -470,7 +470,7 @@ func TestNormalizeSigningKeyOrgFallbackErr(t *testing.T) { mbi := im.blockchain.(*blockchainmocks.Plugin) mbi.On("NormalizeSigningKey", ctx, "key123").Return("fullkey123", fmt.Errorf("pop")) - _, err := im.NormalizeSigningKey(ctx, "ns1", "", KeyNormalizationBlockchainPlugin) + _, err := im.NormalizeSigningKey(ctx, "", KeyNormalizationBlockchainPlugin) assert.Regexp(t, "pop", err) mbi.AssertExpectations(t) @@ -484,7 +484,7 @@ func TestResolveInputSigningKeyOk(t *testing.T) { mbi := im.blockchain.(*blockchainmocks.Plugin) mbi.On("NormalizeSigningKey", ctx, "key123").Return("fullkey123", nil) - resolvedKey, err := im.NormalizeSigningKey(ctx, "ns1", "key123", KeyNormalizationBlockchainPlugin) + resolvedKey, err := im.NormalizeSigningKey(ctx, "key123", KeyNormalizationBlockchainPlugin) assert.NoError(t, err) assert.Equal(t, "fullkey123", resolvedKey) @@ -498,7 +498,7 @@ func TestResolveInputSigningKeyFail(t *testing.T) { mbi := im.blockchain.(*blockchainmocks.Plugin) mbi.On("NormalizeSigningKey", ctx, "key123").Return("", fmt.Errorf("pop")) - _, err := im.NormalizeSigningKey(ctx, "ns1", "key123", KeyNormalizationBlockchainPlugin) + _, err := im.NormalizeSigningKey(ctx, "key123", KeyNormalizationBlockchainPlugin) assert.Regexp(t, "pop", err) mbi.AssertExpectations(t) @@ -508,7 +508,7 @@ func TestResolveInputSigningKeyBypass(t *testing.T) { ctx, im := newTestIdentityManager(t) - key, err := im.NormalizeSigningKey(ctx, "ns1", "different-type-of-key", KeyNormalizationNone) + key, err := im.NormalizeSigningKey(ctx, "different-type-of-key", KeyNormalizationNone) assert.NoError(t, err) assert.Equal(t, "different-type-of-key", key) } @@ -528,7 +528,7 @@ func TestFirstVerifierForIdentityNotFound(t *testing.T) { } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetVerifiers", ctx, mock.Anything).Return([]*core.Verifier{}, nil, nil) + mdi.On("GetVerifiers", ctx, "ns1", mock.Anything).Return([]*core.Verifier{}, nil, nil) _, retryable, err := im.firstVerifierForIdentity(ctx, core.VerifierTypeEthAddress, id) assert.Regexp(t, "FF10353", err) @@ -541,7 +541,7 @@ func TestFirstVerifierForIdentityNotFound(t *testing.T) { func TestResolveDefaultSigningIdentityNotFound(t *testing.T) { ctx, im := newTestIdentityManager(t) - im.multipartyRootVerifier["ns1"] = &core.VerifierRef{ + im.multipartyRootVerifier = &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "key12345", } @@ -553,7 +553,7 @@ func TestResolveDefaultSigningIdentityNotFound(t *testing.T) { mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "key12345").Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, core.LegacySystemNamespace, "key12345").Return(nil, nil) - err := im.resolveDefaultSigningIdentity(ctx, "ns1", &core.SignerRef{}) + err := im.resolveDefaultSigningIdentity(ctx, &core.SignerRef{}) assert.Regexp(t, "FF10281", err) mbi.AssertExpectations(t) @@ -564,7 +564,7 @@ func TestResolveDefaultSigningIdentityNotFound(t *testing.T) { func TestResolveDefaultSigningIdentitySystemFallback(t *testing.T) { ctx, im := newTestIdentityManager(t) - im.multipartyRootVerifier["ns1"] = &core.VerifierRef{ + im.multipartyRootVerifier = &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "key12345", } @@ -591,12 +591,12 @@ func TestResolveDefaultSigningIdentitySystemFallback(t *testing.T) { mdi := im.database.(*databasemocks.Plugin) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, "ns1", "key12345").Return(nil, nil) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeEthAddress, core.LegacySystemNamespace, "key12345").Return(verifier, nil) - mdi.On("GetIdentityByID", ctx, id.ID).Return(id, nil) + mdi.On("GetIdentityByID", ctx, core.LegacySystemNamespace, id.ID).Return(id, nil) im.orgName = "org1" ref := &core.SignerRef{} - err := im.resolveDefaultSigningIdentity(ctx, "ns1", ref) + err := im.resolveDefaultSigningIdentity(ctx, ref) assert.NoError(t, err) assert.Equal(t, "did:firefly:org/org1", ref.Author) assert.Equal(t, "key12345", ref.Key) @@ -615,7 +615,7 @@ func TestGetMultipartyRootVerifierResolveFailed(t *testing.T) { im.orgKey = "0x12345" - _, err := im.GetMultipartyRootVerifier(ctx, "ns1") + _, err := im.GetMultipartyRootVerifier(ctx) assert.Regexp(t, "pop", err) mbi.AssertExpectations(t) @@ -654,11 +654,9 @@ func TestNormalizeKeyViaBlockchainPluginCached(t *testing.T) { func TestGetMultipartyRootOrgCached(t *testing.T) { ctx, im := newTestIdentityManager(t) - im.multipartyRootOrg = map[string]*core.Identity{ - "ns1": {}, - } + im.multipartyRootOrg = &core.Identity{} - id, err := im.GetMultipartyRootOrg(ctx, "ns1") + id, err := im.GetMultipartyRootOrg(ctx) assert.NoError(t, err) assert.NotNil(t, id) @@ -668,7 +666,7 @@ func TestGetMultipartyRootVerifierNotSet(t *testing.T) { ctx, im := newTestIdentityManager(t) - _, err := im.GetMultipartyRootOrg(ctx, "ns1") + _, err := im.GetMultipartyRootOrg(ctx) assert.Regexp(t, "FF10354", err) } @@ -676,7 +674,7 @@ func TestGetMultipartyRootVerifierNotSet(t *testing.T) { func TestGetMultipartyRootOrgMismatch(t *testing.T) { ctx, im := newTestIdentityManager(t) - im.multipartyRootVerifier["ns1"] = &core.VerifierRef{ + im.multipartyRootVerifier = &core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "fullkey123", } @@ -692,7 +690,7 @@ func TestGetMultipartyRootOrgMismatch(t *testing.T) { Value: "fullkey123", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, orgID). + mdi.On("GetIdentityByID", ctx, "ns1", orgID). Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, @@ -703,7 +701,7 @@ func TestGetMultipartyRootOrgMismatch(t *testing.T) { }, }, nil) - _, err := im.GetMultipartyRootOrg(ctx, "ns1") + _, err := im.GetMultipartyRootOrg(ctx) assert.Regexp(t, "FF10281", err) } @@ -731,7 +729,7 @@ func TestCachedIdentityLookupByVerifierRefCaching(t *testing.T) { Value: "peer1", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, id.ID). + mdi.On("GetIdentityByID", ctx, "ns1", id.ID). Return(id, nil) v1, err := im.cachedIdentityLookupByVerifierRef(ctx, "ns1", &core.VerifierRef{ @@ -773,7 +771,7 @@ func TestCachedIdentityLookupByVerifierRefError(t *testing.T) { Value: "peer1", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, id.ID).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", ctx, "ns1", id.ID).Return(nil, fmt.Errorf("pop")) _, err := im.cachedIdentityLookupByVerifierRef(ctx, "ns1", &core.VerifierRef{ Type: core.VerifierTypeEthAddress, @@ -806,7 +804,7 @@ func TestCachedIdentityLookupByVerifierRefNotFound(t *testing.T) { Value: "peer1", }, }).Seal(), nil) - mdi.On("GetIdentityByID", ctx, id.ID).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", id.ID).Return(nil, nil) _, err := im.cachedIdentityLookupByVerifierRef(ctx, "ns1", &core.VerifierRef{ Type: core.VerifierTypeEthAddress, @@ -830,13 +828,13 @@ func TestCachedIdentityLookupMustExistCaching(t *testing.T) { }, } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByDID", ctx, "did:firefly:node/peer1").Return(id, nil).Once() + mdi.On("GetIdentityByDID", ctx, "ns1", "did:firefly:node/peer1").Return(id, nil).Once() - v1, _, err := im.CachedIdentityLookupMustExist(ctx, "ns1", "did:firefly:node/peer1") + v1, _, err := im.CachedIdentityLookupMustExist(ctx, "did:firefly:node/peer1") assert.NoError(t, err) assert.Equal(t, id, v1) - v2, _, err := im.CachedIdentityLookupMustExist(ctx, "ns1", "did:firefly:node/peer1") + v2, _, err := im.CachedIdentityLookupMustExist(ctx, "did:firefly:node/peer1") assert.NoError(t, err) assert.Equal(t, id, v2) } @@ -845,7 +843,7 @@ func TestCachedIdentityLookupMustExistUnknownResolver(t *testing.T) { ctx, im := newTestIdentityManager(t) - _, retryable, err := im.CachedIdentityLookupMustExist(ctx, "ns1", "did:random:anything") + _, retryable, err := im.CachedIdentityLookupMustExist(ctx, "did:random:anything") assert.Regexp(t, "FF10349", err) assert.False(t, retryable) @@ -856,9 +854,9 @@ func TestCachedIdentityLookupMustExistGetIDFail(t *testing.T) { ctx, im := newTestIdentityManager(t) mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByDID", ctx, "did:firefly:node/peer1").Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByDID", ctx, "ns1", "did:firefly:node/peer1").Return(nil, fmt.Errorf("pop")) - _, retryable, err := im.CachedIdentityLookupMustExist(ctx, "ns1", "did:firefly:node/peer1") + _, retryable, err := im.CachedIdentityLookupMustExist(ctx, "did:firefly:node/peer1") assert.Regexp(t, "pop", err) assert.True(t, retryable) @@ -872,12 +870,12 @@ func TestCachedIdentityLookupByVerifierByOldDIDFail(t *testing.T) { did := core.FireFlyOrgDIDPrefix + orgUUID.String() mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByDID", ctx, did).Return(nil, nil) - mdi.On("GetIdentityByID", ctx, mock.MatchedBy(func(uuid *fftypes.UUID) bool { + mdi.On("GetIdentityByDID", ctx, "ns1", did).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", mock.MatchedBy(func(uuid *fftypes.UUID) bool { return uuid.Equals(orgUUID) })).Return(nil, fmt.Errorf("pop")) - _, retryable, err := im.CachedIdentityLookupMustExist(ctx, "ns1", did) + _, retryable, err := im.CachedIdentityLookupMustExist(ctx, did) assert.Regexp(t, "pop", err) assert.True(t, retryable) @@ -897,7 +895,7 @@ func TestCachedIdentityLookupByIDCaching(t *testing.T) { }, } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, id.ID).Return(id, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", id.ID).Return(id, nil).Once() v1, err := im.CachedIdentityLookupByID(ctx, id.ID) assert.NoError(t, err) @@ -963,9 +961,9 @@ func TestVerifyIdentityChainCustomOrgOrgOk(t *testing.T) { }, } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, idIntermediateOrg.ID).Return(idIntermediateOrg, nil).Once() - mdi.On("GetIdentityByID", ctx, idIntermediateCustom.ID).Return(idIntermediateCustom, nil).Once() - mdi.On("GetIdentityByID", ctx, idRoot.ID).Return(idRoot, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", idIntermediateOrg.ID).Return(idIntermediateOrg, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", idIntermediateCustom.ID).Return(idIntermediateCustom, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", idRoot.ID).Return(idRoot, nil).Once() immeidateParent, _, err := im.VerifyIdentityChain(ctx, idLeaf) assert.Equal(t, idIntermediateCustom, immeidateParent) @@ -1022,7 +1020,7 @@ func TestVerifyIdentityChainLoop(t *testing.T) { } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, idID2).Return(id2, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", idID2).Return(id2, nil).Once() _, retryable, err := im.VerifyIdentityChain(ctx, id1) assert.Regexp(t, "FF10364", err) @@ -1058,7 +1056,7 @@ func TestVerifyIdentityChainBadParent(t *testing.T) { } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, idID2).Return(id2, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", idID2).Return(id2, nil).Once() _, retryable, err := im.VerifyIdentityChain(ctx, id1) assert.Regexp(t, "FF10366", err) @@ -1084,7 +1082,7 @@ func TestVerifyIdentityChainErr(t *testing.T) { } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, idID2).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", ctx, "ns1", idID2).Return(nil, fmt.Errorf("pop")) _, retryable, err := im.VerifyIdentityChain(ctx, id1) assert.Regexp(t, "pop", err) @@ -1110,7 +1108,7 @@ func TestVerifyIdentityChainNotFound(t *testing.T) { } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, idID2).Return(nil, nil) + mdi.On("GetIdentityByID", ctx, "ns1", idID2).Return(nil, nil) _, retryable, err := im.VerifyIdentityChain(ctx, id1) assert.Regexp(t, "FF10214", err) @@ -1145,7 +1143,7 @@ func TestVerifyIdentityChainInvalidParent(t *testing.T) { } mdi := im.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", ctx, id1.ID).Return(id1, nil).Once() + mdi.On("GetIdentityByID", ctx, "ns1", id1.ID).Return(id1, nil).Once() _, retryable, err := im.VerifyIdentityChain(ctx, id2) assert.Regexp(t, "FF10365", err) @@ -1208,11 +1206,11 @@ func TestCachedVerifierLookupCaching(t *testing.T) { mdi := im.database.(*databasemocks.Plugin) mdi.On("GetVerifierByValue", ctx, verifier.Type, verifier.Namespace, verifier.Value).Return(verifier, nil).Once() - v1, err := im.CachedVerifierLookup(ctx, core.VerifierTypeFFDXPeerID, "ns1", "peer1") + v1, err := im.CachedVerifierLookup(ctx, core.VerifierTypeFFDXPeerID, "peer1") assert.NoError(t, err) assert.Equal(t, verifier, v1) - v2, err := im.CachedVerifierLookup(ctx, core.VerifierTypeFFDXPeerID, "ns1", "peer1") + v2, err := im.CachedVerifierLookup(ctx, core.VerifierTypeFFDXPeerID, "peer1") assert.NoError(t, err) assert.Equal(t, verifier, v2) @@ -1226,7 +1224,7 @@ func TestCachedVerifierLookupError(t *testing.T) { mdi := im.database.(*databasemocks.Plugin) mdi.On("GetVerifierByValue", ctx, core.VerifierTypeFFDXPeerID, "ns1", "peer1").Return(nil, fmt.Errorf("pop")) - _, err := im.CachedVerifierLookup(ctx, core.VerifierTypeFFDXPeerID, "ns1", "peer1") + _, err := im.CachedVerifierLookup(ctx, core.VerifierTypeFFDXPeerID, "peer1") assert.Regexp(t, "pop", err) mdi.AssertExpectations(t) diff --git a/internal/namespace/manager_test.go b/internal/namespace/manager_test.go index d71cdca4fa..cff089673e 100644 --- a/internal/namespace/manager_test.go +++ b/internal/namespace/manager_test.go @@ -228,7 +228,7 @@ func TestInitOrchestratorFail(t *testing.T) { nm.mdi.On("Init", mock.Anything, mock.Anything).Return(nil) nm.mdi.On("RegisterListener", mock.Anything).Return() - nm.mdi.On("GetIdentities", mock.Anything, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + nm.mdi.On("GetIdentities", mock.Anything, "default", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) nm.mbi.On("Init", mock.Anything, mock.Anything, nm.mmi).Return(nil) nm.mbi.On("RegisterListener", mock.Anything).Return() nm.mdx.On("Init", mock.Anything, mock.Anything).Return(nil) diff --git a/internal/networkmap/data_query.go b/internal/networkmap/data_query.go index 5d488155e1..56549ed020 100644 --- a/internal/networkmap/data_query.go +++ b/internal/networkmap/data_query.go @@ -28,16 +28,16 @@ import ( "github.com/hyperledger/firefly/pkg/database" ) -func (nm *networkMap) GetOrganizationByNameOrID(ctx context.Context, ns, nameOrID string) (org *core.Identity, err error) { +func (nm *networkMap) GetOrganizationByNameOrID(ctx context.Context, nameOrID string) (org *core.Identity, err error) { u, err := fftypes.ParseUUID(ctx, nameOrID) if err != nil { if err := core.ValidateFFNameField(ctx, nameOrID, "name"); err != nil { return nil, err } - if org, err = nm.database.GetIdentityByName(ctx, core.IdentityTypeOrg, ns, nameOrID); err != nil { + if org, err = nm.database.GetIdentityByName(ctx, core.IdentityTypeOrg, nm.namespace, nameOrID); err != nil { return nil, err } - } else if org, err = nm.database.GetIdentityByID(ctx, u); err != nil { + } else if org, err = nm.database.GetIdentityByID(ctx, nm.namespace, u); err != nil { return nil, err } if org == nil { @@ -50,26 +50,26 @@ func (nm *networkMap) GetOrganizationByNameOrID(ctx context.Context, ns, nameOrI return org, nil } -func (nm *networkMap) GetOrganizations(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { +func (nm *networkMap) GetOrganizations(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { filter.Condition(filter.Builder().Eq("type", core.IdentityTypeOrg)) - return nm.GetIdentities(ctx, ns, filter) + return nm.GetIdentities(ctx, filter) } -func (nm *networkMap) GetOrganizationsWithVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { +func (nm *networkMap) GetOrganizationsWithVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { filter.Condition(filter.Builder().Eq("type", core.IdentityTypeOrg)) - return nm.GetIdentitiesWithVerifiers(ctx, ns, filter) + return nm.GetIdentitiesWithVerifiers(ctx, filter) } -func (nm *networkMap) GetNodeByNameOrID(ctx context.Context, ns, nameOrID string) (node *core.Identity, err error) { +func (nm *networkMap) GetNodeByNameOrID(ctx context.Context, nameOrID string) (node *core.Identity, err error) { u, err := fftypes.ParseUUID(ctx, nameOrID) if err != nil { if err := core.ValidateFFNameField(ctx, nameOrID, "name"); err != nil { return nil, err } - if node, err = nm.database.GetIdentityByName(ctx, core.IdentityTypeNode, ns, nameOrID); err != nil { + if node, err = nm.database.GetIdentityByName(ctx, core.IdentityTypeNode, nm.namespace, nameOrID); err != nil { return nil, err } - } else if node, err = nm.database.GetIdentityByID(ctx, u); err != nil { + } else if node, err = nm.database.GetIdentityByID(ctx, nm.namespace, u); err != nil { return nil, err } if node == nil { @@ -82,22 +82,21 @@ func (nm *networkMap) GetNodeByNameOrID(ctx context.Context, ns, nameOrID string return node, nil } -func (nm *networkMap) GetNodes(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { +func (nm *networkMap) GetNodes(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { filter.Condition(filter.Builder().Eq("type", core.IdentityTypeNode)) - filter.Condition(filter.Builder().Eq("namespace", ns)) - return nm.database.GetIdentities(ctx, filter) + return nm.database.GetIdentities(ctx, nm.namespace, filter) } -func (nm *networkMap) GetIdentityByID(ctx context.Context, ns, id string) (*core.Identity, error) { +func (nm *networkMap) GetIdentityByID(ctx context.Context, id string) (*core.Identity, error) { u, err := fftypes.ParseUUID(ctx, id) if err != nil { return nil, err } - identity, err := nm.database.GetIdentityByID(ctx, u) + identity, err := nm.database.GetIdentityByID(ctx, nm.namespace, u) if err != nil { return nil, err } - if identity == nil || identity.Namespace != ns { + if identity == nil { return nil, i18n.NewError(ctx, coremsgs.Msg404NotFound) } return identity, nil @@ -109,7 +108,7 @@ func (nm *networkMap) withVerifiers(ctx context.Context, identity *core.Identity fb.Eq("namespace", identity.Namespace), fb.Eq("identity", identity.ID), ) - verifiers, _, err := nm.database.GetVerifiers(ctx, filter) + verifiers, _, err := nm.database.GetVerifiers(ctx, nm.namespace, filter) if err != nil { return nil, err } @@ -123,42 +122,36 @@ func (nm *networkMap) withVerifiers(ctx context.Context, identity *core.Identity }, nil } -func (nm *networkMap) GetIdentityByIDWithVerifiers(ctx context.Context, ns, id string) (*core.IdentityWithVerifiers, error) { - identity, err := nm.GetIdentityByID(ctx, ns, id) +func (nm *networkMap) GetIdentityByIDWithVerifiers(ctx context.Context, id string) (*core.IdentityWithVerifiers, error) { + identity, err := nm.GetIdentityByID(ctx, id) if err != nil { return nil, err } return nm.withVerifiers(ctx, identity) } -func (nm *networkMap) GetIdentityByDID(ctx context.Context, ns, did string) (*core.Identity, error) { - identity, _, err := nm.identity.CachedIdentityLookupMustExist(ctx, ns, did) +func (nm *networkMap) GetIdentityByDID(ctx context.Context, did string) (*core.Identity, error) { + identity, _, err := nm.identity.CachedIdentityLookupMustExist(ctx, did) if err != nil { return nil, err } return identity, nil } -func (nm *networkMap) GetIdentityByDIDWithVerifiers(ctx context.Context, ns, did string) (*core.IdentityWithVerifiers, error) { - identity, _, err := nm.identity.CachedIdentityLookupMustExist(ctx, ns, did) +func (nm *networkMap) GetIdentityByDIDWithVerifiers(ctx context.Context, did string) (*core.IdentityWithVerifiers, error) { + identity, _, err := nm.identity.CachedIdentityLookupMustExist(ctx, did) if err != nil { return nil, err } return nm.withVerifiers(ctx, identity) } -func (nm *networkMap) GetIdentities(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { - filter.Condition(filter.Builder().Eq("namespace", ns)) - return nm.database.GetIdentities(ctx, filter) +func (nm *networkMap) GetIdentities(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { + return nm.database.GetIdentities(ctx, nm.namespace, filter) } -func (nm *networkMap) GetIdentitiesWithVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { - filter.Condition(filter.Builder().Eq("namespace", ns)) - return nm.getIdentitiesWithVerifiersGlobal(ctx, filter) -} - -func (nm *networkMap) getIdentitiesWithVerifiersGlobal(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { - identities, res, err := nm.database.GetIdentities(ctx, filter) +func (nm *networkMap) GetIdentitiesWithVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { + identities, res, err := nm.database.GetIdentities(ctx, nm.namespace, filter) if err != nil { return nil, nil, err } @@ -171,7 +164,7 @@ func (nm *networkMap) getIdentitiesWithVerifiersGlobal(ctx context.Context, filt fb.In("identity", iids), ) idsWithVerifiers := make([]*core.IdentityWithVerifiers, len(identities)) - verifiers, _, err := nm.database.GetVerifiers(ctx, verifierFilter) + verifiers, _, err := nm.database.GetVerifiers(ctx, nm.namespace, verifierFilter) if err != nil { return nil, nil, err } @@ -189,47 +182,46 @@ func (nm *networkMap) getIdentitiesWithVerifiersGlobal(ctx context.Context, filt return idsWithVerifiers, res, err } -func (nm *networkMap) GetIdentityVerifiers(ctx context.Context, ns, id string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { - identity, err := nm.GetIdentityByID(ctx, ns, id) +func (nm *networkMap) GetIdentityVerifiers(ctx context.Context, id string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { + identity, err := nm.GetIdentityByID(ctx, id) if err != nil { return nil, nil, err } filter.Condition(filter.Builder().Eq("identity", identity.ID)) - return nm.database.GetVerifiers(ctx, filter) + return nm.database.GetVerifiers(ctx, nm.namespace, filter) } -func (nm *networkMap) GetDIDDocForIndentityByID(ctx context.Context, ns, id string) (*DIDDocument, error) { - identity, err := nm.GetIdentityByID(ctx, ns, id) +func (nm *networkMap) GetDIDDocForIndentityByID(ctx context.Context, id string) (*DIDDocument, error) { + identity, err := nm.GetIdentityByID(ctx, id) if err != nil { return nil, err } return nm.generateDIDDocument(ctx, identity) } -func (nm *networkMap) GetDIDDocForIndentityByDID(ctx context.Context, ns, did string) (*DIDDocument, error) { - identity, err := nm.GetIdentityByDID(ctx, ns, did) +func (nm *networkMap) GetDIDDocForIndentityByDID(ctx context.Context, did string) (*DIDDocument, error) { + identity, err := nm.GetIdentityByDID(ctx, did) if err != nil { return nil, err } return nm.generateDIDDocument(ctx, identity) } -func (nm *networkMap) GetVerifierByHash(ctx context.Context, ns, hash string) (*core.Verifier, error) { +func (nm *networkMap) GetVerifierByHash(ctx context.Context, hash string) (*core.Verifier, error) { b32, err := fftypes.ParseBytes32(ctx, hash) if err != nil { return nil, err } - verifier, err := nm.database.GetVerifierByHash(ctx, b32) + verifier, err := nm.database.GetVerifierByHash(ctx, nm.namespace, b32) if err != nil { return nil, err } - if verifier == nil || verifier.Namespace != ns { + if verifier == nil { return nil, i18n.NewError(ctx, coremsgs.Msg404NotFound) } return verifier, nil } -func (nm *networkMap) GetVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { - filter.Condition(filter.Builder().Eq("namespace", ns)) - return nm.database.GetVerifiers(ctx, filter) +func (nm *networkMap) GetVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { + return nm.database.GetVerifiers(ctx, nm.namespace, filter) } diff --git a/internal/networkmap/data_query_test.go b/internal/networkmap/data_query_test.go index c307a4f08c..4c82205444 100644 --- a/internal/networkmap/data_query_test.go +++ b/internal/networkmap/data_query_test.go @@ -33,9 +33,9 @@ func TestGetOrganizationByNameOrIDOk(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg}}, nil) - res, err := nm.GetOrganizationByNameOrID(nm.ctx, "ns", id.String()) + res, err := nm.GetOrganizationByNameOrID(nm.ctx, id.String()) assert.NoError(t, err) assert.Equal(t, *id, *res.ID) } @@ -44,9 +44,9 @@ func TestGetOrganizationByNameOrIDNotOrg(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeNode}}, nil) - res, err := nm.GetOrganizationByNameOrID(nm.ctx, "ns", id.String()) + res, err := nm.GetOrganizationByNameOrID(nm.ctx, id.String()) assert.NoError(t, err) assert.Nil(t, res) } @@ -55,8 +55,8 @@ func TestGetOrganizationByNameOrIDNotFound(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, nil) - _, err := nm.GetOrganizationByNameOrID(nm.ctx, "ns", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, nil) + _, err := nm.GetOrganizationByNameOrID(nm.ctx, id.String()) assert.Regexp(t, "FF10109", err) } @@ -64,23 +64,23 @@ func TestGetOrganizationByNameOrIDError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, fmt.Errorf("pop")) - _, err := nm.GetOrganizationByNameOrID(nm.ctx, "ns", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, fmt.Errorf("pop")) + _, err := nm.GetOrganizationByNameOrID(nm.ctx, id.String()) assert.Regexp(t, "pop", err) } func TestGetOrganizationByNameBadName(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - _, err := nm.GetOrganizationByNameOrID(nm.ctx, "ns", "!bad") + _, err := nm.GetOrganizationByNameOrID(nm.ctx, "!bad") assert.Regexp(t, "FF00140", err) } func TestGetOrganizationByNameError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetIdentityByName", nm.ctx, core.IdentityTypeOrg, "ns", "bad").Return(nil, fmt.Errorf("pop")) - _, err := nm.GetOrganizationByNameOrID(nm.ctx, "ns", "bad") + nm.database.(*databasemocks.Plugin).On("GetIdentityByName", nm.ctx, core.IdentityTypeOrg, "ns1", "bad").Return(nil, fmt.Errorf("pop")) + _, err := nm.GetOrganizationByNameOrID(nm.ctx, "bad") assert.Regexp(t, "pop", err) } @@ -88,9 +88,9 @@ func TestGetNodeByNameOrIDOk(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeNode}}, nil) - res, err := nm.GetNodeByNameOrID(nm.ctx, "ns", id.String()) + res, err := nm.GetNodeByNameOrID(nm.ctx, id.String()) assert.NoError(t, err) assert.Equal(t, *id, *res.ID) } @@ -99,9 +99,9 @@ func TestGetNodeByNameOrIDWrongType(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg}}, nil) - res, err := nm.GetNodeByNameOrID(nm.ctx, "ns", id.String()) + res, err := nm.GetNodeByNameOrID(nm.ctx, id.String()) assert.NoError(t, err) assert.Nil(t, res) } @@ -110,8 +110,8 @@ func TestGetNodeByNameOrIDNotFound(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, nil) - _, err := nm.GetNodeByNameOrID(nm.ctx, "ns", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, nil) + _, err := nm.GetNodeByNameOrID(nm.ctx, id.String()) assert.Regexp(t, "FF10109", err) } @@ -119,31 +119,31 @@ func TestGetNodeByNameOrIDError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, fmt.Errorf("pop")) - _, err := nm.GetNodeByNameOrID(nm.ctx, "ns", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, fmt.Errorf("pop")) + _, err := nm.GetNodeByNameOrID(nm.ctx, id.String()) assert.Regexp(t, "pop", err) } func TestGetNodeByNameBadName(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - _, err := nm.GetNodeByNameOrID(nm.ctx, "ns", "!bad") + _, err := nm.GetNodeByNameOrID(nm.ctx, "!bad") assert.Regexp(t, "FF00140", err) } func TestGetNodeByNameError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetIdentityByName", nm.ctx, core.IdentityTypeNode, "ns", "bad").Return(nil, fmt.Errorf("pop")) - _, err := nm.GetNodeByNameOrID(nm.ctx, "ns", "bad") + nm.database.(*databasemocks.Plugin).On("GetIdentityByName", nm.ctx, core.IdentityTypeNode, "ns1", "bad").Return(nil, fmt.Errorf("pop")) + _, err := nm.GetNodeByNameOrID(nm.ctx, "bad") assert.Regexp(t, "pop", err) } func TestGetOrganizations(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil) - res, _, err := nm.GetOrganizations(nm.ctx, "ns", database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil) + res, _, err := nm.GetOrganizations(nm.ctx, database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.NoError(t, err) assert.Empty(t, res) } @@ -151,8 +151,8 @@ func TestGetOrganizations(t *testing.T) { func TestGetNodes(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil) - res, _, err := nm.GetNodes(nm.ctx, "ns", database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil) + res, _, err := nm.GetNodes(nm.ctx, database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.NoError(t, err) assert.Empty(t, res) } @@ -161,9 +161,9 @@ func TestGetIdentityByIDOk(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg, Namespace: "ns1"}}, nil) - res, err := nm.GetIdentityByID(nm.ctx, "ns1", id.String()) + res, err := nm.GetIdentityByID(nm.ctx, id.String()) assert.NoError(t, err) assert.Equal(t, *id, *res.ID) } @@ -172,8 +172,8 @@ func TestGetIdentityByIDNotFound(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, nil) - _, err := nm.GetIdentityByID(nm.ctx, "ns1", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, nil) + _, err := nm.GetIdentityByID(nm.ctx, id.String()) assert.Regexp(t, "FF10109", err) } @@ -181,8 +181,8 @@ func TestGetIdentityByIDError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, fmt.Errorf("pop")) - _, err := nm.GetIdentityByID(nm.ctx, "ns1", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, fmt.Errorf("pop")) + _, err := nm.GetIdentityByID(nm.ctx, id.String()) assert.Regexp(t, "pop", err) } @@ -190,25 +190,15 @@ func TestGetIdentityByIDWithVerifiersError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, fmt.Errorf("pop")) - _, err := nm.GetIdentityByIDWithVerifiers(nm.ctx, "ns1", id.String()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, fmt.Errorf("pop")) + _, err := nm.GetIdentityByIDWithVerifiers(nm.ctx, id.String()) assert.Regexp(t, "pop", err) } -func TestGetIdentityByIDBadNS(t *testing.T) { - nm, cancel := newTestNetworkmap(t) - defer cancel() - id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). - Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg, Namespace: "ns1"}}, nil) - _, err := nm.GetIdentityByID(nm.ctx, "ns2", id.String()) - assert.Regexp(t, "FF10109", err) -} - func TestGetIdentityByIDBadUUID(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - _, err := nm.GetIdentityByID(nm.ctx, "ns1", "bad") + _, err := nm.GetIdentityByID(nm.ctx, "bad") assert.Regexp(t, "FF00138", err) } @@ -216,15 +206,15 @@ func TestGetIdentityByIDWithVerifiers(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg, Namespace: "ns1"}}, nil) - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return([]*core.Verifier{ + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", }, Identity: id}, }, nil, nil) - identity, err := nm.GetIdentityByIDWithVerifiers(nm.ctx, "ns1", id.String()) + identity, err := nm.GetIdentityByIDWithVerifiers(nm.ctx, id.String()) assert.NoError(t, err) assert.Equal(t, "0x12345", identity.Verifiers[0].Value) } @@ -233,18 +223,18 @@ func TestGetIdentityByIDWithVerifiersFail(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg, Namespace: "ns1"}}, nil) - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) - _, err := nm.GetIdentityByIDWithVerifiers(nm.ctx, "ns1", id.String()) + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + _, err := nm.GetIdentityByIDWithVerifiers(nm.ctx, id.String()) assert.Regexp(t, "pop", err) } func TestGetIdentities(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil) - res, _, err := nm.GetIdentities(nm.ctx, "ns1", database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil) + res, _, err := nm.GetIdentities(nm.ctx, database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.NoError(t, err) assert.Empty(t, res) } @@ -253,10 +243,10 @@ func TestGetIdentityVerifiers(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id). + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id). Return(&core.Identity{IdentityBase: core.IdentityBase{ID: id, Type: core.IdentityTypeOrg, Namespace: "ns1"}}, nil) - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return([]*core.Verifier{}, nil, nil) - res, _, err := nm.GetIdentityVerifiers(nm.ctx, "ns1", id.String(), database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return([]*core.Verifier{}, nil, nil) + res, _, err := nm.GetIdentityVerifiers(nm.ctx, id.String(), database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.NoError(t, err) assert.Empty(t, res) } @@ -265,8 +255,8 @@ func TestGetIdentityVerifiersIdentityFail(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, id).Return(nil, fmt.Errorf("pop")) - res, _, err := nm.GetIdentityVerifiers(nm.ctx, "ns1", id.String(), database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetIdentityByID", nm.ctx, "ns1", id).Return(nil, fmt.Errorf("pop")) + res, _, err := nm.GetIdentityVerifiers(nm.ctx, id.String(), database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.Regexp(t, "pop", err) assert.Empty(t, res) } @@ -274,8 +264,8 @@ func TestGetIdentityVerifiersIdentityFail(t *testing.T) { func TestGetVerifiers(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return([]*core.Verifier{}, nil, nil) - res, _, err := nm.GetVerifiers(nm.ctx, "ns1", database.VerifierQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return([]*core.Verifier{}, nil, nil) + res, _, err := nm.GetVerifiers(nm.ctx, database.VerifierQueryFactory.NewFilter(nm.ctx).And()) assert.NoError(t, err) assert.Empty(t, res) } @@ -284,9 +274,9 @@ func TestGetVerifierByHashOk(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() hash := fftypes.NewRandB32() - nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, hash). + nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, "ns1", hash). Return(&core.Verifier{Hash: hash, Namespace: "ns1"}, nil) - res, err := nm.GetVerifierByHash(nm.ctx, "ns1", hash.String()) + res, err := nm.GetVerifierByHash(nm.ctx, hash.String()) assert.NoError(t, err) assert.Equal(t, *hash, *res.Hash) } @@ -295,8 +285,8 @@ func TestGetVerifierByHashNotFound(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() hash := fftypes.NewRandB32() - nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, hash).Return(nil, nil) - _, err := nm.GetVerifierByHash(nm.ctx, "ns1", hash.String()) + nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, "ns1", hash).Return(nil, nil) + _, err := nm.GetVerifierByHash(nm.ctx, hash.String()) assert.Regexp(t, "FF10109", err) } @@ -304,34 +294,24 @@ func TestGetVerifierByHashError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() hash := fftypes.NewRandB32() - nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, hash).Return(nil, fmt.Errorf("pop")) - _, err := nm.GetVerifierByHash(nm.ctx, "ns1", hash.String()) + nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, "ns1", hash).Return(nil, fmt.Errorf("pop")) + _, err := nm.GetVerifierByHash(nm.ctx, hash.String()) assert.Regexp(t, "pop", err) } -func TestGetVerifierByHashBadNS(t *testing.T) { - nm, cancel := newTestNetworkmap(t) - defer cancel() - hash := fftypes.NewRandB32() - nm.database.(*databasemocks.Plugin).On("GetVerifierByHash", nm.ctx, hash). - Return(&core.Verifier{Hash: hash, Namespace: "ns1"}, nil) - _, err := nm.GetVerifierByHash(nm.ctx, "ns2", hash.String()) - assert.Regexp(t, "FF10109", err) -} - func TestGetVerifierByHashBadUUID(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - _, err := nm.GetVerifierByHash(nm.ctx, "ns1", "bad") + _, err := nm.GetVerifierByHash(nm.ctx, "bad") assert.Regexp(t, "FF00107", err) } func TestGetVerifierByDIDOk(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "ns", "did:firefly:org/abc"). + nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/abc"). Return(testOrg("abc"), true, nil) - id, err := nm.GetIdentityByDID(nm.ctx, "ns", "did:firefly:org/abc") + id, err := nm.GetIdentityByDID(nm.ctx, "did:firefly:org/abc") assert.NoError(t, err) assert.Equal(t, "did:firefly:org/abc", id.DID) } @@ -339,15 +319,15 @@ func TestGetVerifierByDIDOk(t *testing.T) { func TestGetVerifierByDIDWithVerifiersOk(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "ns", "did:firefly:org/abc"). + nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/abc"). Return(testOrg("abc"), true, nil) - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return([]*core.Verifier{ + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", }}, }, nil, nil) - id, err := nm.GetIdentityByDIDWithVerifiers(nm.ctx, "ns", "did:firefly:org/abc") + id, err := nm.GetIdentityByDIDWithVerifiers(nm.ctx, "did:firefly:org/abc") assert.NoError(t, err) assert.Equal(t, "did:firefly:org/abc", id.DID) assert.Equal(t, "0x12345", id.Verifiers[0].Value) @@ -356,18 +336,18 @@ func TestGetVerifierByDIDWithVerifiersOk(t *testing.T) { func TestGetVerifierByDIDWithVerifiersError(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "ns", "did:firefly:org/abc"). + nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/abc"). Return(nil, true, fmt.Errorf("pop")) - _, err := nm.GetIdentityByDIDWithVerifiers(nm.ctx, "ns", "did:firefly:org/abc") + _, err := nm.GetIdentityByDIDWithVerifiers(nm.ctx, "did:firefly:org/abc") assert.Regexp(t, "pop", err) } func TestGetVerifierByDIDNotErr(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "ns", "did:firefly:org/abc"). + nm.identity.(*identitymanagermocks.Manager).On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/abc"). Return(nil, true, fmt.Errorf("pop")) - id, err := nm.GetIdentityByDID(nm.ctx, "ns", "did:firefly:org/abc") + id, err := nm.GetIdentityByDID(nm.ctx, "did:firefly:org/abc") assert.Regexp(t, "pop", err) assert.Nil(t, id) } @@ -376,18 +356,18 @@ func TestGetOrganizationsWithVerifiers(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id1 := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, mock.Anything).Return([]*core.Identity{ + nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, "ns1", mock.Anything).Return([]*core.Identity{ {IdentityBase: core.IdentityBase{ ID: id1, }}, }, nil, nil) - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return([]*core.Verifier{ + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), Identity: id1, VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", }}, }, nil, nil) - res, _, err := nm.GetOrganizationsWithVerifiers(nm.ctx, "ns", database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + res, _, err := nm.GetOrganizationsWithVerifiers(nm.ctx, database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.NoError(t, err) assert.Len(t, res, 1) assert.Equal(t, "0x12345", res[0].Verifiers[0].Value) @@ -396,8 +376,8 @@ func TestGetOrganizationsWithVerifiers(t *testing.T) { func TestGetOrganizationsWithVerifiersFailLookup(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) - _, _, err := nm.GetOrganizationsWithVerifiers(nm.ctx, "ns", database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + _, _, err := nm.GetOrganizationsWithVerifiers(nm.ctx, database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.Regexp(t, "pop", err) } @@ -405,12 +385,12 @@ func TestGetIdentitiesWithVerifiersFailEnrich(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() id1 := fftypes.NewUUID() - nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, mock.Anything).Return([]*core.Identity{ + nm.database.(*databasemocks.Plugin).On("GetIdentities", nm.ctx, "ns1", mock.Anything).Return([]*core.Identity{ {IdentityBase: core.IdentityBase{ ID: id1, }}, }, nil, nil) - nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) - _, _, err := nm.GetOrganizationsWithVerifiers(nm.ctx, "ns", database.IdentityQueryFactory.NewFilter(nm.ctx).And()) + nm.database.(*databasemocks.Plugin).On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + _, _, err := nm.GetOrganizationsWithVerifiers(nm.ctx, database.IdentityQueryFactory.NewFilter(nm.ctx).And()) assert.Regexp(t, "pop", err) } diff --git a/internal/networkmap/did.go b/internal/networkmap/did.go index adc25a9963..6d3f5a3501 100644 --- a/internal/networkmap/did.go +++ b/internal/networkmap/did.go @@ -50,7 +50,7 @@ func (nm *networkMap) generateDIDDocument(ctx context.Context, identity *core.Id fb.Eq("identity", identity.ID), fb.Eq("namespace", identity.Namespace), ) - verifiers, _, err := nm.database.GetVerifiers(ctx, filter) + verifiers, _, err := nm.database.GetVerifiers(ctx, nm.namespace, filter) if err != nil { return nil, err } diff --git a/internal/networkmap/did_test.go b/internal/networkmap/did_test.go index ed36361d55..ad02423265 100644 --- a/internal/networkmap/did_test.go +++ b/internal/networkmap/did_test.go @@ -72,15 +72,15 @@ func TestDIDGenerationOK(t *testing.T) { }).Seal() mdi := nm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", nm.ctx, mock.Anything).Return(org1, nil) - mdi.On("GetVerifiers", nm.ctx, mock.Anything).Return([]*core.Verifier{ + mdi.On("GetIdentityByID", nm.ctx, "ns1", mock.Anything).Return(org1, nil) + mdi.On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return([]*core.Verifier{ verifierEth, verifierMSP, verifierDX, verifierUnknown, }, nil, nil) - doc, err := nm.GetDIDDocForIndentityByID(nm.ctx, org1.Namespace, org1.ID.String()) + doc, err := nm.GetDIDDocForIndentityByID(nm.ctx, org1.ID.String()) assert.NoError(t, err) assert.Equal(t, &DIDDocument{ Context: []string{ @@ -125,10 +125,10 @@ func TestDIDGenerationGetVerifiersFail(t *testing.T) { org1 := testOrg("org1") mdi := nm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", nm.ctx, mock.Anything).Return(org1, nil) - mdi.On("GetVerifiers", nm.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", nm.ctx, "ns1", mock.Anything).Return(org1, nil) + mdi.On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) - _, err := nm.GetDIDDocForIndentityByID(nm.ctx, org1.Namespace, org1.ID.String()) + _, err := nm.GetDIDDocForIndentityByID(nm.ctx, org1.ID.String()) assert.Regexp(t, "pop", err) } @@ -139,9 +139,9 @@ func TestDIDGenerationGetIdentityFail(t *testing.T) { org1 := testOrg("org1") mdi := nm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", nm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", nm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) - _, err := nm.GetDIDDocForIndentityByID(nm.ctx, org1.Namespace, org1.ID.String()) + _, err := nm.GetDIDDocForIndentityByID(nm.ctx, org1.ID.String()) assert.Regexp(t, "pop", err) } @@ -152,9 +152,9 @@ func TestDIDGenerationGetIdentityByDIDFail(t *testing.T) { org1 := testOrg("org1") mii := nm.identity.(*identitymanagermocks.Manager) - mii.On("CachedIdentityLookupMustExist", nm.ctx, "ns", mock.Anything).Return(nil, false, fmt.Errorf("pop")) + mii.On("CachedIdentityLookupMustExist", nm.ctx, mock.Anything).Return(nil, false, fmt.Errorf("pop")) - _, err := nm.GetDIDDocForIndentityByDID(nm.ctx, "ns", org1.DID) + _, err := nm.GetDIDDocForIndentityByDID(nm.ctx, org1.DID) assert.Regexp(t, "pop", err) } @@ -165,14 +165,14 @@ func TestDIDGenerationGetIdentityByDIDFailVerifiers(t *testing.T) { org1 := testOrg("org1") mii := nm.identity.(*identitymanagermocks.Manager) - mii.On("CachedIdentityLookupMustExist", nm.ctx, "ns", mock.Anything).Return(&core.Identity{ + mii.On("CachedIdentityLookupMustExist", nm.ctx, mock.Anything).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: fftypes.NewUUID(), }, }, false, nil) mdi := nm.database.(*databasemocks.Plugin) - mdi.On("GetVerifiers", nm.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + mdi.On("GetVerifiers", nm.ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) - _, err := nm.GetDIDDocForIndentityByDID(nm.ctx, "ns", org1.DID) + _, err := nm.GetDIDDocForIndentityByDID(nm.ctx, org1.DID) assert.Regexp(t, "pop", err) } diff --git a/internal/networkmap/manager.go b/internal/networkmap/manager.go index c3d8d9351f..7156043a87 100644 --- a/internal/networkmap/manager.go +++ b/internal/networkmap/manager.go @@ -31,32 +31,33 @@ import ( ) type Manager interface { - RegisterOrganization(ctx context.Context, ns string, org *core.IdentityCreateDTO, waitConfirm bool) (identity *core.Identity, err error) - RegisterNode(ctx context.Context, ns string, waitConfirm bool) (node *core.Identity, err error) - RegisterNodeOrganization(ctx context.Context, ns string, waitConfirm bool) (org *core.Identity, err error) - RegisterIdentity(ctx context.Context, ns string, dto *core.IdentityCreateDTO, waitConfirm bool) (identity *core.Identity, err error) - UpdateIdentity(ctx context.Context, ns string, id string, dto *core.IdentityUpdateDTO, waitConfirm bool) (identity *core.Identity, err error) + RegisterOrganization(ctx context.Context, org *core.IdentityCreateDTO, waitConfirm bool) (identity *core.Identity, err error) + RegisterNode(ctx context.Context, waitConfirm bool) (node *core.Identity, err error) + RegisterNodeOrganization(ctx context.Context, waitConfirm bool) (org *core.Identity, err error) + RegisterIdentity(ctx context.Context, dto *core.IdentityCreateDTO, waitConfirm bool) (identity *core.Identity, err error) + UpdateIdentity(ctx context.Context, id string, dto *core.IdentityUpdateDTO, waitConfirm bool) (identity *core.Identity, err error) - GetOrganizationByNameOrID(ctx context.Context, ns, nameOrID string) (*core.Identity, error) - GetOrganizations(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) - GetOrganizationsWithVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) - GetNodeByNameOrID(ctx context.Context, ns, nameOrID string) (*core.Identity, error) - GetNodes(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) - GetIdentityByID(ctx context.Context, ns string, id string) (*core.Identity, error) - GetIdentityByIDWithVerifiers(ctx context.Context, ns, id string) (*core.IdentityWithVerifiers, error) - GetIdentityByDID(ctx context.Context, ns, did string) (*core.Identity, error) - GetIdentityByDIDWithVerifiers(ctx context.Context, ns, did string) (*core.IdentityWithVerifiers, error) - GetIdentities(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) - GetIdentitiesWithVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) - GetIdentityVerifiers(ctx context.Context, ns, id string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) - GetVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) - GetVerifierByHash(ctx context.Context, ns, hash string) (*core.Verifier, error) - GetDIDDocForIndentityByID(ctx context.Context, ns, id string) (*DIDDocument, error) - GetDIDDocForIndentityByDID(ctx context.Context, ns, did string) (*DIDDocument, error) + GetOrganizationByNameOrID(ctx context.Context, nameOrID string) (*core.Identity, error) + GetOrganizations(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) + GetOrganizationsWithVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) + GetNodeByNameOrID(ctx context.Context, nameOrID string) (*core.Identity, error) + GetNodes(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) + GetIdentityByID(ctx context.Context, id string) (*core.Identity, error) + GetIdentityByIDWithVerifiers(ctx context.Context, id string) (*core.IdentityWithVerifiers, error) + GetIdentityByDID(ctx context.Context, did string) (*core.Identity, error) + GetIdentityByDIDWithVerifiers(ctx context.Context, did string) (*core.IdentityWithVerifiers, error) + GetIdentities(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) + GetIdentitiesWithVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) + GetIdentityVerifiers(ctx context.Context, id string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) + GetVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) + GetVerifierByHash(ctx context.Context, hash string) (*core.Verifier, error) + GetDIDDocForIndentityByID(ctx context.Context, id string) (*DIDDocument, error) + GetDIDDocForIndentityByDID(ctx context.Context, did string) (*DIDDocument, error) } type networkMap struct { ctx context.Context + namespace string orgName string orgDesc string database database.Plugin @@ -67,13 +68,14 @@ type networkMap struct { syncasync syncasync.Bridge } -func NewNetworkMap(ctx context.Context, orgName, orgDesc string, di database.Plugin, dm data.Manager, bm broadcast.Manager, dx dataexchange.Plugin, im identity.Manager, sa syncasync.Bridge) (Manager, error) { +func NewNetworkMap(ctx context.Context, ns, orgName, orgDesc string, di database.Plugin, dm data.Manager, bm broadcast.Manager, dx dataexchange.Plugin, im identity.Manager, sa syncasync.Bridge) (Manager, error) { if di == nil || dm == nil || bm == nil || dx == nil || im == nil { return nil, i18n.NewError(ctx, coremsgs.MsgInitializationNilDepError, "NetworkMap") } nm := &networkMap{ ctx: ctx, + namespace: ns, orgName: orgName, orgDesc: orgDesc, database: di, diff --git a/internal/networkmap/manager_test.go b/internal/networkmap/manager_test.go index ed3b796e25..b6e9bb67d8 100644 --- a/internal/networkmap/manager_test.go +++ b/internal/networkmap/manager_test.go @@ -39,13 +39,13 @@ func newTestNetworkmap(t *testing.T) (*networkMap, func()) { mdx := &dataexchangemocks.Plugin{} mim := &identitymanagermocks.Manager{} msa := &syncasyncmocks.Bridge{} - nm, err := NewNetworkMap(ctx, "org0", "org0", mdi, mdm, mbm, mdx, mim, msa) + nm, err := NewNetworkMap(ctx, "ns1", "org0", "org0", mdi, mdm, mbm, mdx, mim, msa) assert.NoError(t, err) return nm.(*networkMap), cancel } func TestNewNetworkMapMissingDep(t *testing.T) { - _, err := NewNetworkMap(context.Background(), "", "", nil, nil, nil, nil, nil, nil) + _, err := NewNetworkMap(context.Background(), "", "", "", nil, nil, nil, nil, nil, nil) assert.Regexp(t, "FF10128", err) } diff --git a/internal/networkmap/register_identity.go b/internal/networkmap/register_identity.go index 0661071e76..17f42cabdd 100644 --- a/internal/networkmap/register_identity.go +++ b/internal/networkmap/register_identity.go @@ -25,7 +25,7 @@ import ( "github.com/hyperledger/firefly/pkg/core" ) -func (nm *networkMap) RegisterIdentity(ctx context.Context, ns string, dto *core.IdentityCreateDTO, waitConfirm bool) (identity *core.Identity, err error) { +func (nm *networkMap) RegisterIdentity(ctx context.Context, dto *core.IdentityCreateDTO, waitConfirm bool) (identity *core.Identity, err error) { // The parent can be a UUID directly var parent *fftypes.UUID @@ -33,7 +33,7 @@ func (nm *networkMap) RegisterIdentity(ctx context.Context, ns string, dto *core parent, err = fftypes.ParseUUID(ctx, dto.Parent) if err != nil { // Or a DID - parentIdentity, _, err := nm.identity.CachedIdentityLookupMustExist(ctx, ns, dto.Parent) + parentIdentity, _, err := nm.identity.CachedIdentityLookupMustExist(ctx, dto.Parent) if err != nil { return nil, err } @@ -45,7 +45,7 @@ func (nm *networkMap) RegisterIdentity(ctx context.Context, ns string, dto *core identity = &core.Identity{ IdentityBase: core.IdentityBase{ ID: fftypes.NewUUID(), - Namespace: ns, + Namespace: nm.namespace, Name: dto.Name, Type: dto.Type, Parent: parent, @@ -56,7 +56,7 @@ func (nm *networkMap) RegisterIdentity(ctx context.Context, ns string, dto *core }, } - if err := nm.data.VerifyNamespaceExists(ctx, ns); err != nil { + if err := nm.data.VerifyNamespaceExists(ctx, nm.namespace); err != nil { return nil, err } diff --git a/internal/networkmap/register_identity_test.go b/internal/networkmap/register_identity_test.go index b08dcc1d5d..665307c492 100644 --- a/internal/networkmap/register_identity_test.go +++ b/internal/networkmap/register_identity_test.go @@ -46,14 +46,14 @@ func TestRegisterIdentityOrgWithParentOk(t *testing.T) { }, nil) mdm := nm.data.(*datamocks.Manager) - mdm.On("VerifyNamespaceExists", nm.ctx, "ns").Return(nil) + mdm.On("VerifyNamespaceExists", nm.ctx, "ns1").Return(nil) mockMsg1 := &core.Message{Header: core.MessageHeader{ID: fftypes.NewUUID()}} mockMsg2 := &core.Message{Header: core.MessageHeader{ID: fftypes.NewUUID()}} mbm := nm.broadcast.(*broadcastmocks.Manager) mbm.On("BroadcastIdentityClaim", nm.ctx, - "ns", + "ns1", mock.AnythingOfType("*core.IdentityClaim"), mock.MatchedBy(func(sr *core.SignerRef) bool { return sr.Key == "0x12345" @@ -61,14 +61,14 @@ func TestRegisterIdentityOrgWithParentOk(t *testing.T) { core.SystemTagIdentityClaim, false).Return(mockMsg1, nil) mbm.On("BroadcastDefinition", nm.ctx, - "ns", + "ns1", mock.AnythingOfType("*core.IdentityVerification"), mock.MatchedBy(func(sr *core.SignerRef) bool { return sr.Key == "0x23456" }), core.SystemTagIdentityVerification, false).Return(mockMsg2, nil) - org, err := nm.RegisterIdentity(nm.ctx, "ns", &core.IdentityCreateDTO{ + org, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "child1", Key: "0x12345", Parent: fftypes.NewUUID().String(), @@ -130,7 +130,7 @@ func TestRegisterIdentityOrgWithParentWaitConfirmOk(t *testing.T) { }), core.SystemTagIdentityVerification, false).Return(mockMsg2, nil) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "child1", Key: "0x12345", Parent: fftypes.NewUUID().String(), @@ -149,7 +149,7 @@ func TestRegisterIdentityCustomBadNS(t *testing.T) { defer cancel() mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", nm.ctx, "ns1", "did:firefly:org/parent1").Return(&core.Identity{ + mim.On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/parent1").Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: fftypes.NewUUID(), DID: "did:firefly:org/parent1", @@ -159,7 +159,7 @@ func TestRegisterIdentityCustomBadNS(t *testing.T) { mdm := nm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", nm.ctx, "ns1").Return(fmt.Errorf("pop")) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Key: "0x12345", Parent: "did:firefly:org/parent1", @@ -179,7 +179,7 @@ func TestRegisterIdentityCustomWithParentFail(t *testing.T) { mim := nm.identity.(*identitymanagermocks.Manager) mim.On("VerifyIdentityChain", nm.ctx, mock.AnythingOfType("*core.Identity")).Return(parentIdentity, false, nil) - mim.On("CachedIdentityLookupMustExist", nm.ctx, "ns1", "did:firefly:org/parent1").Return(&core.Identity{ + mim.On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/parent1").Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: fftypes.NewUUID(), DID: "did:firefly:org/parent1", @@ -211,7 +211,7 @@ func TestRegisterIdentityCustomWithParentFail(t *testing.T) { }), core.SystemTagIdentityVerification, false).Return(nil, fmt.Errorf("pop")) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Key: "0x12345", Parent: "did:firefly:org/parent1", @@ -237,7 +237,7 @@ func TestRegisterIdentityGetParentMsgFail(t *testing.T) { mdm := nm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", nm.ctx, "ns1").Return(nil) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Key: "0x12345", Parent: fftypes.NewUUID().String(), @@ -268,7 +268,7 @@ func TestRegisterIdentityRootBroadcastFail(t *testing.T) { }), core.SystemTagIdentityClaim, false).Return(nil, fmt.Errorf("pop")) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Key: "0x12345", Parent: fftypes.NewUUID().String(), @@ -291,7 +291,7 @@ func TestRegisterIdentityMissingKey(t *testing.T) { mdm := nm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", nm.ctx, "ns1").Return(nil) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Parent: fftypes.NewUUID().String(), }, false) @@ -312,7 +312,7 @@ func TestRegisterIdentityVerifyFail(t *testing.T) { mdm := nm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", nm.ctx, "ns1").Return(nil) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Parent: fftypes.NewUUID().String(), }, false) @@ -328,9 +328,9 @@ func TestRegisterIdentityBadParent(t *testing.T) { defer cancel() mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", nm.ctx, "ns1", "did:firefly:org/1").Return(nil, false, fmt.Errorf("pop")) + mim.On("CachedIdentityLookupMustExist", nm.ctx, "did:firefly:org/1").Return(nil, false, fmt.Errorf("pop")) - _, err := nm.RegisterIdentity(nm.ctx, "ns1", &core.IdentityCreateDTO{ + _, err := nm.RegisterIdentity(nm.ctx, &core.IdentityCreateDTO{ Name: "custom1", Parent: "did:firefly:org/1", }, false) diff --git a/internal/networkmap/register_node.go b/internal/networkmap/register_node.go index 90a35d2618..c5a56ead46 100644 --- a/internal/networkmap/register_node.go +++ b/internal/networkmap/register_node.go @@ -25,9 +25,9 @@ import ( "github.com/hyperledger/firefly/pkg/core" ) -func (nm *networkMap) RegisterNode(ctx context.Context, ns string, waitConfirm bool) (identity *core.Identity, err error) { +func (nm *networkMap) RegisterNode(ctx context.Context, waitConfirm bool) (identity *core.Identity, err error) { - nodeOwningOrg, err := nm.identity.GetMultipartyRootOrg(ctx, ns) + nodeOwningOrg, err := nm.identity.GetMultipartyRootOrg(ctx) if err != nil { return nil, err } @@ -52,5 +52,5 @@ func (nm *networkMap) RegisterNode(ctx context.Context, ns string, waitConfirm b } nodeRequest.Profile = dxInfo - return nm.RegisterIdentity(ctx, ns, nodeRequest, waitConfirm) + return nm.RegisterIdentity(ctx, nodeRequest, waitConfirm) } diff --git a/internal/networkmap/register_node_test.go b/internal/networkmap/register_node_test.go index 5932c761ad..c6714fc564 100644 --- a/internal/networkmap/register_node_test.go +++ b/internal/networkmap/register_node_test.go @@ -44,7 +44,7 @@ func TestRegisterNodeOk(t *testing.T) { parentOrg := testOrg("org1") mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", nm.ctx, "ns1").Return(parentOrg, nil) + mim.On("GetMultipartyRootOrg", nm.ctx).Return(parentOrg, nil) mim.On("VerifyIdentityChain", nm.ctx, mock.AnythingOfType("*core.Identity")).Return(parentOrg, false, nil) signerRef := &core.SignerRef{Key: "0x23456"} mim.On("ResolveIdentitySigner", nm.ctx, parentOrg).Return(signerRef, nil) @@ -66,7 +66,7 @@ func TestRegisterNodeOk(t *testing.T) { signerRef, core.SystemTagIdentityClaim, false).Return(mockMsg, nil) - node, err := nm.RegisterNode(nm.ctx, "ns1", false) + node, err := nm.RegisterNode(nm.ctx, false) assert.NoError(t, err) assert.Equal(t, *mockMsg.Header.ID, *node.Messages.Claim) @@ -88,7 +88,7 @@ func TestRegisterNodePeerInfoFail(t *testing.T) { parentOrg := testOrg("org1") mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", nm.ctx, "ns1").Return(parentOrg, nil) + mim.On("GetMultipartyRootOrg", nm.ctx).Return(parentOrg, nil) mim.On("VerifyIdentityChain", nm.ctx, mock.AnythingOfType("*core.Identity")).Return(parentOrg, false, nil) signerRef := &core.SignerRef{Key: "0x23456"} mim.On("ResolveIdentitySigner", nm.ctx, parentOrg).Return(signerRef, nil) @@ -96,7 +96,7 @@ func TestRegisterNodePeerInfoFail(t *testing.T) { mdx := nm.exchange.(*dataexchangemocks.Plugin) mdx.On("GetEndpointInfo", nm.ctx).Return(fftypes.JSONObject{}, fmt.Errorf("pop")) - _, err := nm.RegisterNode(nm.ctx, "ns1", false) + _, err := nm.RegisterNode(nm.ctx, false) assert.Regexp(t, "pop", err) } @@ -107,9 +107,9 @@ func TestRegisterNodeGetOwnerFail(t *testing.T) { defer cancel() mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", nm.ctx, "ns1").Return(nil, fmt.Errorf("pop")) + mim.On("GetMultipartyRootOrg", nm.ctx).Return(nil, fmt.Errorf("pop")) - _, err := nm.RegisterNode(nm.ctx, "ns1", false) + _, err := nm.RegisterNode(nm.ctx, false) assert.Regexp(t, "pop", err) } diff --git a/internal/networkmap/register_org.go b/internal/networkmap/register_org.go index ed7682ed5b..2518b4de81 100644 --- a/internal/networkmap/register_org.go +++ b/internal/networkmap/register_org.go @@ -25,9 +25,9 @@ import ( ) // RegisterNodeOrganization is a convenience helper to register the org configured on the node, without any extra info -func (nm *networkMap) RegisterNodeOrganization(ctx context.Context, ns string, waitConfirm bool) (*core.Identity, error) { +func (nm *networkMap) RegisterNodeOrganization(ctx context.Context, waitConfirm bool) (*core.Identity, error) { - key, err := nm.identity.GetMultipartyRootVerifier(ctx, ns) + key, err := nm.identity.GetMultipartyRootVerifier(ctx) if err != nil { return nil, err } @@ -42,10 +42,10 @@ func (nm *networkMap) RegisterNodeOrganization(ctx context.Context, ns string, w }, Key: key.Value, } - return nm.RegisterOrganization(ctx, ns, orgRequest, waitConfirm) + return nm.RegisterOrganization(ctx, orgRequest, waitConfirm) } -func (nm *networkMap) RegisterOrganization(ctx context.Context, ns string, orgRequest *core.IdentityCreateDTO, waitConfirm bool) (*core.Identity, error) { +func (nm *networkMap) RegisterOrganization(ctx context.Context, orgRequest *core.IdentityCreateDTO, waitConfirm bool) (*core.Identity, error) { orgRequest.Type = core.IdentityTypeOrg - return nm.RegisterIdentity(ctx, ns, orgRequest, waitConfirm) + return nm.RegisterIdentity(ctx, orgRequest, waitConfirm) } diff --git a/internal/networkmap/register_org_test.go b/internal/networkmap/register_org_test.go index 0854353e79..b0d6ec54ca 100644 --- a/internal/networkmap/register_org_test.go +++ b/internal/networkmap/register_org_test.go @@ -58,7 +58,7 @@ func TestRegisterNodeOrgOk(t *testing.T) { defer cancel() mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootVerifier", nm.ctx, "ns1").Return(&core.VerifierRef{ + mim.On("GetMultipartyRootVerifier", nm.ctx).Return(&core.VerifierRef{ Value: "0x12345", }, nil) mim.On("VerifyIdentityChain", nm.ctx, mock.AnythingOfType("*core.Identity")).Return(nil, false, nil) @@ -76,7 +76,7 @@ func TestRegisterNodeOrgOk(t *testing.T) { }), core.SystemTagIdentityClaim, false).Return(mockMsg, nil) - org, err := nm.RegisterNodeOrganization(nm.ctx, "ns1", false) + org, err := nm.RegisterNodeOrganization(nm.ctx, false) assert.NoError(t, err) assert.Equal(t, *mockMsg.Header.ID, *org.Messages.Claim) @@ -93,11 +93,11 @@ func TestRegisterNodeOrgNoName(t *testing.T) { nm.orgName = "" mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootVerifier", nm.ctx, "ns1").Return(&core.VerifierRef{ + mim.On("GetMultipartyRootVerifier", nm.ctx).Return(&core.VerifierRef{ Value: "0x12345", }, nil) - _, err := nm.RegisterNodeOrganization(nm.ctx, "ns1", false) + _, err := nm.RegisterNodeOrganization(nm.ctx, false) assert.Regexp(t, "FF10216", err) mim.AssertExpectations(t) @@ -109,9 +109,9 @@ func TestRegisterNodeGetOwnerBlockchainKeyFail(t *testing.T) { defer cancel() mim := nm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootVerifier", nm.ctx, "ns1").Return(nil, fmt.Errorf("pop")) + mim.On("GetMultipartyRootVerifier", nm.ctx).Return(nil, fmt.Errorf("pop")) - _, err := nm.RegisterNodeOrganization(nm.ctx, "ns1", false) + _, err := nm.RegisterNodeOrganization(nm.ctx, false) assert.Regexp(t, "pop", err) } diff --git a/internal/networkmap/update_identity.go b/internal/networkmap/update_identity.go index 077245848b..c48f80f025 100644 --- a/internal/networkmap/update_identity.go +++ b/internal/networkmap/update_identity.go @@ -25,22 +25,22 @@ import ( "github.com/hyperledger/firefly/pkg/core" ) -func (nm *networkMap) UpdateIdentity(ctx context.Context, ns, uuidStr string, dto *core.IdentityUpdateDTO, waitConfirm bool) (identity *core.Identity, err error) { +func (nm *networkMap) UpdateIdentity(ctx context.Context, uuidStr string, dto *core.IdentityUpdateDTO, waitConfirm bool) (identity *core.Identity, err error) { id, err := fftypes.ParseUUID(ctx, uuidStr) if err != nil { return nil, err } - return nm.updateIdentityID(ctx, ns, id, dto, waitConfirm) + return nm.updateIdentityID(ctx, id, dto, waitConfirm) } -func (nm *networkMap) updateIdentityID(ctx context.Context, ns string, id *fftypes.UUID, dto *core.IdentityUpdateDTO, waitConfirm bool) (identity *core.Identity, err error) { +func (nm *networkMap) updateIdentityID(ctx context.Context, id *fftypes.UUID, dto *core.IdentityUpdateDTO, waitConfirm bool) (identity *core.Identity, err error) { // Get the original identity identity, err = nm.identity.CachedIdentityLookupByID(ctx, id) if err != nil { return nil, err } - if identity == nil || identity.Namespace != ns { + if identity == nil || identity.Namespace != nm.namespace { return nil, i18n.NewError(ctx, coremsgs.Msg404NoResult) } diff --git a/internal/networkmap/update_identity_test.go b/internal/networkmap/update_identity_test.go index 8954f5da2e..5b949654a3 100644 --- a/internal/networkmap/update_identity_test.go +++ b/internal/networkmap/update_identity_test.go @@ -51,7 +51,7 @@ func TestUpdateIdentityProfileOk(t *testing.T) { }), core.SystemTagIdentityUpdate, true).Return(mockMsg1, nil) - org, err := nm.UpdateIdentity(nm.ctx, identity.Namespace, identity.ID.String(), &core.IdentityUpdateDTO{ + org, err := nm.UpdateIdentity(nm.ctx, identity.ID.String(), &core.IdentityUpdateDTO{ IdentityProfile: core.IdentityProfile{ Description: "new desc", Profile: fftypes.JSONObject{"new": "profile"}, @@ -85,7 +85,7 @@ func TestUpdateIdentityProfileBroadcastFail(t *testing.T) { }), core.SystemTagIdentityUpdate, true).Return(nil, fmt.Errorf("pop")) - _, err := nm.UpdateIdentity(nm.ctx, identity.Namespace, identity.ID.String(), &core.IdentityUpdateDTO{ + _, err := nm.UpdateIdentity(nm.ctx, identity.ID.String(), &core.IdentityUpdateDTO{ IdentityProfile: core.IdentityProfile{ Description: "new desc", Profile: fftypes.JSONObject{"new": "profile"}, @@ -109,7 +109,7 @@ func TestUpdateIdentityProfileBadProfile(t *testing.T) { signerRef := &core.SignerRef{Key: "0x12345"} mim.On("ResolveIdentitySigner", nm.ctx, identity).Return(signerRef, nil) - _, err := nm.UpdateIdentity(nm.ctx, identity.Namespace, identity.ID.String(), &core.IdentityUpdateDTO{ + _, err := nm.UpdateIdentity(nm.ctx, identity.ID.String(), &core.IdentityUpdateDTO{ IdentityProfile: core.IdentityProfile{ Description: string(make([]byte, 4097)), Profile: fftypes.JSONObject{"new": "profile"}, @@ -130,7 +130,7 @@ func TestUpdateIdentityProfileNotFound(t *testing.T) { mim := nm.identity.(*identitymanagermocks.Manager) mim.On("CachedIdentityLookupByID", nm.ctx, identity.ID).Return(nil, nil) - _, err := nm.UpdateIdentity(nm.ctx, identity.Namespace, identity.ID.String(), &core.IdentityUpdateDTO{ + _, err := nm.UpdateIdentity(nm.ctx, identity.ID.String(), &core.IdentityUpdateDTO{ IdentityProfile: core.IdentityProfile{ Description: string(make([]byte, 4097)), Profile: fftypes.JSONObject{"new": "profile"}, @@ -151,7 +151,7 @@ func TestUpdateIdentityProfileLookupFail(t *testing.T) { mim := nm.identity.(*identitymanagermocks.Manager) mim.On("CachedIdentityLookupByID", nm.ctx, identity.ID).Return(nil, fmt.Errorf("pop")) - _, err := nm.UpdateIdentity(nm.ctx, identity.Namespace, identity.ID.String(), &core.IdentityUpdateDTO{ + _, err := nm.UpdateIdentity(nm.ctx, identity.ID.String(), &core.IdentityUpdateDTO{ IdentityProfile: core.IdentityProfile{ Description: string(make([]byte, 4097)), Profile: fftypes.JSONObject{"new": "profile"}, @@ -174,7 +174,7 @@ func TestUpdateIdentityProfileClaimLookupFail(t *testing.T) { signerRef := &core.SignerRef{Key: "0x12345"} mim.On("ResolveIdentitySigner", nm.ctx, identity).Return(signerRef, fmt.Errorf("pop")) - _, err := nm.UpdateIdentity(nm.ctx, identity.Namespace, identity.ID.String(), &core.IdentityUpdateDTO{ + _, err := nm.UpdateIdentity(nm.ctx, identity.ID.String(), &core.IdentityUpdateDTO{ IdentityProfile: core.IdentityProfile{ Description: "Desc1", Profile: fftypes.JSONObject{"new": "profile"}, @@ -190,6 +190,6 @@ func TestUpdateIdentityProfileBadID(t *testing.T) { nm, cancel := newTestNetworkmap(t) defer cancel() - _, err := nm.UpdateIdentity(nm.ctx, "ns1", "badness", &core.IdentityUpdateDTO{}, true) + _, err := nm.UpdateIdentity(nm.ctx, "badness", &core.IdentityUpdateDTO{}, true) assert.Regexp(t, "FF00138", err) } diff --git a/internal/operations/manager_test.go b/internal/operations/manager_test.go index 70da40e9a9..b59e9fd791 100644 --- a/internal/operations/manager_test.go +++ b/internal/operations/manager_test.go @@ -67,7 +67,7 @@ func newTestOperations(t *testing.T) (*operationsManager, func()) { Concurrency: true, }) mdm := &datamocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) rag := mdi.On("RunAsGroup", mock.Anything, mock.Anything).Maybe() rag.RunFn = func(a mock.Arguments) { diff --git a/internal/operations/operation_updater_test.go b/internal/operations/operation_updater_test.go index ef51220e09..315dad96d6 100644 --- a/internal/operations/operation_updater_test.go +++ b/internal/operations/operation_updater_test.go @@ -62,7 +62,7 @@ func newTestOperationUpdaterCommon(t *testing.T, dbCapabilities *database.Capabi mdi := &databasemocks.Plugin{} mdi.On("Capabilities").Return(dbCapabilities) mdm := &datamocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) return newOperationUpdater(context.Background(), mom, mdi, txHelper) } diff --git a/internal/orchestrator/orchestrator.go b/internal/orchestrator/orchestrator.go index f1c6367dfd..d19ea90fd9 100644 --- a/internal/orchestrator/orchestrator.go +++ b/internal/orchestrator/orchestrator.go @@ -64,7 +64,7 @@ type Orchestrator interface { PrivateMessaging() privatemessaging.Manager // Status - GetStatus(ctx context.Context, ns string) (*core.NodeStatus, error) + GetStatus(ctx context.Context) (*core.NodeStatus, error) // Subscription management GetSubscriptions(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Subscription, *database.FilterResult, error) @@ -114,7 +114,7 @@ type Orchestrator interface { RequestReply(ctx context.Context, ns string, msg *core.MessageInOut) (reply *core.MessageInOut, err error) // Network Operations - SubmitNetworkAction(ctx context.Context, ns string, action *core.NetworkAction) error + SubmitNetworkAction(ctx context.Context, action *core.NetworkAction) error } type BlockchainPlugin struct { @@ -358,7 +358,7 @@ func (or *orchestrator) initPlugins(ctx context.Context) (err error) { or.plugins.Blockchain.Plugin.RegisterListener(&or.bc) fb := database.IdentityQueryFactory.NewFilter(ctx) - nodes, _, err := or.database().GetIdentities(ctx, fb.And( + nodes, _, err := or.database().GetIdentities(ctx, or.namespace, fb.And( fb.Eq("type", core.IdentityTypeNode), )) if err != nil { @@ -390,11 +390,11 @@ func (or *orchestrator) initComponents(ctx context.Context) (err error) { } if or.txHelper == nil { - or.txHelper = txcommon.NewTransactionHelper(or.database(), or.data) + or.txHelper = txcommon.NewTransactionHelper(or.namespace, or.database(), or.data) } if or.identity == nil { - or.identity, err = identity.NewIdentityManager(ctx, or.config.DefaultKey, or.config.Multiparty.OrgName, or.config.Multiparty.OrgKey, or.database(), or.blockchain(), or.data) + or.identity, err = identity.NewIdentityManager(ctx, or.namespace, or.config.DefaultKey, or.config.Multiparty.OrgName, or.config.Multiparty.OrgKey, or.database(), or.blockchain(), or.data) if err != nil { return err } @@ -413,7 +413,7 @@ func (or *orchestrator) initComponents(ctx context.Context) (err error) { } } - or.syncasync = syncasync.NewSyncAsyncBridge(ctx, or.database(), or.data) + or.syncasync = syncasync.NewSyncAsyncBridge(ctx, or.namespace, or.database(), or.data) if or.batchpin == nil { if or.batchpin, err = batchpin.NewBatchPinSubmitter(ctx, or.database(), or.identity, or.blockchain(), or.metrics, or.operations); err != nil { @@ -422,7 +422,7 @@ func (or *orchestrator) initComponents(ctx context.Context) (err error) { } if or.messaging == nil { - if or.messaging, err = privatemessaging.NewPrivateMessaging(ctx, or.database(), or.identity, or.dataexchange(), or.blockchain(), or.batch, or.data, or.syncasync, or.batchpin, or.metrics, or.operations); err != nil { + if or.messaging, err = privatemessaging.NewPrivateMessaging(ctx, or.namespace, or.database(), or.identity, or.dataexchange(), or.blockchain(), or.batch, or.data, or.syncasync, or.batchpin, or.metrics, or.operations); err != nil { return err } } @@ -448,7 +448,7 @@ func (or *orchestrator) initComponents(ctx context.Context) (err error) { } if or.definitions == nil { - or.definitions, err = definitions.NewDefinitionHandler(ctx, or.database(), or.blockchain(), or.dataexchange(), or.data, or.identity, or.assets, or.contracts) + or.definitions, err = definitions.NewDefinitionHandler(ctx, or.namespace, or.database(), or.blockchain(), or.dataexchange(), or.data, or.identity, or.assets, or.contracts) if err != nil { return err } @@ -471,27 +471,27 @@ func (or *orchestrator) initComponents(ctx context.Context) (err error) { or.syncasync.Init(or.events) if or.networkmap == nil { - or.networkmap, err = networkmap.NewNetworkMap(ctx, or.config.Multiparty.OrgName, or.config.Multiparty.OrgDesc, or.database(), or.data, or.broadcast, or.dataexchange(), or.identity, or.syncasync) + or.networkmap, err = networkmap.NewNetworkMap(ctx, or.namespace, or.config.Multiparty.OrgName, or.config.Multiparty.OrgDesc, or.database(), or.data, or.broadcast, or.dataexchange(), or.identity, or.syncasync) } return err } -func (or *orchestrator) SubmitNetworkAction(ctx context.Context, ns string, action *core.NetworkAction) error { - key, err := or.identity.NormalizeSigningKey(ctx, ns, "", identity.KeyNormalizationBlockchainPlugin) +func (or *orchestrator) SubmitNetworkAction(ctx context.Context, action *core.NetworkAction) error { + key, err := or.identity.NormalizeSigningKey(ctx, "", identity.KeyNormalizationBlockchainPlugin) if err != nil { return err } if action.Type == core.NetworkActionTerminate { - if ns != core.LegacySystemNamespace { + if or.namespace != core.LegacySystemNamespace { // For now, "terminate" only works on ff_system - return i18n.NewError(ctx, coremsgs.MsgTerminateNotSupported, ns) + return i18n.NewError(ctx, coremsgs.MsgTerminateNotSupported, or.namespace) } } else { return i18n.NewError(ctx, coremsgs.MsgUnrecognizedNetworkAction, action.Type) } // TODO: This should be a new operation type po := &core.PreparedOperation{ - Namespace: ns, + Namespace: or.namespace, ID: fftypes.NewUUID(), } return or.blockchain().SubmitNetworkAction(ctx, po.NamespacedIDString(), key, action.Type) diff --git a/internal/orchestrator/orchestrator_test.go b/internal/orchestrator/orchestrator_test.go index 9d6411fabb..1059aaaed5 100644 --- a/internal/orchestrator/orchestrator_test.go +++ b/internal/orchestrator/orchestrator_test.go @@ -187,7 +187,7 @@ func TestInitOK(t *testing.T) { defer or.cleanup(t) or.mdi.On("RegisterListener", mock.Anything).Return() or.mbi.On("RegisterListener", mock.Anything).Return() - or.mdi.On("GetIdentities", mock.Anything, mock.Anything).Return([]*core.Identity{{}}, nil, nil) + or.mdi.On("GetIdentities", mock.Anything, "ns", mock.Anything).Return([]*core.Identity{{}}, nil, nil) or.mdx.On("RegisterListener", mock.Anything).Return() or.mdx.On("SetNodes", mock.Anything).Return() or.mps.On("RegisterListener", mock.Anything).Return() @@ -211,7 +211,7 @@ func TestInitDataexchangeNodesFail(t *testing.T) { defer or.cleanup(t) or.mdi.On("RegisterListener", mock.Anything).Return() or.mbi.On("RegisterListener", mock.Anything).Return() - or.mdi.On("GetIdentities", mock.Anything, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + or.mdi.On("GetIdentities", mock.Anything, "ns", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) ctx := context.Background() err := or.initPlugins(ctx) assert.EqualError(t, err, "pop") @@ -425,29 +425,32 @@ func TestStartStopOk(t *testing.T) { func TestNetworkAction(t *testing.T) { or := newTestOrchestrator() - or.mim.On("NormalizeSigningKey", context.Background(), "ff_system", "", identity.KeyNormalizationBlockchainPlugin).Return("0x123", nil) + or.namespace = core.LegacySystemNamespace + or.mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x123", nil) or.mbi.On("SubmitNetworkAction", context.Background(), mock.Anything, "0x123", core.NetworkActionTerminate).Return(nil) - err := or.SubmitNetworkAction(context.Background(), "ff_system", &core.NetworkAction{Type: core.NetworkActionTerminate}) + err := or.SubmitNetworkAction(context.Background(), &core.NetworkAction{Type: core.NetworkActionTerminate}) assert.NoError(t, err) } func TestNetworkActionBadKey(t *testing.T) { or := newTestOrchestrator() - or.mim.On("NormalizeSigningKey", context.Background(), "ff_system", "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) - err := or.SubmitNetworkAction(context.Background(), "ff_system", &core.NetworkAction{Type: core.NetworkActionTerminate}) + or.namespace = core.LegacySystemNamespace + or.mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("", fmt.Errorf("pop")) + err := or.SubmitNetworkAction(context.Background(), &core.NetworkAction{Type: core.NetworkActionTerminate}) assert.EqualError(t, err, "pop") } func TestNetworkActionBadType(t *testing.T) { or := newTestOrchestrator() - or.mim.On("NormalizeSigningKey", context.Background(), "ff_system", "", identity.KeyNormalizationBlockchainPlugin).Return("0x123", nil) - err := or.SubmitNetworkAction(context.Background(), "ff_system", &core.NetworkAction{Type: "bad"}) + or.namespace = core.LegacySystemNamespace + or.mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x123", nil) + err := or.SubmitNetworkAction(context.Background(), &core.NetworkAction{Type: "bad"}) assert.Regexp(t, "FF10397", err) } func TestNetworkActionBadNamespace(t *testing.T) { or := newTestOrchestrator() - or.mim.On("NormalizeSigningKey", context.Background(), "ns", "", identity.KeyNormalizationBlockchainPlugin).Return("0x123", nil) - err := or.SubmitNetworkAction(context.Background(), "ns", &core.NetworkAction{Type: core.NetworkActionTerminate}) + or.mim.On("NormalizeSigningKey", context.Background(), "", identity.KeyNormalizationBlockchainPlugin).Return("0x123", nil) + err := or.SubmitNetworkAction(context.Background(), &core.NetworkAction{Type: core.NetworkActionTerminate}) assert.Regexp(t, "FF10399", err) } diff --git a/internal/orchestrator/status.go b/internal/orchestrator/status.go index d33e73b495..a556666f98 100644 --- a/internal/orchestrator/status.go +++ b/internal/orchestrator/status.go @@ -77,7 +77,7 @@ func (or *orchestrator) GetNodeUUID(ctx context.Context, ns string) (node *fftyp if or.node != nil { return or.node } - status, err := or.GetStatus(ctx, ns) + status, err := or.GetStatus(ctx) if err != nil { log.L(or.ctx).Warnf("Failed to query local node UUID: %s", err) return nil @@ -90,14 +90,14 @@ func (or *orchestrator) GetNodeUUID(ctx context.Context, ns string) (node *fftyp return or.node } -func (or *orchestrator) GetStatus(ctx context.Context, ns string) (status *core.NodeStatus, err error) { +func (or *orchestrator) GetStatus(ctx context.Context) (status *core.NodeStatus, err error) { - org, err := or.identity.GetMultipartyRootOrg(ctx, ns) + org, err := or.identity.GetMultipartyRootOrg(ctx) if err != nil { log.L(ctx).Warnf("Failed to query local org for status: %s", err) } status = &core.NodeStatus{ - Namespace: ns, + Namespace: or.namespace, Node: core.NodeStatusNode{ Name: config.GetString(coreconfig.NodeName), }, @@ -112,10 +112,8 @@ func (or *orchestrator) GetStatus(ctx context.Context, ns string) (status *core. status.Org.ID = org.ID status.Org.DID = org.DID - // It's possible namespace will fallback to SystemNamespace (if configured to do so) - ns = org.Namespace - - verifiers, _, err := or.networkmap.GetIdentityVerifiers(ctx, ns, org.ID.String(), database.VerifierQueryFactory.NewFilter(ctx).And()) + fb := database.VerifierQueryFactory.NewFilter(ctx) + verifiers, _, err := or.database().GetVerifiers(ctx, org.Namespace, fb.And(fb.Eq("identity", org.ID))) if err != nil { return nil, err } @@ -124,7 +122,7 @@ func (or *orchestrator) GetStatus(ctx context.Context, ns string) (status *core. status.Org.Verifiers[i] = &v.VerifierRef } - node, _, err := or.identity.CachedIdentityLookupNilOK(ctx, ns, fmt.Sprintf("%s%s", core.FireFlyNodeDIDPrefix, status.Node.Name)) + node, _, err := or.identity.CachedIdentityLookupNilOK(ctx, fmt.Sprintf("%s%s", core.FireFlyNodeDIDPrefix, status.Node.Name)) if err != nil { return nil, err } diff --git a/internal/orchestrator/status_test.go b/internal/orchestrator/status_test.go index ec45fdcb17..c7ebc80b45 100644 --- a/internal/orchestrator/status_test.go +++ b/internal/orchestrator/status_test.go @@ -25,7 +25,6 @@ import ( "github.com/hyperledger/firefly/internal/coreconfig" "github.com/hyperledger/firefly/mocks/eventmocks" "github.com/hyperledger/firefly/mocks/identitymanagermocks" - "github.com/hyperledger/firefly/mocks/networkmapmocks" "github.com/hyperledger/firefly/pkg/core" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -89,7 +88,7 @@ func TestGetStatusRegistered(t *testing.T) { nodeID := fftypes.NewUUID() mim := or.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", or.ctx, "ns").Return(&core.Identity{ + mim.On("GetMultipartyRootOrg", or.ctx).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, Name: "org1", @@ -97,15 +96,14 @@ func TestGetStatusRegistered(t *testing.T) { DID: "did:firefly:org/org1", }, }, nil) - mim.On("CachedIdentityLookupNilOK", or.ctx, "ns", "did:firefly:node/node1").Return(&core.Identity{ + mim.On("CachedIdentityLookupNilOK", or.ctx, "did:firefly:node/node1").Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: nodeID, Name: "node1", Parent: orgID, }, }, false, nil) - mnm := or.networkmap.(*networkmapmocks.Manager) - mnm.On("GetIdentityVerifiers", or.ctx, "ns", orgID.String(), mock.Anything).Return([]*core.Verifier{ + or.mdi.On("GetVerifiers", or.ctx, "ns", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", @@ -117,7 +115,7 @@ func TestGetStatusRegistered(t *testing.T) { mem := or.events.(*eventmocks.EventManager) mem.On("GetPlugins").Return(mockEventPlugins) - status, err := or.GetStatus(or.ctx, "ns") + status, err := or.GetStatus(or.ctx) assert.NoError(t, err) assert.Equal(t, "ns", status.Namespace) @@ -156,7 +154,7 @@ func TestGetStatusVerifierLookupFail(t *testing.T) { nodeID := fftypes.NewUUID() mim := or.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", or.ctx, "ns").Return(&core.Identity{ + mim.On("GetMultipartyRootOrg", or.ctx).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, Name: "org1", @@ -164,20 +162,19 @@ func TestGetStatusVerifierLookupFail(t *testing.T) { DID: "did:firefly:org/org1", }, }, nil) - mim.On("CachedIdentityLookupNilOK", or.ctx, "ns", "did:firefly:node/node1").Return(&core.Identity{ + mim.On("CachedIdentityLookupNilOK", or.ctx, "did:firefly:node/node1").Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: nodeID, Name: "node1", Parent: fftypes.NewUUID(), }, }, false, nil) - mnm := or.networkmap.(*networkmapmocks.Manager) - mnm.On("GetIdentityVerifiers", or.ctx, "ns", orgID.String(), mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + or.mdi.On("GetVerifiers", or.ctx, "ns", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) mem := or.events.(*eventmocks.EventManager) mem.On("GetPlugins").Return(mockEventPlugins) - _, err := or.GetStatus(or.ctx, "ns") + _, err := or.GetStatus(or.ctx) assert.Regexp(t, "pop", err) } @@ -193,7 +190,7 @@ func TestGetStatusWrongNodeOwner(t *testing.T) { nodeID := fftypes.NewUUID() mim := or.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", or.ctx, "ns").Return(&core.Identity{ + mim.On("GetMultipartyRootOrg", or.ctx).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, Name: "org1", @@ -201,15 +198,14 @@ func TestGetStatusWrongNodeOwner(t *testing.T) { DID: "did:firefly:org/org1", }, }, nil) - mim.On("CachedIdentityLookupNilOK", or.ctx, "ns", "did:firefly:node/node1").Return(&core.Identity{ + mim.On("CachedIdentityLookupNilOK", or.ctx, "did:firefly:node/node1").Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: nodeID, Name: "node1", Parent: fftypes.NewUUID(), }, }, false, nil) - mnm := or.networkmap.(*networkmapmocks.Manager) - mnm.On("GetIdentityVerifiers", or.ctx, "ns", orgID.String(), mock.Anything).Return([]*core.Verifier{ + or.mdi.On("GetVerifiers", or.ctx, "ns", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", @@ -221,7 +217,7 @@ func TestGetStatusWrongNodeOwner(t *testing.T) { mem := or.events.(*eventmocks.EventManager) mem.On("GetPlugins").Return(mockEventPlugins) - status, err := or.GetStatus(or.ctx, "ns") + status, err := or.GetStatus(or.ctx) assert.NoError(t, err) assert.Equal(t, "ns", status.Namespace) @@ -245,14 +241,14 @@ func TestGetStatusUnregistered(t *testing.T) { config.Set(coreconfig.NodeName, "node1") mim := or.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", or.ctx, "ns").Return(nil, fmt.Errorf("pop")) + mim.On("GetMultipartyRootOrg", or.ctx).Return(nil, fmt.Errorf("pop")) or.config.Multiparty.OrgName = "org1" mem := or.events.(*eventmocks.EventManager) mem.On("GetPlugins").Return(mockEventPlugins) - status, err := or.GetStatus(or.ctx, "ns") + status, err := or.GetStatus(or.ctx) assert.NoError(t, err) assert.Equal(t, "ns", status.Namespace) @@ -277,7 +273,7 @@ func TestGetStatusOrgOnlyRegistered(t *testing.T) { orgID := fftypes.NewUUID() mim := or.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", or.ctx, "ns").Return(&core.Identity{ + mim.On("GetMultipartyRootOrg", or.ctx).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, Name: "org1", @@ -285,9 +281,8 @@ func TestGetStatusOrgOnlyRegistered(t *testing.T) { DID: "did:firefly:org/org1", }, }, nil) - mim.On("CachedIdentityLookupNilOK", or.ctx, "ns", "did:firefly:node/node1").Return(nil, false, nil) - mnm := or.networkmap.(*networkmapmocks.Manager) - mnm.On("GetIdentityVerifiers", or.ctx, "ns", orgID.String(), mock.Anything).Return([]*core.Verifier{ + mim.On("CachedIdentityLookupNilOK", or.ctx, "did:firefly:node/node1").Return(nil, false, nil) + or.mdi.On("GetVerifiers", or.ctx, "ns", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", @@ -299,7 +294,7 @@ func TestGetStatusOrgOnlyRegistered(t *testing.T) { mem := or.events.(*eventmocks.EventManager) mem.On("GetPlugins").Return(mockEventPlugins) - status, err := or.GetStatus(or.ctx, "ns") + status, err := or.GetStatus(or.ctx) assert.NoError(t, err) assert.Equal(t, "ns", status.Namespace) @@ -333,7 +328,7 @@ func TestGetStatusNodeError(t *testing.T) { orgID := fftypes.NewUUID() mim := or.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", or.ctx, "ns").Return(&core.Identity{ + mim.On("GetMultipartyRootOrg", or.ctx).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: orgID, Name: "org1", @@ -341,9 +336,8 @@ func TestGetStatusNodeError(t *testing.T) { DID: "did:firefly:org/org1", }, }, nil) - mim.On("CachedIdentityLookupNilOK", or.ctx, "ns", "did:firefly:node/node1").Return(nil, false, fmt.Errorf("pop")) - mnm := or.networkmap.(*networkmapmocks.Manager) - mnm.On("GetIdentityVerifiers", or.ctx, "ns", orgID.String(), mock.Anything).Return([]*core.Verifier{ + mim.On("CachedIdentityLookupNilOK", or.ctx, "did:firefly:node/node1").Return(nil, false, fmt.Errorf("pop")) + or.mdi.On("GetVerifiers", or.ctx, "ns", mock.Anything).Return([]*core.Verifier{ {Hash: fftypes.NewRandB32(), VerifierRef: core.VerifierRef{ Type: core.VerifierTypeEthAddress, Value: "0x12345", @@ -353,7 +347,7 @@ func TestGetStatusNodeError(t *testing.T) { mem := or.events.(*eventmocks.EventManager) mem.On("GetPlugins").Return(mockEventPlugins) - _, err := or.GetStatus(or.ctx, "ns") + _, err := or.GetStatus(or.ctx) assert.EqualError(t, err, "pop") assert.Nil(t, or.GetNodeUUID(or.ctx, "ns")) diff --git a/internal/privatemessaging/groupmanager.go b/internal/privatemessaging/groupmanager.go index db8b248f47..c94f107507 100644 --- a/internal/privatemessaging/groupmanager.go +++ b/internal/privatemessaging/groupmanager.go @@ -26,6 +26,7 @@ import ( "github.com/hyperledger/firefly-common/pkg/log" "github.com/hyperledger/firefly/internal/coremsgs" "github.com/hyperledger/firefly/internal/data" + "github.com/hyperledger/firefly/internal/identity" "github.com/hyperledger/firefly/pkg/core" "github.com/hyperledger/firefly/pkg/database" "github.com/karlseguin/ccache" @@ -33,13 +34,15 @@ import ( type GroupManager interface { GetGroupByID(ctx context.Context, id string) (*core.Group, error) - GetGroupsNS(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Group, *database.FilterResult, error) + GetGroups(ctx context.Context, filter database.AndFilter) ([]*core.Group, *database.FilterResult, error) ResolveInitGroup(ctx context.Context, msg *core.Message) (*core.Group, error) EnsureLocalGroup(ctx context.Context, group *core.Group) (ok bool, err error) } type groupManager struct { + namespace string database database.Plugin + identity identity.Manager data data.Manager groupCacheTTL time.Duration groupCache *ccache.Cache @@ -60,7 +63,7 @@ func (gm *groupManager) EnsureLocalGroup(ctx context.Context, group *core.Group) // the group via the blockchain. // So this method checks if a group exists, and if it doesn't inserts it. // We do assume the other side has sent the batch init of the group (rather than generating a second one) - if g, err := gm.database.GetGroupByHash(ctx, group.Hash); err != nil { + if g, err := gm.database.GetGroupByHash(ctx, gm.namespace, group.Hash); err != nil { return false, err } else if g != nil { // The group already exists @@ -148,15 +151,11 @@ func (gm *groupManager) GetGroupByID(ctx context.Context, hash string) (*core.Gr if err != nil { return nil, err } - return gm.database.GetGroupByHash(ctx, h) -} - -func (gm *groupManager) GetGroupsNS(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Group, *database.FilterResult, error) { - return gm.GetGroups(ctx, filter.Condition(filter.Builder().Eq("namespace", ns))) + return gm.database.GetGroupByHash(ctx, gm.namespace, h) } func (gm *groupManager) GetGroups(ctx context.Context, filter database.AndFilter) ([]*core.Group, *database.FilterResult, error) { - return gm.database.GetGroups(ctx, filter) + return gm.database.GetGroups(ctx, gm.namespace, filter) } func (gm *groupManager) getGroupNodes(ctx context.Context, groupHash *fftypes.Bytes32, allowNil bool) (*core.Group, []*core.Identity, error) { @@ -167,7 +166,7 @@ func (gm *groupManager) getGroupNodes(ctx context.Context, groupHash *fftypes.By return ghe.group, ghe.nodes, nil } - group, err := gm.database.GetGroupByHash(ctx, groupHash) + group, err := gm.database.GetGroupByHash(ctx, gm.namespace, groupHash) if err != nil || (allowNil && group == nil) { return nil, nil, err } @@ -180,7 +179,7 @@ func (gm *groupManager) getGroupNodes(ctx context.Context, groupHash *fftypes.By nodes := make([]*core.Identity, 0, len(group.Members)) knownIDs := make(map[fftypes.UUID]bool) for _, r := range group.Members { - node, err := gm.database.GetIdentityByID(ctx, r.Node) + node, err := gm.identity.CachedIdentityLookupByID(ctx, r.Node) if err != nil { return nil, nil, err } @@ -237,7 +236,7 @@ func (gm *groupManager) ResolveInitGroup(ctx context.Context, msg *core.Message) } // Get the existing group - group, err := gm.database.GetGroupByHash(ctx, msg.Header.Group) + group, err := gm.database.GetGroupByHash(ctx, gm.namespace, msg.Header.Group) if err != nil { return group, err } diff --git a/internal/privatemessaging/groupmanager_test.go b/internal/privatemessaging/groupmanager_test.go index b38871749d..cd26248c26 100644 --- a/internal/privatemessaging/groupmanager_test.go +++ b/internal/privatemessaging/groupmanager_test.go @@ -24,6 +24,7 @@ import ( "github.com/hyperledger/firefly-common/pkg/fftypes" "github.com/hyperledger/firefly/mocks/databasemocks" "github.com/hyperledger/firefly/mocks/datamocks" + "github.com/hyperledger/firefly/mocks/identitymanagermocks" "github.com/hyperledger/firefly/pkg/core" "github.com/hyperledger/firefly/pkg/database" "github.com/stretchr/testify/assert" @@ -280,7 +281,7 @@ func TestResolveInitGroupExistingOK(t *testing.T) { mdi := pm.database.(*databasemocks.Plugin) mdi.On("UpsertGroup", pm.ctx, mock.Anything, database.UpsertOptimizationNew).Return(nil) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(&core.Group{}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(&core.Group{}, nil) _, err := pm.ResolveInitGroup(pm.ctx, &core.Message{ Header: core.MessageHeader{ @@ -302,7 +303,7 @@ func TestResolveInitGroupExistingFail(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) _, err := pm.ResolveInitGroup(pm.ctx, &core.Message{ Header: core.MessageHeader{ @@ -324,7 +325,7 @@ func TestResolveInitGroupExistingNotFound(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, nil) group, err := pm.ResolveInitGroup(pm.ctx, &core.Message{ Header: core.MessageHeader{ @@ -348,7 +349,7 @@ func TestGetGroupByIDOk(t *testing.T) { groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(&core.Group{Hash: groupID}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(&core.Group{Hash: groupID}, nil) group, err := pm.GetGroupByID(pm.ctx, groupID.String()) assert.NoError(t, err) @@ -367,7 +368,7 @@ func TestGetGroupsOk(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroups", pm.ctx, mock.Anything).Return([]*core.Group{}, nil, nil) + mdi.On("GetGroups", pm.ctx, "ns1", mock.Anything).Return([]*core.Group{}, nil, nil) fb := database.GroupQueryFactory.NewFilter(pm.ctx) groups, _, err := pm.GetGroups(pm.ctx, fb.And(fb.Eq("description", "mygroup"))) @@ -380,16 +381,10 @@ func TestGetGroupsNSOk(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroups", pm.ctx, mock.MatchedBy(func(filter database.AndFilter) bool { - f, err := filter.Finalize() - assert.NoError(t, err) - assert.Contains(t, f.String(), "namespace") - assert.Contains(t, f.String(), "ns1") - return true - })).Return([]*core.Group{}, nil, nil) + mdi.On("GetGroups", pm.ctx, "ns1", mock.Anything).Return([]*core.Group{}, nil, nil) fb := database.GroupQueryFactory.NewFilter(pm.ctx) - groups, _, err := pm.GetGroupsNS(pm.ctx, "ns1", fb.And(fb.Eq("description", "mygroup"))) + groups, _, err := pm.GetGroups(pm.ctx, fb.And(fb.Eq("description", "mygroup"))) assert.NoError(t, err) assert.Empty(t, groups) } @@ -409,8 +404,9 @@ func TestGetGroupNodesCache(t *testing.T) { group.Seal() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(group, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, mock.Anything).Return(&core.Identity{ + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(group, nil).Once() + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", pm.ctx, mock.Anything).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: node1, Type: core.IdentityTypeNode, @@ -435,7 +431,7 @@ func TestGetGroupNodesGetGroupFail(t *testing.T) { groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) _, _, err := pm.getGroupNodes(pm.ctx, groupID, false) assert.EqualError(t, err, "pop") @@ -447,7 +443,7 @@ func TestGetGroupNodesGetGroupNotFound(t *testing.T) { groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, nil) _, _, err := pm.getGroupNodes(pm.ctx, groupID, false) assert.Regexp(t, "FF10226", err) @@ -468,8 +464,9 @@ func TestGetGroupNodesNodeLookupFail(t *testing.T) { group.Seal() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(group, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node1).Return(nil, fmt.Errorf("pop")).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(group, nil).Once() + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")).Once() _, _, err := pm.getGroupNodes(pm.ctx, group.Hash, false) assert.EqualError(t, err, "pop") @@ -489,8 +486,9 @@ func TestGetGroupNodesNodeLookupNotFound(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(group, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node1).Return(nil, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(group, nil).Once() + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", pm.ctx, mock.Anything).Return(nil, nil).Once() _, _, err := pm.getGroupNodes(pm.ctx, group.Hash, false) assert.Regexp(t, "FF10224", err) @@ -512,7 +510,7 @@ func TestEnsureLocalGroupNewOk(t *testing.T) { group.Seal() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, nil) mdi.On("UpsertGroup", pm.ctx, group, database.UpsertOptimizationNew).Return(nil) ok, err := pm.EnsureLocalGroup(pm.ctx, group) @@ -545,7 +543,7 @@ func TestEnsureLocalGroupExistingOk(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(group, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(group, nil) ok, err := pm.EnsureLocalGroup(pm.ctx, group) assert.NoError(t, err) @@ -568,7 +566,7 @@ func TestEnsureLocalGroupLookupErr(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) ok, err := pm.EnsureLocalGroup(pm.ctx, group) assert.EqualError(t, err, "pop") @@ -593,7 +591,7 @@ func TestEnsureLocalGroupInsertErr(t *testing.T) { group.Seal() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, nil) mdi.On("UpsertGroup", pm.ctx, mock.Anything, database.UpsertOptimizationNew).Return(fmt.Errorf("pop")) ok, err := pm.EnsureLocalGroup(pm.ctx, group) @@ -610,7 +608,7 @@ func TestEnsureLocalGroupBadGroup(t *testing.T) { group := &core.Group{} mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, nil) ok, err := pm.EnsureLocalGroup(pm.ctx, group) assert.NoError(t, err) diff --git a/internal/privatemessaging/message.go b/internal/privatemessaging/message.go index 181aa7255c..74d6e5ec5f 100644 --- a/internal/privatemessaging/message.go +++ b/internal/privatemessaging/message.go @@ -138,7 +138,7 @@ func (s *messageSender) resolve(ctx context.Context) error { } // Resolve the sending identity - if err := s.mgr.identity.ResolveInputSigningIdentity(ctx, msg.Header.Namespace, &msg.Header.SignerRef); err != nil { + if err := s.mgr.identity.ResolveInputSigningIdentity(ctx, &msg.Header.SignerRef); err != nil { return i18n.WrapError(ctx, err, coremsgs.MsgAuthorInvalid) } diff --git a/internal/privatemessaging/message_test.go b/internal/privatemessaging/message_test.go index 2998c07747..b2db263551 100644 --- a/internal/privatemessaging/message_test.go +++ b/internal/privatemessaging/message_test.go @@ -80,9 +80,9 @@ func TestSendConfirmMessageE2EOk(t *testing.T) { intermediateOrg := newTestOrg("localorg") intermediateOrg.Parent = rootOrg.ID localNode := newTestNode("node1", intermediateOrg) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(intermediateOrg, nil) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(intermediateOrg, false, nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(intermediateOrg, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(intermediateOrg, false, nil) mim.On("CachedIdentityLookupByID", pm.ctx, rootOrg.ID).Return(rootOrg, nil) mdm := pm.data.(*datamocks.Manager) @@ -91,9 +91,9 @@ func TestSendConfirmMessageE2EOk(t *testing.T) { mdm.On("WriteNewMessage", pm.ctx, mock.Anything).Return(nil).Once() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil).Once() - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() retMsg := &core.Message{ Header: core.MessageHeader{ @@ -132,8 +132,8 @@ func TestSendUnpinnedMessageE2EOk(t *testing.T) { defer cancel() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Run(func(args mock.Arguments) { - identity := args[2].(*core.SignerRef) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Run(func(args mock.Arguments) { + identity := args[1].(*core.SignerRef) identity.Author = "localorg" identity.Key = "localkey" }).Return(nil) @@ -145,7 +145,7 @@ func TestSendUnpinnedMessageE2EOk(t *testing.T) { mdm.On("WriteNewMessage", pm.ctx, mock.Anything).Return(nil).Once() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{Hash: groupID}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{Hash: groupID}, nil) msg, err := pm.SendMessage(pm.ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -181,7 +181,7 @@ func TestSendMessageBadGroup(t *testing.T) { mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) _, err := pm.SendMessage(pm.ctx, "ns1", &core.MessageInOut{ InlineData: core.InlineData{ @@ -204,7 +204,7 @@ func TestSendMessageBadIdentity(t *testing.T) { mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(fmt.Errorf("pop")) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(fmt.Errorf("pop")) _, err := pm.SendMessage(pm.ctx, "ns1", &core.MessageInOut{ InlineData: core.InlineData{ @@ -231,18 +231,18 @@ func TestResolveAndSendBadInlineData(t *testing.T) { mim := pm.identity.(*identitymanagermocks.Manager) localOrg := newTestOrg("localorg") localNode := newTestNode("node1", localOrg) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Run(func(args mock.Arguments) { + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Run(func(args mock.Arguments) { identity := args[2].(*core.SignerRef) identity.Author = "localorg" identity.Key = "localkey" }).Return(nil) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "localorg").Return(localOrg, false, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "localorg").Return(localOrg, false, nil) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() mdm := pm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) @@ -279,8 +279,8 @@ func TestSendUnpinnedMessageTooLarge(t *testing.T) { defer cancel() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Run(func(args mock.Arguments) { - identity := args[2].(*core.SignerRef) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Run(func(args mock.Arguments) { + identity := args[1].(*core.SignerRef) identity.Author = "localorg" identity.Key = "localkey" }).Return(nil) @@ -297,7 +297,7 @@ func TestSendUnpinnedMessageTooLarge(t *testing.T) { }).Return(nil) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{Hash: groupID}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{Hash: groupID}, nil) _, err := pm.SendMessage(pm.ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -350,18 +350,18 @@ func TestMessagePrepare(t *testing.T) { mim := pm.identity.(*identitymanagermocks.Manager) localOrg := newTestOrg("localorg") localNode := newTestNode("node1", localOrg) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Run(func(args mock.Arguments) { - identity := args[2].(*core.SignerRef) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Run(func(args mock.Arguments) { + identity := args[1].(*core.SignerRef) identity.Author = "localorg" identity.Key = "localkey" }).Return(nil) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "localorg").Return(localOrg, false, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "localorg").Return(localOrg, false, nil) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() mdm := pm.data.(*datamocks.Manager) mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) @@ -424,7 +424,7 @@ func TestSendUnpinnedMessageGroupLookupFail(t *testing.T) { groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(nil, fmt.Errorf("pop")).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(nil, fmt.Errorf("pop")).Once() err := pm.dispatchUnpinnedBatch(pm.ctx, &batch.DispatchState{ Persisted: core.BatchPersisted{ @@ -457,7 +457,7 @@ func TestSendUnpinnedMessageInsertFail(t *testing.T) { defer cancel() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.MatchedBy(func(identity *core.SignerRef) bool { + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.MatchedBy(func(identity *core.SignerRef) bool { assert.Empty(t, identity.Author) return true })).Return(nil) @@ -469,7 +469,7 @@ func TestSendUnpinnedMessageInsertFail(t *testing.T) { mdm.On("WriteNewMessage", pm.ctx, mock.Anything).Return(fmt.Errorf("pop")).Once() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{Hash: groupID}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{Hash: groupID}, nil) _, err := pm.SendMessage(pm.ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -504,7 +504,7 @@ func TestSendUnpinnedMessageConfirmFail(t *testing.T) { mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(fmt.Errorf("pop")) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(fmt.Errorf("pop")) _, err := pm.SendMessage(pm.ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -535,12 +535,12 @@ func TestSendUnpinnedMessageResolveGroupFail(t *testing.T) { mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(nil, fmt.Errorf("pop")).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(nil, fmt.Errorf("pop")).Once() mdx := pm.exchange.(*dataexchangemocks.Plugin) mdx.On("SendMessage", pm.ctx, mock.Anything, "peer2-remote", mock.Anything).Return("tracking1", nil).Once() @@ -578,12 +578,12 @@ func TestSendUnpinnedMessageResolveGroupNotFound(t *testing.T) { mdm.On("VerifyNamespaceExists", pm.ctx, "ns1").Return(nil) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(nil, nil) mdx := pm.exchange.(*dataexchangemocks.Plugin) mdx.On("SendMessage", pm.ctx, mock.Anything, "peer2-remote", mock.Anything).Return(nil).Once() @@ -647,7 +647,7 @@ func TestRequestReplySuccess(t *testing.T) { defer cancel() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.Anything).Return(nil) + mim.On("ResolveInputSigningIdentity", pm.ctx, mock.Anything).Return(nil) msa := pm.syncasync.(*syncasyncmocks.Bridge) msa.On("WaitForReply", pm.ctx, "ns1", mock.Anything, mock.Anything). @@ -665,7 +665,7 @@ func TestRequestReplySuccess(t *testing.T) { groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{Hash: groupID}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{Hash: groupID}, nil) _, err := pm.RequestReply(pm.ctx, "ns1", &core.MessageInOut{ Message: core.Message{ @@ -692,18 +692,14 @@ func TestDispatchedUnpinnedMessageOK(t *testing.T) { node2 := newTestNode("node2", newTestOrg("remoteorg")) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("ResolveInputSigningIdentity", pm.ctx, "ns1", mock.MatchedBy(func(identity *core.SignerRef) bool { - assert.Equal(t, "localorg", identity.Author) - return true - })).Return(nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mdx := pm.exchange.(*dataexchangemocks.Plugin) mdx.On("SendMessage", pm.ctx, mock.Anything, "node2-peer", mock.Anything).Return(nil) mdi := pm.database.(*databasemocks.Plugin) mom := pm.operations.(*operationmocks.Manager) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{ + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{ Hash: groupID, GroupIdentity: core.GroupIdentity{ Members: core.Members{ @@ -712,8 +708,8 @@ func TestDispatchedUnpinnedMessageOK(t *testing.T) { }, }, }, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node1.ID).Return(node1, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node2.ID).Return(node2, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node1.ID).Return(node1, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node2.ID).Return(node2, nil).Once() mom.On("AddOrReuseOperation", pm.ctx, mock.Anything).Return(nil) mom.On("RunOperation", pm.ctx, mock.MatchedBy(func(op *core.PreparedOperation) bool { @@ -745,6 +741,7 @@ func TestDispatchedUnpinnedMessageOK(t *testing.T) { mdi.AssertExpectations(t) mom.AssertExpectations(t) + mim.AssertExpectations(t) } @@ -763,7 +760,7 @@ func TestSendDataTransferBlobsFail(t *testing.T) { assert.Equal(t, "localorg", identity.Author) return true })).Return(nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mdi := pm.database.(*databasemocks.Plugin) mdi.On("GetBlobMatchingHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) @@ -812,7 +809,7 @@ func TestSendDataTransferFail(t *testing.T) { nodes := []*core.Identity{node2} mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mom := pm.operations.(*operationmocks.Manager) mom.On("AddOrReuseOperation", pm.ctx, mock.Anything).Return(nil) @@ -865,7 +862,7 @@ func TestSendDataTransferInsertOperationFail(t *testing.T) { assert.Equal(t, "localorg", identity.Author) return true })).Return(nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mom := pm.operations.(*operationmocks.Manager) mom.On("AddOrReuseOperation", pm.ctx, mock.Anything).Return(fmt.Errorf("pop")) diff --git a/internal/privatemessaging/operations.go b/internal/privatemessaging/operations.go index be789fc17b..d1fb177f2c 100644 --- a/internal/privatemessaging/operations.go +++ b/internal/privatemessaging/operations.go @@ -78,7 +78,7 @@ func (pm *privateMessaging) PrepareOperation(ctx context.Context, op *core.Opera if err != nil { return nil, err } - node, err := pm.database.GetIdentityByID(ctx, nodeID) + node, err := pm.identity.CachedIdentityLookupByID(ctx, nodeID) if err != nil { return nil, err } else if node == nil { @@ -97,13 +97,13 @@ func (pm *privateMessaging) PrepareOperation(ctx context.Context, op *core.Opera if err != nil { return nil, err } - node, err := pm.database.GetIdentityByID(ctx, nodeID) + node, err := pm.identity.CachedIdentityLookupByID(ctx, nodeID) if err != nil { return nil, err } else if node == nil { return nil, i18n.NewError(ctx, coremsgs.Msg404NotFound) } - group, err := pm.database.GetGroupByHash(ctx, groupHash) + group, err := pm.database.GetGroupByHash(ctx, pm.namespace, groupHash) if err != nil { return nil, err } else if group == nil { diff --git a/internal/privatemessaging/operations_test.go b/internal/privatemessaging/operations_test.go index 4598347c2a..75ebac06bc 100644 --- a/internal/privatemessaging/operations_test.go +++ b/internal/privatemessaging/operations_test.go @@ -24,6 +24,7 @@ import ( "github.com/hyperledger/firefly/mocks/databasemocks" "github.com/hyperledger/firefly/mocks/dataexchangemocks" "github.com/hyperledger/firefly/mocks/datamocks" + "github.com/hyperledger/firefly/mocks/identitymanagermocks" "github.com/hyperledger/firefly/pkg/core" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -56,7 +57,8 @@ func TestPrepareAndRunTransferBlob(t *testing.T) { mdi := pm.database.(*databasemocks.Plugin) mdx := pm.exchange.(*dataexchangemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), mock.Anything).Return(node, nil) mdi.On("GetBlobMatchingHash", context.Background(), blob.Hash).Return(blob, nil) mdx.On("TransferBlob", context.Background(), "ns1:"+op.ID.String(), "peer1", "payload").Return(nil) @@ -72,6 +74,7 @@ func TestPrepareAndRunTransferBlob(t *testing.T) { mdi.AssertExpectations(t) mdx.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareAndRunBatchSend(t *testing.T) { @@ -110,8 +113,9 @@ func TestPrepareAndRunBatchSend(t *testing.T) { mdx := pm.exchange.(*dataexchangemocks.Plugin) mdm := pm.data.(*datamocks.Manager) mdm.On("HydrateBatch", context.Background(), bp).Return(batch, nil) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) - mdi.On("GetGroupByHash", context.Background(), group.Hash).Return(group, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) + mdi.On("GetGroupByHash", context.Background(), "ns1", group.Hash).Return(group, nil) mdi.On("GetBatchByID", context.Background(), batch.ID).Return(bp, nil) mdx.On("SendMessage", context.Background(), "ns1:"+op.ID.String(), "peer1", mock.Anything).Return(nil) @@ -129,6 +133,7 @@ func TestPrepareAndRunBatchSend(t *testing.T) { mdi.AssertExpectations(t) mdx.AssertExpectations(t) mdm.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareAndRunBatchSendHydrateFail(t *testing.T) { @@ -166,8 +171,9 @@ func TestPrepareAndRunBatchSendHydrateFail(t *testing.T) { mdi := pm.database.(*databasemocks.Plugin) mdm := pm.data.(*datamocks.Manager) mdm.On("HydrateBatch", context.Background(), bp).Return(nil, fmt.Errorf("pop")) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) - mdi.On("GetGroupByHash", context.Background(), group.Hash).Return(group, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) + mdi.On("GetGroupByHash", context.Background(), "ns1", group.Hash).Return(group, nil) mdi.On("GetBatchByID", context.Background(), batch.ID).Return(bp, nil) _, err := pm.PrepareOperation(context.Background(), op) @@ -175,6 +181,7 @@ func TestPrepareAndRunBatchSendHydrateFail(t *testing.T) { mdi.AssertExpectations(t) mdm.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationNotSupported(t *testing.T) { @@ -214,13 +221,13 @@ func TestPrepareOperationBlobSendNodeFail(t *testing.T) { }, } - mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), nodeID).Return(nil, fmt.Errorf("pop")) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), nodeID).Return(nil, fmt.Errorf("pop")) _, err := pm.PrepareOperation(context.Background(), op) assert.EqualError(t, err, "pop") - mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBlobSendNodeNotFound(t *testing.T) { @@ -237,13 +244,13 @@ func TestPrepareOperationBlobSendNodeNotFound(t *testing.T) { }, } - mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), nodeID).Return(nil, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), nodeID).Return(nil, nil) _, err := pm.PrepareOperation(context.Background(), op) assert.Regexp(t, "FF10109", err) - mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBlobSendBlobFail(t *testing.T) { @@ -270,13 +277,15 @@ func TestPrepareOperationBlobSendBlobFail(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) mdi.On("GetBlobMatchingHash", context.Background(), blobHash).Return(nil, fmt.Errorf("pop")) _, err := pm.PrepareOperation(context.Background(), op) assert.EqualError(t, err, "pop") mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBlobSendBlobNotFound(t *testing.T) { @@ -303,13 +312,15 @@ func TestPrepareOperationBlobSendBlobNotFound(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) mdi.On("GetBlobMatchingHash", context.Background(), blobHash).Return(nil, nil) _, err := pm.PrepareOperation(context.Background(), op) assert.Regexp(t, "FF10109", err) mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBatchSendBadInput(t *testing.T) { @@ -341,13 +352,13 @@ func TestPrepareOperationBatchSendNodeFail(t *testing.T) { }, } - mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), nodeID).Return(nil, fmt.Errorf("pop")) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), nodeID).Return(nil, fmt.Errorf("pop")) _, err := pm.PrepareOperation(context.Background(), op) assert.EqualError(t, err, "pop") - mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBatchSendNodeNotFound(t *testing.T) { @@ -366,13 +377,13 @@ func TestPrepareOperationBatchSendNodeNotFound(t *testing.T) { }, } - mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), nodeID).Return(nil, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), nodeID).Return(nil, nil) _, err := pm.PrepareOperation(context.Background(), op) assert.Regexp(t, "FF10109", err) - mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBatchSendGroupFail(t *testing.T) { @@ -396,13 +407,15 @@ func TestPrepareOperationBatchSendGroupFail(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) - mdi.On("GetGroupByHash", context.Background(), groupHash).Return(nil, fmt.Errorf("pop")) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) + mdi.On("GetGroupByHash", context.Background(), "ns1", groupHash).Return(nil, fmt.Errorf("pop")) _, err := pm.PrepareOperation(context.Background(), op) assert.EqualError(t, err, "pop") mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBatchSendGroupNotFound(t *testing.T) { @@ -426,13 +439,15 @@ func TestPrepareOperationBatchSendGroupNotFound(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) - mdi.On("GetGroupByHash", context.Background(), groupHash).Return(nil, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) + mdi.On("GetGroupByHash", context.Background(), "ns1", groupHash).Return(nil, nil) _, err := pm.PrepareOperation(context.Background(), op) assert.Regexp(t, "FF10109", err) mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBatchSendBatchFail(t *testing.T) { @@ -458,14 +473,16 @@ func TestPrepareOperationBatchSendBatchFail(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) - mdi.On("GetGroupByHash", context.Background(), group.Hash).Return(group, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) + mdi.On("GetGroupByHash", context.Background(), "ns1", group.Hash).Return(group, nil) mdi.On("GetBatchByID", context.Background(), batchID).Return(nil, fmt.Errorf("pop")) _, err := pm.PrepareOperation(context.Background(), op) assert.EqualError(t, err, "pop") mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestPrepareOperationBatchSendBatchNotFound(t *testing.T) { @@ -491,14 +508,16 @@ func TestPrepareOperationBatchSendBatchNotFound(t *testing.T) { } mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", context.Background(), node.ID).Return(node, nil) - mdi.On("GetGroupByHash", context.Background(), group.Hash).Return(group, nil) + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", context.Background(), node.ID).Return(node, nil) + mdi.On("GetGroupByHash", context.Background(), "ns1", group.Hash).Return(group, nil) mdi.On("GetBatchByID", context.Background(), batchID).Return(nil, nil) _, err := pm.PrepareOperation(context.Background(), op) assert.Regexp(t, "FF10109", err) mdi.AssertExpectations(t) + mim.AssertExpectations(t) } func TestRunOperationNotSupported(t *testing.T) { diff --git a/internal/privatemessaging/privatemessaging.go b/internal/privatemessaging/privatemessaging.go index af2cfa0fbd..3cc8acbaa0 100644 --- a/internal/privatemessaging/privatemessaging.go +++ b/internal/privatemessaging/privatemessaging.go @@ -63,6 +63,7 @@ type privateMessaging struct { groupManager ctx context.Context + namespace string database database.Plugin identity identity.Manager exchange dataexchange.Plugin @@ -86,13 +87,14 @@ type blobTransferTracker struct { op *core.PreparedOperation } -func NewPrivateMessaging(ctx context.Context, di database.Plugin, im identity.Manager, dx dataexchange.Plugin, bi blockchain.Plugin, ba batch.Manager, dm data.Manager, sa syncasync.Bridge, bp batchpin.Submitter, mm metrics.Manager, om operations.Manager) (Manager, error) { +func NewPrivateMessaging(ctx context.Context, ns string, di database.Plugin, im identity.Manager, dx dataexchange.Plugin, bi blockchain.Plugin, ba batch.Manager, dm data.Manager, sa syncasync.Bridge, bp batchpin.Submitter, mm metrics.Manager, om operations.Manager) (Manager, error) { if di == nil || im == nil || dx == nil || bi == nil || ba == nil || dm == nil || mm == nil || om == nil { return nil, i18n.NewError(ctx, coremsgs.MsgInitializationNilDepError, "PrivateMessaging") } pm := &privateMessaging{ ctx: ctx, + namespace: ns, database: di, identity: im, exchange: dx, @@ -103,7 +105,9 @@ func NewPrivateMessaging(ctx context.Context, di database.Plugin, im identity.Ma batchpin: bp, localNodeName: config.GetString(coreconfig.NodeName), groupManager: groupManager{ + namespace: ns, database: di, + identity: im, data: dm, groupCacheTTL: config.GetDuration(coreconfig.GroupCacheTTL), }, @@ -269,7 +273,7 @@ func (pm *privateMessaging) sendData(ctx context.Context, tw *core.TransportWrap batch := tw.Batch // Lookup the local org - localOrg, err := pm.identity.GetMultipartyRootOrg(ctx, batch.Namespace) + localOrg, err := pm.identity.GetMultipartyRootOrg(ctx) if err != nil { return err } diff --git a/internal/privatemessaging/privatemessaging_test.go b/internal/privatemessaging/privatemessaging_test.go index 9c0f167fe6..825751d103 100644 --- a/internal/privatemessaging/privatemessaging_test.go +++ b/internal/privatemessaging/privatemessaging_test.go @@ -77,7 +77,7 @@ func newTestPrivateMessagingCommon(t *testing.T, metricsEnabled bool) (*privateM mom.On("RegisterHandler", mock.Anything, mock.Anything, mock.Anything) ctx, cancel := context.WithCancel(context.Background()) - pm, err := NewPrivateMessaging(ctx, mdi, mim, mdx, mbi, mba, mdm, msa, mbp, mmi, mom) + pm, err := NewPrivateMessaging(ctx, "ns1", mdi, mim, mdx, mbi, mba, mdm, msa, mbp, mmi, mom) assert.NoError(t, err) // Default mocks to save boilerplate in the tests @@ -135,8 +135,8 @@ func TestDispatchBatchWithBlobs(t *testing.T) { mim := pm.identity.(*identitymanagermocks.Manager) mom := pm.operations.(*operationmocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{ + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{ Hash: fftypes.NewRandB32(), GroupIdentity: core.GroupIdentity{ Name: "group1", @@ -146,8 +146,8 @@ func TestDispatchBatchWithBlobs(t *testing.T) { }, }, }, nil) - mdi.On("GetIdentityByID", pm.ctx, node1.ID).Return(node1, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node2.ID).Return(node2, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node1.ID).Return(node1, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node2.ID).Return(node2, nil).Once() mdi.On("GetBlobMatchingHash", pm.ctx, blob1).Return(&core.Blob{ Hash: blob1, PayloadRef: "/blob/1", @@ -212,7 +212,7 @@ func TestDispatchBatchWithBlobs(t *testing.T) { } func TestNewPrivateMessagingMissingDeps(t *testing.T) { - _, err := NewPrivateMessaging(context.Background(), nil, nil, nil, nil, nil, nil, nil, nil, nil, nil) + _, err := NewPrivateMessaging(context.Background(), "", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil) assert.Regexp(t, "FF10128", err) } @@ -221,7 +221,7 @@ func TestDispatchErrorFindingGroup(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) err := pm.dispatchPinnedBatch(pm.ctx, &batch.DispatchState{}) assert.Regexp(t, "pop", err) @@ -232,7 +232,7 @@ func TestSendAndSubmitBatchBadID(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) mbp := pm.batchpin.(*batchpinmocks.Submitter) mbp.On("SubmitPinnedBatch", pm.ctx, mock.Anything, mock.Anything, "").Return(fmt.Errorf("pop")) @@ -260,9 +260,10 @@ func TestSendAndSubmitBatchUnregisteredNode(t *testing.T) { node2 := newTestNode("node2", newTestOrg("remoteorg")) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", pm.ctx, node1.ID).Return(node1, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node2.ID).Return(node2, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{ + mim := pm.identity.(*identitymanagermocks.Manager) + mim.On("CachedIdentityLookupByID", pm.ctx, node1.ID).Return(node1, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node2.ID).Return(node2, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{ Hash: fftypes.NewRandB32(), GroupIdentity: core.GroupIdentity{ Name: "group1", @@ -273,8 +274,7 @@ func TestSendAndSubmitBatchUnregisteredNode(t *testing.T) { }, }, nil) - mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(nil, fmt.Errorf("pop")) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(nil, fmt.Errorf("pop")) err := pm.dispatchPinnedBatch(pm.ctx, &batch.DispatchState{ Persisted: core.BatchPersisted{ @@ -298,7 +298,7 @@ func TestSendImmediateFail(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) err := pm.dispatchPinnedBatch(pm.ctx, &batch.DispatchState{ Persisted: core.BatchPersisted{ @@ -324,12 +324,12 @@ func TestSendSubmitInsertOperationFail(t *testing.T) { node2 := newTestNode("node2", newTestOrg("remoteorg")) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", pm.ctx, node1.ID).Return(node1, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node2.ID).Return(node2, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{ + mim.On("CachedIdentityLookupByID", pm.ctx, node1.ID).Return(node1, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node2.ID).Return(node2, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{ Hash: fftypes.NewRandB32(), GroupIdentity: core.GroupIdentity{ Name: "group1", @@ -370,12 +370,12 @@ func TestSendSubmitBlobTransferFail(t *testing.T) { blob1 := fftypes.NewRandB32() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", pm.ctx, node1.ID).Return(node1, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node2.ID).Return(node2, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{ + mim.On("CachedIdentityLookupByID", pm.ctx, node1.ID).Return(node1, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node2.ID).Return(node2, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{ Hash: fftypes.NewRandB32(), GroupIdentity: core.GroupIdentity{ Name: "group1", @@ -430,12 +430,12 @@ func TestWriteTransactionSubmitBatchPinFail(t *testing.T) { blob1 := fftypes.NewRandB32() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", pm.ctx, node1.ID).Return(node1, nil).Once() - mdi.On("GetIdentityByID", pm.ctx, node2.ID).Return(node2, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{ + mim.On("CachedIdentityLookupByID", pm.ctx, node1.ID).Return(node1, nil).Once() + mim.On("CachedIdentityLookupByID", pm.ctx, node2.ID).Return(node2, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{ Hash: fftypes.NewRandB32(), GroupIdentity: core.GroupIdentity{ Name: "group1", diff --git a/internal/privatemessaging/recipients.go b/internal/privatemessaging/recipients.go index be3954f905..66aa914f17 100644 --- a/internal/privatemessaging/recipients.go +++ b/internal/privatemessaging/recipients.go @@ -31,7 +31,7 @@ import ( func (pm *privateMessaging) resolveRecipientList(ctx context.Context, in *core.MessageInOut) error { if in.Header.Group != nil { log.L(ctx).Debugf("Group '%s' specified for message", in.Header.Group) - group, err := pm.database.GetGroupByHash(ctx, in.Header.Group) + group, err := pm.database.GetGroupByHash(ctx, pm.namespace, in.Header.Group) if err != nil { return err } @@ -66,7 +66,7 @@ func (pm *privateMessaging) getFirstNodeForOrg(ctx context.Context, identity *co fb.Eq("parent", identity.ID), fb.Eq("type", core.IdentityTypeNode), ) - nodes, _, err := pm.database.GetIdentities(ctx, filter) + nodes, _, err := pm.database.GetIdentities(ctx, pm.namespace, filter) if err != nil || len(nodes) == 0 { return nil, err } @@ -79,7 +79,7 @@ func (pm *privateMessaging) getFirstNodeForOrg(ctx context.Context, identity *co func (pm *privateMessaging) resolveNode(ctx context.Context, identity *core.Identity, nodeInput string) (node *core.Identity, err error) { retryable := true if nodeInput != "" { - node, retryable, err = pm.identity.CachedIdentityLookupMustExist(ctx, identity.Namespace, nodeInput) + node, retryable, err = pm.identity.CachedIdentityLookupMustExist(ctx, nodeInput) } else { // Find any node owned by this organization inputIdentityDebugInfo := fmt.Sprintf("%s (%s)", identity.DID, identity.ID) @@ -107,7 +107,7 @@ func (pm *privateMessaging) resolveNode(ctx context.Context, identity *core.Iden func (pm *privateMessaging) getRecipients(ctx context.Context, in *core.MessageInOut) (gi *core.GroupIdentity, err error) { - localOrg, err := pm.identity.GetMultipartyRootOrg(ctx, in.Header.Namespace) + localOrg, err := pm.identity.GetMultipartyRootOrg(ctx) if err != nil { return nil, err } @@ -120,7 +120,7 @@ func (pm *privateMessaging) getRecipients(ctx context.Context, in *core.MessageI } for i, rInput := range in.Group.Members { // Resolve the identity - identity, _, err := pm.identity.CachedIdentityLookupMustExist(ctx, in.Header.Namespace, rInput.Identity) + identity, _, err := pm.identity.CachedIdentityLookupMustExist(ctx, rInput.Identity) if err != nil { return nil, err } @@ -161,7 +161,7 @@ func (pm *privateMessaging) resolveLocalNode(ctx context.Context, localOrg *core fb.Eq("type", core.IdentityTypeNode), fb.Eq("name", pm.localNodeName), ) - nodes, _, err := pm.database.GetIdentities(ctx, filter) + nodes, _, err := pm.database.GetIdentities(ctx, pm.namespace, filter) if err != nil { return nil, err } diff --git a/internal/privatemessaging/recipients_test.go b/internal/privatemessaging/recipients_test.go index 96f4a910b6..0bb457d395 100644 --- a/internal/privatemessaging/recipients_test.go +++ b/internal/privatemessaging/recipients_test.go @@ -42,14 +42,14 @@ func TestResolveMemberListNewGroupE2E(t *testing.T) { var dataID *fftypes.UUID mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{remoteNode}, nil, nil).Once() - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{remoteNode}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil).Once() + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(nil, nil).Once() mdi.On("UpsertGroup", pm.ctx, mock.Anything, database.UpsertOptimizationNew).Return(nil) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "remoteorg").Return(remoteOrg, false, nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localOrg, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "remoteorg").Return(remoteOrg, false, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localOrg, nil) ud := mdi.On("UpsertData", pm.ctx, mock.Anything, database.UpsertOptimizationNew).Return(nil) ud.RunFn = func(a mock.Arguments) { data := a[1].(*core.Data) @@ -112,11 +112,11 @@ func TestResolveMemberListExistingGroup(t *testing.T) { localNode := newTestNode("node1", localOrg) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(localOrg, false, nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localNode, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(localOrg, false, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localNode, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -148,8 +148,8 @@ func TestResolveMemberListLookupFail(t *testing.T) { localNode := newTestNode("node1", localOrg) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(nil, true, fmt.Errorf("pop")) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localNode, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(nil, true, fmt.Errorf("pop")) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localNode, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -180,11 +180,11 @@ func TestResolveMemberListGetGroupsFail(t *testing.T) { localNode := newTestNode("node1", localOrg) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(nil, fmt.Errorf("pop")) mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(localOrg, false, nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localNode, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(localOrg, false, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localNode, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -213,7 +213,7 @@ func TestResolveMemberListLocalOrgUnregistered(t *testing.T) { defer cancel() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(nil, fmt.Errorf("pop")) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(nil, fmt.Errorf("pop")) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -247,12 +247,12 @@ func TestResolveMemberListMissingLocalMemberLookupFailed(t *testing.T) { remoteNode := newTestNode("node2", remoteOrg) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{remoteNode}, nil, nil).Once() - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, fmt.Errorf("pop")).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{remoteNode}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, fmt.Errorf("pop")).Once() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(localOrg, false, nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localNode, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(localOrg, false, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localNode, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -284,11 +284,11 @@ func TestResolveMemberListNodeNotFound(t *testing.T) { localNode := newTestNode("node1", localOrg) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil).Once() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(localOrg, false, nil) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(localNode, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(localOrg, false, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(localNode, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -322,12 +322,12 @@ func TestResolveMemberNodeOwnedParentOrg(t *testing.T) { localNode := newTestNode("node1", parentOrg) mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil).Once() - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{localNode}, nil, nil) - mdi.On("GetGroupByHash", pm.ctx, mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil).Once() + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{localNode}, nil, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", mock.Anything, mock.Anything).Return(&core.Group{Hash: fftypes.NewRandB32()}, nil, nil).Once() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("GetMultipartyRootOrg", pm.ctx, "ns1").Return(parentOrg, nil) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "org1").Return(childOrg, false, nil) + mim.On("GetMultipartyRootOrg", pm.ctx).Return(parentOrg, nil) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "org1").Return(childOrg, false, nil) mim.On("CachedIdentityLookupByID", pm.ctx, parentOrg.ID).Return(parentOrg, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ @@ -356,7 +356,7 @@ func TestGetNodeFail(t *testing.T) { defer cancel() mim := pm.identity.(*identitymanagermocks.Manager) - mim.On("CachedIdentityLookupMustExist", pm.ctx, "ns1", "id-node1").Return(nil, true, fmt.Errorf("pop")) + mim.On("CachedIdentityLookupMustExist", pm.ctx, "id-node1").Return(nil, true, fmt.Errorf("pop")) _, err := pm.resolveNode(pm.ctx, newTestOrg("org1"), "id-node1") assert.Regexp(t, "pop", err) @@ -369,7 +369,7 @@ func TestResolveNodeByIDNoResult(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil) + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil) parentOrgID := fftypes.NewUUID() mim := pm.identity.(*identitymanagermocks.Manager) @@ -389,7 +389,7 @@ func TestResolveReceipientListExisting(t *testing.T) { groupID := fftypes.NewRandB32() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetGroupByHash", pm.ctx, groupID).Return(&core.Group{Hash: groupID}, nil) + mdi.On("GetGroupByHash", pm.ctx, "ns1", groupID).Return(&core.Group{Hash: groupID}, nil) err := pm.resolveRecipientList(pm.ctx, &core.MessageInOut{ Message: core.Message{ @@ -425,7 +425,7 @@ func TestResolveLocalNodeNotFound(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return([]*core.Identity{}, nil, nil) + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return([]*core.Identity{}, nil, nil) _, err := pm.resolveLocalNode(pm.ctx, newTestOrg("localorg")) assert.Regexp(t, "FF10225", err) @@ -436,7 +436,7 @@ func TestResolveLocalNodeNotError(t *testing.T) { defer cancel() mdi := pm.database.(*databasemocks.Plugin) - mdi.On("GetIdentities", pm.ctx, mock.Anything).Return(nil, nil, fmt.Errorf("pop")) + mdi.On("GetIdentities", pm.ctx, "ns1", mock.Anything).Return(nil, nil, fmt.Errorf("pop")) _, err := pm.resolveLocalNode(pm.ctx, newTestOrg("localorg")) assert.EqualError(t, err, "pop") diff --git a/internal/shareddownload/download_manager_test.go b/internal/shareddownload/download_manager_test.go index 5e8a1ddcc4..c44dc7edd9 100644 --- a/internal/shareddownload/download_manager_test.go +++ b/internal/shareddownload/download_manager_test.go @@ -50,7 +50,7 @@ func newTestDownloadManager(t *testing.T) (*downloadManager, func()) { mdx := &dataexchangemocks.Plugin{} mci := &shareddownloadmocks.Callbacks{} mdm := &datamocks.Manager{} - txHelper := txcommon.NewTransactionHelper(mdi, mdm) + txHelper := txcommon.NewTransactionHelper("ns1", mdi, mdm) mdi.On("Capabilities").Return(&database.Capabilities{ Concurrency: false, }) diff --git a/internal/syncasync/sync_async_bridge.go b/internal/syncasync/sync_async_bridge.go index 6c3c65fdf2..1c8aeac4f6 100644 --- a/internal/syncasync/sync_async_bridge.go +++ b/internal/syncasync/sync_async_bridge.go @@ -89,6 +89,7 @@ type inflightRequestMap map[string]map[fftypes.UUID]*inflightRequest type syncAsyncBridge struct { ctx context.Context + namespace string database database.Plugin data data.Manager sysevents sysmessaging.SystemEvents @@ -96,12 +97,13 @@ type syncAsyncBridge struct { inflight inflightRequestMap } -func NewSyncAsyncBridge(ctx context.Context, di database.Plugin, dm data.Manager) Bridge { +func NewSyncAsyncBridge(ctx context.Context, ns string, di database.Plugin, dm data.Manager) Bridge { sa := &syncAsyncBridge{ - ctx: log.WithLogField(ctx, "role", "sync-async-bridge"), - database: di, - data: dm, - inflight: make(inflightRequestMap), + ctx: log.WithLogField(ctx, "role", "sync-async-bridge"), + namespace: ns, + database: di, + data: dm, + inflight: make(inflightRequestMap), } return sa } @@ -177,7 +179,7 @@ func (sa *syncAsyncBridge) getMessageFromEvent(event *core.EventDelivery) (msg * } func (sa *syncAsyncBridge) getIdentityFromEvent(event *core.EventDelivery) (identity *core.Identity, err error) { - if identity, err = sa.database.GetIdentityByID(sa.ctx, event.Reference); err != nil { + if identity, err = sa.database.GetIdentityByID(sa.ctx, sa.namespace, event.Reference); err != nil { return nil, err } if identity == nil { diff --git a/internal/syncasync/sync_async_bridge_test.go b/internal/syncasync/sync_async_bridge_test.go index 171020761d..87222397bb 100644 --- a/internal/syncasync/sync_async_bridge_test.go +++ b/internal/syncasync/sync_async_bridge_test.go @@ -36,7 +36,7 @@ func newTestSyncAsyncBridge(t *testing.T) (*syncAsyncBridge, func()) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} mse := &sysmessagingmocks.SystemEvents{} - sa := NewSyncAsyncBridge(ctx, mdi, mdm) + sa := NewSyncAsyncBridge(ctx, "ns1", mdi, mdm) sa.Init(mse) return sa.(*syncAsyncBridge), cancel } @@ -372,7 +372,7 @@ func TestEventCallbackIdentityLookupFail(t *testing.T) { } mdi := sa.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", sa.ctx, mock.Anything).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", sa.ctx, "ns1", mock.Anything).Return(nil, fmt.Errorf("pop")) err := sa.eventCallback(&core.EventDelivery{ EnrichedEvent: core.EnrichedEvent{ @@ -403,7 +403,7 @@ func TestEventCallbackIdentityLookupNotFound(t *testing.T) { } mdi := sa.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", sa.ctx, mock.Anything).Return(nil, nil) + mdi.On("GetIdentityByID", sa.ctx, "ns1", mock.Anything).Return(nil, nil) err := sa.eventCallback(&core.EventDelivery{ EnrichedEvent: core.EnrichedEvent{ @@ -1384,7 +1384,7 @@ func TestAwaitIdentityConfirmed(t *testing.T) { mse.On("AddSystemEventListener", "ns1", mock.Anything).Return(nil) mdi := sa.database.(*databasemocks.Plugin) - mdi.On("GetIdentityByID", sa.ctx, requestID).Return(identity, nil) + mdi.On("GetIdentityByID", sa.ctx, "ns1", requestID).Return(identity, nil) retIdentity, err := sa.WaitForIdentity(sa.ctx, "ns1", requestID, func(ctx context.Context) error { go func() { diff --git a/internal/txcommon/event_enrich.go b/internal/txcommon/event_enrich.go index a4f03eb583..f467c8b429 100644 --- a/internal/txcommon/event_enrich.go +++ b/internal/txcommon/event_enrich.go @@ -65,7 +65,7 @@ func (t *transactionHelper) EnrichEvent(ctx context.Context, event *core.Event) } e.Datatype = dt case core.EventTypeIdentityConfirmed, core.EventTypeIdentityUpdated: - identity, err := t.database.GetIdentityByID(ctx, event.Reference) + identity, err := t.database.GetIdentityByID(ctx, t.namespace, event.Reference) if err != nil { return nil, err } diff --git a/internal/txcommon/event_enrich_test.go b/internal/txcommon/event_enrich_test.go index 1852cc2881..cb2c90cbbe 100644 --- a/internal/txcommon/event_enrich_test.go +++ b/internal/txcommon/event_enrich_test.go @@ -32,7 +32,7 @@ import ( func TestEnrichMessageConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -58,7 +58,7 @@ func TestEnrichMessageConfirmed(t *testing.T) { func TestEnrichMessageFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -81,7 +81,7 @@ func TestEnrichMessageFail(t *testing.T) { func TestEnrichMessageRejected(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -107,7 +107,7 @@ func TestEnrichMessageRejected(t *testing.T) { func TestEnrichTxSubmitted(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -133,7 +133,7 @@ func TestEnrichTxSubmitted(t *testing.T) { func TestEnrichTxFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -156,7 +156,7 @@ func TestEnrichTxFail(t *testing.T) { func TestEnrichBlockchainEventSubmitted(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -182,7 +182,7 @@ func TestEnrichBlockchainEventSubmitted(t *testing.T) { func TestEnrichBlockchainEventFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -205,7 +205,7 @@ func TestEnrichBlockchainEventFail(t *testing.T) { func TestEnrichContractAPISubmitted(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -231,7 +231,7 @@ func TestEnrichContractAPISubmitted(t *testing.T) { func TestEnrichContractAPItFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -254,7 +254,7 @@ func TestEnrichContractAPItFail(t *testing.T) { func TestEnrichContractInterfaceSubmitted(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -280,7 +280,7 @@ func TestEnrichContractInterfaceSubmitted(t *testing.T) { func TestEnrichContractInterfacetFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -303,7 +303,7 @@ func TestEnrichContractInterfacetFail(t *testing.T) { func TestEnrichDatatypeConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -329,7 +329,7 @@ func TestEnrichDatatypeConfirmed(t *testing.T) { func TestEnrichDatatypeConfirmedFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -352,7 +352,7 @@ func TestEnrichDatatypeConfirmedFail(t *testing.T) { func TestEnrichIdentityConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -360,7 +360,7 @@ func TestEnrichIdentityConfirmed(t *testing.T) { ev1 := fftypes.NewUUID() // Setup enrichment - mdi.On("GetIdentityByID", mock.Anything, ref1).Return(&core.Identity{ + mdi.On("GetIdentityByID", mock.Anything, "ns1", ref1).Return(&core.Identity{ IdentityBase: core.IdentityBase{ ID: ref1, }, @@ -380,7 +380,7 @@ func TestEnrichIdentityConfirmed(t *testing.T) { func TestEnrichIdentityConfirmedFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -388,7 +388,7 @@ func TestEnrichIdentityConfirmedFail(t *testing.T) { ev1 := fftypes.NewUUID() // Setup enrichment - mdi.On("GetIdentityByID", mock.Anything, ref1).Return(nil, fmt.Errorf("pop")) + mdi.On("GetIdentityByID", mock.Anything, "ns1", ref1).Return(nil, fmt.Errorf("pop")) event := &core.Event{ ID: ev1, @@ -403,7 +403,7 @@ func TestEnrichIdentityConfirmedFail(t *testing.T) { func TestEnrichNamespaceConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -429,7 +429,7 @@ func TestEnrichNamespaceConfirmed(t *testing.T) { func TestEnrichNamespaceConfirmedFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -452,7 +452,7 @@ func TestEnrichNamespaceConfirmedFail(t *testing.T) { func TestEnrichTokenPoolConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -478,7 +478,7 @@ func TestEnrichTokenPoolConfirmed(t *testing.T) { func TestEnrichTokenPoolConfirmedFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -501,7 +501,7 @@ func TestEnrichTokenPoolConfirmedFail(t *testing.T) { func TestEnrichTokenApprovalConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -527,7 +527,7 @@ func TestEnrichTokenApprovalConfirmed(t *testing.T) { func TestEnrichTokenApprovalFailed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -553,7 +553,7 @@ func TestEnrichTokenApprovalFailed(t *testing.T) { func TestEnrichTokenApprovalConfirmedFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -576,7 +576,7 @@ func TestEnrichTokenApprovalConfirmedFail(t *testing.T) { func TestEnrichTokenTransferConfirmed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -602,7 +602,7 @@ func TestEnrichTokenTransferConfirmed(t *testing.T) { func TestEnrichTokenTransferFailed(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -628,7 +628,7 @@ func TestEnrichTokenTransferFailed(t *testing.T) { func TestEnrichTokenTransferConfirmedFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs @@ -651,7 +651,7 @@ func TestEnrichTokenTransferConfirmedFail(t *testing.T) { func TestEnrichOperationFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() // Setup the IDs diff --git a/internal/txcommon/txcommon.go b/internal/txcommon/txcommon.go index 141e2a1194..b63c9e5dcd 100644 --- a/internal/txcommon/txcommon.go +++ b/internal/txcommon/txcommon.go @@ -42,6 +42,7 @@ type Helper interface { } type transactionHelper struct { + namespace string database database.Plugin data data.Manager transactionCache *ccache.Cache @@ -50,10 +51,11 @@ type transactionHelper struct { blockchainEventTTL time.Duration } -func NewTransactionHelper(di database.Plugin, dm data.Manager) Helper { +func NewTransactionHelper(ns string, di database.Plugin, dm data.Manager) Helper { t := &transactionHelper{ - database: di, - data: dm, + namespace: ns, + database: di, + data: dm, } t.transactionCache = ccache.New( // We use a LRU cache with a size-aware max diff --git a/internal/txcommon/txcommon_test.go b/internal/txcommon/txcommon_test.go index 77fedc5742..03ac2888c6 100644 --- a/internal/txcommon/txcommon_test.go +++ b/internal/txcommon/txcommon_test.go @@ -57,7 +57,7 @@ func TestSubmitNewTransactionOK(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() var txidInserted *fftypes.UUID @@ -85,7 +85,7 @@ func TestSubmitNewTransactionFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() mdi.On("InsertTransaction", ctx, mock.Anything).Return(fmt.Errorf("pop")) @@ -101,7 +101,7 @@ func TestSubmitNewTransactionEventFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() mdi.On("InsertTransaction", ctx, mock.Anything).Return(nil) @@ -118,7 +118,7 @@ func TestPersistTransactionNew(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -143,7 +143,7 @@ func TestPersistTransactionNewInserTFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -162,7 +162,7 @@ func TestPersistTransactionExistingAddBlockchainID(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -187,7 +187,7 @@ func TestPersistTransactionExistingUpdateFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -212,7 +212,7 @@ func TestPersistTransactionExistingNoChange(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -236,7 +236,7 @@ func TestPersistTransactionExistingNoBlockchainID(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -260,7 +260,7 @@ func TestPersistTransactionExistingLookupFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -278,7 +278,7 @@ func TestPersistTransactionExistingMismatchNS(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -302,7 +302,7 @@ func TestPersistTransactionExistingMismatchType(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() txid := fftypes.NewUUID() @@ -326,7 +326,7 @@ func TestAddBlockchainTX(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() tx := &core.Transaction{ @@ -356,7 +356,7 @@ func TestAddBlockchainTXUpdateFail(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() tx := &core.Transaction{ @@ -379,7 +379,7 @@ func TestAddBlockchainTXUnchanged(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() tx := &core.Transaction{ @@ -433,7 +433,7 @@ func TestGetBlockchainEventByIDCached(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() evID := fftypes.NewUUID() @@ -458,7 +458,7 @@ func TestGetBlockchainEventByIDNil(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() evID := fftypes.NewUUID() @@ -476,7 +476,7 @@ func TestGetBlockchainEventByIDErr(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() evID := fftypes.NewUUID() @@ -493,7 +493,7 @@ func TestInsertGetBlockchainEventCached(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() evID := fftypes.NewUUID() @@ -518,7 +518,7 @@ func TestInsertGetBlockchainEventErr(t *testing.T) { mdi := &databasemocks.Plugin{} mdm := &datamocks.Manager{} - txHelper := NewTransactionHelper(mdi, mdm) + txHelper := NewTransactionHelper("ns1", mdi, mdm) ctx := context.Background() evID := fftypes.NewUUID() diff --git a/mocks/databasemocks/plugin.go b/mocks/databasemocks/plugin.go index 37e33d2399..d2ff7d3e3a 100644 --- a/mocks/databasemocks/plugin.go +++ b/mocks/databasemocks/plugin.go @@ -1071,13 +1071,13 @@ func (_m *Plugin) GetFFIs(ctx context.Context, ns string, filter database.Filter return r0, r1, r2 } -// GetGroupByHash provides a mock function with given fields: ctx, hash -func (_m *Plugin) GetGroupByHash(ctx context.Context, hash *fftypes.Bytes32) (*core.Group, error) { - ret := _m.Called(ctx, hash) +// GetGroupByHash provides a mock function with given fields: ctx, namespace, hash +func (_m *Plugin) GetGroupByHash(ctx context.Context, namespace string, hash *fftypes.Bytes32) (*core.Group, error) { + ret := _m.Called(ctx, namespace, hash) var r0 *core.Group - if rf, ok := ret.Get(0).(func(context.Context, *fftypes.Bytes32) *core.Group); ok { - r0 = rf(ctx, hash) + if rf, ok := ret.Get(0).(func(context.Context, string, *fftypes.Bytes32) *core.Group); ok { + r0 = rf(ctx, namespace, hash) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Group) @@ -1085,8 +1085,8 @@ func (_m *Plugin) GetGroupByHash(ctx context.Context, hash *fftypes.Bytes32) (*c } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, *fftypes.Bytes32) error); ok { - r1 = rf(ctx, hash) + if rf, ok := ret.Get(1).(func(context.Context, string, *fftypes.Bytes32) error); ok { + r1 = rf(ctx, namespace, hash) } else { r1 = ret.Error(1) } @@ -1094,13 +1094,13 @@ func (_m *Plugin) GetGroupByHash(ctx context.Context, hash *fftypes.Bytes32) (*c return r0, r1 } -// GetGroups provides a mock function with given fields: ctx, filter -func (_m *Plugin) GetGroups(ctx context.Context, filter database.Filter) ([]*core.Group, *database.FilterResult, error) { - ret := _m.Called(ctx, filter) +// GetGroups provides a mock function with given fields: ctx, namespace, filter +func (_m *Plugin) GetGroups(ctx context.Context, namespace string, filter database.Filter) ([]*core.Group, *database.FilterResult, error) { + ret := _m.Called(ctx, namespace, filter) var r0 []*core.Group - if rf, ok := ret.Get(0).(func(context.Context, database.Filter) []*core.Group); ok { - r0 = rf(ctx, filter) + if rf, ok := ret.Get(0).(func(context.Context, string, database.Filter) []*core.Group); ok { + r0 = rf(ctx, namespace, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Group) @@ -1108,8 +1108,8 @@ func (_m *Plugin) GetGroups(ctx context.Context, filter database.Filter) ([]*cor } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, database.Filter) *database.FilterResult); ok { - r1 = rf(ctx, filter) + if rf, ok := ret.Get(1).(func(context.Context, string, database.Filter) *database.FilterResult); ok { + r1 = rf(ctx, namespace, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -1117,8 +1117,8 @@ func (_m *Plugin) GetGroups(ctx context.Context, filter database.Filter) ([]*cor } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, database.Filter) error); ok { - r2 = rf(ctx, filter) + if rf, ok := ret.Get(2).(func(context.Context, string, database.Filter) error); ok { + r2 = rf(ctx, namespace, filter) } else { r2 = ret.Error(2) } @@ -1126,13 +1126,13 @@ func (_m *Plugin) GetGroups(ctx context.Context, filter database.Filter) ([]*cor return r0, r1, r2 } -// GetIdentities provides a mock function with given fields: ctx, filter -func (_m *Plugin) GetIdentities(ctx context.Context, filter database.Filter) ([]*core.Identity, *database.FilterResult, error) { - ret := _m.Called(ctx, filter) +// GetIdentities provides a mock function with given fields: ctx, namespace, filter +func (_m *Plugin) GetIdentities(ctx context.Context, namespace string, filter database.Filter) ([]*core.Identity, *database.FilterResult, error) { + ret := _m.Called(ctx, namespace, filter) var r0 []*core.Identity - if rf, ok := ret.Get(0).(func(context.Context, database.Filter) []*core.Identity); ok { - r0 = rf(ctx, filter) + if rf, ok := ret.Get(0).(func(context.Context, string, database.Filter) []*core.Identity); ok { + r0 = rf(ctx, namespace, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Identity) @@ -1140,8 +1140,8 @@ func (_m *Plugin) GetIdentities(ctx context.Context, filter database.Filter) ([] } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, database.Filter) *database.FilterResult); ok { - r1 = rf(ctx, filter) + if rf, ok := ret.Get(1).(func(context.Context, string, database.Filter) *database.FilterResult); ok { + r1 = rf(ctx, namespace, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -1149,8 +1149,8 @@ func (_m *Plugin) GetIdentities(ctx context.Context, filter database.Filter) ([] } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, database.Filter) error); ok { - r2 = rf(ctx, filter) + if rf, ok := ret.Get(2).(func(context.Context, string, database.Filter) error); ok { + r2 = rf(ctx, namespace, filter) } else { r2 = ret.Error(2) } @@ -1158,13 +1158,13 @@ func (_m *Plugin) GetIdentities(ctx context.Context, filter database.Filter) ([] return r0, r1, r2 } -// GetIdentityByDID provides a mock function with given fields: ctx, did -func (_m *Plugin) GetIdentityByDID(ctx context.Context, did string) (*core.Identity, error) { - ret := _m.Called(ctx, did) +// GetIdentityByDID provides a mock function with given fields: ctx, namespace, did +func (_m *Plugin) GetIdentityByDID(ctx context.Context, namespace string, did string) (*core.Identity, error) { + ret := _m.Called(ctx, namespace, did) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { - r0 = rf(ctx, did) + if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { + r0 = rf(ctx, namespace, did) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -1172,8 +1172,8 @@ func (_m *Plugin) GetIdentityByDID(ctx context.Context, did string) (*core.Ident } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, did) + if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { + r1 = rf(ctx, namespace, did) } else { r1 = ret.Error(1) } @@ -1181,13 +1181,13 @@ func (_m *Plugin) GetIdentityByDID(ctx context.Context, did string) (*core.Ident return r0, r1 } -// GetIdentityByID provides a mock function with given fields: ctx, id -func (_m *Plugin) GetIdentityByID(ctx context.Context, id *fftypes.UUID) (*core.Identity, error) { - ret := _m.Called(ctx, id) +// GetIdentityByID provides a mock function with given fields: ctx, namespace, id +func (_m *Plugin) GetIdentityByID(ctx context.Context, namespace string, id *fftypes.UUID) (*core.Identity, error) { + ret := _m.Called(ctx, namespace, id) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, *fftypes.UUID) *core.Identity); ok { - r0 = rf(ctx, id) + if rf, ok := ret.Get(0).(func(context.Context, string, *fftypes.UUID) *core.Identity); ok { + r0 = rf(ctx, namespace, id) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -1195,8 +1195,8 @@ func (_m *Plugin) GetIdentityByID(ctx context.Context, id *fftypes.UUID) (*core. } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, *fftypes.UUID) error); ok { - r1 = rf(ctx, id) + if rf, ok := ret.Get(1).(func(context.Context, string, *fftypes.UUID) error); ok { + r1 = rf(ctx, namespace, id) } else { r1 = ret.Error(1) } @@ -2167,13 +2167,13 @@ func (_m *Plugin) GetTransactions(ctx context.Context, filter database.Filter) ( return r0, r1, r2 } -// GetVerifierByHash provides a mock function with given fields: ctx, hash -func (_m *Plugin) GetVerifierByHash(ctx context.Context, hash *fftypes.Bytes32) (*core.Verifier, error) { - ret := _m.Called(ctx, hash) +// GetVerifierByHash provides a mock function with given fields: ctx, namespace, hash +func (_m *Plugin) GetVerifierByHash(ctx context.Context, namespace string, hash *fftypes.Bytes32) (*core.Verifier, error) { + ret := _m.Called(ctx, namespace, hash) var r0 *core.Verifier - if rf, ok := ret.Get(0).(func(context.Context, *fftypes.Bytes32) *core.Verifier); ok { - r0 = rf(ctx, hash) + if rf, ok := ret.Get(0).(func(context.Context, string, *fftypes.Bytes32) *core.Verifier); ok { + r0 = rf(ctx, namespace, hash) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Verifier) @@ -2181,8 +2181,8 @@ func (_m *Plugin) GetVerifierByHash(ctx context.Context, hash *fftypes.Bytes32) } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, *fftypes.Bytes32) error); ok { - r1 = rf(ctx, hash) + if rf, ok := ret.Get(1).(func(context.Context, string, *fftypes.Bytes32) error); ok { + r1 = rf(ctx, namespace, hash) } else { r1 = ret.Error(1) } @@ -2213,13 +2213,13 @@ func (_m *Plugin) GetVerifierByValue(ctx context.Context, vType fftypes.FFEnum, return r0, r1 } -// GetVerifiers provides a mock function with given fields: ctx, filter -func (_m *Plugin) GetVerifiers(ctx context.Context, filter database.Filter) ([]*core.Verifier, *database.FilterResult, error) { - ret := _m.Called(ctx, filter) +// GetVerifiers provides a mock function with given fields: ctx, namespace, filter +func (_m *Plugin) GetVerifiers(ctx context.Context, namespace string, filter database.Filter) ([]*core.Verifier, *database.FilterResult, error) { + ret := _m.Called(ctx, namespace, filter) var r0 []*core.Verifier - if rf, ok := ret.Get(0).(func(context.Context, database.Filter) []*core.Verifier); ok { - r0 = rf(ctx, filter) + if rf, ok := ret.Get(0).(func(context.Context, string, database.Filter) []*core.Verifier); ok { + r0 = rf(ctx, namespace, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Verifier) @@ -2227,8 +2227,8 @@ func (_m *Plugin) GetVerifiers(ctx context.Context, filter database.Filter) ([]* } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, database.Filter) *database.FilterResult); ok { - r1 = rf(ctx, filter) + if rf, ok := ret.Get(1).(func(context.Context, string, database.Filter) *database.FilterResult); ok { + r1 = rf(ctx, namespace, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -2236,8 +2236,8 @@ func (_m *Plugin) GetVerifiers(ctx context.Context, filter database.Filter) ([]* } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, database.Filter) error); ok { - r2 = rf(ctx, filter) + if rf, ok := ret.Get(2).(func(context.Context, string, database.Filter) error); ok { + r2 = rf(ctx, namespace, filter) } else { r2 = ret.Error(2) } @@ -2563,34 +2563,6 @@ func (_m *Plugin) UpdateEvent(ctx context.Context, id *fftypes.UUID, update data return r0 } -// UpdateGroup provides a mock function with given fields: ctx, hash, update -func (_m *Plugin) UpdateGroup(ctx context.Context, hash *fftypes.Bytes32, update database.Update) error { - ret := _m.Called(ctx, hash, update) - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *fftypes.Bytes32, database.Update) error); ok { - r0 = rf(ctx, hash, update) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// UpdateIdentity provides a mock function with given fields: ctx, id, update -func (_m *Plugin) UpdateIdentity(ctx context.Context, id *fftypes.UUID, update database.Update) error { - ret := _m.Called(ctx, id, update) - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *fftypes.UUID, database.Update) error); ok { - r0 = rf(ctx, id, update) - } else { - r0 = ret.Error(0) - } - - return r0 -} - // UpdateMessage provides a mock function with given fields: ctx, id, update func (_m *Plugin) UpdateMessage(ctx context.Context, id *fftypes.UUID, update database.Update) error { ret := _m.Called(ctx, id, update) @@ -2745,20 +2717,6 @@ func (_m *Plugin) UpdateTransaction(ctx context.Context, id *fftypes.UUID, updat return r0 } -// UpdateVerifier provides a mock function with given fields: ctx, hash, update -func (_m *Plugin) UpdateVerifier(ctx context.Context, hash *fftypes.Bytes32, update database.Update) error { - ret := _m.Called(ctx, hash, update) - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *fftypes.Bytes32, database.Update) error); ok { - r0 = rf(ctx, hash, update) - } else { - r0 = ret.Error(0) - } - - return r0 -} - // UpsertBatch provides a mock function with given fields: ctx, data func (_m *Plugin) UpsertBatch(ctx context.Context, data *core.BatchPersisted) error { ret := _m.Called(ctx, data) diff --git a/mocks/identitymanagermocks/manager.go b/mocks/identitymanagermocks/manager.go index 1a1a0db381..d857118c9c 100644 --- a/mocks/identitymanagermocks/manager.go +++ b/mocks/identitymanagermocks/manager.go @@ -39,13 +39,13 @@ func (_m *Manager) CachedIdentityLookupByID(ctx context.Context, id *fftypes.UUI return r0, r1 } -// CachedIdentityLookupMustExist provides a mock function with given fields: ctx, namespace, did -func (_m *Manager) CachedIdentityLookupMustExist(ctx context.Context, namespace string, did string) (*core.Identity, bool, error) { - ret := _m.Called(ctx, namespace, did) +// CachedIdentityLookupMustExist provides a mock function with given fields: ctx, did +func (_m *Manager) CachedIdentityLookupMustExist(ctx context.Context, did string) (*core.Identity, bool, error) { + ret := _m.Called(ctx, did) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { - r0 = rf(ctx, namespace, did) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { + r0 = rf(ctx, did) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -53,15 +53,15 @@ func (_m *Manager) CachedIdentityLookupMustExist(ctx context.Context, namespace } var r1 bool - if rf, ok := ret.Get(1).(func(context.Context, string, string) bool); ok { - r1 = rf(ctx, namespace, did) + if rf, ok := ret.Get(1).(func(context.Context, string) bool); ok { + r1 = rf(ctx, did) } else { r1 = ret.Get(1).(bool) } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, string) error); ok { - r2 = rf(ctx, namespace, did) + if rf, ok := ret.Get(2).(func(context.Context, string) error); ok { + r2 = rf(ctx, did) } else { r2 = ret.Error(2) } @@ -69,13 +69,13 @@ func (_m *Manager) CachedIdentityLookupMustExist(ctx context.Context, namespace return r0, r1, r2 } -// CachedIdentityLookupNilOK provides a mock function with given fields: ctx, namespace, did -func (_m *Manager) CachedIdentityLookupNilOK(ctx context.Context, namespace string, did string) (*core.Identity, bool, error) { - ret := _m.Called(ctx, namespace, did) +// CachedIdentityLookupNilOK provides a mock function with given fields: ctx, did +func (_m *Manager) CachedIdentityLookupNilOK(ctx context.Context, did string) (*core.Identity, bool, error) { + ret := _m.Called(ctx, did) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { - r0 = rf(ctx, namespace, did) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { + r0 = rf(ctx, did) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -83,15 +83,15 @@ func (_m *Manager) CachedIdentityLookupNilOK(ctx context.Context, namespace stri } var r1 bool - if rf, ok := ret.Get(1).(func(context.Context, string, string) bool); ok { - r1 = rf(ctx, namespace, did) + if rf, ok := ret.Get(1).(func(context.Context, string) bool); ok { + r1 = rf(ctx, did) } else { r1 = ret.Get(1).(bool) } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, string) error); ok { - r2 = rf(ctx, namespace, did) + if rf, ok := ret.Get(2).(func(context.Context, string) error); ok { + r2 = rf(ctx, did) } else { r2 = ret.Error(2) } @@ -99,13 +99,13 @@ func (_m *Manager) CachedIdentityLookupNilOK(ctx context.Context, namespace stri return r0, r1, r2 } -// CachedVerifierLookup provides a mock function with given fields: ctx, vType, namespace, value -func (_m *Manager) CachedVerifierLookup(ctx context.Context, vType fftypes.FFEnum, namespace string, value string) (*core.Verifier, error) { - ret := _m.Called(ctx, vType, namespace, value) +// CachedVerifierLookup provides a mock function with given fields: ctx, vType, value +func (_m *Manager) CachedVerifierLookup(ctx context.Context, vType fftypes.FFEnum, value string) (*core.Verifier, error) { + ret := _m.Called(ctx, vType, value) var r0 *core.Verifier - if rf, ok := ret.Get(0).(func(context.Context, fftypes.FFEnum, string, string) *core.Verifier); ok { - r0 = rf(ctx, vType, namespace, value) + if rf, ok := ret.Get(0).(func(context.Context, fftypes.FFEnum, string) *core.Verifier); ok { + r0 = rf(ctx, vType, value) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Verifier) @@ -113,8 +113,8 @@ func (_m *Manager) CachedVerifierLookup(ctx context.Context, vType fftypes.FFEnu } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, fftypes.FFEnum, string, string) error); ok { - r1 = rf(ctx, vType, namespace, value) + if rf, ok := ret.Get(1).(func(context.Context, fftypes.FFEnum, string) error); ok { + r1 = rf(ctx, vType, value) } else { r1 = ret.Error(1) } @@ -122,13 +122,13 @@ func (_m *Manager) CachedVerifierLookup(ctx context.Context, vType fftypes.FFEnu return r0, r1 } -// FindIdentityForVerifier provides a mock function with given fields: ctx, iTypes, namespace, verifier -func (_m *Manager) FindIdentityForVerifier(ctx context.Context, iTypes []fftypes.FFEnum, namespace string, verifier *core.VerifierRef) (*core.Identity, error) { - ret := _m.Called(ctx, iTypes, namespace, verifier) +// FindIdentityForVerifier provides a mock function with given fields: ctx, iTypes, verifier +func (_m *Manager) FindIdentityForVerifier(ctx context.Context, iTypes []fftypes.FFEnum, verifier *core.VerifierRef) (*core.Identity, error) { + ret := _m.Called(ctx, iTypes, verifier) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, []fftypes.FFEnum, string, *core.VerifierRef) *core.Identity); ok { - r0 = rf(ctx, iTypes, namespace, verifier) + if rf, ok := ret.Get(0).(func(context.Context, []fftypes.FFEnum, *core.VerifierRef) *core.Identity); ok { + r0 = rf(ctx, iTypes, verifier) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -136,8 +136,8 @@ func (_m *Manager) FindIdentityForVerifier(ctx context.Context, iTypes []fftypes } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, []fftypes.FFEnum, string, *core.VerifierRef) error); ok { - r1 = rf(ctx, iTypes, namespace, verifier) + if rf, ok := ret.Get(1).(func(context.Context, []fftypes.FFEnum, *core.VerifierRef) error); ok { + r1 = rf(ctx, iTypes, verifier) } else { r1 = ret.Error(1) } @@ -145,13 +145,13 @@ func (_m *Manager) FindIdentityForVerifier(ctx context.Context, iTypes []fftypes return r0, r1 } -// GetMultipartyRootOrg provides a mock function with given fields: ctx, namespace -func (_m *Manager) GetMultipartyRootOrg(ctx context.Context, namespace string) (*core.Identity, error) { - ret := _m.Called(ctx, namespace) +// GetMultipartyRootOrg provides a mock function with given fields: ctx +func (_m *Manager) GetMultipartyRootOrg(ctx context.Context) (*core.Identity, error) { + ret := _m.Called(ctx) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { - r0 = rf(ctx, namespace) + if rf, ok := ret.Get(0).(func(context.Context) *core.Identity); ok { + r0 = rf(ctx) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -159,8 +159,8 @@ func (_m *Manager) GetMultipartyRootOrg(ctx context.Context, namespace string) ( } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, namespace) + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) } else { r1 = ret.Error(1) } @@ -168,13 +168,13 @@ func (_m *Manager) GetMultipartyRootOrg(ctx context.Context, namespace string) ( return r0, r1 } -// GetMultipartyRootVerifier provides a mock function with given fields: ctx, namespace -func (_m *Manager) GetMultipartyRootVerifier(ctx context.Context, namespace string) (*core.VerifierRef, error) { - ret := _m.Called(ctx, namespace) +// GetMultipartyRootVerifier provides a mock function with given fields: ctx +func (_m *Manager) GetMultipartyRootVerifier(ctx context.Context) (*core.VerifierRef, error) { + ret := _m.Called(ctx) var r0 *core.VerifierRef - if rf, ok := ret.Get(0).(func(context.Context, string) *core.VerifierRef); ok { - r0 = rf(ctx, namespace) + if rf, ok := ret.Get(0).(func(context.Context) *core.VerifierRef); ok { + r0 = rf(ctx) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.VerifierRef) @@ -182,8 +182,8 @@ func (_m *Manager) GetMultipartyRootVerifier(ctx context.Context, namespace stri } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, namespace) + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) } else { r1 = ret.Error(1) } @@ -191,20 +191,20 @@ func (_m *Manager) GetMultipartyRootVerifier(ctx context.Context, namespace stri return r0, r1 } -// NormalizeSigningKey provides a mock function with given fields: ctx, namespace, inputKey, keyNormalizationMode -func (_m *Manager) NormalizeSigningKey(ctx context.Context, namespace string, inputKey string, keyNormalizationMode int) (string, error) { - ret := _m.Called(ctx, namespace, inputKey, keyNormalizationMode) +// NormalizeSigningKey provides a mock function with given fields: ctx, inputKey, keyNormalizationMode +func (_m *Manager) NormalizeSigningKey(ctx context.Context, inputKey string, keyNormalizationMode int) (string, error) { + ret := _m.Called(ctx, inputKey, keyNormalizationMode) var r0 string - if rf, ok := ret.Get(0).(func(context.Context, string, string, int) string); ok { - r0 = rf(ctx, namespace, inputKey, keyNormalizationMode) + if rf, ok := ret.Get(0).(func(context.Context, string, int) string); ok { + r0 = rf(ctx, inputKey, keyNormalizationMode) } else { r0 = ret.Get(0).(string) } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string, int) error); ok { - r1 = rf(ctx, namespace, inputKey, keyNormalizationMode) + if rf, ok := ret.Get(1).(func(context.Context, string, int) error); ok { + r1 = rf(ctx, inputKey, keyNormalizationMode) } else { r1 = ret.Error(1) } @@ -235,13 +235,13 @@ func (_m *Manager) ResolveIdentitySigner(ctx context.Context, _a1 *core.Identity return r0, r1 } -// ResolveInputSigningIdentity provides a mock function with given fields: ctx, namespace, signerRef -func (_m *Manager) ResolveInputSigningIdentity(ctx context.Context, namespace string, signerRef *core.SignerRef) error { - ret := _m.Called(ctx, namespace, signerRef) +// ResolveInputSigningIdentity provides a mock function with given fields: ctx, signerRef +func (_m *Manager) ResolveInputSigningIdentity(ctx context.Context, signerRef *core.SignerRef) error { + ret := _m.Called(ctx, signerRef) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, *core.SignerRef) error); ok { - r0 = rf(ctx, namespace, signerRef) + if rf, ok := ret.Get(0).(func(context.Context, *core.SignerRef) error); ok { + r0 = rf(ctx, signerRef) } else { r0 = ret.Error(0) } diff --git a/mocks/networkmapmocks/manager.go b/mocks/networkmapmocks/manager.go index 802446dec3..a8df308482 100644 --- a/mocks/networkmapmocks/manager.go +++ b/mocks/networkmapmocks/manager.go @@ -18,13 +18,13 @@ type Manager struct { mock.Mock } -// GetDIDDocForIndentityByDID provides a mock function with given fields: ctx, ns, did -func (_m *Manager) GetDIDDocForIndentityByDID(ctx context.Context, ns string, did string) (*networkmap.DIDDocument, error) { - ret := _m.Called(ctx, ns, did) +// GetDIDDocForIndentityByDID provides a mock function with given fields: ctx, did +func (_m *Manager) GetDIDDocForIndentityByDID(ctx context.Context, did string) (*networkmap.DIDDocument, error) { + ret := _m.Called(ctx, did) var r0 *networkmap.DIDDocument - if rf, ok := ret.Get(0).(func(context.Context, string, string) *networkmap.DIDDocument); ok { - r0 = rf(ctx, ns, did) + if rf, ok := ret.Get(0).(func(context.Context, string) *networkmap.DIDDocument); ok { + r0 = rf(ctx, did) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*networkmap.DIDDocument) @@ -32,8 +32,8 @@ func (_m *Manager) GetDIDDocForIndentityByDID(ctx context.Context, ns string, di } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, did) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, did) } else { r1 = ret.Error(1) } @@ -41,13 +41,13 @@ func (_m *Manager) GetDIDDocForIndentityByDID(ctx context.Context, ns string, di return r0, r1 } -// GetDIDDocForIndentityByID provides a mock function with given fields: ctx, ns, id -func (_m *Manager) GetDIDDocForIndentityByID(ctx context.Context, ns string, id string) (*networkmap.DIDDocument, error) { - ret := _m.Called(ctx, ns, id) +// GetDIDDocForIndentityByID provides a mock function with given fields: ctx, id +func (_m *Manager) GetDIDDocForIndentityByID(ctx context.Context, id string) (*networkmap.DIDDocument, error) { + ret := _m.Called(ctx, id) var r0 *networkmap.DIDDocument - if rf, ok := ret.Get(0).(func(context.Context, string, string) *networkmap.DIDDocument); ok { - r0 = rf(ctx, ns, id) + if rf, ok := ret.Get(0).(func(context.Context, string) *networkmap.DIDDocument); ok { + r0 = rf(ctx, id) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*networkmap.DIDDocument) @@ -55,8 +55,8 @@ func (_m *Manager) GetDIDDocForIndentityByID(ctx context.Context, ns string, id } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, id) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, id) } else { r1 = ret.Error(1) } @@ -64,13 +64,13 @@ func (_m *Manager) GetDIDDocForIndentityByID(ctx context.Context, ns string, id return r0, r1 } -// GetIdentities provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetIdentities(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetIdentities provides a mock function with given fields: ctx, filter +func (_m *Manager) GetIdentities(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.Identity); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.Identity); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Identity) @@ -78,8 +78,8 @@ func (_m *Manager) GetIdentities(ctx context.Context, ns string, filter database } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -87,8 +87,8 @@ func (_m *Manager) GetIdentities(ctx context.Context, ns string, filter database } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } @@ -96,13 +96,13 @@ func (_m *Manager) GetIdentities(ctx context.Context, ns string, filter database return r0, r1, r2 } -// GetIdentitiesWithVerifiers provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetIdentitiesWithVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetIdentitiesWithVerifiers provides a mock function with given fields: ctx, filter +func (_m *Manager) GetIdentitiesWithVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.IdentityWithVerifiers - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.IdentityWithVerifiers); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.IdentityWithVerifiers); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.IdentityWithVerifiers) @@ -110,8 +110,8 @@ func (_m *Manager) GetIdentitiesWithVerifiers(ctx context.Context, ns string, fi } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -119,8 +119,8 @@ func (_m *Manager) GetIdentitiesWithVerifiers(ctx context.Context, ns string, fi } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } @@ -128,13 +128,13 @@ func (_m *Manager) GetIdentitiesWithVerifiers(ctx context.Context, ns string, fi return r0, r1, r2 } -// GetIdentityByDID provides a mock function with given fields: ctx, ns, did -func (_m *Manager) GetIdentityByDID(ctx context.Context, ns string, did string) (*core.Identity, error) { - ret := _m.Called(ctx, ns, did) +// GetIdentityByDID provides a mock function with given fields: ctx, did +func (_m *Manager) GetIdentityByDID(ctx context.Context, did string) (*core.Identity, error) { + ret := _m.Called(ctx, did) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { - r0 = rf(ctx, ns, did) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { + r0 = rf(ctx, did) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -142,8 +142,8 @@ func (_m *Manager) GetIdentityByDID(ctx context.Context, ns string, did string) } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, did) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, did) } else { r1 = ret.Error(1) } @@ -151,13 +151,13 @@ func (_m *Manager) GetIdentityByDID(ctx context.Context, ns string, did string) return r0, r1 } -// GetIdentityByDIDWithVerifiers provides a mock function with given fields: ctx, ns, did -func (_m *Manager) GetIdentityByDIDWithVerifiers(ctx context.Context, ns string, did string) (*core.IdentityWithVerifiers, error) { - ret := _m.Called(ctx, ns, did) +// GetIdentityByDIDWithVerifiers provides a mock function with given fields: ctx, did +func (_m *Manager) GetIdentityByDIDWithVerifiers(ctx context.Context, did string) (*core.IdentityWithVerifiers, error) { + ret := _m.Called(ctx, did) var r0 *core.IdentityWithVerifiers - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.IdentityWithVerifiers); ok { - r0 = rf(ctx, ns, did) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.IdentityWithVerifiers); ok { + r0 = rf(ctx, did) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.IdentityWithVerifiers) @@ -165,8 +165,8 @@ func (_m *Manager) GetIdentityByDIDWithVerifiers(ctx context.Context, ns string, } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, did) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, did) } else { r1 = ret.Error(1) } @@ -174,13 +174,13 @@ func (_m *Manager) GetIdentityByDIDWithVerifiers(ctx context.Context, ns string, return r0, r1 } -// GetIdentityByID provides a mock function with given fields: ctx, ns, id -func (_m *Manager) GetIdentityByID(ctx context.Context, ns string, id string) (*core.Identity, error) { - ret := _m.Called(ctx, ns, id) +// GetIdentityByID provides a mock function with given fields: ctx, id +func (_m *Manager) GetIdentityByID(ctx context.Context, id string) (*core.Identity, error) { + ret := _m.Called(ctx, id) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { - r0 = rf(ctx, ns, id) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { + r0 = rf(ctx, id) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -188,8 +188,8 @@ func (_m *Manager) GetIdentityByID(ctx context.Context, ns string, id string) (* } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, id) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, id) } else { r1 = ret.Error(1) } @@ -197,13 +197,13 @@ func (_m *Manager) GetIdentityByID(ctx context.Context, ns string, id string) (* return r0, r1 } -// GetIdentityByIDWithVerifiers provides a mock function with given fields: ctx, ns, id -func (_m *Manager) GetIdentityByIDWithVerifiers(ctx context.Context, ns string, id string) (*core.IdentityWithVerifiers, error) { - ret := _m.Called(ctx, ns, id) +// GetIdentityByIDWithVerifiers provides a mock function with given fields: ctx, id +func (_m *Manager) GetIdentityByIDWithVerifiers(ctx context.Context, id string) (*core.IdentityWithVerifiers, error) { + ret := _m.Called(ctx, id) var r0 *core.IdentityWithVerifiers - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.IdentityWithVerifiers); ok { - r0 = rf(ctx, ns, id) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.IdentityWithVerifiers); ok { + r0 = rf(ctx, id) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.IdentityWithVerifiers) @@ -211,8 +211,8 @@ func (_m *Manager) GetIdentityByIDWithVerifiers(ctx context.Context, ns string, } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, id) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, id) } else { r1 = ret.Error(1) } @@ -220,13 +220,13 @@ func (_m *Manager) GetIdentityByIDWithVerifiers(ctx context.Context, ns string, return r0, r1 } -// GetIdentityVerifiers provides a mock function with given fields: ctx, ns, id, filter -func (_m *Manager) GetIdentityVerifiers(ctx context.Context, ns string, id string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, id, filter) +// GetIdentityVerifiers provides a mock function with given fields: ctx, id, filter +func (_m *Manager) GetIdentityVerifiers(ctx context.Context, id string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { + ret := _m.Called(ctx, id, filter) var r0 []*core.Verifier - if rf, ok := ret.Get(0).(func(context.Context, string, string, database.AndFilter) []*core.Verifier); ok { - r0 = rf(ctx, ns, id, filter) + if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.Verifier); ok { + r0 = rf(ctx, id, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Verifier) @@ -234,8 +234,8 @@ func (_m *Manager) GetIdentityVerifiers(ctx context.Context, ns string, id strin } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, id, filter) + if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, id, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -243,8 +243,8 @@ func (_m *Manager) GetIdentityVerifiers(ctx context.Context, ns string, id strin } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, id, filter) + if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { + r2 = rf(ctx, id, filter) } else { r2 = ret.Error(2) } @@ -252,13 +252,13 @@ func (_m *Manager) GetIdentityVerifiers(ctx context.Context, ns string, id strin return r0, r1, r2 } -// GetNodeByNameOrID provides a mock function with given fields: ctx, ns, nameOrID -func (_m *Manager) GetNodeByNameOrID(ctx context.Context, ns string, nameOrID string) (*core.Identity, error) { - ret := _m.Called(ctx, ns, nameOrID) +// GetNodeByNameOrID provides a mock function with given fields: ctx, nameOrID +func (_m *Manager) GetNodeByNameOrID(ctx context.Context, nameOrID string) (*core.Identity, error) { + ret := _m.Called(ctx, nameOrID) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { - r0 = rf(ctx, ns, nameOrID) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { + r0 = rf(ctx, nameOrID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -266,8 +266,8 @@ func (_m *Manager) GetNodeByNameOrID(ctx context.Context, ns string, nameOrID st } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, nameOrID) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, nameOrID) } else { r1 = ret.Error(1) } @@ -275,13 +275,13 @@ func (_m *Manager) GetNodeByNameOrID(ctx context.Context, ns string, nameOrID st return r0, r1 } -// GetNodes provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetNodes(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetNodes provides a mock function with given fields: ctx, filter +func (_m *Manager) GetNodes(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.Identity); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.Identity); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Identity) @@ -289,8 +289,8 @@ func (_m *Manager) GetNodes(ctx context.Context, ns string, filter database.AndF } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -298,8 +298,8 @@ func (_m *Manager) GetNodes(ctx context.Context, ns string, filter database.AndF } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } @@ -307,13 +307,13 @@ func (_m *Manager) GetNodes(ctx context.Context, ns string, filter database.AndF return r0, r1, r2 } -// GetOrganizationByNameOrID provides a mock function with given fields: ctx, ns, nameOrID -func (_m *Manager) GetOrganizationByNameOrID(ctx context.Context, ns string, nameOrID string) (*core.Identity, error) { - ret := _m.Called(ctx, ns, nameOrID) +// GetOrganizationByNameOrID provides a mock function with given fields: ctx, nameOrID +func (_m *Manager) GetOrganizationByNameOrID(ctx context.Context, nameOrID string) (*core.Identity, error) { + ret := _m.Called(ctx, nameOrID) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Identity); ok { - r0 = rf(ctx, ns, nameOrID) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Identity); ok { + r0 = rf(ctx, nameOrID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -321,8 +321,8 @@ func (_m *Manager) GetOrganizationByNameOrID(ctx context.Context, ns string, nam } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, nameOrID) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, nameOrID) } else { r1 = ret.Error(1) } @@ -330,13 +330,13 @@ func (_m *Manager) GetOrganizationByNameOrID(ctx context.Context, ns string, nam return r0, r1 } -// GetOrganizations provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetOrganizations(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetOrganizations provides a mock function with given fields: ctx, filter +func (_m *Manager) GetOrganizations(ctx context.Context, filter database.AndFilter) ([]*core.Identity, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.Identity); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.Identity); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Identity) @@ -344,8 +344,8 @@ func (_m *Manager) GetOrganizations(ctx context.Context, ns string, filter datab } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -353,8 +353,8 @@ func (_m *Manager) GetOrganizations(ctx context.Context, ns string, filter datab } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } @@ -362,13 +362,13 @@ func (_m *Manager) GetOrganizations(ctx context.Context, ns string, filter datab return r0, r1, r2 } -// GetOrganizationsWithVerifiers provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetOrganizationsWithVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetOrganizationsWithVerifiers provides a mock function with given fields: ctx, filter +func (_m *Manager) GetOrganizationsWithVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.IdentityWithVerifiers, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.IdentityWithVerifiers - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.IdentityWithVerifiers); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.IdentityWithVerifiers); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.IdentityWithVerifiers) @@ -376,8 +376,8 @@ func (_m *Manager) GetOrganizationsWithVerifiers(ctx context.Context, ns string, } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -385,8 +385,8 @@ func (_m *Manager) GetOrganizationsWithVerifiers(ctx context.Context, ns string, } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } @@ -394,13 +394,13 @@ func (_m *Manager) GetOrganizationsWithVerifiers(ctx context.Context, ns string, return r0, r1, r2 } -// GetVerifierByHash provides a mock function with given fields: ctx, ns, hash -func (_m *Manager) GetVerifierByHash(ctx context.Context, ns string, hash string) (*core.Verifier, error) { - ret := _m.Called(ctx, ns, hash) +// GetVerifierByHash provides a mock function with given fields: ctx, hash +func (_m *Manager) GetVerifierByHash(ctx context.Context, hash string) (*core.Verifier, error) { + ret := _m.Called(ctx, hash) var r0 *core.Verifier - if rf, ok := ret.Get(0).(func(context.Context, string, string) *core.Verifier); ok { - r0 = rf(ctx, ns, hash) + if rf, ok := ret.Get(0).(func(context.Context, string) *core.Verifier); ok { + r0 = rf(ctx, hash) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Verifier) @@ -408,8 +408,8 @@ func (_m *Manager) GetVerifierByHash(ctx context.Context, ns string, hash string } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok { - r1 = rf(ctx, ns, hash) + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, hash) } else { r1 = ret.Error(1) } @@ -417,13 +417,13 @@ func (_m *Manager) GetVerifierByHash(ctx context.Context, ns string, hash string return r0, r1 } -// GetVerifiers provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetVerifiers(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetVerifiers provides a mock function with given fields: ctx, filter +func (_m *Manager) GetVerifiers(ctx context.Context, filter database.AndFilter) ([]*core.Verifier, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.Verifier - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.Verifier); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.Verifier); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Verifier) @@ -431,8 +431,8 @@ func (_m *Manager) GetVerifiers(ctx context.Context, ns string, filter database. } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -440,8 +440,8 @@ func (_m *Manager) GetVerifiers(ctx context.Context, ns string, filter database. } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } @@ -449,13 +449,13 @@ func (_m *Manager) GetVerifiers(ctx context.Context, ns string, filter database. return r0, r1, r2 } -// RegisterIdentity provides a mock function with given fields: ctx, ns, dto, waitConfirm -func (_m *Manager) RegisterIdentity(ctx context.Context, ns string, dto *core.IdentityCreateDTO, waitConfirm bool) (*core.Identity, error) { - ret := _m.Called(ctx, ns, dto, waitConfirm) +// RegisterIdentity provides a mock function with given fields: ctx, dto, waitConfirm +func (_m *Manager) RegisterIdentity(ctx context.Context, dto *core.IdentityCreateDTO, waitConfirm bool) (*core.Identity, error) { + ret := _m.Called(ctx, dto, waitConfirm) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, *core.IdentityCreateDTO, bool) *core.Identity); ok { - r0 = rf(ctx, ns, dto, waitConfirm) + if rf, ok := ret.Get(0).(func(context.Context, *core.IdentityCreateDTO, bool) *core.Identity); ok { + r0 = rf(ctx, dto, waitConfirm) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -463,8 +463,8 @@ func (_m *Manager) RegisterIdentity(ctx context.Context, ns string, dto *core.Id } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, *core.IdentityCreateDTO, bool) error); ok { - r1 = rf(ctx, ns, dto, waitConfirm) + if rf, ok := ret.Get(1).(func(context.Context, *core.IdentityCreateDTO, bool) error); ok { + r1 = rf(ctx, dto, waitConfirm) } else { r1 = ret.Error(1) } @@ -472,13 +472,13 @@ func (_m *Manager) RegisterIdentity(ctx context.Context, ns string, dto *core.Id return r0, r1 } -// RegisterNode provides a mock function with given fields: ctx, ns, waitConfirm -func (_m *Manager) RegisterNode(ctx context.Context, ns string, waitConfirm bool) (*core.Identity, error) { - ret := _m.Called(ctx, ns, waitConfirm) +// RegisterNode provides a mock function with given fields: ctx, waitConfirm +func (_m *Manager) RegisterNode(ctx context.Context, waitConfirm bool) (*core.Identity, error) { + ret := _m.Called(ctx, waitConfirm) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, bool) *core.Identity); ok { - r0 = rf(ctx, ns, waitConfirm) + if rf, ok := ret.Get(0).(func(context.Context, bool) *core.Identity); ok { + r0 = rf(ctx, waitConfirm) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -486,8 +486,8 @@ func (_m *Manager) RegisterNode(ctx context.Context, ns string, waitConfirm bool } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, bool) error); ok { - r1 = rf(ctx, ns, waitConfirm) + if rf, ok := ret.Get(1).(func(context.Context, bool) error); ok { + r1 = rf(ctx, waitConfirm) } else { r1 = ret.Error(1) } @@ -495,13 +495,13 @@ func (_m *Manager) RegisterNode(ctx context.Context, ns string, waitConfirm bool return r0, r1 } -// RegisterNodeOrganization provides a mock function with given fields: ctx, ns, waitConfirm -func (_m *Manager) RegisterNodeOrganization(ctx context.Context, ns string, waitConfirm bool) (*core.Identity, error) { - ret := _m.Called(ctx, ns, waitConfirm) +// RegisterNodeOrganization provides a mock function with given fields: ctx, waitConfirm +func (_m *Manager) RegisterNodeOrganization(ctx context.Context, waitConfirm bool) (*core.Identity, error) { + ret := _m.Called(ctx, waitConfirm) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, bool) *core.Identity); ok { - r0 = rf(ctx, ns, waitConfirm) + if rf, ok := ret.Get(0).(func(context.Context, bool) *core.Identity); ok { + r0 = rf(ctx, waitConfirm) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -509,8 +509,8 @@ func (_m *Manager) RegisterNodeOrganization(ctx context.Context, ns string, wait } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, bool) error); ok { - r1 = rf(ctx, ns, waitConfirm) + if rf, ok := ret.Get(1).(func(context.Context, bool) error); ok { + r1 = rf(ctx, waitConfirm) } else { r1 = ret.Error(1) } @@ -518,13 +518,13 @@ func (_m *Manager) RegisterNodeOrganization(ctx context.Context, ns string, wait return r0, r1 } -// RegisterOrganization provides a mock function with given fields: ctx, ns, org, waitConfirm -func (_m *Manager) RegisterOrganization(ctx context.Context, ns string, org *core.IdentityCreateDTO, waitConfirm bool) (*core.Identity, error) { - ret := _m.Called(ctx, ns, org, waitConfirm) +// RegisterOrganization provides a mock function with given fields: ctx, org, waitConfirm +func (_m *Manager) RegisterOrganization(ctx context.Context, org *core.IdentityCreateDTO, waitConfirm bool) (*core.Identity, error) { + ret := _m.Called(ctx, org, waitConfirm) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, *core.IdentityCreateDTO, bool) *core.Identity); ok { - r0 = rf(ctx, ns, org, waitConfirm) + if rf, ok := ret.Get(0).(func(context.Context, *core.IdentityCreateDTO, bool) *core.Identity); ok { + r0 = rf(ctx, org, waitConfirm) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -532,8 +532,8 @@ func (_m *Manager) RegisterOrganization(ctx context.Context, ns string, org *cor } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, *core.IdentityCreateDTO, bool) error); ok { - r1 = rf(ctx, ns, org, waitConfirm) + if rf, ok := ret.Get(1).(func(context.Context, *core.IdentityCreateDTO, bool) error); ok { + r1 = rf(ctx, org, waitConfirm) } else { r1 = ret.Error(1) } @@ -541,13 +541,13 @@ func (_m *Manager) RegisterOrganization(ctx context.Context, ns string, org *cor return r0, r1 } -// UpdateIdentity provides a mock function with given fields: ctx, ns, id, dto, waitConfirm -func (_m *Manager) UpdateIdentity(ctx context.Context, ns string, id string, dto *core.IdentityUpdateDTO, waitConfirm bool) (*core.Identity, error) { - ret := _m.Called(ctx, ns, id, dto, waitConfirm) +// UpdateIdentity provides a mock function with given fields: ctx, id, dto, waitConfirm +func (_m *Manager) UpdateIdentity(ctx context.Context, id string, dto *core.IdentityUpdateDTO, waitConfirm bool) (*core.Identity, error) { + ret := _m.Called(ctx, id, dto, waitConfirm) var r0 *core.Identity - if rf, ok := ret.Get(0).(func(context.Context, string, string, *core.IdentityUpdateDTO, bool) *core.Identity); ok { - r0 = rf(ctx, ns, id, dto, waitConfirm) + if rf, ok := ret.Get(0).(func(context.Context, string, *core.IdentityUpdateDTO, bool) *core.Identity); ok { + r0 = rf(ctx, id, dto, waitConfirm) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.Identity) @@ -555,8 +555,8 @@ func (_m *Manager) UpdateIdentity(ctx context.Context, ns string, id string, dto } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string, string, *core.IdentityUpdateDTO, bool) error); ok { - r1 = rf(ctx, ns, id, dto, waitConfirm) + if rf, ok := ret.Get(1).(func(context.Context, string, *core.IdentityUpdateDTO, bool) error); ok { + r1 = rf(ctx, id, dto, waitConfirm) } else { r1 = ret.Error(1) } diff --git a/mocks/orchestratormocks/orchestrator.go b/mocks/orchestratormocks/orchestrator.go index 8084bb5247..97f734fc1d 100644 --- a/mocks/orchestratormocks/orchestrator.go +++ b/mocks/orchestratormocks/orchestrator.go @@ -20,8 +20,6 @@ import ( events "github.com/hyperledger/firefly/internal/events" - metrics "github.com/hyperledger/firefly/internal/metrics" - mock "github.com/stretchr/testify/mock" networkmap "github.com/hyperledger/firefly/internal/networkmap" @@ -962,13 +960,13 @@ func (_m *Orchestrator) GetPins(ctx context.Context, ns string, filter database. return r0, r1, r2 } -// GetStatus provides a mock function with given fields: ctx, ns -func (_m *Orchestrator) GetStatus(ctx context.Context, ns string) (*core.NodeStatus, error) { - ret := _m.Called(ctx, ns) +// GetStatus provides a mock function with given fields: ctx +func (_m *Orchestrator) GetStatus(ctx context.Context) (*core.NodeStatus, error) { + ret := _m.Called(ctx) var r0 *core.NodeStatus - if rf, ok := ret.Get(0).(func(context.Context, string) *core.NodeStatus); ok { - r0 = rf(ctx, ns) + if rf, ok := ret.Get(0).(func(context.Context) *core.NodeStatus); ok { + r0 = rf(ctx) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*core.NodeStatus) @@ -976,8 +974,8 @@ func (_m *Orchestrator) GetStatus(ctx context.Context, ns string) (*core.NodeSta } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, ns) + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(ctx) } else { r1 = ret.Error(1) } @@ -1196,22 +1194,6 @@ func (_m *Orchestrator) Init(ctx context.Context, cancelCtx context.CancelFunc) return r0 } -// Metrics provides a mock function with given fields: -func (_m *Orchestrator) Metrics() metrics.Manager { - ret := _m.Called() - - var r0 metrics.Manager - if rf, ok := ret.Get(0).(func() metrics.Manager); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(metrics.Manager) - } - } - - return r0 -} - // NetworkMap provides a mock function with given fields: func (_m *Orchestrator) NetworkMap() networkmap.Manager { ret := _m.Called() @@ -1297,13 +1279,13 @@ func (_m *Orchestrator) Start() error { return r0 } -// SubmitNetworkAction provides a mock function with given fields: ctx, ns, action -func (_m *Orchestrator) SubmitNetworkAction(ctx context.Context, ns string, action *core.NetworkAction) error { - ret := _m.Called(ctx, ns, action) +// SubmitNetworkAction provides a mock function with given fields: ctx, action +func (_m *Orchestrator) SubmitNetworkAction(ctx context.Context, action *core.NetworkAction) error { + ret := _m.Called(ctx, action) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, *core.NetworkAction) error); ok { - r0 = rf(ctx, ns, action) + if rf, ok := ret.Get(0).(func(context.Context, *core.NetworkAction) error); ok { + r0 = rf(ctx, action) } else { r0 = ret.Error(0) } diff --git a/mocks/privatemessagingmocks/manager.go b/mocks/privatemessagingmocks/manager.go index a53abe151a..892603c8e3 100644 --- a/mocks/privatemessagingmocks/manager.go +++ b/mocks/privatemessagingmocks/manager.go @@ -64,13 +64,13 @@ func (_m *Manager) GetGroupByID(ctx context.Context, id string) (*core.Group, er return r0, r1 } -// GetGroupsNS provides a mock function with given fields: ctx, ns, filter -func (_m *Manager) GetGroupsNS(ctx context.Context, ns string, filter database.AndFilter) ([]*core.Group, *database.FilterResult, error) { - ret := _m.Called(ctx, ns, filter) +// GetGroups provides a mock function with given fields: ctx, filter +func (_m *Manager) GetGroups(ctx context.Context, filter database.AndFilter) ([]*core.Group, *database.FilterResult, error) { + ret := _m.Called(ctx, filter) var r0 []*core.Group - if rf, ok := ret.Get(0).(func(context.Context, string, database.AndFilter) []*core.Group); ok { - r0 = rf(ctx, ns, filter) + if rf, ok := ret.Get(0).(func(context.Context, database.AndFilter) []*core.Group); ok { + r0 = rf(ctx, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*core.Group) @@ -78,8 +78,8 @@ func (_m *Manager) GetGroupsNS(ctx context.Context, ns string, filter database.A } var r1 *database.FilterResult - if rf, ok := ret.Get(1).(func(context.Context, string, database.AndFilter) *database.FilterResult); ok { - r1 = rf(ctx, ns, filter) + if rf, ok := ret.Get(1).(func(context.Context, database.AndFilter) *database.FilterResult); ok { + r1 = rf(ctx, filter) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*database.FilterResult) @@ -87,8 +87,8 @@ func (_m *Manager) GetGroupsNS(ctx context.Context, ns string, filter database.A } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, string, database.AndFilter) error); ok { - r2 = rf(ctx, ns, filter) + if rf, ok := ret.Get(2).(func(context.Context, database.AndFilter) error); ok { + r2 = rf(ctx, filter) } else { r2 = ret.Error(2) } diff --git a/pkg/database/plugin.go b/pkg/database/plugin.go index 07cb114965..7cecec2aaa 100644 --- a/pkg/database/plugin.go +++ b/pkg/database/plugin.go @@ -270,51 +270,42 @@ type iIdentitiesCollection interface { // UpsertIdentity - Upsert an identity UpsertIdentity(ctx context.Context, data *core.Identity, optimization UpsertOptimization) (err error) - // UpdateIdentity - Update identity - UpdateIdentity(ctx context.Context, id *fftypes.UUID, update Update) (err error) - // GetIdentityByDID - Get a identity by DID - GetIdentityByDID(ctx context.Context, did string) (org *core.Identity, err error) + GetIdentityByDID(ctx context.Context, namespace, did string) (org *core.Identity, err error) // GetIdentityByName - Get a identity by name GetIdentityByName(ctx context.Context, iType core.IdentityType, namespace, name string) (org *core.Identity, err error) // GetIdentityByID - Get a identity by ID - GetIdentityByID(ctx context.Context, id *fftypes.UUID) (org *core.Identity, err error) + GetIdentityByID(ctx context.Context, namespace string, id *fftypes.UUID) (org *core.Identity, err error) // GetIdentities - Get identities - GetIdentities(ctx context.Context, filter Filter) (org []*core.Identity, res *FilterResult, err error) + GetIdentities(ctx context.Context, namespace string, filter Filter) (org []*core.Identity, res *FilterResult, err error) } type iVerifiersCollection interface { // UpsertVerifier - Upsert an verifier UpsertVerifier(ctx context.Context, data *core.Verifier, optimization UpsertOptimization) (err error) - // UpdateVerifier - Update verifier - UpdateVerifier(ctx context.Context, hash *fftypes.Bytes32, update Update) (err error) - // GetVerifierByValue - Get a verifier by name GetVerifierByValue(ctx context.Context, vType core.VerifierType, namespace, value string) (org *core.Verifier, err error) // GetVerifierByHash - Get a verifier by its hash - GetVerifierByHash(ctx context.Context, hash *fftypes.Bytes32) (org *core.Verifier, err error) + GetVerifierByHash(ctx context.Context, namespace string, hash *fftypes.Bytes32) (org *core.Verifier, err error) // GetVerifiers - Get verifiers - GetVerifiers(ctx context.Context, filter Filter) (org []*core.Verifier, res *FilterResult, err error) + GetVerifiers(ctx context.Context, namespace string, filter Filter) (org []*core.Verifier, res *FilterResult, err error) } type iGroupCollection interface { // UpsertGroup - Upsert a group, with a hint to whether to optmize for existing or new UpsertGroup(ctx context.Context, data *core.Group, optimization UpsertOptimization) (err error) - // UpdateGroup - Update group - UpdateGroup(ctx context.Context, hash *fftypes.Bytes32, update Update) (err error) - // GetGroupByHash - Get a group by ID - GetGroupByHash(ctx context.Context, hash *fftypes.Bytes32) (node *core.Group, err error) + GetGroupByHash(ctx context.Context, namespace string, hash *fftypes.Bytes32) (node *core.Group, err error) // GetGroups - Get groups - GetGroups(ctx context.Context, filter Filter) (node []*core.Group, res *FilterResult, err error) + GetGroups(ctx context.Context, namespace string, filter Filter) (node []*core.Group, res *FilterResult, err error) } type iNonceCollection interface {