bitbadgesjs-sdk 0.3.90 → 0.3.91
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/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 +1 -1
|
@@ -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"}
|