UNPKG

wallet-storage

Version:

BRC100 conforming wallet, wallet storage and wallet signer components

45 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.proveCertificate = proveCertificate; const index_client_1 = require("../../index.client"); async function proveCertificate(wallet, auth, vargs) { const lcargs = { partial: { type: vargs.type, serialNumber: vargs.serialNumber, certifier: vargs.certifier, subject: vargs.subject, revocationOutpoint: vargs.revocationOutpoint, signature: vargs.signature, }, certifiers: [], types: [], limit: 2, offset: 0, privileged: false }; const lcr = await wallet.storage.listCertificates(lcargs); if (lcr.certificates.length != 1) throw new index_client_1.sdk.WERR_INVALID_PARAMETER('args', `a unique certificate match`); const storageCert = lcr.certificates[0]; let proveWallet = wallet; if (storageCert.subject != wallet.identityKey) { // Certificate must have been issued to privileged identity if (!wallet.privilegedKeyManager) throw new index_client_1.sdk.WERR_INVALID_OPERATION('Wallet is not privileged. proveCertificate fails.'); proveWallet = wallet.privilegedKeyManager; } const co = await index_client_1.sdk.CertOps.fromCounterparty(proveWallet, { certificate: { ...storageCert }, keyring: storageCert.keyring, counterparty: storageCert.verifier || storageCert.subject }); const e = await co.exportForCounterparty(vargs.verifier, vargs.fieldsToReveal); const pr = { certificate: e.certificate, verifier: e.counterparty, keyringForVerifier: e.keyring }; return pr; } //# sourceMappingURL=proveCertificate.js.map