@pomade/core 0.0.8 → 0.0.9

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/rpc.js CHANGED
@@ -1,55 +1,65 @@
1
1
  import { tryCatch, uniq, without, spec } from "@welshman/lib";
2
2
  import { publish, request, PublishStatus } from "@welshman/net";
3
- import { prep, sign, getPubkey } from "@welshman/util";
4
- import { nip44, debug, fetchRelays, publishRelays, normalizeRelay } from "./util.js";
3
+ import { prep } from "@welshman/util";
4
+ import { Nip01Signer } from "@welshman/signer";
5
+ import { debug, fetchRelays, normalizeRelay } from "./util.js";
5
6
  import { parseMessage } from "./message.js";
6
7
  // Base RPC class
7
- export function rpc(secret) {
8
- return new RPC(secret);
8
+ export function rpc(signer) {
9
+ return new RPC(signer);
9
10
  }
10
11
  export class RPC {
11
- secret;
12
+ signer;
12
13
  static Kind = 28350;
13
- pubkey;
14
14
  relays;
15
15
  subscribers = [];
16
16
  controller = new AbortController();
17
17
  channels = new Map();
18
- constructor(secret, relays = []) {
19
- this.secret = secret;
18
+ static fromSecret(secret, relays = []) {
19
+ return new RPC(Nip01Signer.fromSecret(secret), relays);
20
+ }
21
+ constructor(signer, relays = []) {
22
+ this.signer = signer;
20
23
  this.relays = relays.map(normalizeRelay);
21
- this.pubkey = getPubkey(secret);
22
24
  this.publishRelays();
23
25
  this.listenForEvents();
24
26
  }
25
- publishRelays() {
27
+ async publishRelays() {
26
28
  if (this.relays.length > 0) {
27
29
  debug("[rpc.publishRelays]", this.relays);
28
- publishRelays({
29
- secret: this.secret,
30
+ const pubkey = await this.signer.getPubkey();
31
+ const event = await this.signer.sign(prep({
32
+ kind: 10002,
33
+ content: "",
34
+ tags: this.relays.map(url => ["r", url]),
35
+ }, pubkey));
36
+ publish({
37
+ event,
30
38
  relays: this.relays,
31
39
  signal: this.controller.signal,
32
40
  });
33
41
  }
34
42
  }
35
- listenForEvents() {
43
+ async listenForEvents() {
36
44
  if (this.relays) {
45
+ const pubkey = await this.signer.getPubkey();
37
46
  request({
38
47
  relays: this.relays,
39
48
  signal: this.controller.signal,
40
- filters: [{ kinds: [RPC.Kind], "#p": [this.pubkey] }],
49
+ filters: [{ kinds: [RPC.Kind], "#p": [pubkey] }],
41
50
  onEvent: (event) => this.notify(event),
42
51
  });
43
52
  }
44
53
  }
45
- read(event) {
46
- const result = tryCatch(() => parseMessage(this.decrypt(event.pubkey, event.content)));
54
+ async read(event) {
55
+ const decrypted = await this.decrypt(event.pubkey, event.content);
56
+ const result = tryCatch(() => parseMessage(decrypted));
47
57
  if (result) {
48
58
  return { ...result, event };
49
59
  }
50
60
  }
51
- notify(event) {
52
- const message = this.read(event);
61
+ async notify(event) {
62
+ const message = await this.read(event);
53
63
  if (message) {
54
64
  for (const subscriber of this.subscribers) {
55
65
  subscriber(message);
@@ -64,13 +74,13 @@ export class RPC {
64
74
  return () => this.subscribers.splice(this.subscribers.findIndex(s => s === handler), 1);
65
75
  }
66
76
  sign(event) {
67
- return sign(event, this.secret);
77
+ return this.signer.sign(event);
68
78
  }
69
79
  encrypt(peer, payload) {
70
- return nip44.encrypt(peer, this.secret, payload);
80
+ return this.signer.nip44.encrypt(peer, payload);
71
81
  }
72
82
  decrypt(peer, payload) {
73
- return nip44.decrypt(peer, this.secret, payload);
83
+ return this.signer.nip44.decrypt(peer, payload);
74
84
  }
75
85
  channel(peer, usePeerRelays = true) {
76
86
  let channel = this.channels.get(peer);
@@ -101,14 +111,14 @@ export class RPCChannel {
101
111
  this.usePeerRelays = usePeerRelays;
102
112
  const { signal } = this.controller;
103
113
  this.relays = usePeerRelays ? fetchRelays(peer, signal) : Promise.resolve([]);
104
- this.relays.then(relays => {
114
+ Promise.all([this.relays, this.rpc.signer.getPubkey()]).then(([relays, pubkey]) => {
105
115
  if (!signal.aborted) {
106
116
  const uniqueRelays = without(this.rpc.relays, relays);
107
117
  if (uniqueRelays.length > 0) {
108
118
  request({
109
119
  signal,
110
120
  relays: uniqueRelays,
111
- filters: [{ kinds: [RPC.Kind], authors: [this.peer], "#p": [this.rpc.pubkey] }],
121
+ filters: [{ kinds: [RPC.Kind], authors: [this.peer], "#p": [pubkey] }],
112
122
  onEvent: (event) => this.rpc.notify(event),
113
123
  });
114
124
  }
@@ -143,13 +153,14 @@ export class RPCChannel {
143
153
  const timeout = setTimeout(done, 30_000);
144
154
  });
145
155
  }
146
- prep(message) {
156
+ async prep(message) {
157
+ const pubkey = await this.rpc.signer.getPubkey();
147
158
  const template = {
148
159
  kind: RPC.Kind,
149
160
  tags: [["p", this.peer]],
150
- content: this.encrypt(JSON.stringify(message)),
161
+ content: await this.encrypt(JSON.stringify(message)),
151
162
  };
152
- return this.rpc.sign(prep(template, this.rpc.pubkey));
163
+ return this.rpc.sign(prep(template, pubkey));
153
164
  }
154
165
  encrypt(payload) {
155
166
  return this.rpc.encrypt(this.peer, payload);
@@ -160,23 +171,22 @@ export class RPCChannel {
160
171
  send(message) {
161
172
  const controller = new AbortController();
162
173
  const abort = () => controller.abort();
163
- const event = this.prep(message);
164
- const res = this.relays.then(relays => {
165
- return publish({
166
- event,
167
- relays: uniq([...relays, ...this.rpc.relays]),
168
- signal: AbortSignal.any([this.controller.signal, controller.signal]),
169
- });
170
- });
174
+ const eventPromise = this.prep(message);
175
+ const relaysPromise = this.relays;
176
+ const res = Promise.all([eventPromise, relaysPromise]).then(([event, relays]) => publish({
177
+ event,
178
+ relays: uniq([...relays, ...this.rpc.relays]),
179
+ signal: AbortSignal.any([this.controller.signal, controller.signal]),
180
+ }));
171
181
  const ok = res.then(r => {
172
182
  return Object.values(r).some(spec({ status: PublishStatus.Success }));
173
183
  });
174
- const receive = (handler) => this.receive((message, resolve) => {
184
+ const receive = (handler) => eventPromise.then(event => this.receive((message, resolve) => {
175
185
  if (message.payload.prev === event.id) {
176
186
  handler(message, resolve);
177
187
  }
178
- });
179
- return { abort, event, res, ok, receive };
188
+ }));
189
+ return { abort, res, ok, receive };
180
190
  }
181
191
  stop() {
182
192
  this.controller.abort();
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,oBAAY,MAAM;IAChB,gBAAgB,sBAAsB;IACtC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;IAC1B,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,eAAe,qBAAqB;IACpC,cAAc,oBAAoB;IAClC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,WAAW,iBAAiB;IAC5B,iBAAiB,wBAAwB;IACzC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;CAC3B;AA0CD,QAAA,MAAM,WAAW;;;;;;;;;iBASf,CAAA;AAEF,QAAA,MAAM,YAAY;;;iBAGhB,CAAA;AAEF,QAAA,MAAM,OAAO;;;iBAGX,CAAA;AAEF,QAAA,MAAM,IAAI;;;;;;mBAAmC,CAAA;AAE7C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACvD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAC7C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;AAEvC,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,IAAI,IAAI,YACd,CAAA;AAEtC,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,IAAI,IAAI,OAAqC,CAAA;AAEpF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHlB,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,oBAAY,MAAM;IAChB,gBAAgB,sBAAsB;IACtC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;IAC1B,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,eAAe,qBAAqB;IACpC,cAAc,oBAAoB;IAClC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,WAAW,iBAAiB;IAC5B,iBAAiB,wBAAwB;IACzC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;CAC3B;AAsDD,QAAA,MAAM,WAAW;;;;;;;;;iBASf,CAAA;AAEF,QAAA,MAAM,YAAY;;;iBAGhB,CAAA;AAEF,QAAA,MAAM,OAAO;;;iBAGX,CAAA;AAEF,QAAA,MAAM,IAAI;;;;;;mBAAmC,CAAA;AAE7C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACvD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAC7C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;AAEvC,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,IAAI,IAAI,YACd,CAAA;AAEtC,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,IAAI,IAAI,OAAqC,CAAA;AAEpF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHlB,CAAA"}
package/dist/schema.js CHANGED
@@ -23,6 +23,11 @@ export var Method;
23
23
  Method["SignRequest"] = "sign/request";
24
24
  Method["SignResult"] = "sign/result";
25
25
  })(Method || (Method = {}));
26
+ // Security limits to prevent DoS attacks via unbounded payloads
27
+ const MAX_HASHES_PER_REQUEST = 10; // Maximum number of hashes in a single signature request
28
+ const MAX_HASH_VECTORS = 10; // Maximum number of hash vectors per request
29
+ const MAX_MEMBERS = 5; // Maximum number of members in a signing group
30
+ const MAX_COMMITS = 5; // Maximum number of commits in a group
26
31
  const hex = z
27
32
  .string()
28
33
  .regex(/^[0-9a-fA-F]*$/)
@@ -36,7 +41,7 @@ const commit = z.object({
36
41
  binder_pn: hex33,
37
42
  });
38
43
  const group = z.object({
39
- commits: z.array(commit),
44
+ commits: z.array(commit).max(MAX_COMMITS),
40
45
  group_pk: hex33,
41
46
  threshold: z.number(),
42
47
  });
@@ -47,7 +52,13 @@ const share = z.object({
47
52
  seckey: hex32,
48
53
  });
49
54
  const psig_entry = z.tuple([hex32, hex32]);
50
- const sighash_vec = z.tuple([hex32]).rest(hex32);
55
+ // Use tuple with rest to maintain type compatibility while enforcing max length
56
+ const sighash_vec = z
57
+ .tuple([hex32])
58
+ .rest(hex32)
59
+ .refine(arr => arr.length <= MAX_HASHES_PER_REQUEST, {
60
+ message: `Maximum ${MAX_HASHES_PER_REQUEST} hashes allowed per request`,
61
+ });
51
62
  const event = z.object({
52
63
  sig: hex,
53
64
  id: hex32,
@@ -65,7 +76,7 @@ const sessionItem = z.object({
65
76
  threshold: z.int().positive(),
66
77
  total: z.number(),
67
78
  idx: z.number(),
68
- email: z.string().optional(),
79
+ email: z.string().email().optional(),
69
80
  });
70
81
  const passwordAuth = z.object({
71
82
  email_hash: z.string(),
@@ -81,14 +92,14 @@ export const isOTPAuth = (auth) => Boolean(auth.otp);
81
92
  export const Schema = {
82
93
  ecdhRequest: z.object({
83
94
  idx: z.number(),
84
- members: z.number().array(),
95
+ members: z.number().array().max(MAX_MEMBERS),
85
96
  ecdh_pk: hex32,
86
97
  }),
87
98
  ecdhResult: z.object({
88
99
  result: z.optional(z.object({
89
100
  idx: z.number(),
90
101
  keyshare: hex,
91
- members: z.number().array(),
102
+ members: z.number().array().max(MAX_MEMBERS),
92
103
  ecdh_pk: hex,
93
104
  })),
94
105
  ok: z.boolean(),
@@ -136,7 +147,7 @@ export const Schema = {
136
147
  prev: hex32,
137
148
  }),
138
149
  recoverySetup: z.object({
139
- email: z.string(),
150
+ email: z.string().email(),
140
151
  password_hash: z.string(),
141
152
  }),
142
153
  recoverySetupResult: z.object({
@@ -175,8 +186,8 @@ export const Schema = {
175
186
  signRequest: z.object({
176
187
  request: z.object({
177
188
  content: z.string().nullable(),
178
- hashes: sighash_vec.array(),
179
- members: z.number().array(),
189
+ hashes: sighash_vec.array().max(MAX_HASH_VECTORS),
190
+ members: z.number().array().max(MAX_MEMBERS),
180
191
  stamp: z.number(),
181
192
  type: z.string(),
182
193
  gid: hex32,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/signer.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type { GroupPackage, SharePackage } from "@frostr/bifrost";
2
2
  import type { TrustedEvent, SignedEvent } from "@welshman/util";
3
+ import type { ISigner } from "@welshman/signer";
3
4
  import { Method, Auth } from "./schema.js";
4
5
  import { RPC, WithEvent } from "./rpc.js";
5
6
  import { IStorage, ICollection } from "./storage.js";
6
7
  import { ChallengeRequest, EcdhRequest, LoginSelect, LoginStart, RecoverySetup, RecoverySelect, RecoveryStart, RegisterRequest, SessionDelete, SessionList, SignRequest } from "./message.js";
8
+ import { RateLimitBucket, RateLimitConfig } from "./ratelimit.js";
7
9
  export type SignerSession = {
8
10
  client: string;
9
11
  share: SharePackage;
@@ -39,37 +41,37 @@ export type ChallengePayload = {
39
41
  email: string;
40
42
  challenge: string;
41
43
  };
44
+ export type SignerRateLimitConfig = {
45
+ auth: RateLimitConfig;
46
+ challenge: RateLimitConfig;
47
+ };
42
48
  export type SignerOptions = {
43
- secret: string;
49
+ signer: ISigner;
44
50
  relays: string[];
45
51
  storage: IStorage;
46
52
  sendChallenge: (payload: ChallengePayload) => Promise<void>;
53
+ rateLimits?: SignerRateLimitConfig;
47
54
  };
48
55
  export declare class Signer {
49
56
  private options;
50
57
  rpc: RPC;
51
- pubkey: string;
52
58
  intervals: number[];
53
59
  logins: ICollection<SignerLogin>;
54
60
  sessions: ICollection<SignerSession>;
55
61
  recoveries: ICollection<SignerRecovery>;
56
62
  challenges: ICollection<SignerChallenge>;
57
63
  sessionsByEmailHash: ICollection<SignerSessionIndex>;
64
+ rateLimitByEmailHash: ICollection<RateLimitBucket>;
65
+ rateLimitByChallengeHash: ICollection<RateLimitBucket>;
66
+ rateLimitByClient: ICollection<RateLimitBucket>;
67
+ rateLimitConfig: SignerRateLimitConfig;
58
68
  constructor(options: SignerOptions);
59
69
  stop(): void;
70
+ _checkAndRecordRateLimit(client: string): Promise<boolean>;
60
71
  _getAuthenticatedSessions(auth: Auth): Promise<SignerSession[]>;
61
- _isNip98AuthValid(auth: SignedEvent, method: Method): boolean;
72
+ _isNip98AuthValid(auth: SignedEvent, method: Method): Promise<boolean>;
62
73
  _checkKeyReuse(event: TrustedEvent): Promise<{
63
74
  abort: () => void;
64
- event: {
65
- sig: string;
66
- tags: string[][];
67
- content: string;
68
- kind: number;
69
- created_at: number;
70
- pubkey: string;
71
- id: string;
72
- };
73
75
  res: Promise<import("@welshman/net").PublishResultsByRelay>;
74
76
  ok: Promise<boolean>;
75
77
  receive: <T>(handler: import("./rpc.js").MessageHandlerWithCallback<T>) => Promise<import("@welshman/lib").Maybe<T>>;
@@ -81,60 +83,24 @@ export declare class Signer {
81
83
  handleChallengeRequest({ payload, event }: WithEvent<ChallengeRequest>): Promise<void>;
82
84
  handleRecoveryStart({ payload, event }: WithEvent<RecoveryStart>): Promise<{
83
85
  abort: () => void;
84
- event: {
85
- sig: string;
86
- tags: string[][];
87
- content: string;
88
- kind: number;
89
- created_at: number;
90
- pubkey: string;
91
- id: string;
92
- };
93
86
  res: Promise<import("@welshman/net").PublishResultsByRelay>;
94
87
  ok: Promise<boolean>;
95
88
  receive: <T>(handler: import("./rpc.js").MessageHandlerWithCallback<T>) => Promise<import("@welshman/lib").Maybe<T>>;
96
89
  } | undefined>;
97
90
  handleRecoverySelect({ payload, event }: WithEvent<RecoverySelect>): Promise<{
98
91
  abort: () => void;
99
- event: {
100
- sig: string;
101
- tags: string[][];
102
- content: string;
103
- kind: number;
104
- created_at: number;
105
- pubkey: string;
106
- id: string;
107
- };
108
92
  res: Promise<import("@welshman/net").PublishResultsByRelay>;
109
93
  ok: Promise<boolean>;
110
94
  receive: <T>(handler: import("./rpc.js").MessageHandlerWithCallback<T>) => Promise<import("@welshman/lib").Maybe<T>>;
111
95
  } | undefined>;
112
96
  handleLoginStart({ payload, event }: WithEvent<LoginStart>): Promise<{
113
97
  abort: () => void;
114
- event: {
115
- sig: string;
116
- tags: string[][];
117
- content: string;
118
- kind: number;
119
- created_at: number;
120
- pubkey: string;
121
- id: string;
122
- };
123
98
  res: Promise<import("@welshman/net").PublishResultsByRelay>;
124
99
  ok: Promise<boolean>;
125
100
  receive: <T>(handler: import("./rpc.js").MessageHandlerWithCallback<T>) => Promise<import("@welshman/lib").Maybe<T>>;
126
101
  } | undefined>;
127
102
  handleLoginSelect({ payload, event }: WithEvent<LoginSelect>): Promise<{
128
103
  abort: () => void;
129
- event: {
130
- sig: string;
131
- tags: string[][];
132
- content: string;
133
- kind: number;
134
- created_at: number;
135
- pubkey: string;
136
- id: string;
137
- };
138
104
  res: Promise<import("@welshman/net").PublishResultsByRelay>;
139
105
  ok: Promise<boolean>;
140
106
  receive: <T>(handler: import("./rpc.js").MessageHandlerWithCallback<T>) => Promise<import("@welshman/lib").Maybe<T>>;
@@ -143,15 +109,6 @@ export declare class Signer {
143
109
  handleEcdhRequest({ payload, event }: WithEvent<EcdhRequest>): Promise<unknown>;
144
110
  handleSessionList({ payload, event }: WithEvent<SessionList>): Promise<{
145
111
  abort: () => void;
146
- event: {
147
- sig: string;
148
- tags: string[][];
149
- content: string;
150
- kind: number;
151
- created_at: number;
152
- pubkey: string;
153
- id: string;
154
- };
155
112
  res: Promise<import("@welshman/net").PublishResultsByRelay>;
156
113
  ok: Promise<boolean>;
157
114
  receive: <T>(handler: import("./rpc.js").MessageHandlerWithCallback<T>) => Promise<import("@welshman/lib").Maybe<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAmB/D,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAC,MAAM,EAAe,IAAI,EAA4B,MAAM,aAAa,CAAA;AAChF,OAAO,EAAC,GAAG,EAAE,SAAS,EAAC,MAAM,UAAU,CAAA;AACvC,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,cAAc,CAAA;AAElD,OAAO,EACL,gBAAgB,EAChB,WAAW,EAYX,WAAW,EACX,UAAU,EAWV,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EAEX,WAAW,EACZ,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,eAAe,EACf,eAAe,EAKhB,MAAM,gBAAgB,CAAA;AAyBvB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,YAAY,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAID,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,EAAE,eAAe,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,QAAQ,CAAA;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,qBAAqB,CAAA;CACnC,CAAA;AAED,qBAAa,MAAM;IAaL,OAAO,CAAC,OAAO;IAZ3B,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IAChC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IACpC,UAAU,EAAE,WAAW,CAAC,cAAc,CAAC,CAAA;IACvC,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IACxC,mBAAmB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACpD,oBAAoB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IAClD,wBAAwB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IACtD,iBAAiB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IAC/C,eAAe,EAAE,qBAAqB,CAAA;gBAElB,OAAO,EAAE,aAAa;IAkF1C,IAAI;IAOE,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB1D,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA+C/D,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;IAanD,cAAc,CAAC,KAAK,EAAE,YAAY;;;;;;IAsClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAgBlD,cAAc,CAAC,MAAM,EAAE,MAAM;IAwB7B,qBAAqB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,eAAe,CAAC;IAoDlE,mBAAmB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,aAAa,CAAC;IA2F9D,sBAAsB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC;IAuCpE,mBAAmB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,aAAa,CAAC;;;;;;IAkC9D,oBAAoB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC;;;;;;IA2DhE,gBAAgB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,UAAU,CAAC;;;;;;IAkCxD,iBAAiB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,WAAW,CAAC;;;;;;IAsE1D,iBAAiB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,WAAW,CAAC;IA4D1D,iBAAiB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,WAAW,CAAC;IA6D1D,iBAAiB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,WAAW,CAAC;;;;;;IAiC1D,mBAAmB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,SAAS,CAAC,aAAa,CAAC;CAyCrE"}