Skip to content

Commit

Permalink
Merge pull request hyperledger-indy#2119 from mirgee/wrapper-add-pred…
Browse files Browse the repository at this point in the history
…icates

Add predicates to node wrapper proof create
  • Loading branch information
jovfer authored Apr 17, 2020
2 parents 281d66f + 96a3acf commit be0618b
Show file tree
Hide file tree
Showing 12 changed files with 242 additions and 221 deletions.
22 changes: 14 additions & 8 deletions vcx/wrappers/node/demo/faber.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ async function runFaber (options) {
const version = `${getRandomInt(1, 101)}.${getRandomInt(1, 101)}.${getRandomInt(1, 101)}`
const schemaData = {
data: {
attrNames: ['name', 'last_name', 'sex', 'date', 'degree'],
attrNames: ['name', 'last_name', 'sex', 'date', 'degree', 'age'],
name: 'FaberVcx',
version
},
Expand Down Expand Up @@ -121,7 +121,8 @@ async function runFaber (options) {
last_name: 'clark',
sex: 'female',
date: '05-2018',
degree: 'maths'
degree: 'maths',
age: '25'
}

logger.info('#12 Create an IssuerCredential object using the schema and credential definition')
Expand Down Expand Up @@ -160,23 +161,28 @@ async function runFaber (options) {

const proofAttributes = [
{
names: ['name', 'last_name', 'sex'],
restrictions: [{ 'issuer_did': agentProvision.institution_did }]
names: ['name', 'last_name', 'sex'],
restrictions: [{ issuer_did: agentProvision.institution_did }]
},
{
name: 'date',
restrictions: { 'issuer_did': agentProvision.institution_did }
name: 'date',
restrictions: { issuer_did: agentProvision.institution_did }
},
{
name: 'degree',
restrictions: { 'attr::degree::value': 'maths' }
name: 'degree',
restrictions: { 'attr::degree::value': 'maths' }
}
]

const proofPredicates = [
{ name: 'age', p_type: '>=', p_value: 20, restrictions: [{ issuer_did: agentProvision.institution_did }] }
]

logger.info('#19 Create a Proof object')
const proof = await Proof.create({
sourceId: '213',
attrs: proofAttributes,
preds: proofPredicates,
name: 'proofForAlice',
revocationInterval: {}
})
Expand Down
2 changes: 1 addition & 1 deletion vcx/wrappers/node/src/api/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ export enum StateType {
Expired = 6,
Revoked = 7,
Redirected = 8,
Rejected = 9,
Rejected = 9
}

export interface IInitVCXOptions {
Expand Down
22 changes: 11 additions & 11 deletions vcx/wrappers/node/src/api/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -765,30 +765,30 @@ export class Connection extends VCXBaseWithState<IConnectionData> {
0,
this.handle,
cb
);
)
if (rc) {
reject(rc);
reject(rc)
}
},
(resolve, reject) =>
ffi.Callback(
"void",
["uint32", "uint32", "string"],
'void',
['uint32', 'uint32', 'string'],
(xHandle: number, err: number, details: string) => {
if (err) {
reject(err);
return;
reject(err)
return
}
if (!details) {
reject(`proof ${this.sourceId} returned empty string`);
return;
reject(`proof ${this.sourceId} returned empty string`)
return
}
resolve(details);
resolve(details)
}
)
);
)
} catch (err) {
throw new VCXInternalError(err);
throw new VCXInternalError(err)
}
}

Expand Down
10 changes: 5 additions & 5 deletions vcx/wrappers/node/src/api/credential-def.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export interface IRevocationDetails {

export enum CredentialDefState {
Built = 0,
Published = 1,
Published = 1
}

// tslint:disable max-classes-per-file
Expand Down Expand Up @@ -323,8 +323,8 @@ export class CredentialDef extends VCXBase<ICredentialDefData> {
try {
await createFFICallbackPromise<number>(
(resolve, reject, cb) => {
const rc = rustAPI().vcx_credentialdef_update_state(0, this.handle, cb)
if (rc) {
const rc = rustAPI().vcx_credentialdef_update_state(0, this.handle, cb)
if (rc) {
reject(rc)
}
},
Expand Down Expand Up @@ -356,8 +356,8 @@ export class CredentialDef extends VCXBase<ICredentialDefData> {
try {
const stateRes = await createFFICallbackPromise<CredentialDefState>(
(resolve, reject, cb) => {
const rc = rustAPI().vcx_credentialdef_get_state(0, this.handle, cb)
if (rc) {
const rc = rustAPI().vcx_credentialdef_get_state(0, this.handle, cb)
if (rc) {
reject(rc)
}
},
Expand Down
2 changes: 1 addition & 1 deletion vcx/wrappers/node/src/api/disclosed-proof.ts
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ export class DisclosedProof extends VCXBaseWithState<IDisclosedProofData> {
* await disclosedProof.sendProof(connection)
* ```
*/
public async sendProof (connection? : Connection): Promise<void> {
public async sendProof (connection?: Connection): Promise<void> {
try {
await createFFICallbackPromise<void>(
(resolve, reject, cb) => {
Expand Down
18 changes: 9 additions & 9 deletions vcx/wrappers/node/src/api/issuer-credential.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ export class IssuerCredentialPaymentManager extends PaymentManager {
export class IssuerCredential extends VCXBaseWithState<IIssuerCredentialData> {
/**
* Create a Issuer Credential object that provides a credential for an enterprise's user
* Assumes a credential definition has been already written to the ledger.
* Assumes a credential definition has been already written to the ledger.
* ```
* issuerCredential = await IssuerCredential.create({sourceId: "12",
* credDefId: "credDefId", attr: {key: "value"}, credentialName: "name", price: "0"})
Expand Down Expand Up @@ -169,8 +169,8 @@ export class IssuerCredential extends VCXBaseWithState<IIssuerCredentialData> {
}
}

static getParams (credentialData: ISerializedData<IIssuerCredentialData>): IIssuerCredentialParams {
const { data: { credential_name, price, credential_attributes, cred_def_handle }} = credentialData
public static getParams (credentialData: ISerializedData<IIssuerCredentialData>): IIssuerCredentialParams {
const { data: { credential_name, price, credential_attributes, cred_def_handle } } = credentialData
const attr: IIssuerCredentialVCXAttributes = JSON.parse(credential_attributes)
return {
attr,
Expand All @@ -193,19 +193,19 @@ export class IssuerCredential extends VCXBaseWithState<IIssuerCredentialData> {
*/
public static async deserialize (credentialData: ISerializedData<IIssuerCredentialData>): Promise<IssuerCredential> {
try {
const params: IIssuerCredentialParams = (function () {
const params: IIssuerCredentialParams = (() => {
switch (credentialData.version) {
case "1.0":
case '1.0':
return IssuerCredential.getParams(credentialData)
case "2.0":
return { attr: {}, credDefHandle: -1, credentialName: "", price: "0" }
case "3.0":
case '2.0':
return { attr: {}, credDefHandle: -1, credentialName: '', price: '0' }
case '3.0':
return IssuerCredential.getParams(credentialData)
default:
throw Error(`Unsupported version provided in serialized credential data: ${JSON.stringify(credentialData.version)}`)
}
})()
return await super._deserialize<IssuerCredential, IIssuerCredentialParams>(
return await super._deserialize<IssuerCredential, IIssuerCredentialParams>(
IssuerCredential,
credentialData,
params
Expand Down
Loading

0 comments on commit be0618b

Please sign in to comment.