Skip to content

Commit e792d1d

Browse files
committed
export inclusion proof
1 parent bf46550 commit e792d1d

2 files changed

Lines changed: 59 additions & 1 deletion

File tree

src/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,10 @@ export type { IDataHasher } from '@unicitylabs/commons/lib/hash/IDataHasher.js';
5555

5656
// Commons exports - Utilities
5757
export { HexConverter } from '@unicitylabs/commons/lib/util/HexConverter.js';
58+
59+
// Commons exports - API/Inclusion Proof
60+
export { InclusionProof, InclusionProofVerificationStatus } from '@unicitylabs/commons/lib/api/InclusionProof.js';
61+
export { RequestId } from '@unicitylabs/commons/lib/api/RequestId.js';
62+
export { Authenticator } from '@unicitylabs/commons/lib/api/Authenticator.js';
63+
export { SubmitCommitmentRequest } from '@unicitylabs/commons/lib/api/SubmitCommitmentRequest.js';
64+
export { SubmitCommitmentResponse, SubmitCommitmentStatus } from '@unicitylabs/commons/lib/api/SubmitCommitmentResponse.js';

tests/browser/sdk-bundle.test.ts

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ describe('Unicity SDK Browser Bundle', (): void => {
7979
'TokenId', 'CoinId', 'TokenCoinData', 'AggregatorClient',
8080
'Commitment', 'TransactionData', 'MintTransactionData',
8181
// Critical Commons classes
82-
'SigningService', 'Signature', 'DataHasher', 'DataHash', 'HexConverter'
82+
'SigningService', 'Signature', 'DataHasher', 'DataHash', 'HexConverter',
83+
// API/Inclusion Proof classes
84+
'InclusionProof', 'RequestId', 'Authenticator', 'SubmitCommitmentRequest', 'SubmitCommitmentResponse'
8385
];
8486

8587
const available: Record<string, boolean> = {};
@@ -280,4 +282,53 @@ describe('Unicity SDK Browser Bundle', (): void => {
280282
expect(operationResult.sha256Value).toBeDefined();
281283
}
282284
});
285+
286+
test('should have inclusion proof verification capabilities', async (): Promise<void> => {
287+
await page.evaluate(sdkContent);
288+
289+
const inclusionProofResult = await page.evaluate(() => {
290+
const sdk = (window as any).UnicitySDK;
291+
292+
return {
293+
// Critical InclusionProofVerificationStatus enum
294+
hasInclusionProofVerificationStatus: typeof sdk.InclusionProofVerificationStatus === 'object',
295+
hasOKStatus: sdk.InclusionProofVerificationStatus?.OK !== undefined,
296+
hasErrorStatus: sdk.InclusionProofVerificationStatus?.ERROR !== undefined,
297+
298+
// InclusionProof class
299+
hasInclusionProof: typeof sdk.InclusionProof === 'function',
300+
301+
// Supporting API classes
302+
hasRequestId: typeof sdk.RequestId === 'function',
303+
hasAuthenticator: typeof sdk.Authenticator === 'function',
304+
hasSubmitCommitmentRequest: typeof sdk.SubmitCommitmentRequest === 'function',
305+
hasSubmitCommitmentResponse: typeof sdk.SubmitCommitmentResponse === 'function',
306+
hasSubmitCommitmentStatus: typeof sdk.SubmitCommitmentStatus === 'object',
307+
308+
// Debug info
309+
verificationStatusKeys: sdk.InclusionProofVerificationStatus ? Object.keys(sdk.InclusionProofVerificationStatus) : [],
310+
verificationStatusValues: sdk.InclusionProofVerificationStatus ? Object.values(sdk.InclusionProofVerificationStatus) : []
311+
};
312+
});
313+
314+
// Verify critical InclusionProofVerificationStatus enum
315+
expect(inclusionProofResult.hasInclusionProofVerificationStatus).toBe(true);
316+
expect(inclusionProofResult.hasOKStatus).toBe(true);
317+
318+
// Verify InclusionProof class
319+
expect(inclusionProofResult.hasInclusionProof).toBe(true);
320+
321+
// Verify supporting API classes
322+
expect(inclusionProofResult.hasRequestId).toBe(true);
323+
expect(inclusionProofResult.hasAuthenticator).toBe(true);
324+
expect(inclusionProofResult.hasSubmitCommitmentRequest).toBe(true);
325+
expect(inclusionProofResult.hasSubmitCommitmentResponse).toBe(true);
326+
expect(inclusionProofResult.hasSubmitCommitmentStatus).toBe(true);
327+
328+
// Verify enum has all expected values
329+
expect(inclusionProofResult.verificationStatusKeys).toContain('OK');
330+
expect(inclusionProofResult.verificationStatusKeys).toContain('NOT_AUTHENTICATED');
331+
expect(inclusionProofResult.verificationStatusKeys).toContain('PATH_NOT_INCLUDED');
332+
expect(inclusionProofResult.verificationStatusKeys).toContain('PATH_INVALID');
333+
});
283334
});

0 commit comments

Comments
 (0)