@bsv/sdk 1.2.14 → 1.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cjs/package.json +2 -2
  2. package/dist/cjs/src/script/templates/P2PKH.js +2 -0
  3. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  4. package/dist/cjs/src/transaction/Beef.js +41 -15
  5. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  6. package/dist/cjs/src/transaction/MerklePath.js +4 -4
  7. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  8. package/dist/cjs/src/transaction/Transaction.js +26 -0
  9. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  10. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  11. package/dist/esm/src/script/templates/P2PKH.js +2 -0
  12. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  13. package/dist/esm/src/transaction/Beef.js +41 -15
  14. package/dist/esm/src/transaction/Beef.js.map +1 -1
  15. package/dist/esm/src/transaction/MerklePath.js +4 -4
  16. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  17. package/dist/esm/src/transaction/Transaction.js +26 -0
  18. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  19. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  20. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  21. package/dist/types/src/transaction/Beef.d.ts +8 -2
  22. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  23. package/dist/types/src/transaction/MerklePath.d.ts +2 -2
  24. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  25. package/dist/types/src/transaction/Transaction.d.ts +8 -0
  26. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  27. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  28. package/dist/umd/bundle.js +1 -1
  29. package/docs/transaction.md +31 -4
  30. package/docs/wallet-substrates.md +1410 -1
  31. package/package.json +2 -2
  32. package/src/script/templates/P2PKH.ts +1 -0
  33. package/src/transaction/Beef.ts +49 -8
  34. package/src/transaction/MerklePath.ts +4 -4
  35. package/src/transaction/Transaction.ts +22 -0
  36. package/src/transaction/__tests/Beef.test.ts +24 -5
  37. package/src/transaction/__tests/Transaction.benchmarks.test.ts +2 -2
  38. package/src/transaction/__tests/Transaction.test.ts +44 -0
@@ -1,10 +1,1419 @@
1
1
  # API
2
2
 
3
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Types](#types)
3
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
4
4
 
5
5
  ## Interfaces
6
6
 
7
+ ### Interface: WalletWire
8
+
9
+ A Wallet Wire is an abstraction over a raw transport medium where binary data can be sent to and subsequently received from a wallet.
10
+
11
+ ```ts
12
+ export default interface WalletWire {
13
+ transmitToWallet: (message: number[]) => Promise<number[]>;
14
+ }
15
+ ```
16
+
17
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
18
+
19
+ ---
7
20
  ## Classes
8
21
 
22
+ | |
23
+ | --- |
24
+ | [HTTPWalletJSON](#class-httpwalletjson) |
25
+ | [HTTPWalletWire](#class-httpwalletwire) |
26
+ | [WalletWireProcessor](#class-walletwireprocessor) |
27
+ | [WalletWireTransceiver](#class-walletwiretransceiver) |
28
+ | [WindowCWISubstrate](#class-windowcwisubstrate) |
29
+ | [XDMSubstrate](#class-xdmsubstrate) |
30
+
31
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
32
+
33
+ ---
34
+
35
+ ### Class: HTTPWalletJSON
36
+
37
+ ```ts
38
+ export default class HTTPWalletJSON implements Wallet {
39
+ baseUrl: string;
40
+ httpClient: typeof fetch;
41
+ originator: OriginatorDomainNameStringUnder250Bytes | undefined;
42
+ api: (call: string, args: any) => Promise<any>;
43
+ constructor(originator: OriginatorDomainNameStringUnder250Bytes | undefined, baseUrl: string = "http://localhost:3321", httpClient = fetch)
44
+ async createAction(args: CreateActionArgs): Promise<CreateActionResult>
45
+ async signAction(args: SignActionArgs): Promise<SignActionResult>
46
+ async abortAction(args: {
47
+ reference: Base64String;
48
+ }): Promise<{
49
+ aborted: true;
50
+ }>
51
+ async listActions(args: ListActionsArgs): Promise<ListActionsResult>
52
+ async internalizeAction(args: InternalizeActionArgs): Promise<{
53
+ accepted: true;
54
+ }>
55
+ async listOutputs(args: ListOutputsArgs): Promise<ListOutputsResult>
56
+ async relinquishOutput(args: {
57
+ basket: BasketStringUnder300Bytes;
58
+ output: OutpointString;
59
+ }): Promise<{
60
+ relinquished: true;
61
+ }>
62
+ async getPublicKey(args: {
63
+ seekPermission?: BooleanDefaultTrue;
64
+ identityKey?: true;
65
+ protocolID?: [
66
+ SecurityLevel,
67
+ ProtocolString5To400Bytes
68
+ ];
69
+ keyID?: KeyIDStringUnder800Bytes;
70
+ privileged?: BooleanDefaultFalse;
71
+ privilegedReason?: DescriptionString5to50Bytes;
72
+ counterparty?: PubKeyHex | "self" | "anyone";
73
+ forSelf?: BooleanDefaultFalse;
74
+ }): Promise<{
75
+ publicKey: PubKeyHex;
76
+ }>
77
+ async revealCounterpartyKeyLinkage(args: {
78
+ counterparty: PubKeyHex;
79
+ verifier: PubKeyHex;
80
+ privilegedReason?: DescriptionString5to50Bytes;
81
+ privileged?: BooleanDefaultFalse;
82
+ }): Promise<{
83
+ prover: PubKeyHex;
84
+ verifier: PubKeyHex;
85
+ counterparty: PubKeyHex;
86
+ revelationTime: ISOTimestampString;
87
+ encryptedLinkage: Byte[];
88
+ encryptedLinkageProof: number[];
89
+ }>
90
+ async revealSpecificKeyLinkage(args: {
91
+ counterparty: PubKeyHex;
92
+ verifier: PubKeyHex;
93
+ protocolID: [
94
+ SecurityLevel,
95
+ ProtocolString5To400Bytes
96
+ ];
97
+ keyID: KeyIDStringUnder800Bytes;
98
+ privilegedReason?: DescriptionString5to50Bytes;
99
+ privileged?: BooleanDefaultFalse;
100
+ }): Promise<{
101
+ prover: PubKeyHex;
102
+ verifier: PubKeyHex;
103
+ counterparty: PubKeyHex;
104
+ protocolID: [
105
+ SecurityLevel,
106
+ ProtocolString5To400Bytes
107
+ ];
108
+ keyID: KeyIDStringUnder800Bytes;
109
+ encryptedLinkage: Byte[];
110
+ encryptedLinkageProof: Byte[];
111
+ proofType: Byte;
112
+ }>
113
+ async encrypt(args: {
114
+ seekPermission?: BooleanDefaultTrue;
115
+ plaintext: Byte[];
116
+ protocolID: [
117
+ SecurityLevel,
118
+ ProtocolString5To400Bytes
119
+ ];
120
+ keyID: KeyIDStringUnder800Bytes;
121
+ privilegedReason?: DescriptionString5to50Bytes;
122
+ counterparty?: PubKeyHex | "self" | "anyone";
123
+ privileged?: BooleanDefaultFalse;
124
+ }): Promise<{
125
+ ciphertext: Byte[];
126
+ }>
127
+ async decrypt(args: {
128
+ seekPermission?: BooleanDefaultTrue;
129
+ ciphertext: Byte[];
130
+ protocolID: [
131
+ SecurityLevel,
132
+ ProtocolString5To400Bytes
133
+ ];
134
+ keyID: KeyIDStringUnder800Bytes;
135
+ privilegedReason?: DescriptionString5to50Bytes;
136
+ counterparty?: PubKeyHex | "self" | "anyone";
137
+ privileged?: BooleanDefaultFalse;
138
+ }): Promise<{
139
+ plaintext: Byte[];
140
+ }>
141
+ async createHmac(args: {
142
+ seekPermission?: BooleanDefaultTrue;
143
+ data: Byte[];
144
+ protocolID: [
145
+ SecurityLevel,
146
+ ProtocolString5To400Bytes
147
+ ];
148
+ keyID: KeyIDStringUnder800Bytes;
149
+ privilegedReason?: DescriptionString5to50Bytes;
150
+ counterparty?: PubKeyHex | "self" | "anyone";
151
+ privileged?: BooleanDefaultFalse;
152
+ }): Promise<{
153
+ hmac: Byte[];
154
+ }>
155
+ async verifyHmac(args: {
156
+ seekPermission?: BooleanDefaultTrue;
157
+ data: Byte[];
158
+ hmac: Byte[];
159
+ protocolID: [
160
+ SecurityLevel,
161
+ ProtocolString5To400Bytes
162
+ ];
163
+ keyID: KeyIDStringUnder800Bytes;
164
+ privilegedReason?: DescriptionString5to50Bytes;
165
+ counterparty?: PubKeyHex | "self" | "anyone";
166
+ privileged?: BooleanDefaultFalse;
167
+ }): Promise<{
168
+ valid: true;
169
+ }>
170
+ async createSignature(args: {
171
+ seekPermission?: BooleanDefaultTrue;
172
+ data?: Byte[];
173
+ hashToDirectlySign?: Byte[];
174
+ protocolID: [
175
+ SecurityLevel,
176
+ ProtocolString5To400Bytes
177
+ ];
178
+ keyID: KeyIDStringUnder800Bytes;
179
+ privilegedReason?: DescriptionString5to50Bytes;
180
+ counterparty?: PubKeyHex | "self" | "anyone";
181
+ privileged?: BooleanDefaultFalse;
182
+ }): Promise<{
183
+ signature: Byte[];
184
+ }>
185
+ async verifySignature(args: {
186
+ seekPermission?: BooleanDefaultTrue;
187
+ data?: Byte[];
188
+ hashToDirectlyVerify?: Byte[];
189
+ signature: Byte[];
190
+ protocolID: [
191
+ SecurityLevel,
192
+ ProtocolString5To400Bytes
193
+ ];
194
+ keyID: KeyIDStringUnder800Bytes;
195
+ privilegedReason?: DescriptionString5to50Bytes;
196
+ counterparty?: PubKeyHex | "self" | "anyone";
197
+ forSelf?: BooleanDefaultFalse;
198
+ privileged?: BooleanDefaultFalse;
199
+ }): Promise<{
200
+ valid: true;
201
+ }>
202
+ async acquireCertificate(args: AcquireCertificateArgs): Promise<AcquireCertificateResult>
203
+ async listCertificates(args: {
204
+ certifiers: PubKeyHex[];
205
+ types: Base64String[];
206
+ limit?: PositiveIntegerDefault10Max10000;
207
+ offset?: PositiveIntegerOrZero;
208
+ privileged?: BooleanDefaultFalse;
209
+ privilegedReason?: DescriptionString5to50Bytes;
210
+ }): Promise<ListCertificatesResult>
211
+ async proveCertificate(args: ProveCertificateArgs): Promise<ProveCertificateResult>
212
+ async relinquishCertificate(args: {
213
+ type: Base64String;
214
+ serialNumber: Base64String;
215
+ certifier: PubKeyHex;
216
+ }): Promise<{
217
+ relinquished: true;
218
+ }>
219
+ async discoverByIdentityKey(args: {
220
+ seekPermission?: BooleanDefaultTrue;
221
+ identityKey: PubKeyHex;
222
+ limit?: PositiveIntegerDefault10Max10000;
223
+ offset?: PositiveIntegerOrZero;
224
+ }): Promise<DiscoverCertificatesResult>
225
+ async discoverByAttributes(args: {
226
+ seekPermission?: BooleanDefaultTrue;
227
+ attributes: Record<CertificateFieldNameUnder50Bytes, string>;
228
+ limit?: PositiveIntegerDefault10Max10000;
229
+ offset?: PositiveIntegerOrZero;
230
+ }): Promise<DiscoverCertificatesResult>
231
+ async isAuthenticated(args: {}): Promise<{
232
+ authenticated: boolean;
233
+ }>
234
+ async waitForAuthentication(args: {}): Promise<{
235
+ authenticated: true;
236
+ }>
237
+ async getHeight(args: {}): Promise<{
238
+ height: PositiveInteger;
239
+ }>
240
+ async getHeaderForHeight(args: {
241
+ height: PositiveInteger;
242
+ }): Promise<{
243
+ header: HexString;
244
+ }>
245
+ async getNetwork(args: {}): Promise<{
246
+ network: "mainnet" | "testnet";
247
+ }>
248
+ async getVersion(args: {}): Promise<{
249
+ version: VersionString7To30Bytes;
250
+ }>
251
+ }
252
+ ```
253
+
254
+ See also: [AcquireCertificateArgs](#interface-acquirecertificateargs), [AcquireCertificateResult](#interface-acquirecertificateresult), [Base64String](#type-base64string), [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [Byte](#type-byte), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [CreateActionArgs](#interface-createactionargs), [CreateActionResult](#interface-createactionresult), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [DiscoverCertificatesResult](#interface-discovercertificatesresult), [HexString](#type-hexstring), [ISOTimestampString](#type-isotimestampstring), [InternalizeActionArgs](#interface-internalizeactionargs), [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes), [ListActionsArgs](#interface-listactionsargs), [ListActionsResult](#interface-listactionsresult), [ListCertificatesResult](#interface-listcertificatesresult), [ListOutputsArgs](#interface-listoutputsargs), [ListOutputsResult](#interface-listoutputsresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [OutpointString](#type-outpointstring), [PositiveInteger](#type-positiveinteger), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero), [ProtocolString5To400Bytes](#type-protocolstring5to400bytes), [ProveCertificateArgs](#interface-provecertificateargs), [ProveCertificateResult](#interface-provecertificateresult), [PubKeyHex](#type-pubkeyhex), [SecurityLevel](#type-securitylevel), [SignActionArgs](#interface-signactionargs), [SignActionResult](#interface-signactionresult), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
255
+
256
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
257
+
258
+ ---
259
+ ### Class: HTTPWalletWire
260
+
261
+ ```ts
262
+ export default class HTTPWalletWire implements WalletWire {
263
+ baseUrl: string;
264
+ httpClient: typeof fetch;
265
+ originator: string | undefined;
266
+ constructor(originator: string | undefined, baseUrl: string = "http://localhost:3301", httpClient = fetch)
267
+ async transmitToWallet(message: number[]): Promise<number[]>
268
+ }
269
+ ```
270
+
271
+ See also: [WalletWire](#interface-walletwire)
272
+
273
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
274
+
275
+ ---
276
+ ### Class: WalletWireProcessor
277
+
278
+ Processes incoming wallet calls received over a wallet wire, with a given wallet.
279
+
280
+ ```ts
281
+ export default class WalletWireProcessor implements WalletWire {
282
+ wallet: Wallet;
283
+ constructor(wallet: Wallet)
284
+ async transmitToWallet(message: number[]): Promise<number[]>
285
+ }
286
+ ```
287
+
288
+ See also: [Wallet](#interface-wallet), [WalletWire](#interface-walletwire)
289
+
290
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
291
+
292
+ ---
293
+ ### Class: WalletWireTransceiver
294
+
295
+ A way to make remote calls to a wallet over a wallet wire.
296
+
297
+ ```ts
298
+ export default class WalletWireTransceiver implements Wallet {
299
+ wire: WalletWire;
300
+ constructor(wire: WalletWire)
301
+ async createAction(args: CreateActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateActionResult>
302
+ async signAction(args: SignActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<SignActionResult>
303
+ async abortAction(args: {
304
+ reference: Base64String;
305
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
306
+ aborted: true;
307
+ }>
308
+ async listActions(args: ListActionsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListActionsResult>
309
+ async internalizeAction(args: InternalizeActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
310
+ accepted: true;
311
+ }>
312
+ async listOutputs(args: ListOutputsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListOutputsResult>
313
+ async relinquishOutput(args: {
314
+ basket: BasketStringUnder300Bytes;
315
+ output: OutpointString;
316
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
317
+ relinquished: true;
318
+ }>
319
+ async getPublicKey(args: {
320
+ seekPermission?: BooleanDefaultTrue;
321
+ identityKey?: true;
322
+ protocolID?: [
323
+ SecurityLevel,
324
+ ProtocolString5To400Bytes
325
+ ];
326
+ keyID?: KeyIDStringUnder800Bytes;
327
+ privileged?: BooleanDefaultFalse;
328
+ privilegedReason?: DescriptionString5to50Bytes;
329
+ counterparty?: PubKeyHex | "self" | "anyone";
330
+ forSelf?: BooleanDefaultFalse;
331
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
332
+ publicKey: PubKeyHex;
333
+ }>
334
+ async revealCounterpartyKeyLinkage(args: {
335
+ counterparty: PubKeyHex;
336
+ verifier: PubKeyHex;
337
+ privilegedReason?: DescriptionString5to50Bytes;
338
+ privileged?: BooleanDefaultFalse;
339
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
340
+ prover: PubKeyHex;
341
+ verifier: PubKeyHex;
342
+ counterparty: PubKeyHex;
343
+ revelationTime: ISOTimestampString;
344
+ encryptedLinkage: Byte[];
345
+ encryptedLinkageProof: number[];
346
+ }>
347
+ async revealSpecificKeyLinkage(args: {
348
+ counterparty: PubKeyHex;
349
+ verifier: PubKeyHex;
350
+ protocolID: [
351
+ SecurityLevel,
352
+ ProtocolString5To400Bytes
353
+ ];
354
+ keyID: KeyIDStringUnder800Bytes;
355
+ privilegedReason?: DescriptionString5to50Bytes;
356
+ privileged?: BooleanDefaultFalse;
357
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
358
+ prover: PubKeyHex;
359
+ verifier: PubKeyHex;
360
+ counterparty: PubKeyHex;
361
+ protocolID: [
362
+ SecurityLevel,
363
+ ProtocolString5To400Bytes
364
+ ];
365
+ keyID: KeyIDStringUnder800Bytes;
366
+ encryptedLinkage: Byte[];
367
+ encryptedLinkageProof: Byte[];
368
+ proofType: Byte;
369
+ }>
370
+ async encrypt(args: {
371
+ seekPermission?: BooleanDefaultTrue;
372
+ plaintext: Byte[];
373
+ protocolID: [
374
+ SecurityLevel,
375
+ ProtocolString5To400Bytes
376
+ ];
377
+ keyID: KeyIDStringUnder800Bytes;
378
+ privilegedReason?: DescriptionString5to50Bytes;
379
+ counterparty?: PubKeyHex | "self" | "anyone";
380
+ privileged?: BooleanDefaultFalse;
381
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
382
+ ciphertext: Byte[];
383
+ }>
384
+ async decrypt(args: {
385
+ seekPermission?: BooleanDefaultTrue;
386
+ ciphertext: Byte[];
387
+ protocolID: [
388
+ SecurityLevel,
389
+ ProtocolString5To400Bytes
390
+ ];
391
+ keyID: KeyIDStringUnder800Bytes;
392
+ privilegedReason?: DescriptionString5to50Bytes;
393
+ counterparty?: PubKeyHex | "self" | "anyone";
394
+ privileged?: BooleanDefaultFalse;
395
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
396
+ plaintext: Byte[];
397
+ }>
398
+ async createHmac(args: {
399
+ seekPermission?: BooleanDefaultTrue;
400
+ data: Byte[];
401
+ protocolID: [
402
+ SecurityLevel,
403
+ ProtocolString5To400Bytes
404
+ ];
405
+ keyID: KeyIDStringUnder800Bytes;
406
+ privilegedReason?: DescriptionString5to50Bytes;
407
+ counterparty?: PubKeyHex | "self" | "anyone";
408
+ privileged?: BooleanDefaultFalse;
409
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
410
+ hmac: Byte[];
411
+ }>
412
+ async verifyHmac(args: {
413
+ seekPermission?: BooleanDefaultTrue;
414
+ data: Byte[];
415
+ hmac: Byte[];
416
+ protocolID: [
417
+ SecurityLevel,
418
+ ProtocolString5To400Bytes
419
+ ];
420
+ keyID: KeyIDStringUnder800Bytes;
421
+ privilegedReason?: DescriptionString5to50Bytes;
422
+ counterparty?: PubKeyHex | "self" | "anyone";
423
+ privileged?: BooleanDefaultFalse;
424
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
425
+ valid: true;
426
+ }>
427
+ async createSignature(args: {
428
+ seekPermission?: BooleanDefaultTrue;
429
+ data?: Byte[];
430
+ hashToDirectlySign?: Byte[];
431
+ protocolID: [
432
+ SecurityLevel,
433
+ ProtocolString5To400Bytes
434
+ ];
435
+ keyID: KeyIDStringUnder800Bytes;
436
+ privilegedReason?: DescriptionString5to50Bytes;
437
+ counterparty?: PubKeyHex | "self" | "anyone";
438
+ privileged?: BooleanDefaultFalse;
439
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
440
+ signature: Byte[];
441
+ }>
442
+ async verifySignature(args: {
443
+ seekPermission?: BooleanDefaultTrue;
444
+ data?: Byte[];
445
+ hashToDirectlyVerify?: Byte[];
446
+ signature: Byte[];
447
+ protocolID: [
448
+ SecurityLevel,
449
+ ProtocolString5To400Bytes
450
+ ];
451
+ keyID: KeyIDStringUnder800Bytes;
452
+ privilegedReason?: DescriptionString5to50Bytes;
453
+ counterparty?: PubKeyHex | "self" | "anyone";
454
+ forSelf?: BooleanDefaultFalse;
455
+ privileged?: BooleanDefaultFalse;
456
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
457
+ valid: true;
458
+ }>
459
+ async acquireCertificate(args: AcquireCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AcquireCertificateResult>
460
+ async listCertificates(args: {
461
+ certifiers: PubKeyHex[];
462
+ types: Base64String[];
463
+ limit?: PositiveIntegerDefault10Max10000;
464
+ offset?: PositiveIntegerOrZero;
465
+ privileged?: BooleanDefaultFalse;
466
+ privilegedReason?: DescriptionString5to50Bytes;
467
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListCertificatesResult>
468
+ async proveCertificate(args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ProveCertificateResult>
469
+ async relinquishCertificate(args: {
470
+ type: Base64String;
471
+ serialNumber: Base64String;
472
+ certifier: PubKeyHex;
473
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
474
+ relinquished: true;
475
+ }>
476
+ async discoverByIdentityKey(args: {
477
+ seekPermission?: BooleanDefaultTrue;
478
+ identityKey: PubKeyHex;
479
+ limit?: PositiveIntegerDefault10Max10000;
480
+ offset?: PositiveIntegerOrZero;
481
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
482
+ async discoverByAttributes(args: {
483
+ seekPermission?: BooleanDefaultTrue;
484
+ attributes: Record<CertificateFieldNameUnder50Bytes, string>;
485
+ limit?: PositiveIntegerDefault10Max10000;
486
+ offset?: PositiveIntegerOrZero;
487
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
488
+ async isAuthenticated(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
489
+ authenticated: boolean;
490
+ }>
491
+ async waitForAuthentication(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
492
+ authenticated: true;
493
+ }>
494
+ async getHeight(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
495
+ height: PositiveInteger;
496
+ }>
497
+ async getHeaderForHeight(args: {
498
+ height: PositiveInteger;
499
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
500
+ header: HexString;
501
+ }>
502
+ async getNetwork(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
503
+ network: "mainnet" | "testnet";
504
+ }>
505
+ async getVersion(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
506
+ version: VersionString7To30Bytes;
507
+ }>
508
+ }
509
+ ```
510
+
511
+ See also: [AcquireCertificateArgs](#interface-acquirecertificateargs), [AcquireCertificateResult](#interface-acquirecertificateresult), [Base64String](#type-base64string), [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [Byte](#type-byte), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [CreateActionArgs](#interface-createactionargs), [CreateActionResult](#interface-createactionresult), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [DiscoverCertificatesResult](#interface-discovercertificatesresult), [HexString](#type-hexstring), [ISOTimestampString](#type-isotimestampstring), [InternalizeActionArgs](#interface-internalizeactionargs), [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes), [ListActionsArgs](#interface-listactionsargs), [ListActionsResult](#interface-listactionsresult), [ListCertificatesResult](#interface-listcertificatesresult), [ListOutputsArgs](#interface-listoutputsargs), [ListOutputsResult](#interface-listoutputsresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [OutpointString](#type-outpointstring), [PositiveInteger](#type-positiveinteger), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero), [ProtocolString5To400Bytes](#type-protocolstring5to400bytes), [ProveCertificateArgs](#interface-provecertificateargs), [ProveCertificateResult](#interface-provecertificateresult), [PubKeyHex](#type-pubkeyhex), [SecurityLevel](#type-securitylevel), [SignActionArgs](#interface-signactionargs), [SignActionResult](#interface-signactionresult), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [WalletWire](#interface-walletwire), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
512
+
513
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
514
+
515
+ ---
516
+ ### Class: WindowCWISubstrate
517
+
518
+ Facilitates wallet operations over the window.CWI interface.
519
+
520
+ ```ts
521
+ export default class WindowCWISubstrate implements Wallet {
522
+ constructor()
523
+ async createAction(args: {
524
+ description: DescriptionString5to50Bytes;
525
+ inputs?: Array<{
526
+ tx?: BEEF;
527
+ outpoint: OutpointString;
528
+ unlockingScript?: HexString;
529
+ unlockingScriptLength?: PositiveInteger;
530
+ inputDescription: DescriptionString5to50Bytes;
531
+ sequenceNumber?: PositiveIntegerOrZero;
532
+ }>;
533
+ outputs?: Array<{
534
+ lockingScript: HexString;
535
+ satoshis: SatoshiValue;
536
+ outputDescription: DescriptionString5to50Bytes;
537
+ basket?: BasketStringUnder300Bytes;
538
+ customInstructions?: string;
539
+ tags?: OutputTagStringUnder300Bytes[];
540
+ }>;
541
+ lockTime?: PositiveIntegerOrZero;
542
+ version?: PositiveIntegerOrZero;
543
+ labels?: LabelStringUnder300Bytes[];
544
+ options?: {
545
+ signAndProcess?: BooleanDefaultTrue;
546
+ acceptDelayedBroadcast?: BooleanDefaultTrue;
547
+ trustSelf?: "known";
548
+ knownTxids?: TXIDHexString[];
549
+ returnTXIDOnly?: BooleanDefaultFalse;
550
+ noSend?: BooleanDefaultFalse;
551
+ noSendChange?: OutpointString[];
552
+ sendWith?: TXIDHexString[];
553
+ };
554
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
555
+ txid?: TXIDHexString;
556
+ tx?: BEEF;
557
+ noSendChange?: OutpointString[];
558
+ sendWithResults?: Array<{
559
+ txid: TXIDHexString;
560
+ status: "unproven" | "sending" | "failed";
561
+ }>;
562
+ signableTransaction?: {
563
+ tx: BEEF;
564
+ reference: Base64String;
565
+ };
566
+ }>
567
+ async signAction(args: {
568
+ spends: Record<PositiveIntegerOrZero, {
569
+ unlockingScript: HexString;
570
+ sequenceNumber?: PositiveIntegerOrZero;
571
+ }>;
572
+ reference: Base64String;
573
+ options?: {
574
+ acceptDelayedBroadcast?: BooleanDefaultTrue;
575
+ returnTXIDOnly?: BooleanDefaultFalse;
576
+ noSend?: BooleanDefaultFalse;
577
+ noSendChange?: OutpointString[];
578
+ sendWith: TXIDHexString[];
579
+ };
580
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
581
+ txid?: TXIDHexString;
582
+ tx?: BEEF;
583
+ noSendChange?: OutpointString[];
584
+ sendWithResults?: Array<{
585
+ txid: TXIDHexString;
586
+ status: "unproven" | "sending" | "failed";
587
+ }>;
588
+ }>
589
+ async abortAction(args: {
590
+ reference: Base64String;
591
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
592
+ aborted: true;
593
+ }>
594
+ async listActions(args: {
595
+ labels: LabelStringUnder300Bytes[];
596
+ labelQueryMode?: "any" | "all";
597
+ includeLabels?: BooleanDefaultFalse;
598
+ includeInputs?: BooleanDefaultFalse;
599
+ includeInputSourceLockingScripts?: BooleanDefaultFalse;
600
+ includeInputUnlockingScripts?: BooleanDefaultFalse;
601
+ includeOutputs?: BooleanDefaultFalse;
602
+ includeOutputLockingScripts?: BooleanDefaultFalse;
603
+ limit?: PositiveIntegerDefault10Max10000;
604
+ offset?: PositiveIntegerOrZero;
605
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
606
+ totalActions: PositiveIntegerOrZero;
607
+ actions: Array<{
608
+ txid: TXIDHexString;
609
+ satoshis: SatoshiValue;
610
+ status: "completed" | "unprocessed" | "sending" | "unproven" | "unsigned" | "nosend" | "nonfinal";
611
+ isOutgoing: boolean;
612
+ description: DescriptionString5to50Bytes;
613
+ labels?: LabelStringUnder300Bytes[];
614
+ version: PositiveIntegerOrZero;
615
+ lockTime: PositiveIntegerOrZero;
616
+ inputs?: Array<{
617
+ sourceOutpoint: OutpointString;
618
+ sourceSatoshis: SatoshiValue;
619
+ sourceLockingScript?: HexString;
620
+ unlockingScript?: HexString;
621
+ inputDescription: DescriptionString5to50Bytes;
622
+ sequenceNumber: PositiveIntegerOrZero;
623
+ }>;
624
+ outputs?: Array<{
625
+ outputIndex: PositiveIntegerOrZero;
626
+ satoshis: SatoshiValue;
627
+ lockingScript?: HexString;
628
+ spendable: boolean;
629
+ outputDescription: DescriptionString5to50Bytes;
630
+ basket: BasketStringUnder300Bytes;
631
+ tags: OutputTagStringUnder300Bytes[];
632
+ customInstructions?: string;
633
+ }>;
634
+ }>;
635
+ }>
636
+ async internalizeAction(args: {
637
+ tx: BEEF;
638
+ outputs: Array<{
639
+ outputIndex: PositiveIntegerOrZero;
640
+ protocol: "wallet payment" | "basket insertion";
641
+ paymentRemittance?: {
642
+ derivationPrefix: Base64String;
643
+ derivationSuffix: Base64String;
644
+ senderIdentityKey: PubKeyHex;
645
+ };
646
+ insertionRemittance?: {
647
+ basket: BasketStringUnder300Bytes;
648
+ customInstructions?: string;
649
+ tags?: OutputTagStringUnder300Bytes[];
650
+ };
651
+ }>;
652
+ description: DescriptionString5to50Bytes;
653
+ labels?: LabelStringUnder300Bytes[];
654
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
655
+ accepted: true;
656
+ }>
657
+ async listOutputs(args: {
658
+ basket: BasketStringUnder300Bytes;
659
+ tags?: OutputTagStringUnder300Bytes[];
660
+ tagQueryMode?: "all" | "any";
661
+ include?: "locking scripts" | "entire transactions";
662
+ includeCustomInstructions?: BooleanDefaultFalse;
663
+ includeTags?: BooleanDefaultFalse;
664
+ includeLabels?: BooleanDefaultFalse;
665
+ limit?: PositiveIntegerDefault10Max10000;
666
+ offset?: PositiveIntegerOrZero;
667
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
668
+ totalOutputs: PositiveIntegerOrZero;
669
+ outputs: Array<{
670
+ outpoint: OutpointString;
671
+ satoshis: SatoshiValue;
672
+ lockingScript?: HexString;
673
+ tx?: BEEF;
674
+ spendable: true;
675
+ customInstructions?: string;
676
+ tags?: OutputTagStringUnder300Bytes[];
677
+ labels?: LabelStringUnder300Bytes[];
678
+ }>;
679
+ }>
680
+ async relinquishOutput(args: {
681
+ basket: BasketStringUnder300Bytes;
682
+ output: OutpointString;
683
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
684
+ relinquished: true;
685
+ }>
686
+ async getPublicKey(args: {
687
+ identityKey?: true;
688
+ protocolID?: [
689
+ SecurityLevel,
690
+ ProtocolString5To400Bytes
691
+ ];
692
+ keyID?: KeyIDStringUnder800Bytes;
693
+ privileged?: BooleanDefaultFalse;
694
+ privilegedReason?: DescriptionString5to50Bytes;
695
+ counterparty?: PubKeyHex | "self" | "anyone";
696
+ forSelf?: BooleanDefaultFalse;
697
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
698
+ publicKey: PubKeyHex;
699
+ }>
700
+ async revealCounterpartyKeyLinkage(args: {
701
+ counterparty: PubKeyHex;
702
+ verifier: PubKeyHex;
703
+ privilegedReason?: DescriptionString5to50Bytes;
704
+ privileged?: BooleanDefaultFalse;
705
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
706
+ prover: PubKeyHex;
707
+ verifier: PubKeyHex;
708
+ counterparty: PubKeyHex;
709
+ revelationTime: ISOTimestampString;
710
+ encryptedLinkage: Byte[];
711
+ encryptedLinkageProof: Byte[];
712
+ }>
713
+ async revealSpecificKeyLinkage(args: {
714
+ counterparty: PubKeyHex;
715
+ verifier: PubKeyHex;
716
+ protocolID: [
717
+ SecurityLevel,
718
+ ProtocolString5To400Bytes
719
+ ];
720
+ keyID: KeyIDStringUnder800Bytes;
721
+ privilegedReason?: DescriptionString5to50Bytes;
722
+ privileged?: BooleanDefaultFalse;
723
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
724
+ prover: PubKeyHex;
725
+ verifier: PubKeyHex;
726
+ counterparty: PubKeyHex;
727
+ protocolID: [
728
+ SecurityLevel,
729
+ ProtocolString5To400Bytes
730
+ ];
731
+ keyID: KeyIDStringUnder800Bytes;
732
+ encryptedLinkage: Byte[];
733
+ encryptedLinkageProof: Byte[];
734
+ proofType: Byte;
735
+ }>
736
+ async encrypt(args: {
737
+ plaintext: Byte[];
738
+ protocolID: [
739
+ SecurityLevel,
740
+ ProtocolString5To400Bytes
741
+ ];
742
+ keyID: KeyIDStringUnder800Bytes;
743
+ privilegedReason?: DescriptionString5to50Bytes;
744
+ counterparty?: PubKeyHex | "self" | "anyone";
745
+ privileged?: BooleanDefaultFalse;
746
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
747
+ ciphertext: Byte[];
748
+ }>
749
+ async decrypt(args: {
750
+ ciphertext: Byte[];
751
+ protocolID: [
752
+ SecurityLevel,
753
+ ProtocolString5To400Bytes
754
+ ];
755
+ keyID: KeyIDStringUnder800Bytes;
756
+ privilegedReason?: DescriptionString5to50Bytes;
757
+ counterparty?: PubKeyHex | "self" | "anyone";
758
+ privileged?: BooleanDefaultFalse;
759
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
760
+ plaintext: Byte[];
761
+ }>
762
+ async createHmac(args: {
763
+ data: Byte[];
764
+ protocolID: [
765
+ SecurityLevel,
766
+ ProtocolString5To400Bytes
767
+ ];
768
+ keyID: KeyIDStringUnder800Bytes;
769
+ privilegedReason?: DescriptionString5to50Bytes;
770
+ counterparty?: PubKeyHex | "self" | "anyone";
771
+ privileged?: BooleanDefaultFalse;
772
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
773
+ hmac: Byte[];
774
+ }>
775
+ async verifyHmac(args: {
776
+ data: Byte[];
777
+ hmac: Byte[];
778
+ protocolID: [
779
+ SecurityLevel,
780
+ ProtocolString5To400Bytes
781
+ ];
782
+ keyID: KeyIDStringUnder800Bytes;
783
+ privilegedReason?: DescriptionString5to50Bytes;
784
+ counterparty?: PubKeyHex | "self" | "anyone";
785
+ privileged?: BooleanDefaultFalse;
786
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
787
+ valid: true;
788
+ }>
789
+ async createSignature(args: {
790
+ data?: Byte[];
791
+ hashToDirectlySign?: Byte[];
792
+ protocolID: [
793
+ SecurityLevel,
794
+ ProtocolString5To400Bytes
795
+ ];
796
+ keyID: KeyIDStringUnder800Bytes;
797
+ privilegedReason?: DescriptionString5to50Bytes;
798
+ counterparty?: PubKeyHex | "self" | "anyone";
799
+ privileged?: BooleanDefaultFalse;
800
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
801
+ signature: Byte[];
802
+ }>
803
+ async verifySignature(args: {
804
+ data?: Byte[];
805
+ hashToDirectlyVerify?: Byte[];
806
+ signature: Byte[];
807
+ protocolID: [
808
+ SecurityLevel,
809
+ ProtocolString5To400Bytes
810
+ ];
811
+ keyID: KeyIDStringUnder800Bytes;
812
+ privilegedReason?: DescriptionString5to50Bytes;
813
+ counterparty?: PubKeyHex | "self" | "anyone";
814
+ forSelf?: BooleanDefaultFalse;
815
+ privileged?: BooleanDefaultFalse;
816
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
817
+ valid: true;
818
+ }>
819
+ async acquireCertificate(args: {
820
+ type: Base64String;
821
+ subject: PubKeyHex;
822
+ serialNumber: Base64String;
823
+ revocationOutpoint: OutpointString;
824
+ signature: HexString;
825
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
826
+ certifier: PubKeyHex;
827
+ keyringRevealer: PubKeyHex | "certifier";
828
+ keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
829
+ acquisitionProtocol: "direct" | "issuance";
830
+ certifierUrl?: string;
831
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
832
+ type: Base64String;
833
+ subject: PubKeyHex;
834
+ serialNumber: Base64String;
835
+ certifier: PubKeyHex;
836
+ revocationOutpoint: OutpointString;
837
+ signature: HexString;
838
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
839
+ }>
840
+ async listCertificates(args: {
841
+ certifiers: PubKeyHex[];
842
+ types: Base64String[];
843
+ limit?: PositiveIntegerDefault10Max10000;
844
+ offset?: PositiveIntegerOrZero;
845
+ privileged?: BooleanDefaultFalse;
846
+ privilegedReason?: DescriptionString5to50Bytes;
847
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
848
+ totalCertificates: PositiveIntegerOrZero;
849
+ certificates: Array<{
850
+ type: Base64String;
851
+ subject: PubKeyHex;
852
+ serialNumber: Base64String;
853
+ certifier: PubKeyHex;
854
+ revocationOutpoint: OutpointString;
855
+ signature: HexString;
856
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
857
+ }>;
858
+ }>
859
+ async proveCertificate(args: {
860
+ certificate: {
861
+ type: Base64String;
862
+ subject: PubKeyHex;
863
+ serialNumber: Base64String;
864
+ certifier: PubKeyHex;
865
+ revocationOutpoint: OutpointString;
866
+ signature: HexString;
867
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
868
+ };
869
+ fieldsToReveal: CertificateFieldNameUnder50Bytes[];
870
+ verifier: PubKeyHex;
871
+ privileged?: BooleanDefaultFalse;
872
+ privilegedReason?: DescriptionString5to50Bytes;
873
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
874
+ keyringForVerifier: Record<CertificateFieldNameUnder50Bytes, Base64String>;
875
+ }>
876
+ async relinquishCertificate(args: {
877
+ type: Base64String;
878
+ serialNumber: Base64String;
879
+ certifier: PubKeyHex;
880
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
881
+ relinquished: true;
882
+ }>
883
+ async discoverByIdentityKey(args: {
884
+ identityKey: PubKeyHex;
885
+ limit?: PositiveIntegerDefault10Max10000;
886
+ offset?: PositiveIntegerOrZero;
887
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
888
+ totalCertificates: PositiveIntegerOrZero;
889
+ certificates: Array<{
890
+ type: Base64String;
891
+ subject: PubKeyHex;
892
+ serialNumber: Base64String;
893
+ certifier: PubKeyHex;
894
+ revocationOutpoint: OutpointString;
895
+ signature: HexString;
896
+ fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
897
+ certifierInfo: {
898
+ name: EntityNameStringMax100Bytes;
899
+ iconUrl: EntityIconURLStringMax500Bytes;
900
+ description: DescriptionString5to50Bytes;
901
+ trust: PositiveIntegerMax10;
902
+ };
903
+ publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
904
+ decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
905
+ }>;
906
+ }>
907
+ async discoverByAttributes(args: {
908
+ attributes: Record<CertificateFieldNameUnder50Bytes, string>;
909
+ limit?: PositiveIntegerDefault10Max10000;
910
+ offset?: PositiveIntegerOrZero;
911
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
912
+ totalCertificates: PositiveIntegerOrZero;
913
+ certificates: Array<{
914
+ type: Base64String;
915
+ subject: PubKeyHex;
916
+ serialNumber: Base64String;
917
+ certifier: PubKeyHex;
918
+ revocationOutpoint: OutpointString;
919
+ signature: HexString;
920
+ fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
921
+ certifierInfo: {
922
+ name: EntityNameStringMax100Bytes;
923
+ iconUrl: EntityIconURLStringMax500Bytes;
924
+ description: DescriptionString5to50Bytes;
925
+ trust: PositiveIntegerMax10;
926
+ };
927
+ publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
928
+ decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
929
+ }>;
930
+ }>
931
+ async isAuthenticated(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
932
+ authenticated: boolean;
933
+ }>
934
+ async waitForAuthentication(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
935
+ authenticated: true;
936
+ }>
937
+ async getHeight(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
938
+ height: PositiveInteger;
939
+ }>
940
+ async getHeaderForHeight(args: {
941
+ height: PositiveInteger;
942
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
943
+ header: HexString;
944
+ }>
945
+ async getNetwork(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
946
+ network: "mainnet" | "testnet";
947
+ }>
948
+ async getVersion(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
949
+ version: VersionString7To30Bytes;
950
+ }>
951
+ }
952
+ ```
953
+
954
+ See also: [BEEF](#type-beef), [Base64String](#type-base64string), [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [Byte](#type-byte), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [EntityIconURLStringMax500Bytes](#type-entityiconurlstringmax500bytes), [EntityNameStringMax100Bytes](#type-entitynamestringmax100bytes), [HexString](#type-hexstring), [ISOTimestampString](#type-isotimestampstring), [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes), [LabelStringUnder300Bytes](#type-labelstringunder300bytes), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [OutpointString](#type-outpointstring), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes), [PositiveInteger](#type-positiveinteger), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerMax10](#type-positiveintegermax10), [PositiveIntegerOrZero](#type-positiveintegerorzero), [ProtocolString5To400Bytes](#type-protocolstring5to400bytes), [PubKeyHex](#type-pubkeyhex), [SatoshiValue](#type-satoshivalue), [SecurityLevel](#type-securitylevel), [TXIDHexString](#type-txidhexstring), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
955
+
956
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
957
+
958
+ ---
959
+ ### Class: XDMSubstrate
960
+
961
+ Facilitates wallet operations over cross-document messaging.
962
+
963
+ ```ts
964
+ export default class XDMSubstrate implements Wallet {
965
+ constructor(domain: string = "*")
966
+ async invoke(call: CallType, args: any): Promise<any>
967
+ async createAction(args: {
968
+ description: DescriptionString5to50Bytes;
969
+ inputs?: Array<{
970
+ tx?: BEEF;
971
+ outpoint: OutpointString;
972
+ unlockingScript?: HexString;
973
+ unlockingScriptLength?: PositiveInteger;
974
+ inputDescription: DescriptionString5to50Bytes;
975
+ sequenceNumber?: PositiveIntegerOrZero;
976
+ }>;
977
+ outputs?: Array<{
978
+ lockingScript: HexString;
979
+ satoshis: SatoshiValue;
980
+ outputDescription: DescriptionString5to50Bytes;
981
+ basket?: BasketStringUnder300Bytes;
982
+ customInstructions?: string;
983
+ tags?: OutputTagStringUnder300Bytes[];
984
+ }>;
985
+ lockTime?: PositiveIntegerOrZero;
986
+ version?: PositiveIntegerOrZero;
987
+ labels?: LabelStringUnder300Bytes[];
988
+ options?: {
989
+ signAndProcess?: BooleanDefaultTrue;
990
+ acceptDelayedBroadcast?: BooleanDefaultTrue;
991
+ trustSelf?: "known";
992
+ knownTxids?: TXIDHexString[];
993
+ returnTXIDOnly?: BooleanDefaultFalse;
994
+ noSend?: BooleanDefaultFalse;
995
+ noSendChange?: OutpointString[];
996
+ sendWith?: TXIDHexString[];
997
+ };
998
+ }): Promise<{
999
+ txid?: TXIDHexString;
1000
+ tx?: BEEF;
1001
+ noSendChange?: OutpointString[];
1002
+ sendWithResults?: Array<{
1003
+ txid: TXIDHexString;
1004
+ status: "unproven" | "sending" | "failed";
1005
+ }>;
1006
+ signableTransaction?: {
1007
+ tx: BEEF;
1008
+ reference: Base64String;
1009
+ };
1010
+ }>
1011
+ async signAction(args: {
1012
+ spends: Record<PositiveIntegerOrZero, {
1013
+ unlockingScript: HexString;
1014
+ sequenceNumber?: PositiveIntegerOrZero;
1015
+ }>;
1016
+ reference: Base64String;
1017
+ options?: {
1018
+ acceptDelayedBroadcast?: BooleanDefaultTrue;
1019
+ returnTXIDOnly?: BooleanDefaultFalse;
1020
+ noSend?: BooleanDefaultFalse;
1021
+ noSendChange?: OutpointString[];
1022
+ sendWith: TXIDHexString[];
1023
+ };
1024
+ }): Promise<{
1025
+ txid?: TXIDHexString;
1026
+ tx?: BEEF;
1027
+ noSendChange?: OutpointString[];
1028
+ sendWithResults?: Array<{
1029
+ txid: TXIDHexString;
1030
+ status: "unproven" | "sending" | "failed";
1031
+ }>;
1032
+ }>
1033
+ async abortAction(args: {
1034
+ reference: Base64String;
1035
+ }): Promise<{
1036
+ aborted: true;
1037
+ }>
1038
+ async listActions(args: {
1039
+ labels: LabelStringUnder300Bytes[];
1040
+ labelQueryMode?: "any" | "all";
1041
+ includeLabels?: BooleanDefaultFalse;
1042
+ includeInputs?: BooleanDefaultFalse;
1043
+ includeInputSourceLockingScripts?: BooleanDefaultFalse;
1044
+ includeInputUnlockingScripts?: BooleanDefaultFalse;
1045
+ includeOutputs?: BooleanDefaultFalse;
1046
+ includeOutputLockingScripts?: BooleanDefaultFalse;
1047
+ limit?: PositiveIntegerDefault10Max10000;
1048
+ offset?: PositiveIntegerOrZero;
1049
+ }): Promise<{
1050
+ totalActions: PositiveIntegerOrZero;
1051
+ actions: Array<{
1052
+ txid: TXIDHexString;
1053
+ satoshis: SatoshiValue;
1054
+ status: "completed" | "unprocessed" | "sending" | "unproven" | "unsigned" | "nosend" | "nonfinal";
1055
+ isOutgoing: boolean;
1056
+ description: DescriptionString5to50Bytes;
1057
+ labels?: LabelStringUnder300Bytes[];
1058
+ version: PositiveIntegerOrZero;
1059
+ lockTime: PositiveIntegerOrZero;
1060
+ inputs?: Array<{
1061
+ sourceOutpoint: OutpointString;
1062
+ sourceSatoshis: SatoshiValue;
1063
+ sourceLockingScript?: HexString;
1064
+ unlockingScript?: HexString;
1065
+ inputDescription: DescriptionString5to50Bytes;
1066
+ sequenceNumber: PositiveIntegerOrZero;
1067
+ }>;
1068
+ outputs?: Array<{
1069
+ outputIndex: PositiveIntegerOrZero;
1070
+ satoshis: SatoshiValue;
1071
+ lockingScript?: HexString;
1072
+ spendable: boolean;
1073
+ outputDescription: DescriptionString5to50Bytes;
1074
+ basket: BasketStringUnder300Bytes;
1075
+ tags: OutputTagStringUnder300Bytes[];
1076
+ customInstructions?: string;
1077
+ }>;
1078
+ }>;
1079
+ }>
1080
+ async internalizeAction(args: {
1081
+ tx: BEEF;
1082
+ outputs: Array<{
1083
+ outputIndex: PositiveIntegerOrZero;
1084
+ protocol: "wallet payment" | "basket insertion";
1085
+ paymentRemittance?: {
1086
+ derivationPrefix: Base64String;
1087
+ derivationSuffix: Base64String;
1088
+ senderIdentityKey: PubKeyHex;
1089
+ };
1090
+ insertionRemittance?: {
1091
+ basket: BasketStringUnder300Bytes;
1092
+ customInstructions?: string;
1093
+ tags?: OutputTagStringUnder300Bytes[];
1094
+ };
1095
+ }>;
1096
+ description: DescriptionString5to50Bytes;
1097
+ labels?: LabelStringUnder300Bytes[];
1098
+ }): Promise<{
1099
+ accepted: true;
1100
+ }>
1101
+ async listOutputs(args: {
1102
+ basket: BasketStringUnder300Bytes;
1103
+ tags?: OutputTagStringUnder300Bytes[];
1104
+ tagQueryMode?: "all" | "any";
1105
+ include?: "locking scripts" | "entire transactions";
1106
+ includeCustomInstructions?: BooleanDefaultFalse;
1107
+ includeTags?: BooleanDefaultFalse;
1108
+ includeLabels?: BooleanDefaultFalse;
1109
+ limit?: PositiveIntegerDefault10Max10000;
1110
+ offset?: PositiveIntegerOrZero;
1111
+ }): Promise<{
1112
+ totalOutputs: PositiveIntegerOrZero;
1113
+ outputs: Array<{
1114
+ outpoint: OutpointString;
1115
+ satoshis: SatoshiValue;
1116
+ lockingScript?: HexString;
1117
+ tx?: BEEF;
1118
+ spendable: true;
1119
+ customInstructions?: string;
1120
+ tags?: OutputTagStringUnder300Bytes[];
1121
+ labels?: LabelStringUnder300Bytes[];
1122
+ }>;
1123
+ }>
1124
+ async relinquishOutput(args: {
1125
+ basket: BasketStringUnder300Bytes;
1126
+ output: OutpointString;
1127
+ }): Promise<{
1128
+ relinquished: true;
1129
+ }>
1130
+ async getPublicKey(args: {
1131
+ identityKey?: true;
1132
+ protocolID?: [
1133
+ SecurityLevel,
1134
+ ProtocolString5To400Bytes
1135
+ ];
1136
+ keyID?: KeyIDStringUnder800Bytes;
1137
+ privileged?: BooleanDefaultFalse;
1138
+ privilegedReason?: DescriptionString5to50Bytes;
1139
+ counterparty?: PubKeyHex | "self" | "anyone";
1140
+ forSelf?: BooleanDefaultFalse;
1141
+ }): Promise<{
1142
+ publicKey: PubKeyHex;
1143
+ }>
1144
+ async revealCounterpartyKeyLinkage(args: {
1145
+ counterparty: PubKeyHex;
1146
+ verifier: PubKeyHex;
1147
+ privilegedReason?: DescriptionString5to50Bytes;
1148
+ privileged?: BooleanDefaultFalse;
1149
+ }): Promise<{
1150
+ prover: PubKeyHex;
1151
+ verifier: PubKeyHex;
1152
+ counterparty: PubKeyHex;
1153
+ revelationTime: ISOTimestampString;
1154
+ encryptedLinkage: Byte[];
1155
+ encryptedLinkageProof: Byte[];
1156
+ }>
1157
+ async revealSpecificKeyLinkage(args: {
1158
+ counterparty: PubKeyHex;
1159
+ verifier: PubKeyHex;
1160
+ protocolID: [
1161
+ SecurityLevel,
1162
+ ProtocolString5To400Bytes
1163
+ ];
1164
+ keyID: KeyIDStringUnder800Bytes;
1165
+ privilegedReason?: DescriptionString5to50Bytes;
1166
+ privileged?: BooleanDefaultFalse;
1167
+ }): Promise<{
1168
+ prover: PubKeyHex;
1169
+ verifier: PubKeyHex;
1170
+ counterparty: PubKeyHex;
1171
+ protocolID: [
1172
+ SecurityLevel,
1173
+ ProtocolString5To400Bytes
1174
+ ];
1175
+ keyID: KeyIDStringUnder800Bytes;
1176
+ encryptedLinkage: Byte[];
1177
+ encryptedLinkageProof: Byte[];
1178
+ proofType: Byte;
1179
+ }>
1180
+ async encrypt(args: {
1181
+ plaintext: Byte[];
1182
+ protocolID: [
1183
+ SecurityLevel,
1184
+ ProtocolString5To400Bytes
1185
+ ];
1186
+ keyID: KeyIDStringUnder800Bytes;
1187
+ privilegedReason?: DescriptionString5to50Bytes;
1188
+ counterparty?: PubKeyHex | "self" | "anyone";
1189
+ privileged?: BooleanDefaultFalse;
1190
+ }): Promise<{
1191
+ ciphertext: Byte[];
1192
+ }>
1193
+ async decrypt(args: {
1194
+ ciphertext: Byte[];
1195
+ protocolID: [
1196
+ SecurityLevel,
1197
+ ProtocolString5To400Bytes
1198
+ ];
1199
+ keyID: KeyIDStringUnder800Bytes;
1200
+ privilegedReason?: DescriptionString5to50Bytes;
1201
+ counterparty?: PubKeyHex | "self" | "anyone";
1202
+ privileged?: BooleanDefaultFalse;
1203
+ }): Promise<{
1204
+ plaintext: Byte[];
1205
+ }>
1206
+ async createHmac(args: {
1207
+ data: Byte[];
1208
+ protocolID: [
1209
+ SecurityLevel,
1210
+ ProtocolString5To400Bytes
1211
+ ];
1212
+ keyID: KeyIDStringUnder800Bytes;
1213
+ privilegedReason?: DescriptionString5to50Bytes;
1214
+ counterparty?: PubKeyHex | "self" | "anyone";
1215
+ privileged?: BooleanDefaultFalse;
1216
+ }): Promise<{
1217
+ hmac: Byte[];
1218
+ }>
1219
+ async verifyHmac(args: {
1220
+ data: Byte[];
1221
+ hmac: Byte[];
1222
+ protocolID: [
1223
+ SecurityLevel,
1224
+ ProtocolString5To400Bytes
1225
+ ];
1226
+ keyID: KeyIDStringUnder800Bytes;
1227
+ privilegedReason?: DescriptionString5to50Bytes;
1228
+ counterparty?: PubKeyHex | "self" | "anyone";
1229
+ privileged?: BooleanDefaultFalse;
1230
+ }): Promise<{
1231
+ valid: true;
1232
+ }>
1233
+ async createSignature(args: {
1234
+ data?: Byte[];
1235
+ hashToDirectlySign?: Byte[];
1236
+ protocolID: [
1237
+ SecurityLevel,
1238
+ ProtocolString5To400Bytes
1239
+ ];
1240
+ keyID: KeyIDStringUnder800Bytes;
1241
+ privilegedReason?: DescriptionString5to50Bytes;
1242
+ counterparty?: PubKeyHex | "self" | "anyone";
1243
+ privileged?: BooleanDefaultFalse;
1244
+ }): Promise<{
1245
+ signature: Byte[];
1246
+ }>
1247
+ async verifySignature(args: {
1248
+ data?: Byte[];
1249
+ hashToDirectlyVerify?: Byte[];
1250
+ signature: Byte[];
1251
+ protocolID: [
1252
+ SecurityLevel,
1253
+ ProtocolString5To400Bytes
1254
+ ];
1255
+ keyID: KeyIDStringUnder800Bytes;
1256
+ privilegedReason?: DescriptionString5to50Bytes;
1257
+ counterparty?: PubKeyHex | "self" | "anyone";
1258
+ forSelf?: BooleanDefaultFalse;
1259
+ privileged?: BooleanDefaultFalse;
1260
+ }): Promise<{
1261
+ valid: true;
1262
+ }>
1263
+ async acquireCertificate(args: {
1264
+ type: Base64String;
1265
+ subject: PubKeyHex;
1266
+ serialNumber: Base64String;
1267
+ revocationOutpoint: OutpointString;
1268
+ signature: HexString;
1269
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
1270
+ certifier: PubKeyHex;
1271
+ keyringRevealer: PubKeyHex | "certifier";
1272
+ keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
1273
+ acquisitionProtocol: "direct" | "issuance";
1274
+ certifierUrl?: string;
1275
+ }): Promise<{
1276
+ type: Base64String;
1277
+ subject: PubKeyHex;
1278
+ serialNumber: Base64String;
1279
+ certifier: PubKeyHex;
1280
+ revocationOutpoint: OutpointString;
1281
+ signature: HexString;
1282
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
1283
+ }>
1284
+ async listCertificates(args: {
1285
+ certifiers: PubKeyHex[];
1286
+ types: Base64String[];
1287
+ limit?: PositiveIntegerDefault10Max10000;
1288
+ offset?: PositiveIntegerOrZero;
1289
+ privileged?: BooleanDefaultFalse;
1290
+ privilegedReason?: DescriptionString5to50Bytes;
1291
+ }): Promise<{
1292
+ totalCertificates: PositiveIntegerOrZero;
1293
+ certificates: Array<{
1294
+ type: Base64String;
1295
+ subject: PubKeyHex;
1296
+ serialNumber: Base64String;
1297
+ certifier: PubKeyHex;
1298
+ revocationOutpoint: OutpointString;
1299
+ signature: HexString;
1300
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
1301
+ }>;
1302
+ }>
1303
+ async proveCertificate(args: {
1304
+ certificate: {
1305
+ type: Base64String;
1306
+ subject: PubKeyHex;
1307
+ serialNumber: Base64String;
1308
+ certifier: PubKeyHex;
1309
+ revocationOutpoint: OutpointString;
1310
+ signature: HexString;
1311
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
1312
+ };
1313
+ fieldsToReveal: CertificateFieldNameUnder50Bytes[];
1314
+ verifier: PubKeyHex;
1315
+ privileged?: BooleanDefaultFalse;
1316
+ privilegedReason?: DescriptionString5to50Bytes;
1317
+ }): Promise<{
1318
+ keyringForVerifier: Record<CertificateFieldNameUnder50Bytes, Base64String>;
1319
+ }>
1320
+ async relinquishCertificate(args: {
1321
+ type: Base64String;
1322
+ serialNumber: Base64String;
1323
+ certifier: PubKeyHex;
1324
+ }): Promise<{
1325
+ relinquished: true;
1326
+ }>
1327
+ async discoverByIdentityKey(args: {
1328
+ identityKey: PubKeyHex;
1329
+ limit?: PositiveIntegerDefault10Max10000;
1330
+ offset?: PositiveIntegerOrZero;
1331
+ }): Promise<{
1332
+ totalCertificates: PositiveIntegerOrZero;
1333
+ certificates: Array<{
1334
+ type: Base64String;
1335
+ subject: PubKeyHex;
1336
+ serialNumber: Base64String;
1337
+ certifier: PubKeyHex;
1338
+ revocationOutpoint: OutpointString;
1339
+ signature: HexString;
1340
+ fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
1341
+ certifierInfo: {
1342
+ name: EntityNameStringMax100Bytes;
1343
+ iconUrl: EntityIconURLStringMax500Bytes;
1344
+ description: DescriptionString5to50Bytes;
1345
+ trust: PositiveIntegerMax10;
1346
+ };
1347
+ publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
1348
+ decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
1349
+ }>;
1350
+ }>
1351
+ async discoverByAttributes(args: {
1352
+ attributes: Record<CertificateFieldNameUnder50Bytes, string>;
1353
+ limit?: PositiveIntegerDefault10Max10000;
1354
+ offset?: PositiveIntegerOrZero;
1355
+ }): Promise<{
1356
+ totalCertificates: PositiveIntegerOrZero;
1357
+ certificates: Array<{
1358
+ type: Base64String;
1359
+ subject: PubKeyHex;
1360
+ serialNumber: Base64String;
1361
+ certifier: PubKeyHex;
1362
+ revocationOutpoint: OutpointString;
1363
+ signature: HexString;
1364
+ fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
1365
+ certifierInfo: {
1366
+ name: EntityNameStringMax100Bytes;
1367
+ iconUrl: EntityIconURLStringMax500Bytes;
1368
+ description: DescriptionString5to50Bytes;
1369
+ trust: PositiveIntegerMax10;
1370
+ };
1371
+ publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
1372
+ decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
1373
+ }>;
1374
+ }>
1375
+ async isAuthenticated(args: {}): Promise<{
1376
+ authenticated: boolean;
1377
+ }>
1378
+ async waitForAuthentication(args: {}): Promise<{
1379
+ authenticated: true;
1380
+ }>
1381
+ async getHeight(args: {}): Promise<{
1382
+ height: PositiveInteger;
1383
+ }>
1384
+ async getHeaderForHeight(args: {
1385
+ height: PositiveInteger;
1386
+ }): Promise<{
1387
+ header: HexString;
1388
+ }>
1389
+ async getNetwork(args: {}): Promise<{
1390
+ network: "mainnet" | "testnet";
1391
+ }>
1392
+ async getVersion(args: {}): Promise<{
1393
+ version: VersionString7To30Bytes;
1394
+ }>
1395
+ }
1396
+ ```
1397
+
1398
+ See also: [BEEF](#type-beef), [Base64String](#type-base64string), [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [Byte](#type-byte), [CallType](#type-calltype), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [EntityIconURLStringMax500Bytes](#type-entityiconurlstringmax500bytes), [EntityNameStringMax100Bytes](#type-entitynamestringmax100bytes), [HexString](#type-hexstring), [ISOTimestampString](#type-isotimestampstring), [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes), [LabelStringUnder300Bytes](#type-labelstringunder300bytes), [OutpointString](#type-outpointstring), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes), [PositiveInteger](#type-positiveinteger), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerMax10](#type-positiveintegermax10), [PositiveIntegerOrZero](#type-positiveintegerorzero), [ProtocolString5To400Bytes](#type-protocolstring5to400bytes), [PubKeyHex](#type-pubkeyhex), [SatoshiValue](#type-satoshivalue), [SecurityLevel](#type-securitylevel), [TXIDHexString](#type-txidhexstring), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
1399
+
1400
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
1401
+
1402
+ ---
1403
+ ## Functions
1404
+
9
1405
  ## Types
10
1406
 
1407
+ ### Type: CallType
1408
+
1409
+ ```ts
1410
+ export type CallType = keyof typeof calls
1411
+ ```
1412
+
1413
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Enums](#enums), [Variables](#variables)
1414
+
1415
+ ---
1416
+ ## Enums
1417
+
1418
+ ## Variables
1419
+