Skip to content

Commit

Permalink
fix errors; mark some parts as deprecated (#64)
Browse files Browse the repository at this point in the history
* mark some parts as deprecated
* introduce new credential status types
  • Loading branch information
ilya-korotya authored May 26, 2023
1 parent 119230f commit ad98530
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 15 deletions.
14 changes: 7 additions & 7 deletions json/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ func (s Parser) ParseClaim(ctx context.Context, credential verifiable.W3CCredent
opts = &processor.CoreClaimOptions{
RevNonce: 0,
Version: 0,
SubjectPosition: utils.SubjectPositionIndex,
MerklizedRootPosition: utils.MerklizedRootPositionNone,
SubjectPosition: verifiable.CredentialSubjectPositionIndex,
MerklizedRootPosition: verifiable.CredentialMerklizedRootPositionNone,
Updatable: false,
}
}
Expand Down Expand Up @@ -81,17 +81,17 @@ func (s Parser) ParseClaim(ctx context.Context, credential verifiable.W3CCredent
}

switch opts.SubjectPosition {
case "", utils.SubjectPositionIndex:
case "", verifiable.CredentialSubjectPositionIndex:
claim.SetIndexID(did.ID)
case utils.SubjectPositionValue:
case verifiable.CredentialSubjectPositionValue:
claim.SetValueID(did.ID)
default:
return nil, errors.New("unknown subject position")
}
}

switch opts.MerklizedRootPosition {
case utils.MerklizedRootPositionIndex:
case verifiable.CredentialMerklizedRootPositionIndex:
mkRoot, err := credential.Merklize(ctx)
if err != nil {
return nil, err
Expand All @@ -100,7 +100,7 @@ func (s Parser) ParseClaim(ctx context.Context, credential verifiable.W3CCredent
if err != nil {
return nil, err
}
case utils.MerklizedRootPositionValue:
case verifiable.CredentialMerklizedRootPositionValue:
mkRoot, err := credential.Merklize(ctx)
if err != nil {
return nil, err
Expand All @@ -109,7 +109,7 @@ func (s Parser) ParseClaim(ctx context.Context, credential verifiable.W3CCredent
if err != nil {
return nil, err
}
case utils.MerklizedRootPositionNone:
case verifiable.CredentialMerklizedRootPositionNone:
break
default:
return nil, errors.New("unknown merklized root position")
Expand Down
9 changes: 4 additions & 5 deletions json/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
core "github.com/iden3/go-iden3-core"
"github.com/iden3/go-schema-processor/merklize"
"github.com/iden3/go-schema-processor/processor"
"github.com/iden3/go-schema-processor/utils"
"github.com/iden3/go-schema-processor/verifiable"
"github.com/stretchr/testify/require"
)
Expand Down Expand Up @@ -57,8 +56,8 @@ func TestParser_ParseClaimWithDataSlots(t *testing.T) {
opts := processor.CoreClaimOptions{
RevNonce: 127366661,
Version: 0,
SubjectPosition: utils.SubjectPositionIndex,
MerklizedRootPosition: "",
SubjectPosition: verifiable.CredentialSubjectPositionIndex,
MerklizedRootPosition: verifiable.CredentialMerklizedRootPositionNone,
Updatable: true,
}

Expand Down Expand Up @@ -106,8 +105,8 @@ func TestParser_ParseClaimWithMerklizedRoot(t *testing.T) {
opts := processor.CoreClaimOptions{
RevNonce: 127366661,
Version: 0,
SubjectPosition: utils.SubjectPositionIndex,
MerklizedRootPosition: utils.MerklizedRootPositionIndex,
SubjectPosition: verifiable.CredentialSubjectPositionIndex,
MerklizedRootPosition: verifiable.CredentialMerklizedRootPositionIndex,
Updatable: true,
}
claim, err := parser.ParseClaim(context.Background(), credential, credentialType, schemaBytes, &opts)
Expand Down
5 changes: 5 additions & 0 deletions utils/claims.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,20 @@ import (

const (
// SubjectPositionIndex save subject in index part of claim. By default.
// Deprecated: use verifiable.CredentialSubjectPositionIndex instead
SubjectPositionIndex = "index"
// SubjectPositionValue save subject in value part of claim.
// Deprecated: use verifiable.CredentialSubjectPositionValue instead
SubjectPositionValue = "value"

// MerklizedRootPositionIndex merklized root is stored in index.
// Deprecated: use verifiable.CredentialMerklizedRootPositionIndex instead
MerklizedRootPositionIndex = "index"
// MerklizedRootPositionValue merklized root is stored in value.
// Deprecated: use verifiable.CredentialMerklizedRootPositionValue instead
MerklizedRootPositionValue = "value"
// MerklizedRootPositionNone merklized root is not stored in the claim. By Default.
// Deprecated: use verifiable.CredentialMerklizedRootPositionNone instead
MerklizedRootPositionNone = ""
)

Expand Down
13 changes: 10 additions & 3 deletions verifiable/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,21 @@ const (
CredentialMerklizedRootPositionValue = "value"

// CredentialMerklizedRootPositionNone is for non-merklized W3CCredential
CredentialMerklizedRootPositionNone = "none"
CredentialMerklizedRootPositionNone = ""

// CredentialSubjectPositionIndex is subject position of W3CCredential in index (core claim)
CredentialSubjectPositionIndex = "index"

// CredentialSubjectPositionValue is subject position of W3CCredential in value (core claim)
CredentialSubjectPositionValue = "value"

// CredentialSubjectRootPositionValue is subject position of W3CCredential in value (core claim)
// Deprecated: use CredentialSubjectPositionValue instead
CredentialSubjectRootPositionValue = "value"

// CredentialSubjectPositionNone is for self issued W3CCredential
CredentialSubjectPositionNone = "none"
// Iden3commRevocationStatusV1 is CredentialStatusType for iden3comm revocation status
Iden3commRevocationStatusV1 CredentialStatusType = "Iden3commRevocationStatusV1.0"

// Iden3OnсhainSparseMerkleTreeProof2023 is a proof type for MTP proofs with iden3 metadata from blockchain
Iden3OnchainSparseMerkleTreeProof2023 CredentialStatusType = "Iden3OnchainSparseMerkleTreeProof2023"
)
2 changes: 2 additions & 0 deletions verifiable/credential.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,11 @@ type CredentialStatus struct {
ID string `json:"id"`
Type CredentialStatusType `json:"type"`
RevocationNonce uint64 `json:"revocationNonce"`
StatusIssuer *CredentialStatus `json:"statusIssuer,omitempty"`
}

// RHSCredentialStatus contains type, url to fetch RHS info, issuer ID and revocation nonce and backup option to fetch credential status
// Deprecated: use CredentialStatus instead
type RHSCredentialStatus struct {
ID string `json:"id"`
Type CredentialStatusType `json:"type"`
Expand Down

0 comments on commit ad98530

Please sign in to comment.