@bsv/sdk 1.4.0 → 1.4.2

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.
Files changed (80) hide show
  1. package/dist/cjs/mod.js +2 -0
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +1 -1
  4. package/dist/cjs/src/identity/IdentityClient.js +258 -0
  5. package/dist/cjs/src/identity/IdentityClient.js.map +1 -0
  6. package/dist/cjs/src/identity/index.js +19 -0
  7. package/dist/cjs/src/identity/index.js.map +1 -0
  8. package/dist/cjs/src/identity/types/index.js +30 -0
  9. package/dist/cjs/src/identity/types/index.js.map +1 -0
  10. package/dist/cjs/src/registry/RegistryClient.js +392 -0
  11. package/dist/cjs/src/registry/RegistryClient.js.map +1 -0
  12. package/dist/cjs/src/registry/index.js +19 -0
  13. package/dist/cjs/src/registry/index.js.map +1 -0
  14. package/dist/cjs/src/registry/types/index.js +3 -0
  15. package/dist/cjs/src/registry/types/index.js.map +1 -0
  16. package/dist/cjs/src/storage/StorageDownloader.js +82 -0
  17. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -0
  18. package/dist/cjs/src/storage/__test/StorageDownloader.test.js +144 -0
  19. package/dist/cjs/src/storage/__test/StorageDownloader.test.js.map +1 -0
  20. package/dist/cjs/src/storage/index.js +3 -1
  21. package/dist/cjs/src/storage/index.js.map +1 -1
  22. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  23. package/dist/esm/mod.js +2 -0
  24. package/dist/esm/mod.js.map +1 -1
  25. package/dist/esm/src/identity/IdentityClient.js +255 -0
  26. package/dist/esm/src/identity/IdentityClient.js.map +1 -0
  27. package/dist/esm/src/identity/index.js +3 -0
  28. package/dist/esm/src/identity/index.js.map +1 -0
  29. package/dist/esm/src/identity/types/index.js +27 -0
  30. package/dist/esm/src/identity/types/index.js.map +1 -0
  31. package/dist/esm/src/registry/RegistryClient.js +388 -0
  32. package/dist/esm/src/registry/RegistryClient.js.map +1 -0
  33. package/dist/esm/src/registry/index.js +3 -0
  34. package/dist/esm/src/registry/index.js.map +1 -0
  35. package/dist/esm/src/registry/types/index.js +2 -0
  36. package/dist/esm/src/registry/types/index.js.map +1 -0
  37. package/dist/esm/src/storage/StorageDownloader.js +75 -0
  38. package/dist/esm/src/storage/StorageDownloader.js.map +1 -0
  39. package/dist/esm/src/storage/__test/StorageDownloader.test.js +139 -0
  40. package/dist/esm/src/storage/__test/StorageDownloader.test.js.map +1 -0
  41. package/dist/esm/src/storage/index.js +1 -0
  42. package/dist/esm/src/storage/index.js.map +1 -1
  43. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  44. package/dist/types/mod.d.ts +2 -0
  45. package/dist/types/mod.d.ts.map +1 -1
  46. package/dist/types/src/identity/IdentityClient.d.ts +50 -0
  47. package/dist/types/src/identity/IdentityClient.d.ts.map +1 -0
  48. package/dist/types/src/identity/index.d.ts +3 -0
  49. package/dist/types/src/identity/index.d.ts.map +1 -0
  50. package/dist/types/src/identity/types/index.d.ts +30 -0
  51. package/dist/types/src/identity/types/index.d.ts.map +1 -0
  52. package/dist/types/src/registry/RegistryClient.d.ts +94 -0
  53. package/dist/types/src/registry/RegistryClient.d.ts.map +1 -0
  54. package/dist/types/src/registry/index.d.ts +3 -0
  55. package/dist/types/src/registry/index.d.ts.map +1 -0
  56. package/dist/types/src/registry/types/index.d.ts +86 -0
  57. package/dist/types/src/registry/types/index.d.ts.map +1 -0
  58. package/dist/types/src/storage/StorageDownloader.d.ts +25 -0
  59. package/dist/types/src/storage/StorageDownloader.d.ts.map +1 -0
  60. package/dist/types/src/storage/__test/StorageDownloader.test.d.ts +2 -0
  61. package/dist/types/src/storage/__test/StorageDownloader.test.d.ts.map +1 -0
  62. package/dist/types/src/storage/index.d.ts +1 -0
  63. package/dist/types/src/storage/index.d.ts.map +1 -1
  64. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  65. package/dist/umd/bundle.js +1 -1
  66. package/docs/storage.md +51 -0
  67. package/mod.ts +3 -1
  68. package/package.json +2 -2
  69. package/src/identity/IdentityClient.ts +305 -0
  70. package/src/identity/README.md +93 -0
  71. package/src/identity/__tests/IdentityClient.test.ts +278 -0
  72. package/src/identity/index.ts +2 -0
  73. package/src/identity/types/index.ts +46 -0
  74. package/src/registry/RegistryClient.ts +493 -0
  75. package/src/registry/__tests/RegistryClient.test.ts +444 -0
  76. package/src/registry/index.ts +2 -0
  77. package/src/registry/types/index.ts +101 -0
  78. package/src/storage/StorageDownloader.ts +91 -0
  79. package/src/storage/__test/StorageDownloader.test.ts +170 -0
  80. package/src/storage/index.ts +3 -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
@@ -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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -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"}