@bsv/sdk 1.3.32 → 1.3.34
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/package.json +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -15
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +6 -2
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +22 -23
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +17 -15
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/overlay-tools/index.js +8 -2
- package/dist/cjs/src/overlay-tools/index.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -15
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +6 -2
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +22 -22
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +17 -14
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/overlay-tools/index.js +4 -0
- package/dist/esm/src/overlay-tools/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +10 -4
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +3 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +12 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +13 -4
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/index.d.ts +2 -0
- package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/auth.md +25 -9
- package/docs/overlay-tools.md +58 -14
- package/package.json +1 -1
- package/src/auth/certificates/MasterCertificate.ts +37 -13
- package/src/auth/certificates/VerifiableCertificate.ts +8 -2
- package/src/overlay-tools/LookupResolver.ts +30 -30
- package/src/overlay-tools/SHIPBroadcaster.ts +25 -21
- package/src/overlay-tools/__tests/LookupResolver.test.ts +3 -3
- package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +3 -3
- package/src/overlay-tools/index.ts +5 -0
package/dist/cjs/package.json
CHANGED
|
@@ -33,13 +33,15 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
33
33
|
* @param {ProtoWallet} creatorWallet - The wallet of the creator responsible for encrypting the fields.
|
|
34
34
|
* @param {WalletCounterparty} certifierOrSubject - The certifier or subject who will validate the certificate fields.
|
|
35
35
|
* @param {Record<CertificateFieldNameUnder50Bytes, string>} fields - A record of certificate field names (under 50 bytes) mapped to their values.
|
|
36
|
+
* @param {BooleanDefaultFalse} [privileged] - Whether this is a privileged request.
|
|
37
|
+
* @param {DescriptionString5to50Bytes} [privilegedReason] - Reason provided for privileged access, required if this is a privileged operation. *
|
|
36
38
|
* @returns {Promise<CreateCertificateFieldsResult>} A promise resolving to an object containing:
|
|
37
39
|
* - `certificateFields` {Record<CertificateFieldNameUnder50Bytes, Base64String>}:
|
|
38
40
|
* The encrypted certificate fields.
|
|
39
41
|
* - `masterKeyring` {Record<CertificateFieldNameUnder50Bytes, Base64String>}:
|
|
40
42
|
* The master keyring containing encrypted revelation keys for each field.
|
|
41
43
|
*/
|
|
42
|
-
static async createCertificateFields(creatorWallet, certifierOrSubject, fields) {
|
|
44
|
+
static async createCertificateFields(creatorWallet, certifierOrSubject, fields, privileged, privilegedReason) {
|
|
43
45
|
const certificateFields = {};
|
|
44
46
|
const masterKeyring = {};
|
|
45
47
|
for (const [fieldName, fieldValue] of Object.entries(fields)) {
|
|
@@ -49,7 +51,9 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
49
51
|
const { ciphertext: encryptedFieldRevelationKey } = await creatorWallet.encrypt({
|
|
50
52
|
plaintext: fieldSymmetricKey.toArray(),
|
|
51
53
|
...Certificate_js_1.default.getCertificateFieldEncryptionDetails(fieldName),
|
|
52
|
-
counterparty: certifierOrSubject
|
|
54
|
+
counterparty: certifierOrSubject,
|
|
55
|
+
privileged,
|
|
56
|
+
privilegedReason
|
|
53
57
|
});
|
|
54
58
|
masterKeyring[fieldName] = mod_js_1.Utils.toBase64(encryptedFieldRevelationKey);
|
|
55
59
|
}
|
|
@@ -69,12 +73,14 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
69
73
|
* @param {string[]} fieldsToReveal - An array of field names to be revealed to the verifier. Must be a subset of the certificate's fields.
|
|
70
74
|
* @param {string} [originator] - Optional originator identifier, used if additional context is needed for decryption and encryption operations.
|
|
71
75
|
* @returns {Promise<Record<CertificateFieldNameUnder50Bytes, string>>} - A keyring mapping field names to encrypted field revelation keys, allowing the verifier to decrypt specified fields.
|
|
76
|
+
* @param {BooleanDefaultFalse} [privileged] - Whether this is a privileged request.
|
|
77
|
+
* @param {DescriptionString5to50Bytes} [privilegedReason] - Reason provided for privileged access, required if this is a privileged operation. *
|
|
72
78
|
* @throws {Error} Throws an error if:
|
|
73
79
|
* - fieldsToReveal is not an array of strings.
|
|
74
80
|
* - A field in `fieldsToReveal` does not exist in the certificate.
|
|
75
81
|
* - The decrypted master field key fails to decrypt the corresponding field (indicating an invalid key).
|
|
76
82
|
*/
|
|
77
|
-
static async createKeyringForVerifier(subjectWallet, certifier, verifier, fields, fieldsToReveal, masterKeyring, serialNumber) {
|
|
83
|
+
static async createKeyringForVerifier(subjectWallet, certifier, verifier, fields, fieldsToReveal, masterKeyring, serialNumber, privileged, privilegedReason) {
|
|
78
84
|
if (!Array.isArray(fieldsToReveal)) {
|
|
79
85
|
throw new Error('fieldsToReveal must be an array of strings');
|
|
80
86
|
}
|
|
@@ -85,12 +91,14 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
85
91
|
throw new Error(`Fields to reveal must be a subset of the certificate fields. Missing the "${fieldName}" field.`);
|
|
86
92
|
}
|
|
87
93
|
// Decrypt the master field key and verify that derived key actually decrypts requested field
|
|
88
|
-
const masterFieldKey = (await this.decryptField(subjectWallet, masterKeyring, fieldName, fields[fieldName], certifier)).fieldRevelationKey;
|
|
94
|
+
const masterFieldKey = (await this.decryptField(subjectWallet, masterKeyring, fieldName, fields[fieldName], certifier, privileged, privilegedReason)).fieldRevelationKey;
|
|
89
95
|
// Encrypt derived fieldRevelationKey for verifier
|
|
90
96
|
const { ciphertext: encryptedFieldRevelationKey } = await subjectWallet.encrypt({
|
|
91
97
|
plaintext: masterFieldKey,
|
|
92
98
|
...Certificate_js_1.default.getCertificateFieldEncryptionDetails(fieldName, serialNumber),
|
|
93
|
-
counterparty: verifier
|
|
99
|
+
counterparty: verifier,
|
|
100
|
+
privileged,
|
|
101
|
+
privilegedReason
|
|
94
102
|
});
|
|
95
103
|
// Add encryptedFieldRevelationKey to fieldRevelationKeyring
|
|
96
104
|
fieldRevelationKeyring[fieldName] = mod_js_1.Utils.toBase64(encryptedFieldRevelationKey);
|
|
@@ -120,17 +128,15 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
120
128
|
static async issueCertificateForSubject(certifierWallet, subject, fields, certificateType, getRevocationOutpoint = async (_serial) => {
|
|
121
129
|
void _serial; // Explicitly acknowledge unused parameter
|
|
122
130
|
return 'Certificate revocation not tracked.';
|
|
123
|
-
}, serialNumber
|
|
124
|
-
) {
|
|
131
|
+
}, serialNumber) {
|
|
125
132
|
// 1. Generate a random serialNumber if not provided
|
|
126
|
-
const finalSerialNumber = serialNumber !== null && serialNumber !== void 0 ? serialNumber : mod_js_1.Utils.toBase64((0, mod_js_1.Random)(32));
|
|
133
|
+
const finalSerialNumber = serialNumber !== null && serialNumber !== void 0 ? serialNumber : mod_js_1.Utils.toBase64((0, mod_js_1.Random)(32));
|
|
127
134
|
// 2. Create encrypted certificate fields and associated master keyring
|
|
128
135
|
const { certificateFields, masterKeyring } = await this.createCertificateFields(certifierWallet, subject, fields);
|
|
129
136
|
// 3. Obtain a revocation outpoint
|
|
130
|
-
const revocationOutpoint = await getRevocationOutpoint(finalSerialNumber);
|
|
137
|
+
const revocationOutpoint = await getRevocationOutpoint(finalSerialNumber);
|
|
131
138
|
// 4. Create new MasterCertificate instance
|
|
132
|
-
const certificate = new MasterCertificate(certificateType, finalSerialNumber,
|
|
133
|
-
subject, (await certifierWallet.getPublicKey({ identityKey: true })).publicKey, revocationOutpoint, certificateFields, masterKeyring);
|
|
139
|
+
const certificate = new MasterCertificate(certificateType, finalSerialNumber, subject, (await certifierWallet.getPublicKey({ identityKey: true })).publicKey, revocationOutpoint, certificateFields, masterKeyring);
|
|
134
140
|
// 5. Sign and return the new MasterCertificate certifying the subject.
|
|
135
141
|
await certificate.sign(certifierWallet);
|
|
136
142
|
return certificate;
|
|
@@ -148,11 +154,13 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
148
154
|
* @param {Record<CertificateFieldNameUnder50Bytes, Base64String>} masterKeyring - A record containing encrypted keys for each field.
|
|
149
155
|
* @param {Record<CertificateFieldNameUnder50Bytes, Base64String>} fields - A record of encrypted field names and their values.
|
|
150
156
|
* @param {WalletCounterparty} counterparty - The counterparty responsible for creating or signing the certificate. For self-signed certificates, use 'self'.
|
|
157
|
+
* @param {BooleanDefaultFalse} [privileged] - Whether this is a privileged request.
|
|
158
|
+
* @param {DescriptionString5to50Bytes} [privilegedReason] - Reason provided for privileged access, required if this is a privileged operation.
|
|
151
159
|
* @returns {Promise<Record<CertificateFieldNameUnder50Bytes, string>>} A promise resolving to a record of field names and their decrypted values in plaintext.
|
|
152
160
|
*
|
|
153
161
|
* @throws {Error} Throws an error if the `masterKeyring` is invalid or if decryption fails for any field.
|
|
154
162
|
*/
|
|
155
|
-
static async decryptFields(subjectOrCertifierWallet, masterKeyring, fields, counterparty) {
|
|
163
|
+
static async decryptFields(subjectOrCertifierWallet, masterKeyring, fields, counterparty, privileged, privilegedReason) {
|
|
156
164
|
if (masterKeyring == null || Object.keys(masterKeyring).length === 0) {
|
|
157
165
|
throw new Error('A MasterCertificate must have a valid masterKeyring!');
|
|
158
166
|
}
|
|
@@ -160,7 +168,7 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
160
168
|
const decryptedFields = {};
|
|
161
169
|
// Note: we want to iterate through all fields, not just masterKeyring keys/value pairs.
|
|
162
170
|
for (const fieldName of Object.keys(fields)) {
|
|
163
|
-
decryptedFields[fieldName] = (await this.decryptField(subjectOrCertifierWallet, masterKeyring, fieldName, fields[fieldName], counterparty)).decryptedFieldValue;
|
|
171
|
+
decryptedFields[fieldName] = (await this.decryptField(subjectOrCertifierWallet, masterKeyring, fieldName, fields[fieldName], counterparty, privileged, privilegedReason)).decryptedFieldValue;
|
|
164
172
|
}
|
|
165
173
|
return decryptedFields;
|
|
166
174
|
}
|
|
@@ -168,7 +176,7 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
168
176
|
throw new Error('Failed to decrypt all master certificate fields.');
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
|
-
static async decryptField(subjectOrCertifierWallet, masterKeyring, fieldName, fieldValue, counterparty) {
|
|
179
|
+
static async decryptField(subjectOrCertifierWallet, masterKeyring, fieldName, fieldValue, counterparty, privileged, privilegedReason) {
|
|
172
180
|
if (masterKeyring == null || Object.keys(masterKeyring).length === 0) {
|
|
173
181
|
throw new Error('A MasterCertificate must have a valid masterKeyring!');
|
|
174
182
|
}
|
|
@@ -176,7 +184,9 @@ class MasterCertificate extends Certificate_js_1.default {
|
|
|
176
184
|
const { plaintext: fieldRevelationKey } = await subjectOrCertifierWallet.decrypt({
|
|
177
185
|
ciphertext: mod_js_1.Utils.toArray(masterKeyring[fieldName], 'base64'),
|
|
178
186
|
...Certificate_js_1.default.getCertificateFieldEncryptionDetails(fieldName),
|
|
179
|
-
counterparty
|
|
187
|
+
counterparty,
|
|
188
|
+
privileged,
|
|
189
|
+
privilegedReason
|
|
180
190
|
});
|
|
181
191
|
const decryptedFieldValue = new mod_js_1.SymmetricKey(fieldRevelationKey).decrypt(mod_js_1.Utils.toArray(fieldValue, 'base64'));
|
|
182
192
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MasterCertificate.js","sourceRoot":"","sources":["../../../../../src/auth/certificates/MasterCertificate.ts"],"names":[],"mappings":";;;;;;AAAA,4CAWwB;AACxB,sEAA0C;AAO1C;;;;;;;GAOG;AACH,MAAa,iBAAkB,SAAQ,wBAAW;IAWhD,YACE,IAAkB,EAClB,YAA0B,EAC1B,OAAkB,EAClB,SAAoB,EACpB,kBAAkC,EAClC,MAA8D,EAC9D,aAAqE,EACrE,SAAqB;QAErB,KAAK,CACH,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,MAAM,EACN,SAAS,CACV,CAAA;QAED,4FAA4F;QAC5F,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC3C,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;gBAC7E,MAAM,IAAI,KAAK,CACb,yFAAyF,SAAS,IAAI,CACvG,CAAA;aACF;SACF;QAED,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"MasterCertificate.js","sourceRoot":"","sources":["../../../../../src/auth/certificates/MasterCertificate.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,11 @@ class VerifiableCertificate extends Certificate_js_1.default {
|
|
|
20
20
|
* Decrypts selectively revealed certificate fields using the provided keyring and verifier wallet
|
|
21
21
|
* @param {ProtoWallet} verifierWallet - The wallet instance of the certificate's verifier, used to decrypt field keys.
|
|
22
22
|
* @returns {Promise<Record<CertificateFieldNameUnder50Bytes, string>>} - A promise that resolves to an object where each key is a field name and each value is the decrypted field value as a string.
|
|
23
|
+
* @param {BooleanDefaultFalse} [privileged] - Whether this is a privileged request.
|
|
24
|
+
* @param {DescriptionString5to50Bytes} [privilegedReason] - Reason provided for privileged access, required if this is a privileged operation.
|
|
23
25
|
* @throws {Error} Throws an error if any of the decryption operations fail, with a message indicating the failure context.
|
|
24
26
|
*/
|
|
25
|
-
async decryptFields(verifierWallet) {
|
|
27
|
+
async decryptFields(verifierWallet, privileged, privilegedReason) {
|
|
26
28
|
if (this.keyring == null || Object.keys(this.keyring).length === 0) { // ✅ Explicitly check null and empty object
|
|
27
29
|
throw new Error('A keyring is required to decrypt certificate fields for the verifier.');
|
|
28
30
|
}
|
|
@@ -32,7 +34,9 @@ class VerifiableCertificate extends Certificate_js_1.default {
|
|
|
32
34
|
const { plaintext: fieldRevelationKey } = await verifierWallet.decrypt({
|
|
33
35
|
ciphertext: mod_js_1.Utils.toArray(this.keyring[fieldName], 'base64'),
|
|
34
36
|
...Certificate_js_1.default.getCertificateFieldEncryptionDetails(fieldName, this.serialNumber),
|
|
35
|
-
counterparty: this.subject
|
|
37
|
+
counterparty: this.subject,
|
|
38
|
+
privileged,
|
|
39
|
+
privilegedReason
|
|
36
40
|
});
|
|
37
41
|
const fieldValue = new mod_js_1.SymmetricKey(fieldRevelationKey).decrypt(mod_js_1.Utils.toArray(this.fields[fieldName], 'base64'));
|
|
38
42
|
decryptedFields[fieldName] = mod_js_1.Utils.toUTF8(fieldValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifiableCertificate.js","sourceRoot":"","sources":["../../../../../src/auth/certificates/VerifiableCertificate.ts"],"names":[],"mappings":";;;;;;AAAA,4CASwB;AACxB,sEAA0C;AAE1C;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,wBAAW;IAYpD,YACE,IAAkB,EAClB,YAA0B,EAC1B,OAAkB,EAClB,SAAoB,EACpB,kBAAkC,EAClC,MAAwD,EACxD,OAAyD,EACzD,SAAqB,EACrB,eAAwE;QAExE,KAAK,CACH,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,MAAM,EACN,SAAS,CACV,CAAA;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"VerifiableCertificate.js","sourceRoot":"","sources":["../../../../../src/auth/certificates/VerifiableCertificate.ts"],"names":[],"mappings":";;;;;;AAAA,4CASwB;AACxB,sEAA0C;AAE1C;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,wBAAW;IAYpD,YACE,IAAkB,EAClB,YAA0B,EAC1B,OAAkB,EAClB,SAAoB,EACpB,kBAAkC,EAClC,MAAwD,EACxD,OAAyD,EACzD,SAAqB,EACrB,eAAwE;QAExE,KAAK,CACH,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,MAAM,EACN,SAAS,CACV,CAAA;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,cAA2B,EAC3B,UAAoB,EACpB,gBAAyB;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,2CAA2C;YAC/G,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAA;SACF;QAED,IAAI;YACF,MAAM,eAAe,GACnB,EAAE,CAAA;YACJ,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;gBACpC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;oBACrE,UAAU,EAAE,cAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;oBAC5D,GAAG,wBAAW,CAAC,oCAAoC,CACjD,SAAS,EACT,IAAI,CAAC,YAAY,CAClB;oBACD,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,UAAU;oBACV,gBAAgB;iBACjB,CAAC,CAAA;gBAEF,MAAM,UAAU,GAAG,IAAI,qBAAY,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAC7D,cAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAChD,CAAA;gBACD,eAAe,CAAC,SAAS,CAAC,GAAG,cAAK,CAAC,MAAM,CAAC,UAAsB,CAAC,CAAA;aAClE;YACD,OAAO,eAAe,CAAA;SACvB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CACb,4EAA4E,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAErI,CAAA;SACF;IACH,CAAC;CACF;AAnFD,sDAmFC"}
|
|
@@ -3,30 +3,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HTTPSOverlayLookupFacilitator = exports.DEFAULT_SLAP_TRACKERS = void 0;
|
|
6
|
+
exports.HTTPSOverlayLookupFacilitator = exports.DEFAULT_TESTNET_SLAP_TRACKERS = exports.DEFAULT_SLAP_TRACKERS = void 0;
|
|
7
7
|
const index_js_1 = require("../transaction/index.js");
|
|
8
8
|
const OverlayAdminTokenTemplate_js_1 = __importDefault(require("./OverlayAdminTokenTemplate.js"));
|
|
9
9
|
/** Default SLAP trackers */
|
|
10
10
|
exports.DEFAULT_SLAP_TRACKERS = [
|
|
11
11
|
// Babbage primary overlay service
|
|
12
|
-
'https://
|
|
13
|
-
// Babbage example overlay
|
|
14
|
-
'https://overlay-example.babbage.systems',
|
|
15
|
-
// The Babbage office building
|
|
16
|
-
'https://office.babbage.systems'
|
|
12
|
+
'https://users.bapp.dev'
|
|
17
13
|
// NOTE: Other entities may submit pull requests to the library if they maintain SLAP overlay services.
|
|
18
14
|
// Additional trackers run by different entities contribute to greater network resiliency.
|
|
19
15
|
// It also generally doesn't hurt to have more trackers in this list.
|
|
20
16
|
// DISCLAIMER:
|
|
21
17
|
// Trackers known to host invalid or illegal records will be removed at the discretion of the BSV Association.
|
|
22
18
|
];
|
|
19
|
+
/** Default testnet SLAP trackers */
|
|
20
|
+
exports.DEFAULT_TESTNET_SLAP_TRACKERS = [
|
|
21
|
+
// Babbage primary testnet overlay service
|
|
22
|
+
'https://testnet-users.bapp.dev'
|
|
23
|
+
];
|
|
23
24
|
const MAX_TRACKER_WAIT_TIME = 1000;
|
|
24
25
|
class HTTPSOverlayLookupFacilitator {
|
|
25
|
-
constructor(httpClient = fetch) {
|
|
26
|
+
constructor(httpClient = fetch, allowHTTP = false) {
|
|
26
27
|
this.fetchClient = httpClient;
|
|
28
|
+
this.allowHTTP = allowHTTP;
|
|
27
29
|
}
|
|
28
30
|
async lookup(url, question, timeout = 5000) {
|
|
29
|
-
if (!url.startsWith('https:')) {
|
|
31
|
+
if (!url.startsWith('https:') && !this.allowHTTP) {
|
|
30
32
|
throw new Error('HTTPS facilitator can only use URLs that start with "https:"');
|
|
31
33
|
}
|
|
32
34
|
const timeoutPromise = new Promise((resolve, reject) => setTimeout(() => reject(new Error('Request timed out')), timeout));
|
|
@@ -57,18 +59,13 @@ exports.HTTPSOverlayLookupFacilitator = HTTPSOverlayLookupFacilitator;
|
|
|
57
59
|
* Represents an SHIP transaction broadcaster.
|
|
58
60
|
*/
|
|
59
61
|
class LookupResolver {
|
|
60
|
-
constructor(config) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
67
|
-
const { facilitator = defaultConfig.facilitator, slapTrackers = defaultConfig.slapTrackers, hostOverrides = defaultConfig.hostOverrides, additionalHosts = defaultConfig.additionalHosts } = config !== null && config !== void 0 ? config : defaultConfig; // ✅ Use a default object directly
|
|
68
|
-
this.facilitator = facilitator !== null && facilitator !== void 0 ? facilitator : new HTTPSOverlayLookupFacilitator();
|
|
69
|
-
this.slapTrackers = slapTrackers !== null && slapTrackers !== void 0 ? slapTrackers : [];
|
|
70
|
-
this.hostOverrides = hostOverrides !== null && hostOverrides !== void 0 ? hostOverrides : {};
|
|
71
|
-
this.additionalHosts = additionalHosts !== null && additionalHosts !== void 0 ? additionalHosts : {};
|
|
62
|
+
constructor(config = {}) {
|
|
63
|
+
var _a, _b, _c, _d, _e;
|
|
64
|
+
this.networkPreset = (_a = config.networkPreset) !== null && _a !== void 0 ? _a : 'mainnet';
|
|
65
|
+
this.facilitator = (_b = config.facilitator) !== null && _b !== void 0 ? _b : new HTTPSOverlayLookupFacilitator(undefined, this.networkPreset === 'local');
|
|
66
|
+
this.slapTrackers = (_c = config.slapTrackers) !== null && _c !== void 0 ? _c : (this.networkPreset === 'mainnet' ? exports.DEFAULT_SLAP_TRACKERS : exports.DEFAULT_TESTNET_SLAP_TRACKERS);
|
|
67
|
+
this.hostOverrides = (_d = config.hostOverrides) !== null && _d !== void 0 ? _d : {};
|
|
68
|
+
this.additionalHosts = (_e = config.additionalHosts) !== null && _e !== void 0 ? _e : {};
|
|
72
69
|
}
|
|
73
70
|
/**
|
|
74
71
|
* Given a LookupQuestion, returns a LookupAnswer. Aggregates across multiple services and supports resiliency.
|
|
@@ -77,11 +74,14 @@ class LookupResolver {
|
|
|
77
74
|
var _a;
|
|
78
75
|
let competentHosts = [];
|
|
79
76
|
if (question.service === 'ls_slap') {
|
|
80
|
-
competentHosts = this.slapTrackers;
|
|
77
|
+
competentHosts = this.networkPreset === 'local' ? ['http://localhost:8080'] : this.slapTrackers;
|
|
81
78
|
}
|
|
82
79
|
else if (this.hostOverrides[question.service] != null) {
|
|
83
80
|
competentHosts = this.hostOverrides[question.service];
|
|
84
81
|
}
|
|
82
|
+
else if (this.networkPreset === 'local') {
|
|
83
|
+
competentHosts = ['http://localhost:8080'];
|
|
84
|
+
}
|
|
85
85
|
else {
|
|
86
86
|
competentHosts = await this.findCompetentHosts(question.service);
|
|
87
87
|
}
|
|
@@ -92,7 +92,7 @@ class LookupResolver {
|
|
|
92
92
|
];
|
|
93
93
|
}
|
|
94
94
|
if (competentHosts.length < 1) {
|
|
95
|
-
throw new Error(`No competent hosts found by the SLAP trackers for lookup service: ${question.service}`);
|
|
95
|
+
throw new Error(`No competent ${this.networkPreset} hosts found by the SLAP trackers for lookup service: ${question.service}`);
|
|
96
96
|
}
|
|
97
97
|
// Use Promise.allSettled to handle individual host failures
|
|
98
98
|
const hostResponses = await Promise.allSettled(competentHosts.map(async (host) => await this.facilitator.lookup(host, question, timeout)));
|
|
@@ -134,7 +134,6 @@ class LookupResolver {
|
|
|
134
134
|
console.error('Error processing response outputs:', error);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
// ✅ Ensure function always returns a value
|
|
138
137
|
return {
|
|
139
138
|
type: 'output-list',
|
|
140
139
|
outputs: Array.from(outputs.values())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAqD;AACrD,kGAAsE;AAmCtE,4BAA4B;AACf,QAAA,qBAAqB,GAAa;IAC7C,kCAAkC;IAClC,
|
|
1
|
+
{"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,12 @@ const LookupResolver_js_1 = __importDefault(require("./LookupResolver.js"));
|
|
|
9
9
|
const OverlayAdminTokenTemplate_js_1 = __importDefault(require("./OverlayAdminTokenTemplate.js"));
|
|
10
10
|
const MAX_SHIP_QUERY_TIMEOUT = 1000;
|
|
11
11
|
class HTTPSOverlayBroadcastFacilitator {
|
|
12
|
-
constructor(httpClient = fetch) {
|
|
12
|
+
constructor(httpClient = fetch, allowHTTP = false) {
|
|
13
13
|
this.httpClient = httpClient;
|
|
14
|
+
this.allowHTTP = false;
|
|
14
15
|
}
|
|
15
16
|
async send(url, taggedBEEF) {
|
|
16
|
-
if (!url.startsWith('https:')) {
|
|
17
|
+
if (!url.startsWith('https:') && !this.allowHTTP) {
|
|
17
18
|
throw new Error('HTTPS facilitator can only use URLs that start with "https:"');
|
|
18
19
|
}
|
|
19
20
|
const response = await fetch(`${url}/submit`, {
|
|
@@ -34,16 +35,17 @@ class HTTPSOverlayBroadcastFacilitator {
|
|
|
34
35
|
}
|
|
35
36
|
exports.HTTPSOverlayBroadcastFacilitator = HTTPSOverlayBroadcastFacilitator;
|
|
36
37
|
/**
|
|
37
|
-
*
|
|
38
|
+
* Broadcasts transactions to one or more overlay topics.
|
|
38
39
|
*/
|
|
39
|
-
class
|
|
40
|
+
class TopicBroadcaster {
|
|
40
41
|
/**
|
|
41
42
|
* Constructs an instance of the SHIP broadcaster.
|
|
42
43
|
*
|
|
43
44
|
* @param {string[]} topics - The list of SHIP topic names where transactions are to be sent.
|
|
44
45
|
* @param {SHIPBroadcasterConfig} config - Configuration options for the SHIP broadcaster.
|
|
45
46
|
*/
|
|
46
|
-
constructor(topics, config) {
|
|
47
|
+
constructor(topics, config = {}) {
|
|
48
|
+
var _a, _b, _c, _d, _e, _f;
|
|
47
49
|
if (topics.length === 0) {
|
|
48
50
|
throw new Error('At least one topic is required for broadcast.');
|
|
49
51
|
}
|
|
@@ -51,15 +53,15 @@ class SHIPBroadcaster {
|
|
|
51
53
|
throw new Error('Every topic must start with "tm_".');
|
|
52
54
|
}
|
|
53
55
|
this.topics = topics;
|
|
54
|
-
|
|
55
|
-
this.facilitator = facilitator !== null &&
|
|
56
|
-
this.resolver = resolver !== null &&
|
|
56
|
+
this.networkPreset = (_a = config.networkPreset) !== null && _a !== void 0 ? _a : 'mainnet';
|
|
57
|
+
this.facilitator = (_b = config.facilitator) !== null && _b !== void 0 ? _b : new HTTPSOverlayBroadcastFacilitator(undefined, this.networkPreset === 'local');
|
|
58
|
+
this.resolver = (_c = config.resolver) !== null && _c !== void 0 ? _c : new LookupResolver_js_1.default({ networkPreset: this.networkPreset });
|
|
57
59
|
this.requireAcknowledgmentFromAllHostsForTopics =
|
|
58
|
-
requireAcknowledgmentFromAllHostsForTopics !== null &&
|
|
60
|
+
(_d = config.requireAcknowledgmentFromAllHostsForTopics) !== null && _d !== void 0 ? _d : [];
|
|
59
61
|
this.requireAcknowledgmentFromAnyHostForTopics =
|
|
60
|
-
requireAcknowledgmentFromAnyHostForTopics !== null &&
|
|
62
|
+
(_e = config.requireAcknowledgmentFromAnyHostForTopics) !== null && _e !== void 0 ? _e : 'all';
|
|
61
63
|
this.requireAcknowledgmentFromSpecificHostsForTopics =
|
|
62
|
-
requireAcknowledgmentFromSpecificHostsForTopics !== null &&
|
|
64
|
+
(_f = config.requireAcknowledgmentFromSpecificHostsForTopics) !== null && _f !== void 0 ? _f : {};
|
|
63
65
|
}
|
|
64
66
|
/**
|
|
65
67
|
* Broadcasts a transaction to Overlay Services via SHIP.
|
|
@@ -75,12 +77,12 @@ class SHIPBroadcaster {
|
|
|
75
77
|
catch (error) {
|
|
76
78
|
throw new Error('Transactions sent via SHIP to Overlay Services must be serializable to BEEF format.');
|
|
77
79
|
}
|
|
78
|
-
const interestedHosts = await this.findInterestedHosts();
|
|
80
|
+
const interestedHosts = this.networkPreset === 'local' ? ['http://localhost:8080'] : await this.findInterestedHosts();
|
|
79
81
|
if (Object.keys(interestedHosts).length === 0) {
|
|
80
82
|
return {
|
|
81
83
|
status: 'error',
|
|
82
84
|
code: 'ERR_NO_HOSTS_INTERESTED',
|
|
83
|
-
description:
|
|
85
|
+
description: `No ${this.networkPreset} hosts are interested in receiving this transaction.`
|
|
84
86
|
};
|
|
85
87
|
}
|
|
86
88
|
const hostPromises = Object.entries(interestedHosts).map(async ([host, topics]) => {
|
|
@@ -105,7 +107,7 @@ class SHIPBroadcaster {
|
|
|
105
107
|
return {
|
|
106
108
|
status: 'error',
|
|
107
109
|
code: 'ERR_ALL_HOSTS_REJECTED',
|
|
108
|
-
description:
|
|
110
|
+
description: `All ${this.networkPreset} topical hosts have rejected the transaction.`
|
|
109
111
|
};
|
|
110
112
|
}
|
|
111
113
|
// Collect host acknowledgments
|
|
@@ -345,5 +347,5 @@ class SHIPBroadcaster {
|
|
|
345
347
|
return results;
|
|
346
348
|
}
|
|
347
349
|
}
|
|
348
|
-
exports.default =
|
|
350
|
+
exports.default = TopicBroadcaster;
|
|
349
351
|
//# sourceMappingURL=SHIPBroadcaster.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SHIPBroadcaster.js","sourceRoot":"","sources":["../../../../src/overlay-tools/SHIPBroadcaster.ts"],"names":[],"mappings":";;;;;;AAAA,sDAKgC;AAChC,4EAAgD;AAChD,kGAAsE;
|
|
1
|
+
{"version":3,"file":"SHIPBroadcaster.js","sourceRoot":"","sources":["../../../../src/overlay-tools/SHIPBroadcaster.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,13 +17,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.SHIPBroadcaster = exports.LookupResolver = exports.OverlayAdminTokenTemplate = void 0;
|
|
20
|
+
exports.SHIPCast = exports.SHIPBroadcaster = exports.TopicBroadcaster = exports.LookupResolver = exports.OverlayAdminTokenTemplate = void 0;
|
|
21
21
|
__exportStar(require("./LookupResolver.js"), exports);
|
|
22
22
|
__exportStar(require("./SHIPBroadcaster.js"), exports);
|
|
23
23
|
var OverlayAdminTokenTemplate_js_1 = require("./OverlayAdminTokenTemplate.js");
|
|
24
24
|
Object.defineProperty(exports, "OverlayAdminTokenTemplate", { enumerable: true, get: function () { return __importDefault(OverlayAdminTokenTemplate_js_1).default; } });
|
|
25
25
|
var LookupResolver_js_1 = require("./LookupResolver.js");
|
|
26
26
|
Object.defineProperty(exports, "LookupResolver", { enumerable: true, get: function () { return __importDefault(LookupResolver_js_1).default; } });
|
|
27
|
+
// For intuitive clarity, we name this the Topic Broadcaster.
|
|
27
28
|
var SHIPBroadcaster_js_1 = require("./SHIPBroadcaster.js");
|
|
28
|
-
Object.defineProperty(exports, "
|
|
29
|
+
Object.defineProperty(exports, "TopicBroadcaster", { enumerable: true, get: function () { return __importDefault(SHIPBroadcaster_js_1).default; } });
|
|
30
|
+
// Historically, it was also known by two other names:
|
|
31
|
+
var SHIPBroadcaster_js_2 = require("./SHIPBroadcaster.js");
|
|
32
|
+
Object.defineProperty(exports, "SHIPBroadcaster", { enumerable: true, get: function () { return __importDefault(SHIPBroadcaster_js_2).default; } });
|
|
33
|
+
var SHIPBroadcaster_js_3 = require("./SHIPBroadcaster.js");
|
|
34
|
+
Object.defineProperty(exports, "SHIPCast", { enumerable: true, get: function () { return __importDefault(SHIPBroadcaster_js_3).default; } });
|
|
29
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/overlay-tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,uDAAoC;AACpC,+EAAqF;AAA5E,0JAAA,OAAO,OAA6B;AAC7C,yDAA+D;AAAtD,oIAAA,OAAO,OAAkB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/overlay-tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,uDAAoC;AACpC,+EAAqF;AAA5E,0JAAA,OAAO,OAA6B;AAC7C,yDAA+D;AAAtD,oIAAA,OAAO,OAAkB;AAElC,6DAA6D;AAC7D,2DAAkE;AAAzD,uIAAA,OAAO,OAAoB;AACpC,sDAAsD;AACtD,2DAAiE;AAAxD,sIAAA,OAAO,OAAmB;AACnC,2DAA0D;AAAjD,+HAAA,OAAO,OAAY"}
|