@welshman/signer 0.0.9 → 0.0.11
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/build/src/signers/nip01.cjs +17 -3
- package/build/src/signers/nip01.cjs.map +1 -1
- package/build/src/signers/nip01.d.ts +1 -1
- package/build/src/signers/nip01.mjs +17 -3
- package/build/src/signers/nip01.mjs.map +1 -1
- package/build/src/signers/nip46.cjs +120 -67
- package/build/src/signers/nip46.cjs.map +1 -1
- package/build/src/signers/nip46.d.ts +20 -11
- package/build/src/signers/nip46.mjs +122 -69
- package/build/src/signers/nip46.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _Nip01Signer_pubkey;
|
|
2
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
15
|
exports.Nip01Signer = void 0;
|
|
4
16
|
const util_1 = require("../util.cjs");
|
|
5
17
|
class Nip01Signer {
|
|
6
18
|
constructor(secret) {
|
|
7
19
|
this.secret = secret;
|
|
8
|
-
this
|
|
9
|
-
this.
|
|
20
|
+
_Nip01Signer_pubkey.set(this, void 0);
|
|
21
|
+
this.getPubkey = async () => __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f");
|
|
22
|
+
this.sign = async (event) => (0, util_1.sign)((0, util_1.hash)((0, util_1.own)(event, __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f"))), this.secret);
|
|
10
23
|
this.nip04 = {
|
|
11
24
|
encrypt: async (pubkey, message) => util_1.nip04.encrypt(pubkey, this.secret, message),
|
|
12
25
|
decrypt: async (pubkey, message) => util_1.nip04.decrypt(pubkey, this.secret, message),
|
|
@@ -15,10 +28,11 @@ class Nip01Signer {
|
|
|
15
28
|
encrypt: async (pubkey, message) => util_1.nip44.encrypt(pubkey, this.secret, message),
|
|
16
29
|
decrypt: async (pubkey, message) => util_1.nip44.decrypt(pubkey, this.secret, message),
|
|
17
30
|
};
|
|
18
|
-
this
|
|
31
|
+
__classPrivateFieldSet(this, _Nip01Signer_pubkey, (0, util_1.getPubkey)(this.secret), "f");
|
|
19
32
|
}
|
|
20
33
|
}
|
|
21
34
|
exports.Nip01Signer = Nip01Signer;
|
|
35
|
+
_Nip01Signer_pubkey = new WeakMap();
|
|
22
36
|
Nip01Signer.fromSecret = (secret) => new Nip01Signer(secret);
|
|
23
37
|
Nip01Signer.ephemeral = () => new Nip01Signer((0, util_1.makeSecret)());
|
|
24
38
|
//# sourceMappingURL=nip01.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip01.cjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nip01.cjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sCAAqF;AAErF,MAAa,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFlC,sCAAe;QAUf,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,uBAAA,IAAI,2BAAQ,CAAA;QAEpC,SAAI,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,IAAA,WAAI,EAAC,IAAA,UAAG,EAAC,KAAK,EAAE,uBAAA,IAAI,2BAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvF,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAvBC,uBAAA,IAAI,uBAAW,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,MAAA,CAAA;IACvC,CAAC;;AALH,kCA4BC;;AArBQ,sBAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,AAA9C,CAA8C;AAExD,qBAAS,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAA,iBAAU,GAAE,CAAC,AAAtC,CAAsC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StampedEvent } from '@welshman/util';
|
|
2
2
|
import { ISigner } from "../util";
|
|
3
3
|
export declare class Nip01Signer implements ISigner {
|
|
4
|
+
#private;
|
|
4
5
|
private secret;
|
|
5
|
-
private pubkey;
|
|
6
6
|
constructor(secret: string);
|
|
7
7
|
static fromSecret: (secret: string) => Nip01Signer;
|
|
8
8
|
static ephemeral: () => Nip01Signer;
|
|
@@ -1,9 +1,22 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _Nip01Signer_pubkey;
|
|
1
13
|
import { nip04, nip44, own, hash, sign, getPubkey, makeSecret } from "../util.mjs";
|
|
2
14
|
export class Nip01Signer {
|
|
3
15
|
constructor(secret) {
|
|
4
16
|
this.secret = secret;
|
|
5
|
-
this
|
|
6
|
-
this.
|
|
17
|
+
_Nip01Signer_pubkey.set(this, void 0);
|
|
18
|
+
this.getPubkey = async () => __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f");
|
|
19
|
+
this.sign = async (event) => sign(hash(own(event, __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f"))), this.secret);
|
|
7
20
|
this.nip04 = {
|
|
8
21
|
encrypt: async (pubkey, message) => nip04.encrypt(pubkey, this.secret, message),
|
|
9
22
|
decrypt: async (pubkey, message) => nip04.decrypt(pubkey, this.secret, message),
|
|
@@ -12,9 +25,10 @@ export class Nip01Signer {
|
|
|
12
25
|
encrypt: async (pubkey, message) => nip44.encrypt(pubkey, this.secret, message),
|
|
13
26
|
decrypt: async (pubkey, message) => nip44.decrypt(pubkey, this.secret, message),
|
|
14
27
|
};
|
|
15
|
-
this
|
|
28
|
+
__classPrivateFieldSet(this, _Nip01Signer_pubkey, getPubkey(this.secret), "f");
|
|
16
29
|
}
|
|
17
30
|
}
|
|
31
|
+
_Nip01Signer_pubkey = new WeakMap();
|
|
18
32
|
Nip01Signer.fromSecret = (secret) => new Nip01Signer(secret);
|
|
19
33
|
Nip01Signer.ephemeral = () => new Nip01Signer(makeSecret());
|
|
20
34
|
//# sourceMappingURL=nip01.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip01.mjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":"OACO,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAW,UAAU,EAAC;AAEtE,MAAM,OAAO,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;
|
|
1
|
+
{"version":3,"file":"nip01.mjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":";;;;;;;;;;;;OACO,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAW,UAAU,EAAC;AAEtE,MAAM,OAAO,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFlC,sCAAe;QAUf,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,uBAAA,IAAI,2BAAQ,CAAA;QAEpC,SAAI,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAA,IAAI,2BAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvF,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAvBC,uBAAA,IAAI,uBAAW,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAA,CAAA;IACvC,CAAC;;;AAEM,sBAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,AAA9C,CAA8C;AAExD,qBAAS,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC,AAAtC,CAAsC"}
|
|
@@ -10,11 +10,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var
|
|
13
|
+
var _Nip46Broker_signer, _Nip46Broker_handler, _Nip46Broker_algorithm, _Nip46Broker_closed, _Nip46Broker_processing, _Nip46Broker_connectResult, _Nip46Broker_queue, _Nip46Broker_sub, _Nip46Broker_subscribe, _Nip46Broker_processQueue, _Nip46Signer_pubkey;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.Nip46Signer = exports.Nip46Broker = void 0;
|
|
16
|
-
const nostr_tools_1 = require("nostr-tools");
|
|
17
|
-
const utils_1 = require("@noble/hashes/utils");
|
|
18
16
|
const lib_1 = require("@welshman/lib");
|
|
19
17
|
const util_1 = require("@welshman/util");
|
|
20
18
|
const net_1 = require("@welshman/net");
|
|
@@ -22,69 +20,108 @@ const util_2 = require("../util.cjs");
|
|
|
22
20
|
const nip01_1 = require("./nip01.cjs");
|
|
23
21
|
let singleton;
|
|
24
22
|
class Nip46Broker extends lib_1.Emitter {
|
|
25
|
-
static
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
static parseBunkerLink(link) {
|
|
24
|
+
let token = "";
|
|
25
|
+
let pubkey = "";
|
|
26
|
+
let relays = [];
|
|
27
|
+
try {
|
|
28
|
+
const url = new URL(link);
|
|
29
|
+
pubkey = url.hostname || url.pathname.replace(/\//g, '');
|
|
30
|
+
relays = url.searchParams.getAll("relay") || [];
|
|
31
|
+
token = url.searchParams.get("secret") || "";
|
|
32
|
+
}
|
|
33
|
+
catch (_a) {
|
|
34
|
+
// pass
|
|
35
|
+
}
|
|
36
|
+
return { token, pubkey, relays };
|
|
37
|
+
}
|
|
38
|
+
static get(params) {
|
|
39
|
+
if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
|
|
30
40
|
singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
|
|
31
|
-
singleton = new Nip46Broker(
|
|
41
|
+
singleton = new Nip46Broker(params);
|
|
32
42
|
}
|
|
33
43
|
return singleton;
|
|
34
44
|
}
|
|
35
|
-
constructor(
|
|
45
|
+
constructor(params) {
|
|
36
46
|
super();
|
|
37
|
-
this.
|
|
38
|
-
this.secret = secret;
|
|
39
|
-
this.handler = handler;
|
|
40
|
-
this.algorithm = algorithm;
|
|
41
|
-
_Nip46Broker_sub.set(this, void 0);
|
|
47
|
+
this.params = params;
|
|
42
48
|
_Nip46Broker_signer.set(this, void 0);
|
|
43
|
-
|
|
49
|
+
_Nip46Broker_handler.set(this, void 0);
|
|
50
|
+
_Nip46Broker_algorithm.set(this, void 0);
|
|
44
51
|
_Nip46Broker_closed.set(this, false);
|
|
52
|
+
_Nip46Broker_processing.set(this, false);
|
|
45
53
|
_Nip46Broker_connectResult.set(this, void 0);
|
|
46
|
-
this
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"#p": [(0, nostr_tools_1.getPublicKey)((0, utils_1.hexToBytes)(this.secret))],
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
});
|
|
57
|
-
sub.emitter.on("event", async (url, e) => {
|
|
58
|
-
const json = await (0, util_2.decrypt)(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
|
|
59
|
-
const res = await (0, lib_1.tryCatch)(() => JSON.parse(json));
|
|
60
|
-
if (!res.id) {
|
|
61
|
-
console.error(`Invalid nostr-connect response: ${json}`);
|
|
62
|
-
}
|
|
63
|
-
if (res.result === "auth_url") {
|
|
64
|
-
this.emit(`auth-${res.id}`, res);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.emit(`res-${res.id}`, res);
|
|
54
|
+
_Nip46Broker_queue.set(this, []);
|
|
55
|
+
_Nip46Broker_sub.set(this, void 0);
|
|
56
|
+
_Nip46Broker_subscribe.set(this, async () => {
|
|
57
|
+
const pubkey = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").getPubkey();
|
|
58
|
+
return new Promise(resolve => {
|
|
59
|
+
if (__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
|
|
60
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").close();
|
|
68
61
|
}
|
|
62
|
+
__classPrivateFieldSet(this, _Nip46Broker_sub, (0, net_1.subscribe)({
|
|
63
|
+
relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
|
|
64
|
+
filters: [{ since: (0, lib_1.now)() - 30, kinds: [util_1.NOSTR_CONNECT], "#p": [pubkey] }],
|
|
65
|
+
}), "f");
|
|
66
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on('send', resolve);
|
|
67
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("event", async (url, e) => {
|
|
68
|
+
const json = await (0, util_2.decrypt)(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
|
|
69
|
+
const res = await (0, lib_1.tryCatch)(() => JSON.parse(json));
|
|
70
|
+
if (!res.id) {
|
|
71
|
+
console.error(`Invalid nostr-connect response: ${json}`);
|
|
72
|
+
}
|
|
73
|
+
console.log('nip46 response:', res);
|
|
74
|
+
if (res.result === "auth_url") {
|
|
75
|
+
this.emit(`auth-${res.id}`, res);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.emit(`res-${res.id}`, res);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("complete", () => {
|
|
82
|
+
__classPrivateFieldSet(this, _Nip46Broker_sub, undefined, "f");
|
|
83
|
+
});
|
|
69
84
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
});
|
|
86
|
+
_Nip46Broker_processQueue.set(this, async () => {
|
|
87
|
+
if (__classPrivateFieldGet(this, _Nip46Broker_processing, "f")) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
__classPrivateFieldSet(this, _Nip46Broker_processing, true, "f");
|
|
91
|
+
try {
|
|
92
|
+
while (__classPrivateFieldGet(this, _Nip46Broker_queue, "f").length > 0) {
|
|
93
|
+
const [{ method, params, resolve }] = __classPrivateFieldGet(this, _Nip46Broker_queue, "f").splice(0, 1);
|
|
94
|
+
// Throttle requests to the signer so the user isn't overwhelmed by dialogs, but time
|
|
95
|
+
// out and move on to other requests if they're ignored
|
|
96
|
+
// Note: currenlty throttle is too low to help with dialogs, but blocking prevents
|
|
97
|
+
// important user actions
|
|
98
|
+
await Promise.race([
|
|
99
|
+
this.request(method, params).then(resolve),
|
|
100
|
+
(0, lib_1.sleep)(15),
|
|
101
|
+
]);
|
|
73
102
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
__classPrivateFieldSet(this, _Nip46Broker_processing, false, "f");
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
this.request = async (method, params) => {
|
|
109
|
+
if (__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
|
|
110
|
+
throw new Error("Attempted to make a nip46 request with a closed broker");
|
|
111
|
+
}
|
|
112
|
+
if (!__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
|
|
113
|
+
await __classPrivateFieldGet(this, _Nip46Broker_subscribe, "f").call(this);
|
|
114
|
+
}
|
|
80
115
|
const id = (0, lib_1.randomId)();
|
|
81
|
-
const
|
|
116
|
+
const recipient = __classPrivateFieldGet(this, _Nip46Broker_handler, "f").pubkey;
|
|
82
117
|
const payload = JSON.stringify({ id, method, params });
|
|
83
|
-
const
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
118
|
+
const content = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f")[__classPrivateFieldGet(this, _Nip46Broker_algorithm, "f")].encrypt(recipient, payload);
|
|
119
|
+
const template = (0, util_1.createEvent)(util_1.NOSTR_CONNECT, { content, tags: [["p", recipient]] });
|
|
120
|
+
console.log('nip46 request:', { id, method, params });
|
|
121
|
+
(0, net_1.publish)({
|
|
122
|
+
relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
|
|
123
|
+
event: await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").sign(template),
|
|
124
|
+
});
|
|
88
125
|
this.once(`auth-${id}`, res => {
|
|
89
126
|
window.open(res.error, "Coracle", "width=600,height=800,popup=yes");
|
|
90
127
|
});
|
|
@@ -99,50 +136,65 @@ class Nip46Broker extends lib_1.Emitter {
|
|
|
99
136
|
});
|
|
100
137
|
});
|
|
101
138
|
};
|
|
139
|
+
this.enqueue = (method, params) => new Promise(resolve => {
|
|
140
|
+
__classPrivateFieldGet(this, _Nip46Broker_queue, "f").push({ method, params, resolve });
|
|
141
|
+
__classPrivateFieldGet(this, _Nip46Broker_processQueue, "f").call(this);
|
|
142
|
+
});
|
|
102
143
|
this.createAccount = (username, perms = "") => {
|
|
103
|
-
if (!this.
|
|
144
|
+
if (!__classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain) {
|
|
104
145
|
throw new Error("Unable to create an account without a handler domain");
|
|
105
146
|
}
|
|
106
|
-
return this.
|
|
147
|
+
return this.enqueue("create_account", [username, __classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain, "", perms]);
|
|
107
148
|
};
|
|
108
149
|
this.connect = async (token = "", perms = "") => {
|
|
109
150
|
if (!__classPrivateFieldGet(this, _Nip46Broker_connectResult, "f")) {
|
|
110
|
-
const params = [
|
|
111
|
-
__classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.
|
|
151
|
+
const params = ["", token, perms];
|
|
152
|
+
__classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.enqueue("connect", params), "f");
|
|
112
153
|
}
|
|
113
154
|
return __classPrivateFieldGet(this, _Nip46Broker_connectResult, "f") === "ack";
|
|
114
155
|
};
|
|
156
|
+
this.getPublicKey = () => this.enqueue("get_public_key", []);
|
|
115
157
|
this.signEvent = async (event) => {
|
|
116
|
-
return JSON.parse(await this.
|
|
158
|
+
return JSON.parse(await this.enqueue("sign_event", [JSON.stringify(event)]));
|
|
117
159
|
};
|
|
118
160
|
this.nip04Encrypt = (pk, message) => {
|
|
119
|
-
return this.
|
|
161
|
+
return this.enqueue("nip04_encrypt", [pk, message]);
|
|
120
162
|
};
|
|
121
163
|
this.nip04Decrypt = (pk, message) => {
|
|
122
|
-
return this.
|
|
164
|
+
return this.enqueue("nip04_decrypt", [pk, message]);
|
|
123
165
|
};
|
|
124
166
|
this.nip44Encrypt = (pk, message) => {
|
|
125
|
-
return this.
|
|
167
|
+
return this.enqueue("nip44_encrypt", [pk, message]);
|
|
126
168
|
};
|
|
127
169
|
this.nip44Decrypt = (pk, message) => {
|
|
128
|
-
return this.
|
|
170
|
+
return this.enqueue("nip44_decrypt", [pk, message]);
|
|
129
171
|
};
|
|
130
172
|
this.teardown = () => {
|
|
131
173
|
var _a;
|
|
132
174
|
__classPrivateFieldSet(this, _Nip46Broker_closed, true, "f");
|
|
133
175
|
(_a = __classPrivateFieldGet(this, _Nip46Broker_sub, "f")) === null || _a === void 0 ? void 0 : _a.close();
|
|
134
176
|
};
|
|
135
|
-
__classPrivateFieldSet(this,
|
|
136
|
-
__classPrivateFieldSet(this,
|
|
177
|
+
__classPrivateFieldSet(this, _Nip46Broker_handler, params.handler, "f");
|
|
178
|
+
__classPrivateFieldSet(this, _Nip46Broker_algorithm, params.algorithm || 'nip04', "f");
|
|
179
|
+
__classPrivateFieldSet(this, _Nip46Broker_signer, new nip01_1.Nip01Signer(params.secret), "f");
|
|
180
|
+
}
|
|
181
|
+
hasParams(params) {
|
|
182
|
+
return (0, lib_1.equals)(this.params, params);
|
|
137
183
|
}
|
|
138
184
|
}
|
|
139
185
|
exports.Nip46Broker = Nip46Broker;
|
|
140
|
-
|
|
186
|
+
_Nip46Broker_signer = new WeakMap(), _Nip46Broker_handler = new WeakMap(), _Nip46Broker_algorithm = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_processing = new WeakMap(), _Nip46Broker_connectResult = new WeakMap(), _Nip46Broker_queue = new WeakMap(), _Nip46Broker_sub = new WeakMap(), _Nip46Broker_subscribe = new WeakMap(), _Nip46Broker_processQueue = new WeakMap();
|
|
141
187
|
class Nip46Signer {
|
|
142
188
|
constructor(broker) {
|
|
143
189
|
this.broker = broker;
|
|
144
|
-
this
|
|
145
|
-
this.
|
|
190
|
+
_Nip46Signer_pubkey.set(this, void 0);
|
|
191
|
+
this.getPubkey = async () => {
|
|
192
|
+
if (!__classPrivateFieldGet(this, _Nip46Signer_pubkey, "f")) {
|
|
193
|
+
__classPrivateFieldSet(this, _Nip46Signer_pubkey, await this.broker.getPublicKey(), "f");
|
|
194
|
+
}
|
|
195
|
+
return __classPrivateFieldGet(this, _Nip46Signer_pubkey, "f");
|
|
196
|
+
};
|
|
197
|
+
this.sign = async (template) => this.broker.signEvent((0, util_2.hash)((0, util_2.own)(template, await this.getPubkey())));
|
|
146
198
|
this.nip04 = {
|
|
147
199
|
encrypt: this.broker.nip04Encrypt,
|
|
148
200
|
decrypt: this.broker.nip04Decrypt,
|
|
@@ -154,4 +206,5 @@ class Nip46Signer {
|
|
|
154
206
|
}
|
|
155
207
|
}
|
|
156
208
|
exports.Nip46Signer = Nip46Signer;
|
|
209
|
+
_Nip46Signer_pubkey = new WeakMap();
|
|
157
210
|
//# sourceMappingURL=nip46.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip46.cjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"nip46.cjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { Emitter } from "@welshman/lib";
|
|
2
2
|
import { StampedEvent } from "@welshman/util";
|
|
3
|
-
import { Subscription } from "@welshman/net";
|
|
4
3
|
import { ISigner } from '../util';
|
|
5
|
-
export type
|
|
4
|
+
export type Nip46Algorithm = "nip04" | "nip44";
|
|
6
5
|
export type Nip46Handler = {
|
|
7
6
|
relays: string[];
|
|
8
|
-
pubkey
|
|
7
|
+
pubkey: string;
|
|
9
8
|
domain?: string;
|
|
10
9
|
};
|
|
10
|
+
export type Nip46BrokerParams = {
|
|
11
|
+
secret: string;
|
|
12
|
+
handler: Nip46Handler;
|
|
13
|
+
algorithm?: Nip46Algorithm;
|
|
14
|
+
};
|
|
11
15
|
export type Nip46Response = {
|
|
12
16
|
id: string;
|
|
13
17
|
error?: string;
|
|
@@ -15,16 +19,20 @@ export type Nip46Response = {
|
|
|
15
19
|
};
|
|
16
20
|
export declare class Nip46Broker extends Emitter {
|
|
17
21
|
#private;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
private params;
|
|
23
|
+
static parseBunkerLink(link: string): {
|
|
24
|
+
token: string;
|
|
25
|
+
pubkey: string;
|
|
26
|
+
relays: string[];
|
|
27
|
+
};
|
|
28
|
+
static get(params: Nip46BrokerParams): Nip46Broker;
|
|
29
|
+
constructor(params: Nip46BrokerParams);
|
|
30
|
+
hasParams(params: Nip46BrokerParams): boolean;
|
|
31
|
+
request: (method: string, params: string[]) => Promise<string>;
|
|
32
|
+
enqueue: (method: string, params: string[]) => Promise<string>;
|
|
26
33
|
createAccount: (username: string, perms?: string) => Promise<string>;
|
|
27
34
|
connect: (token?: string, perms?: string) => Promise<boolean>;
|
|
35
|
+
getPublicKey: () => Promise<string>;
|
|
28
36
|
signEvent: (event: StampedEvent) => Promise<any>;
|
|
29
37
|
nip04Encrypt: (pk: string, message: string) => Promise<string>;
|
|
30
38
|
nip04Decrypt: (pk: string, message: string) => Promise<string>;
|
|
@@ -33,6 +41,7 @@ export declare class Nip46Broker extends Emitter {
|
|
|
33
41
|
teardown: () => void;
|
|
34
42
|
}
|
|
35
43
|
export declare class Nip46Signer implements ISigner {
|
|
44
|
+
#private;
|
|
36
45
|
private broker;
|
|
37
46
|
constructor(broker: Nip46Broker);
|
|
38
47
|
getPubkey: () => Promise<string>;
|
|
@@ -9,79 +9,116 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var
|
|
13
|
-
import {
|
|
14
|
-
import { hexToBytes } from '@noble/hashes/utils';
|
|
15
|
-
import { Emitter, tryCatch, randomId, sleep, equals, now } from "@welshman/lib";
|
|
12
|
+
var _Nip46Broker_signer, _Nip46Broker_handler, _Nip46Broker_algorithm, _Nip46Broker_closed, _Nip46Broker_processing, _Nip46Broker_connectResult, _Nip46Broker_queue, _Nip46Broker_sub, _Nip46Broker_subscribe, _Nip46Broker_processQueue, _Nip46Signer_pubkey;
|
|
13
|
+
import { Emitter, sleep, tryCatch, randomId, equals, now } from "@welshman/lib";
|
|
16
14
|
import { createEvent, NOSTR_CONNECT } from "@welshman/util";
|
|
17
15
|
import { subscribe, publish } from "@welshman/net";
|
|
18
|
-
import {
|
|
16
|
+
import { decrypt, hash, own } from "../util.mjs";
|
|
19
17
|
import { Nip01Signer } from "./nip01.mjs";
|
|
20
18
|
let singleton;
|
|
21
19
|
export class Nip46Broker extends Emitter {
|
|
22
|
-
static
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
static parseBunkerLink(link) {
|
|
21
|
+
let token = "";
|
|
22
|
+
let pubkey = "";
|
|
23
|
+
let relays = [];
|
|
24
|
+
try {
|
|
25
|
+
const url = new URL(link);
|
|
26
|
+
pubkey = url.hostname || url.pathname.replace(/\//g, '');
|
|
27
|
+
relays = url.searchParams.getAll("relay") || [];
|
|
28
|
+
token = url.searchParams.get("secret") || "";
|
|
29
|
+
}
|
|
30
|
+
catch (_a) {
|
|
31
|
+
// pass
|
|
32
|
+
}
|
|
33
|
+
return { token, pubkey, relays };
|
|
34
|
+
}
|
|
35
|
+
static get(params) {
|
|
36
|
+
if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
|
|
27
37
|
singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
|
|
28
|
-
singleton = new Nip46Broker(
|
|
38
|
+
singleton = new Nip46Broker(params);
|
|
29
39
|
}
|
|
30
40
|
return singleton;
|
|
31
41
|
}
|
|
32
|
-
constructor(
|
|
42
|
+
constructor(params) {
|
|
33
43
|
super();
|
|
34
|
-
this.
|
|
35
|
-
this.secret = secret;
|
|
36
|
-
this.handler = handler;
|
|
37
|
-
this.algorithm = algorithm;
|
|
38
|
-
_Nip46Broker_sub.set(this, void 0);
|
|
44
|
+
this.params = params;
|
|
39
45
|
_Nip46Broker_signer.set(this, void 0);
|
|
40
|
-
|
|
46
|
+
_Nip46Broker_handler.set(this, void 0);
|
|
47
|
+
_Nip46Broker_algorithm.set(this, void 0);
|
|
41
48
|
_Nip46Broker_closed.set(this, false);
|
|
49
|
+
_Nip46Broker_processing.set(this, false);
|
|
42
50
|
_Nip46Broker_connectResult.set(this, void 0);
|
|
43
|
-
this
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"#p": [getPublicKey(hexToBytes(this.secret))],
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
});
|
|
54
|
-
sub.emitter.on("event", async (url, e) => {
|
|
55
|
-
const json = await decrypt(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
|
|
56
|
-
const res = await tryCatch(() => JSON.parse(json));
|
|
57
|
-
if (!res.id) {
|
|
58
|
-
console.error(`Invalid nostr-connect response: ${json}`);
|
|
59
|
-
}
|
|
60
|
-
if (res.result === "auth_url") {
|
|
61
|
-
this.emit(`auth-${res.id}`, res);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
this.emit(`res-${res.id}`, res);
|
|
51
|
+
_Nip46Broker_queue.set(this, []);
|
|
52
|
+
_Nip46Broker_sub.set(this, void 0);
|
|
53
|
+
_Nip46Broker_subscribe.set(this, async () => {
|
|
54
|
+
const pubkey = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").getPubkey();
|
|
55
|
+
return new Promise(resolve => {
|
|
56
|
+
if (__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
|
|
57
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").close();
|
|
65
58
|
}
|
|
59
|
+
__classPrivateFieldSet(this, _Nip46Broker_sub, subscribe({
|
|
60
|
+
relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
|
|
61
|
+
filters: [{ since: now() - 30, kinds: [NOSTR_CONNECT], "#p": [pubkey] }],
|
|
62
|
+
}), "f");
|
|
63
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on('send', resolve);
|
|
64
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("event", async (url, e) => {
|
|
65
|
+
const json = await decrypt(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
|
|
66
|
+
const res = await tryCatch(() => JSON.parse(json));
|
|
67
|
+
if (!res.id) {
|
|
68
|
+
console.error(`Invalid nostr-connect response: ${json}`);
|
|
69
|
+
}
|
|
70
|
+
console.log('nip46 response:', res);
|
|
71
|
+
if (res.result === "auth_url") {
|
|
72
|
+
this.emit(`auth-${res.id}`, res);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this.emit(`res-${res.id}`, res);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
__classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("complete", () => {
|
|
79
|
+
__classPrivateFieldSet(this, _Nip46Broker_sub, undefined, "f");
|
|
80
|
+
});
|
|
66
81
|
});
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
82
|
+
});
|
|
83
|
+
_Nip46Broker_processQueue.set(this, async () => {
|
|
84
|
+
if (__classPrivateFieldGet(this, _Nip46Broker_processing, "f")) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
__classPrivateFieldSet(this, _Nip46Broker_processing, true, "f");
|
|
88
|
+
try {
|
|
89
|
+
while (__classPrivateFieldGet(this, _Nip46Broker_queue, "f").length > 0) {
|
|
90
|
+
const [{ method, params, resolve }] = __classPrivateFieldGet(this, _Nip46Broker_queue, "f").splice(0, 1);
|
|
91
|
+
// Throttle requests to the signer so the user isn't overwhelmed by dialogs, but time
|
|
92
|
+
// out and move on to other requests if they're ignored
|
|
93
|
+
// Note: currenlty throttle is too low to help with dialogs, but blocking prevents
|
|
94
|
+
// important user actions
|
|
95
|
+
await Promise.race([
|
|
96
|
+
this.request(method, params).then(resolve),
|
|
97
|
+
sleep(15),
|
|
98
|
+
]);
|
|
70
99
|
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
__classPrivateFieldSet(this, _Nip46Broker_processing, false, "f");
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
this.request = async (method, params) => {
|
|
106
|
+
if (__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
|
|
107
|
+
throw new Error("Attempted to make a nip46 request with a closed broker");
|
|
108
|
+
}
|
|
109
|
+
if (!__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
|
|
110
|
+
await __classPrivateFieldGet(this, _Nip46Broker_subscribe, "f").call(this);
|
|
111
|
+
}
|
|
77
112
|
const id = randomId();
|
|
78
|
-
const
|
|
113
|
+
const recipient = __classPrivateFieldGet(this, _Nip46Broker_handler, "f").pubkey;
|
|
79
114
|
const payload = JSON.stringify({ id, method, params });
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
115
|
+
const content = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f")[__classPrivateFieldGet(this, _Nip46Broker_algorithm, "f")].encrypt(recipient, payload);
|
|
116
|
+
const template = createEvent(NOSTR_CONNECT, { content, tags: [["p", recipient]] });
|
|
117
|
+
console.log('nip46 request:', { id, method, params });
|
|
118
|
+
publish({
|
|
119
|
+
relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
|
|
120
|
+
event: await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").sign(template),
|
|
121
|
+
});
|
|
85
122
|
this.once(`auth-${id}`, res => {
|
|
86
123
|
window.open(res.error, "Coracle", "width=600,height=800,popup=yes");
|
|
87
124
|
});
|
|
@@ -96,49 +133,64 @@ export class Nip46Broker extends Emitter {
|
|
|
96
133
|
});
|
|
97
134
|
});
|
|
98
135
|
};
|
|
136
|
+
this.enqueue = (method, params) => new Promise(resolve => {
|
|
137
|
+
__classPrivateFieldGet(this, _Nip46Broker_queue, "f").push({ method, params, resolve });
|
|
138
|
+
__classPrivateFieldGet(this, _Nip46Broker_processQueue, "f").call(this);
|
|
139
|
+
});
|
|
99
140
|
this.createAccount = (username, perms = "") => {
|
|
100
|
-
if (!this.
|
|
141
|
+
if (!__classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain) {
|
|
101
142
|
throw new Error("Unable to create an account without a handler domain");
|
|
102
143
|
}
|
|
103
|
-
return this.
|
|
144
|
+
return this.enqueue("create_account", [username, __classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain, "", perms]);
|
|
104
145
|
};
|
|
105
146
|
this.connect = async (token = "", perms = "") => {
|
|
106
147
|
if (!__classPrivateFieldGet(this, _Nip46Broker_connectResult, "f")) {
|
|
107
|
-
const params = [
|
|
108
|
-
__classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.
|
|
148
|
+
const params = ["", token, perms];
|
|
149
|
+
__classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.enqueue("connect", params), "f");
|
|
109
150
|
}
|
|
110
151
|
return __classPrivateFieldGet(this, _Nip46Broker_connectResult, "f") === "ack";
|
|
111
152
|
};
|
|
153
|
+
this.getPublicKey = () => this.enqueue("get_public_key", []);
|
|
112
154
|
this.signEvent = async (event) => {
|
|
113
|
-
return JSON.parse(await this.
|
|
155
|
+
return JSON.parse(await this.enqueue("sign_event", [JSON.stringify(event)]));
|
|
114
156
|
};
|
|
115
157
|
this.nip04Encrypt = (pk, message) => {
|
|
116
|
-
return this.
|
|
158
|
+
return this.enqueue("nip04_encrypt", [pk, message]);
|
|
117
159
|
};
|
|
118
160
|
this.nip04Decrypt = (pk, message) => {
|
|
119
|
-
return this.
|
|
161
|
+
return this.enqueue("nip04_decrypt", [pk, message]);
|
|
120
162
|
};
|
|
121
163
|
this.nip44Encrypt = (pk, message) => {
|
|
122
|
-
return this.
|
|
164
|
+
return this.enqueue("nip44_encrypt", [pk, message]);
|
|
123
165
|
};
|
|
124
166
|
this.nip44Decrypt = (pk, message) => {
|
|
125
|
-
return this.
|
|
167
|
+
return this.enqueue("nip44_decrypt", [pk, message]);
|
|
126
168
|
};
|
|
127
169
|
this.teardown = () => {
|
|
128
170
|
var _a;
|
|
129
171
|
__classPrivateFieldSet(this, _Nip46Broker_closed, true, "f");
|
|
130
172
|
(_a = __classPrivateFieldGet(this, _Nip46Broker_sub, "f")) === null || _a === void 0 ? void 0 : _a.close();
|
|
131
173
|
};
|
|
132
|
-
__classPrivateFieldSet(this,
|
|
133
|
-
__classPrivateFieldSet(this,
|
|
174
|
+
__classPrivateFieldSet(this, _Nip46Broker_handler, params.handler, "f");
|
|
175
|
+
__classPrivateFieldSet(this, _Nip46Broker_algorithm, params.algorithm || 'nip04', "f");
|
|
176
|
+
__classPrivateFieldSet(this, _Nip46Broker_signer, new Nip01Signer(params.secret), "f");
|
|
177
|
+
}
|
|
178
|
+
hasParams(params) {
|
|
179
|
+
return equals(this.params, params);
|
|
134
180
|
}
|
|
135
181
|
}
|
|
136
|
-
|
|
182
|
+
_Nip46Broker_signer = new WeakMap(), _Nip46Broker_handler = new WeakMap(), _Nip46Broker_algorithm = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_processing = new WeakMap(), _Nip46Broker_connectResult = new WeakMap(), _Nip46Broker_queue = new WeakMap(), _Nip46Broker_sub = new WeakMap(), _Nip46Broker_subscribe = new WeakMap(), _Nip46Broker_processQueue = new WeakMap();
|
|
137
183
|
export class Nip46Signer {
|
|
138
184
|
constructor(broker) {
|
|
139
185
|
this.broker = broker;
|
|
140
|
-
this
|
|
141
|
-
this.
|
|
186
|
+
_Nip46Signer_pubkey.set(this, void 0);
|
|
187
|
+
this.getPubkey = async () => {
|
|
188
|
+
if (!__classPrivateFieldGet(this, _Nip46Signer_pubkey, "f")) {
|
|
189
|
+
__classPrivateFieldSet(this, _Nip46Signer_pubkey, await this.broker.getPublicKey(), "f");
|
|
190
|
+
}
|
|
191
|
+
return __classPrivateFieldGet(this, _Nip46Signer_pubkey, "f");
|
|
192
|
+
};
|
|
193
|
+
this.sign = async (template) => this.broker.signEvent(hash(own(template, await this.getPubkey())));
|
|
142
194
|
this.nip04 = {
|
|
143
195
|
encrypt: this.broker.nip04Encrypt,
|
|
144
196
|
decrypt: this.broker.nip04Decrypt,
|
|
@@ -149,4 +201,5 @@ export class Nip46Signer {
|
|
|
149
201
|
};
|
|
150
202
|
}
|
|
151
203
|
}
|
|
204
|
+
_Nip46Signer_pubkey = new WeakMap();
|
|
152
205
|
//# sourceMappingURL=nip46.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip46.mjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":";;;;;;;;;;;;OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"nip46.mjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@welshman/signer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"author": "hodlbod",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A nostr signer implemenation supporting several login methods.",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"typescript": "~5.1.6"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@welshman/lib": "~0.0.
|
|
35
|
-
"@welshman/net": "~0.0.
|
|
36
|
-
"@welshman/util": "~0.0.
|
|
34
|
+
"@welshman/lib": "~0.0.23",
|
|
35
|
+
"@welshman/net": "~0.0.30",
|
|
36
|
+
"@welshman/util": "~0.0.42",
|
|
37
37
|
"nostr-tools": "^2.7.2"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|