@bsv/sdk 1.4.0 → 1.4.1
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/cjs/mod.js +2 -0
- package/dist/cjs/mod.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/identity/IdentityClient.js +258 -0
- package/dist/cjs/src/identity/IdentityClient.js.map +1 -0
- package/dist/cjs/src/identity/index.js +19 -0
- package/dist/cjs/src/identity/index.js.map +1 -0
- package/dist/cjs/src/identity/types/index.js +30 -0
- package/dist/cjs/src/identity/types/index.js.map +1 -0
- package/dist/cjs/src/registry/RegistryClient.js +392 -0
- package/dist/cjs/src/registry/RegistryClient.js.map +1 -0
- package/dist/cjs/src/registry/index.js +19 -0
- package/dist/cjs/src/registry/index.js.map +1 -0
- package/dist/cjs/src/registry/types/index.js +3 -0
- package/dist/cjs/src/registry/types/index.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/mod.js +2 -0
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/src/identity/IdentityClient.js +255 -0
- package/dist/esm/src/identity/IdentityClient.js.map +1 -0
- package/dist/esm/src/identity/index.js +3 -0
- package/dist/esm/src/identity/index.js.map +1 -0
- package/dist/esm/src/identity/types/index.js +27 -0
- package/dist/esm/src/identity/types/index.js.map +1 -0
- package/dist/esm/src/registry/RegistryClient.js +388 -0
- package/dist/esm/src/registry/RegistryClient.js.map +1 -0
- package/dist/esm/src/registry/index.js +3 -0
- package/dist/esm/src/registry/index.js.map +1 -0
- package/dist/esm/src/registry/types/index.js +2 -0
- package/dist/esm/src/registry/types/index.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/mod.d.ts +2 -0
- package/dist/types/mod.d.ts.map +1 -1
- package/dist/types/src/identity/IdentityClient.d.ts +50 -0
- package/dist/types/src/identity/IdentityClient.d.ts.map +1 -0
- package/dist/types/src/identity/index.d.ts +3 -0
- package/dist/types/src/identity/index.d.ts.map +1 -0
- package/dist/types/src/identity/types/index.d.ts +30 -0
- package/dist/types/src/identity/types/index.d.ts.map +1 -0
- package/dist/types/src/registry/RegistryClient.d.ts +94 -0
- package/dist/types/src/registry/RegistryClient.d.ts.map +1 -0
- package/dist/types/src/registry/index.d.ts +3 -0
- package/dist/types/src/registry/index.d.ts.map +1 -0
- package/dist/types/src/registry/types/index.d.ts +86 -0
- package/dist/types/src/registry/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/mod.ts +3 -1
- package/package.json +2 -2
- package/src/identity/IdentityClient.ts +305 -0
- package/src/identity/README.md +93 -0
- package/src/identity/__tests/IdentityClient.test.ts +278 -0
- package/src/identity/index.ts +2 -0
- package/src/identity/types/index.ts +46 -0
- package/src/registry/RegistryClient.ts +493 -0
- package/src/registry/__tests/RegistryClient.test.ts +444 -0
- package/src/registry/index.ts +2 -0
- package/src/registry/types/index.ts +101 -0
package/dist/cjs/mod.js
CHANGED
|
@@ -30,4 +30,6 @@ __exportStar(require("./src/wallet/substrates/index.js"), exports);
|
|
|
30
30
|
__exportStar(require("./src/auth/index.js"), exports);
|
|
31
31
|
__exportStar(require("./src/overlay-tools/index.js"), exports);
|
|
32
32
|
__exportStar(require("./src/storage/index.js"), exports);
|
|
33
|
+
__exportStar(require("./src/identity/index.js"), exports);
|
|
34
|
+
__exportStar(require("./src/registry/index.js"), exports);
|
|
33
35
|
//# sourceMappingURL=mod.js.map
|
package/dist/cjs/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAAyC;AACzC,wDAAqC;AACrC,kEAA+C;AAC/C,6DAA0C;AAC1C,wEAAqD;AACrD,0EAAuD;AACvD,2EAAwD;AACxD,kEAA+C;AAC/C,0DAAuC;AACvC,wDAAqC;AACrC,sDAAmC;AACnC,wDAAqC;AACrC,mEAAgD;AAChD,sDAAmC;AACnC,+DAA4C;AAC5C,yDAAsC"}
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAAyC;AACzC,wDAAqC;AACrC,kEAA+C;AAC/C,6DAA0C;AAC1C,wEAAqD;AACrD,0EAAuD;AACvD,2EAAwD;AACxD,kEAA+C;AAC/C,0DAAuC;AACvC,wDAAqC;AACrC,sDAAmC;AACnC,wDAAqC;AACrC,mEAAgD;AAChD,sDAAmC;AACnC,+DAA4C;AAC5C,yDAAsC;AACtC,0DAAuC;AACvC,0DAAuC"}
|
package/dist/cjs/package.json
CHANGED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IdentityClient = void 0;
|
|
7
|
+
const index_js_1 = require("../auth/clients/index.js");
|
|
8
|
+
const index_js_2 = require("./types/index.js");
|
|
9
|
+
const index_js_3 = require("../wallet/index.js");
|
|
10
|
+
const index_js_4 = require("../transaction/index.js");
|
|
11
|
+
const Certificate_js_1 = __importDefault(require("../auth/certificates/Certificate.js"));
|
|
12
|
+
const index_js_5 = require("../script/index.js");
|
|
13
|
+
const index_js_6 = require("../primitives/index.js");
|
|
14
|
+
const index_js_7 = require("../overlay-tools/index.js");
|
|
15
|
+
/**
|
|
16
|
+
* IdentityClient lets you discover who others are, and let the world know who you are.
|
|
17
|
+
*/
|
|
18
|
+
class IdentityClient {
|
|
19
|
+
constructor(wallet, options = index_js_2.DEFAULT_IDENTITY_CLIENT_OPTIONS, originator) {
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.originator = originator;
|
|
22
|
+
this.wallet = wallet !== null && wallet !== void 0 ? wallet : new index_js_3.WalletClient();
|
|
23
|
+
this.authClient = new index_js_1.AuthFetch(this.wallet);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Publicly reveals selected fields from a given certificate by creating a publicly verifiable certificate.
|
|
27
|
+
* The publicly revealed certificate is included in a blockchain transaction and broadcast to a federated overlay node.
|
|
28
|
+
*
|
|
29
|
+
* @param {Certificate} certificate - The master certificate to selectively reveal.
|
|
30
|
+
* @param {CertificateFieldNameUnder50Bytes[]} fieldsToReveal - An array of certificate field names to reveal. Only these fields will be included in the public certificate.
|
|
31
|
+
*
|
|
32
|
+
* @returns {Promise<object>} A promise that resolves with the broadcast result from the overlay network.
|
|
33
|
+
* @throws {Error} Throws an error if the certificate is invalid, the fields cannot be revealed, or if the broadcast fails.
|
|
34
|
+
*/
|
|
35
|
+
async publiclyRevealAttributes(certificate, fieldsToReveal) {
|
|
36
|
+
if (Object.keys(certificate.fields).length === 0) {
|
|
37
|
+
throw new Error('Public reveal failed: Certificate has no fields to reveal!');
|
|
38
|
+
}
|
|
39
|
+
if (fieldsToReveal.length === 0) {
|
|
40
|
+
throw new Error('Public reveal failed: You must reveal at least one field!');
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const masterCert = new Certificate_js_1.default(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.signature);
|
|
44
|
+
await masterCert.verify();
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
throw new Error('Public reveal failed: Certificate verification failed!');
|
|
48
|
+
}
|
|
49
|
+
// Given we already have a master certificate from a certifier,
|
|
50
|
+
// create an anyone verifiable certificate with selectively revealed fields
|
|
51
|
+
const { keyringForVerifier } = await this.wallet.proveCertificate({
|
|
52
|
+
certificate,
|
|
53
|
+
fieldsToReveal,
|
|
54
|
+
verifier: new index_js_6.PrivateKey(1).toPublicKey().toString()
|
|
55
|
+
});
|
|
56
|
+
// Build the lockingScript with pushdrop.create() and the transaction with createAction()
|
|
57
|
+
const lockingScript = await new index_js_5.PushDrop(this.wallet).lock([index_js_6.Utils.toArray(JSON.stringify({ ...certificate, keyring: keyringForVerifier }))], this.options.protocolID, this.options.keyID, 'anyone', true, true);
|
|
58
|
+
// TODO: Consider verification and if this is necessary
|
|
59
|
+
// counterpartyCanVerifyMyOwnership: true
|
|
60
|
+
const { tx } = await this.wallet.createAction({
|
|
61
|
+
description: 'Create a new Identity Token',
|
|
62
|
+
outputs: [{
|
|
63
|
+
satoshis: this.options.tokenAmount,
|
|
64
|
+
lockingScript: lockingScript.toHex(),
|
|
65
|
+
outputDescription: 'Identity Token'
|
|
66
|
+
}],
|
|
67
|
+
options: {
|
|
68
|
+
randomizeOutputs: false
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
if (tx !== undefined) {
|
|
72
|
+
// Submit the transaction to an overlay
|
|
73
|
+
const broadcaster = new index_js_7.TopicBroadcaster(['tm_identity'], {
|
|
74
|
+
networkPreset: (await (this.wallet.getNetwork({}))).network
|
|
75
|
+
});
|
|
76
|
+
return await broadcaster.broadcast(index_js_4.Transaction.fromAtomicBEEF(tx));
|
|
77
|
+
}
|
|
78
|
+
throw new Error('Public reveal failed: failed to create action!');
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Resolves displayable identity certificates, issued to a given identity key by a trusted certifier.
|
|
82
|
+
*
|
|
83
|
+
* @param {DiscoverByIdentityKeyArgs} args - Arguments for requesting the discovery based on the identity key.
|
|
84
|
+
* @returns {Promise<DisplayableIdentity[]>} The promise resolves to displayable identities.
|
|
85
|
+
*/
|
|
86
|
+
async resolveByIdentityKey(args) {
|
|
87
|
+
const { certificates } = await this.wallet.discoverByIdentityKey(args, this.originator);
|
|
88
|
+
return certificates.map(cert => {
|
|
89
|
+
return IdentityClient.parseIdentity(cert);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Resolves displayable identity certificates by specific identity attributes, issued by a trusted entity.
|
|
94
|
+
*
|
|
95
|
+
* @param {DiscoverByAttributesArgs} args - Attributes and optional parameters used to discover certificates.
|
|
96
|
+
* @returns {Promise<DisplayableIdentity[]>} The promise resolves to displayable identities.
|
|
97
|
+
*/
|
|
98
|
+
async resolveByAttributes(args) {
|
|
99
|
+
const { certificates } = await this.wallet.discoverByAttributes(args, this.originator);
|
|
100
|
+
return certificates.map(cert => {
|
|
101
|
+
return IdentityClient.parseIdentity(cert);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* TODO: Implement once revocation overlay is created
|
|
106
|
+
* Remove public certificate revelation from overlay services by spending the identity token
|
|
107
|
+
* @param serialNumber - Unique serial number of the certificate to revoke revelation
|
|
108
|
+
*/
|
|
109
|
+
// async revokeCertificateRevelation(
|
|
110
|
+
// serialNumber: Base64String
|
|
111
|
+
// ): Promise<BroadcastResponse | BroadcastFailure> {
|
|
112
|
+
// // 1. Find existing UTXO
|
|
113
|
+
// const lookupResolver = new LookupResolver()
|
|
114
|
+
// const result = await lookupResolver.query({
|
|
115
|
+
// service: 'ls_identity',
|
|
116
|
+
// query: {
|
|
117
|
+
// serialNumber
|
|
118
|
+
// }
|
|
119
|
+
// })
|
|
120
|
+
// let outpoint: string
|
|
121
|
+
// let lockingScript: LockingScript | undefined
|
|
122
|
+
// if (result.type === 'output-list') {
|
|
123
|
+
// const tx = Transaction.fromAtomicBEEF(result.outputs[this.options.outputIndex].beef)
|
|
124
|
+
// outpoint = `${tx.id('hex')}.${this.options.outputIndex}` // Consider better way
|
|
125
|
+
// lockingScript = tx.outputs[this.options.outputIndex].lockingScript
|
|
126
|
+
// }
|
|
127
|
+
// if (lockingScript === undefined) {
|
|
128
|
+
// throw new Error('Failed to get locking script for revelation output!')
|
|
129
|
+
// }
|
|
130
|
+
// // 2. Parse results
|
|
131
|
+
// const { signableTransaction } = await this.wallet.createAction({
|
|
132
|
+
// description: '',
|
|
133
|
+
// inputs: [{
|
|
134
|
+
// inputDescription: 'Spend certificate revelation token',
|
|
135
|
+
// outpoint,
|
|
136
|
+
// unlockingScriptLength: 73
|
|
137
|
+
// }],
|
|
138
|
+
// options: {
|
|
139
|
+
// randomizeOutputs: false
|
|
140
|
+
// }
|
|
141
|
+
// })
|
|
142
|
+
// if (signableTransaction === undefined) {
|
|
143
|
+
// throw new Error('Failed to create signable transaction')
|
|
144
|
+
// }
|
|
145
|
+
// const partialTx = Transaction.fromBEEF(signableTransaction.tx)
|
|
146
|
+
// const unlocker = new PushDrop(this.wallet).unlock(
|
|
147
|
+
// this.options.protocolID,
|
|
148
|
+
// this.options.keyID,
|
|
149
|
+
// 'self',
|
|
150
|
+
// 'all',
|
|
151
|
+
// false,
|
|
152
|
+
// 1,
|
|
153
|
+
// lockingScript
|
|
154
|
+
// )
|
|
155
|
+
// const unlockingScript = await unlocker.sign(partialTx, this.options.outputIndex)
|
|
156
|
+
// const { tx: signedTx } = await this.wallet.signAction({
|
|
157
|
+
// reference: signableTransaction.reference,
|
|
158
|
+
// spends: {
|
|
159
|
+
// [this.options.outputIndex]: {
|
|
160
|
+
// unlockingScript: unlockingScript.toHex()
|
|
161
|
+
// }
|
|
162
|
+
// }
|
|
163
|
+
// })
|
|
164
|
+
// // 4. Return broadcast status
|
|
165
|
+
// // Submit the transaction to an overlay
|
|
166
|
+
// const broadcaster = new SHIPBroadcaster(['tm_identity'])
|
|
167
|
+
// return await broadcaster.broadcast(Transaction.fromAtomicBEEF(signedTx as number[]))
|
|
168
|
+
// }
|
|
169
|
+
/**
|
|
170
|
+
* Parse out identity and certifier attributes to display from an IdentityCertificate
|
|
171
|
+
* @param identityToParse - The Identity Certificate to parse
|
|
172
|
+
* @returns - IdentityToDisplay
|
|
173
|
+
*/
|
|
174
|
+
static parseIdentity(identityToParse) {
|
|
175
|
+
const { type, decryptedFields, certifierInfo } = identityToParse;
|
|
176
|
+
let name, avatarURL, badgeLabel, badgeIconURL, badgeClickURL;
|
|
177
|
+
// Parse out the name to display based on the specific certificate type which has clearly defined fields.
|
|
178
|
+
switch (type) {
|
|
179
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.xCert:
|
|
180
|
+
name = decryptedFields.userName;
|
|
181
|
+
avatarURL = decryptedFields.profilePhoto;
|
|
182
|
+
badgeLabel = `X account certified by ${certifierInfo.name}`;
|
|
183
|
+
badgeIconURL = certifierInfo.iconUrl;
|
|
184
|
+
badgeClickURL = 'https://socialcert.net'; // TODO Make a specific page for this.
|
|
185
|
+
break;
|
|
186
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.discordCert:
|
|
187
|
+
name = decryptedFields.userName;
|
|
188
|
+
avatarURL = decryptedFields.profilePhoto;
|
|
189
|
+
badgeLabel = `Discord account certified by ${certifierInfo.name}`;
|
|
190
|
+
badgeIconURL = certifierInfo.iconUrl;
|
|
191
|
+
badgeClickURL = 'https://socialcert.net'; // TODO Make a specific page for this.
|
|
192
|
+
break;
|
|
193
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.emailCert:
|
|
194
|
+
name = decryptedFields.email;
|
|
195
|
+
avatarURL = 'XUTZxep7BBghAJbSBwTjNfmcsDdRFs5EaGEgkESGSgjJVYgMEizu';
|
|
196
|
+
badgeLabel = `Email certified by ${certifierInfo.name}`;
|
|
197
|
+
badgeIconURL = certifierInfo.iconUrl;
|
|
198
|
+
badgeClickURL = 'https://socialcert.net'; // TODO Make a specific page for this.
|
|
199
|
+
break;
|
|
200
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.phoneCert:
|
|
201
|
+
name = decryptedFields.phoneNumber;
|
|
202
|
+
avatarURL = 'XUTLxtX3ELNUwRhLwL7kWNGbdnFM8WG2eSLv84J7654oH8HaJWrU';
|
|
203
|
+
badgeLabel = `Phone certified by ${certifierInfo.name}`;
|
|
204
|
+
badgeIconURL = certifierInfo.iconUrl;
|
|
205
|
+
badgeClickURL = 'https://socialcert.net'; // TODO Make a specific page for this.
|
|
206
|
+
break;
|
|
207
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.identiCert:
|
|
208
|
+
name = `${decryptedFields.firstName} ${decryptedFields.lastName}`;
|
|
209
|
+
avatarURL = decryptedFields.profilePhoto;
|
|
210
|
+
badgeLabel = `Government ID certified by ${certifierInfo.name}`;
|
|
211
|
+
badgeIconURL = certifierInfo.iconUrl;
|
|
212
|
+
badgeClickURL = 'https://identicert.me'; // TODO Make a specific page for this.
|
|
213
|
+
break;
|
|
214
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.registrant:
|
|
215
|
+
name = decryptedFields.name;
|
|
216
|
+
avatarURL = decryptedFields.icon;
|
|
217
|
+
badgeLabel = `Entity certified by ${certifierInfo.name}`;
|
|
218
|
+
badgeIconURL = certifierInfo.iconUrl;
|
|
219
|
+
badgeClickURL = 'https://projectbabbage.com/docs/registrant'; // TODO: Make this doc page exist
|
|
220
|
+
break;
|
|
221
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.coolCert:
|
|
222
|
+
name = decryptedFields.cool === 'true' ? 'Cool Person!' : 'Not cool!';
|
|
223
|
+
break;
|
|
224
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.anyone:
|
|
225
|
+
name = 'Anyone';
|
|
226
|
+
avatarURL = 'XUT4bpQ6cpBaXi1oMzZsXfpkWGbtp2JTUYAoN7PzhStFJ6wLfoeR';
|
|
227
|
+
badgeLabel = 'Represents the ability for anyone to access this information.';
|
|
228
|
+
badgeIconURL = 'XUUV39HVPkpmMzYNTx7rpKzJvXfeiVyQWg2vfSpjBAuhunTCA9uG';
|
|
229
|
+
badgeClickURL = 'https://projectbabbage.com/docs/anyone-identity'; // TODO: Make this doc page exist
|
|
230
|
+
break;
|
|
231
|
+
case index_js_2.KNOWN_IDENTITY_TYPES.self:
|
|
232
|
+
name = 'You';
|
|
233
|
+
avatarURL = 'XUT9jHGk2qace148jeCX5rDsMftkSGYKmigLwU2PLLBc7Hm63VYR';
|
|
234
|
+
badgeLabel = 'Represents your ability to access this information.';
|
|
235
|
+
badgeIconURL = 'XUUV39HVPkpmMzYNTx7rpKzJvXfeiVyQWg2vfSpjBAuhunTCA9uG';
|
|
236
|
+
badgeClickURL = 'https://projectbabbage.com/docs/self-identity'; // TODO: Make this doc page exist
|
|
237
|
+
break;
|
|
238
|
+
default:
|
|
239
|
+
name = index_js_2.defaultIdentity.name;
|
|
240
|
+
avatarURL = decryptedFields.profilePhoto;
|
|
241
|
+
badgeLabel = index_js_2.defaultIdentity.badgeLabel;
|
|
242
|
+
badgeIconURL = index_js_2.defaultIdentity.badgeIconURL;
|
|
243
|
+
badgeClickURL = index_js_2.defaultIdentity.badgeClickURL; // TODO: Make this doc page exist
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
name,
|
|
248
|
+
avatarURL,
|
|
249
|
+
abbreviatedKey: identityToParse.subject.length > 0 ? `${identityToParse.subject.substring(0, 10)}...` : '',
|
|
250
|
+
identityKey: identityToParse.subject,
|
|
251
|
+
badgeIconURL,
|
|
252
|
+
badgeLabel,
|
|
253
|
+
badgeClickURL
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
exports.IdentityClient = IdentityClient;
|
|
258
|
+
//# sourceMappingURL=IdentityClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./IdentityClient.js"), exports);
|
|
18
|
+
__exportStar(require("./types/index.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/identity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,mDAAgC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KNOWN_IDENTITY_TYPES = exports.DEFAULT_IDENTITY_CLIENT_OPTIONS = exports.defaultIdentity = void 0;
|
|
4
|
+
exports.defaultIdentity = {
|
|
5
|
+
name: 'Unknown Identity',
|
|
6
|
+
avatarURL: 'XUUB8bbn9fEthk15Ge3zTQXypUShfC94vFjp65v7u5CQ8qkpxzst',
|
|
7
|
+
identityKey: '',
|
|
8
|
+
abbreviatedKey: '',
|
|
9
|
+
badgeIconURL: 'XUUV39HVPkpmMzYNTx7rpKzJvXfeiVyQWg2vfSpjBAuhunTCA9uG',
|
|
10
|
+
badgeLabel: 'Not verified by anyone you trust.',
|
|
11
|
+
badgeClickURL: 'https://projectbabbage.com/docs/unknown-identity'
|
|
12
|
+
};
|
|
13
|
+
exports.DEFAULT_IDENTITY_CLIENT_OPTIONS = {
|
|
14
|
+
protocolID: [1, 'identity'],
|
|
15
|
+
keyID: '1',
|
|
16
|
+
tokenAmount: 1,
|
|
17
|
+
outputIndex: 0
|
|
18
|
+
};
|
|
19
|
+
exports.KNOWN_IDENTITY_TYPES = {
|
|
20
|
+
identiCert: 'z40BOInXkI8m7f/wBrv4MJ09bZfzZbTj2fJqCtONqCY=',
|
|
21
|
+
discordCert: '2TgqRC35B1zehGmB21xveZNc7i5iqHc0uxMb+1NMPW4=',
|
|
22
|
+
phoneCert: 'mffUklUzxbHr65xLohn0hRL0Tq2GjW1GYF/OPfzqJ6A=',
|
|
23
|
+
xCert: 'vdDWvftf1H+5+ZprUw123kjHlywH+v20aPQTuXgMpNc=',
|
|
24
|
+
registrant: 'YoPsbfR6YQczjzPdHCoGC7nJsOdPQR50+SYqcWpJ0y0=',
|
|
25
|
+
emailCert: 'exOl3KM0dIJ04EW5pZgbZmPag6MdJXd3/a1enmUU/BA=',
|
|
26
|
+
anyone: 'mfkOMfLDQmrr3SBxBQ5WeE+6Hy3VJRFq6w4A5Ljtlis=',
|
|
27
|
+
self: 'Hkge6X5JRxt1cWXtHLCrSTg6dCVTxjQJJ48iOYd7n3g=',
|
|
28
|
+
coolCert: 'AGfk/WrT1eBDXpz3mcw386Zww2HmqcIn3uY6x4Af1eo='
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/identity/types/index.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAwB;IAClD,IAAI,EAAE,kBAAkB;IACxB,SAAS,EAAE,sDAAsD;IACjE,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,sDAAsD;IACpE,UAAU,EAAE,mCAAmC;IAC/C,aAAa,EAAE,kDAAkD;CAClE,CAAA;AAQY,QAAA,+BAA+B,GAA0B;IACpE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC;IAC3B,KAAK,EAAE,GAAG;IACV,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;CACf,CAAA;AAYY,QAAA,oBAAoB,GAAG;IAClC,UAAU,EAAE,8CAA8C;IAC1D,WAAW,EAAE,8CAA8C;IAC3D,SAAS,EAAE,8CAA8C;IACzD,KAAK,EAAE,8CAA8C;IACrD,UAAU,EAAE,8CAA8C;IAC1D,SAAS,EAAE,8CAA8C;IACzD,MAAM,EAAE,8CAA8C;IACtD,IAAI,EAAE,8CAA8C;IACpD,QAAQ,EAAE,8CAA8C;CACzD,CAAA"}
|