bitbadgesjs-sdk 0.3.90 → 0.3.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chain-drivers/CosmosDriver.d.ts.map +1 -1
- package/dist/chain-drivers/CosmosDriver.js +2 -2
- package/dist/chain-drivers/CosmosDriver.js.map +1 -1
- package/dist/core/attestations.d.ts +6 -0
- package/dist/core/attestations.d.ts.map +1 -0
- package/dist/core/attestations.js +76 -0
- package/dist/core/attestations.js.map +1 -0
- package/dist/core/blockin.d.ts +0 -3
- package/dist/core/blockin.d.ts.map +1 -1
- package/dist/core/blockin.js +1 -73
- package/dist/core/blockin.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CosmosDriver.d.ts","sourceRoot":"","sources":["../../src/chain-drivers/CosmosDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAWlF,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,YAAY,CAAC,UAAU,CAAC;IACnE,KAAK,SAAC;gBACM,KAAK,EAAE,MAAM;IAIzB,cAAc,CAAC,OAAO,EAAE,MAAM;IAK9B,uBAAuB,CAAC,OAAO,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"CosmosDriver.d.ts","sourceRoot":"","sources":["../../src/chain-drivers/CosmosDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAWlF,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,YAAY,CAAC,UAAU,CAAC;IACnE,KAAK,SAAC;gBACM,KAAK,EAAE,MAAM;IAIzB,cAAc,CAAC,OAAO,EAAE,MAAM;IAK9B,uBAAuB,CAAC,OAAO,EAAE,MAAM;IAIjC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAevF,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,SAAS,EACpD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS;CAIxC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const amino_1 = require("@keplr-wallet/cosmos/build/adr-36/amino");
|
|
4
4
|
const buffer_1 = require("buffer");
|
|
5
5
|
class CosmosDriver {
|
|
6
6
|
chain;
|
|
@@ -20,7 +20,7 @@ class CosmosDriver {
|
|
|
20
20
|
}
|
|
21
21
|
const pubKeyBytes = buffer_1.Buffer.from(publicKey, 'base64');
|
|
22
22
|
const signatureBytes = buffer_1.Buffer.from(signature, 'base64');
|
|
23
|
-
const isRecovered = (0,
|
|
23
|
+
const isRecovered = (0, amino_1.verifyADR36Amino)(prefix, address, message, pubKeyBytes, signatureBytes, 'secp256k1');
|
|
24
24
|
if (!isRecovered) {
|
|
25
25
|
throw new Error(`Signature invalid for address ${address}`);
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CosmosDriver.js","sourceRoot":"","sources":["../../src/chain-drivers/CosmosDriver.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"CosmosDriver.js","sourceRoot":"","sources":["../../src/chain-drivers/CosmosDriver.ts"],"names":[],"mappings":";;AAAA,mEAA2E;AAG3E,mCAAgC;AAUhC,MAAqB,YAAY;IAC/B,KAAK,CAAC;IACN,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,uBAAuB,CAAC,OAAe;QACrC,MAAM,iBAAiB,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,OAAe,EAAE,SAAiB,EAAE,SAAkB;QAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6HAA6H,CAAC,CAAC;QACjJ,CAAC;QAED,MAAM,WAAW,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,IAAA,wBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QACzG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,SAAmB,EACnB,OAAoD,EACpD,gBAAqC;QAErC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF;AAtCD,+BAsCC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { iAttestationsProof } from '../interfaces/badges/core';
|
|
2
|
+
import { blsCreateProof } from '@trevormil/bbs-signatures';
|
|
3
|
+
import { NumberType } from 'blockin/dist/types/verify.types';
|
|
4
|
+
export declare const createAttestationsProof: typeof blsCreateProof;
|
|
5
|
+
export declare const verifyAttestationsPresentationSignatures: (body: Omit<iAttestationsProof<NumberType>, 'anchors' | 'holders' | 'updateHistory' | 'credential' | 'entropies'>, derivedProof?: boolean) => Promise<void>;
|
|
6
|
+
//# sourceMappingURL=attestations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestations.d.ts","sourceRoot":"","sources":["../../src/core/attestations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAA6B,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAO7D,eAAO,MAAM,uBAAuB,uBAAiB,CAAC;AAQtD,eAAO,MAAM,wCAAwC,SAC7C,KAAK,mBAAmB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC,iBACjG,OAAO,kBA2FvB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyAttestationsPresentationSignatures = exports.createAttestationsProof = void 0;
|
|
4
|
+
const converter_1 = require("../address-converter/converter");
|
|
5
|
+
const verifySig_1 = require("../chain-drivers/verifySig");
|
|
6
|
+
const bbs_signatures_1 = require("@trevormil/bbs-signatures");
|
|
7
|
+
exports.createAttestationsProof = bbs_signatures_1.blsCreateProof;
|
|
8
|
+
const verifyAttestationsPresentationSignatures = async (body, derivedProof) => {
|
|
9
|
+
if (!body.attestationMessages.length || body.attestationMessages.some((m) => !m)) {
|
|
10
|
+
throw new Error('Messages are required and cannot be empty');
|
|
11
|
+
}
|
|
12
|
+
if (body.messageFormat === 'json') {
|
|
13
|
+
for (const message of body.attestationMessages) {
|
|
14
|
+
try {
|
|
15
|
+
JSON.parse(message);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
throw new Error('Message is not valid JSON');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (body.dataIntegrityProof) {
|
|
23
|
+
if (body.scheme === 'standard') {
|
|
24
|
+
const address = body.dataIntegrityProof.signer;
|
|
25
|
+
if ((0, converter_1.convertToCosmosAddress)(address) !== (0, converter_1.convertToCosmosAddress)(body.createdBy)) {
|
|
26
|
+
throw new Error('Signer does not match creator');
|
|
27
|
+
}
|
|
28
|
+
const chain = (0, converter_1.getChainForAddress)(address);
|
|
29
|
+
await (0, verifySig_1.getChainDriver)(chain).verifySignature(address, body.attestationMessages?.[0] ?? '', body.dataIntegrityProof.signature, body.dataIntegrityProof.publicKey);
|
|
30
|
+
}
|
|
31
|
+
else if (body.scheme === 'bbs') {
|
|
32
|
+
if (!body.proofOfIssuance?.message || !body.proofOfIssuance.signature) {
|
|
33
|
+
throw new Error('Proof of issuance is required for BBS scheme');
|
|
34
|
+
}
|
|
35
|
+
const bbsSigner = body.proofOfIssuance.message.split(' ')[9];
|
|
36
|
+
if (bbsSigner !== body.dataIntegrityProof.signer) {
|
|
37
|
+
throw new Error('Proof signer does not match proof of issuance');
|
|
38
|
+
}
|
|
39
|
+
const address = body.proofOfIssuance.signer;
|
|
40
|
+
const chain = (0, converter_1.getChainForAddress)(address);
|
|
41
|
+
if ((0, converter_1.convertToCosmosAddress)(address) !== (0, converter_1.convertToCosmosAddress)(body.createdBy)) {
|
|
42
|
+
throw new Error('Signer does not match creator');
|
|
43
|
+
}
|
|
44
|
+
await (0, verifySig_1.getChainDriver)(chain).verifySignature(address, body.proofOfIssuance.message, body.proofOfIssuance.signature, body.proofOfIssuance.publicKey);
|
|
45
|
+
if (!derivedProof) {
|
|
46
|
+
const isProofVerified = await (0, bbs_signatures_1.blsVerify)({
|
|
47
|
+
signature: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signature, 'hex')),
|
|
48
|
+
publicKey: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signer, 'hex')),
|
|
49
|
+
messages: body.attestationMessages.map((message) => Uint8Array.from(Buffer.from(message, 'utf-8')))
|
|
50
|
+
});
|
|
51
|
+
if (!isProofVerified.verified) {
|
|
52
|
+
throw new Error('Data integrity proof not verified');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const isProofVerified = await (0, bbs_signatures_1.blsVerifyProof)({
|
|
57
|
+
proof: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signature, 'hex')),
|
|
58
|
+
publicKey: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signer, 'hex')),
|
|
59
|
+
messages: body.attestationMessages.map((message) => Uint8Array.from(Buffer.from(message, 'utf-8'))),
|
|
60
|
+
nonce: Uint8Array.from(Buffer.from('nonce', 'utf8'))
|
|
61
|
+
});
|
|
62
|
+
if (!isProofVerified.verified) {
|
|
63
|
+
throw new Error('Data integrity proof not verified');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
throw new Error('Invalid scheme');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error('Data integrity proof is required');
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
exports.verifyAttestationsPresentationSignatures = verifyAttestationsPresentationSignatures;
|
|
76
|
+
//# sourceMappingURL=attestations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestations.js","sourceRoot":"","sources":["../../src/core/attestations.ts"],"names":[],"mappings":"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"}
|
package/dist/core/blockin.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { BaseNumberTypeClass } from '../common/base';
|
|
|
5
5
|
import { NumberType } from '../common/string-numbers';
|
|
6
6
|
import { SupportedChain } from '../common/types';
|
|
7
7
|
import { iAttestationsProof } from '../interfaces/badges/core';
|
|
8
|
-
import { blsCreateProof } from '@trevormil/bbs-signatures';
|
|
9
8
|
import { AssetConditionGroup } from 'blockin';
|
|
10
9
|
import { AttestationsProof } from './secrets';
|
|
11
10
|
export interface iBlockinChallenge<T extends NumberType> {
|
|
@@ -71,8 +70,6 @@ export declare class BlockinChallenge<T extends NumberType> extends BaseNumberTy
|
|
|
71
70
|
verifyAssets(api: BitBadgesApi<T>): Promise<boolean>;
|
|
72
71
|
convert<U extends NumberType>(convertFunction: (val: NumberType) => U): BlockinChallenge<U>;
|
|
73
72
|
}
|
|
74
|
-
export declare const createAttestationsProof: typeof blsCreateProof;
|
|
75
|
-
export declare const verifyAttestationsPresentationSignatures: (body: Omit<iAttestationsProof<NumberType>, 'anchors' | 'holders' | 'updateHistory' | 'credential' | 'entropies'>, derivedProof?: boolean) => Promise<void>;
|
|
76
73
|
export interface VerifySIWBBOptions {
|
|
77
74
|
ownershipRequirements?: AssetConditionGroup<NumberType>;
|
|
78
75
|
otherSignIns?: ('discord' | 'twitter' | 'github' | 'google')[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockin.d.ts","sourceRoot":"","sources":["../../src/core/blockin.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAmB,0BAA0B,EAAyC,MAAM,gCAAgC,CAAC;AAEpI,OAAO,EAAE,mBAAmB,EAAgD,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"blockin.d.ts","sourceRoot":"","sources":["../../src/core/blockin.ts"],"names":[],"mappings":"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"}
|
package/dist/core/blockin.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateBitBadgesAuthUrl = exports.
|
|
3
|
+
exports.generateBitBadgesAuthUrl = exports.BlockinChallenge = void 0;
|
|
4
4
|
const blockin_1 = require("../api-indexer/requests/blockin");
|
|
5
|
-
const verifySig_1 = require("../chain-drivers/verifySig");
|
|
6
5
|
const base_1 = require("../common/base");
|
|
7
|
-
const bbs_signatures_1 = require("@trevormil/bbs-signatures");
|
|
8
|
-
const converter_1 = require("../address-converter/converter");
|
|
9
6
|
const secrets_1 = require("./secrets");
|
|
10
7
|
class BlockinChallenge extends base_1.BaseNumberTypeClass {
|
|
11
8
|
address;
|
|
@@ -56,75 +53,6 @@ class BlockinChallenge extends base_1.BaseNumberTypeClass {
|
|
|
56
53
|
}
|
|
57
54
|
}
|
|
58
55
|
exports.BlockinChallenge = BlockinChallenge;
|
|
59
|
-
exports.createAttestationsProof = bbs_signatures_1.blsCreateProof;
|
|
60
|
-
const verifyAttestationsPresentationSignatures = async (body, derivedProof) => {
|
|
61
|
-
if (!body.attestationMessages.length || body.attestationMessages.some((m) => !m)) {
|
|
62
|
-
throw new Error('Messages are required and cannot be empty');
|
|
63
|
-
}
|
|
64
|
-
if (body.messageFormat === 'json') {
|
|
65
|
-
for (const message of body.attestationMessages) {
|
|
66
|
-
try {
|
|
67
|
-
JSON.parse(message);
|
|
68
|
-
}
|
|
69
|
-
catch (e) {
|
|
70
|
-
throw new Error('Message is not valid JSON');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (body.dataIntegrityProof) {
|
|
75
|
-
if (body.scheme === 'standard') {
|
|
76
|
-
const address = body.dataIntegrityProof.signer;
|
|
77
|
-
if ((0, converter_1.convertToCosmosAddress)(address) !== (0, converter_1.convertToCosmosAddress)(body.createdBy)) {
|
|
78
|
-
throw new Error('Signer does not match creator');
|
|
79
|
-
}
|
|
80
|
-
const chain = (0, converter_1.getChainForAddress)(address);
|
|
81
|
-
await (0, verifySig_1.getChainDriver)(chain).verifySignature(address, body.attestationMessages?.[0] ?? '', body.dataIntegrityProof.signature, body.dataIntegrityProof.publicKey);
|
|
82
|
-
}
|
|
83
|
-
else if (body.scheme === 'bbs') {
|
|
84
|
-
if (!body.proofOfIssuance?.message || !body.proofOfIssuance.signature) {
|
|
85
|
-
throw new Error('Proof of issuance is required for BBS scheme');
|
|
86
|
-
}
|
|
87
|
-
const bbsSigner = body.proofOfIssuance.message.split(' ')[9];
|
|
88
|
-
if (bbsSigner !== body.dataIntegrityProof.signer) {
|
|
89
|
-
throw new Error('Proof signer does not match proof of issuance');
|
|
90
|
-
}
|
|
91
|
-
const address = body.proofOfIssuance.signer;
|
|
92
|
-
const chain = (0, converter_1.getChainForAddress)(address);
|
|
93
|
-
if ((0, converter_1.convertToCosmosAddress)(address) !== (0, converter_1.convertToCosmosAddress)(body.createdBy)) {
|
|
94
|
-
throw new Error('Signer does not match creator');
|
|
95
|
-
}
|
|
96
|
-
await (0, verifySig_1.getChainDriver)(chain).verifySignature(address, body.proofOfIssuance.message, body.proofOfIssuance.signature, body.proofOfIssuance.publicKey);
|
|
97
|
-
if (!derivedProof) {
|
|
98
|
-
const isProofVerified = await (0, bbs_signatures_1.blsVerify)({
|
|
99
|
-
signature: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signature, 'hex')),
|
|
100
|
-
publicKey: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signer, 'hex')),
|
|
101
|
-
messages: body.attestationMessages.map((message) => Uint8Array.from(Buffer.from(message, 'utf-8')))
|
|
102
|
-
});
|
|
103
|
-
if (!isProofVerified.verified) {
|
|
104
|
-
throw new Error('Data integrity proof not verified');
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
const isProofVerified = await (0, bbs_signatures_1.blsVerifyProof)({
|
|
109
|
-
proof: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signature, 'hex')),
|
|
110
|
-
publicKey: Uint8Array.from(Buffer.from(body.dataIntegrityProof.signer, 'hex')),
|
|
111
|
-
messages: body.attestationMessages.map((message) => Uint8Array.from(Buffer.from(message, 'utf-8'))),
|
|
112
|
-
nonce: Uint8Array.from(Buffer.from('nonce', 'utf8'))
|
|
113
|
-
});
|
|
114
|
-
if (!isProofVerified.verified) {
|
|
115
|
-
throw new Error('Data integrity proof not verified');
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
throw new Error('Invalid scheme');
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
throw new Error('Data integrity proof is required');
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
exports.verifyAttestationsPresentationSignatures = verifyAttestationsPresentationSignatures;
|
|
128
56
|
const generateBitBadgesAuthUrl = (params) => {
|
|
129
57
|
let url = `https://bitbadges.io/siwbb/authorize?`;
|
|
130
58
|
for (const [key, value] of Object.entries(params)) {
|
package/dist/core/blockin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockin.js","sourceRoot":"","sources":["../../src/core/blockin.ts"],"names":[],"mappings":";;;AAEA,4DAAoI;
|
|
1
|
+
{"version":3,"file":"blockin.js","sourceRoot":"","sources":["../../src/core/blockin.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAE1B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAE1B,cAAc,WAAW,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./addressLists"), exports);
|
|
18
|
+
__exportStar(require("./attestations"), exports);
|
|
18
19
|
__exportStar(require("./aliases"), exports);
|
|
19
20
|
__exportStar(require("./approvals"), exports);
|
|
20
21
|
__exportStar(require("./approval-utils"), exports);
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,4CAA0B;AAC1B,8CAA4B;AAC5B,mDAAiC;AACjC,6CAA2B;AAC3B,gDAA8B;AAC9B,yCAAuB;AACvB,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAE1B,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,iDAA+B;AAC/B,4CAA0B;AAC1B,8CAA4B;AAC5B,mDAAiC;AACjC,6CAA2B;AAC3B,gDAA8B;AAC9B,yCAAuB;AACvB,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAE1B,4CAA0B"}
|