@sybil-center/zkc-core
Version:
Work with sybil-center ZKC
56 lines • 4.65 kB
JavaScript
import { popupFeatures, util } from "../util/index.js";
import { toSchemaName } from "../type/schemas.js";
export const GOVERNMENT_ID_TYPES = [
1,
2,
3,
4,
0, // OTHER - something that we do not support now
];
export class PassportIssuer {
constructor(client) {
this.client = client;
}
get providedSchema() { return 0; }
;
getChallenge(challengeReq) {
return this.client.getChallenge({
path: util.EPs.v1(toSchemaName(this.providedSchema)).challenge,
challengeReq,
});
}
canIssue(entry) {
return this.client.canIssue({
path: util.EPs.v1(toSchemaName(this.providedSchema)).canIssue,
canIssueReq: entry
});
}
issue(issueReq) {
return this.client.issue({
path: util.EPs.v1(toSchemaName(this.providedSchema)).issue,
issueReq: issueReq
});
}
async issueCred(args) {
const { proof: { subjectId, signFn }, options } = args;
const challengeReq = {
subjectId: subjectId,
options: options
};
const challenge = await this.getChallenge(challengeReq);
const popup = window.open(challenge.verifyURL, "_blank", options?.windowFeature ? options.windowFeature : popupFeatures());
if (!popup)
throw new Error(`Can not open popup window to authenticate in Discord`);
const result = await util.repeat((r) => (r instanceof Error) ? true : r, 1000, async () => {
return (await this.canIssue({ sessionId: challenge.sessionId })).canIssue;
});
if (result instanceof Error)
throw result;
const signature = await signFn({ message: challenge.message });
return this.issue({
sessionId: challenge.sessionId,
signature: signature
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3BvcnQtaXNzdWVyLmpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiaXNzdWVyL3Bhc3Nwb3J0LWlzc3Vlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUkxRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxDQUFDO0lBQ0QsQ0FBQztJQUNELENBQUM7SUFDRCxDQUFDO0lBQ0QsQ0FBQyxFQUFFLCtDQUErQztDQUMxQyxDQUFDO0FBOEJYLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ21CLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFDbEMsQ0FBQztJQUVKLElBQUksY0FBYyxLQUFhLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBQztJQUFBLENBQUM7SUFFMUMsWUFBWSxDQUNWLFlBQXdDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzlELFlBQVk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUNOLEtBQWdDO1FBRWhDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQzdELFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBZ0M7UUFDcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDMUQsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFHZjtRQUNDLE1BQU0sRUFDSixLQUFLLEVBQUUsRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNQLEVBQUUsT0FBTyxFQUNYLEdBQUcsSUFBSSxDQUFDO1FBQ1QsTUFBTSxZQUFZLEdBQStCO1lBQy9DLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDdkIsU0FBUyxDQUFDLFNBQVMsRUFDbkIsUUFBUSxFQUNSLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUNqRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDcEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUM5QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN0QyxJQUFJLEVBQ0osS0FBSyxJQUFJLEVBQUU7WUFDVCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzVFLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxNQUFNLFlBQVksS0FBSztZQUFFLE1BQU0sTUFBTSxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNoQixTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDOUIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=