@bsv/sdk 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/wallet.md CHANGED
@@ -30,92 +30,78 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
30
30
 
31
31
  ---
32
32
 
33
- ### Interface: CreateActionInput
33
+ ### Interface: AbortActionArgs
34
34
 
35
35
  ```ts
36
- export interface CreateActionInput {
37
- outpoint: OutpointString;
38
- inputDescription: DescriptionString5to50Bytes;
39
- unlockingScript?: HexString;
40
- unlockingScriptLength?: PositiveInteger;
41
- sequenceNumber?: PositiveIntegerOrZero;
36
+ export interface AbortActionArgs {
37
+ reference: Base64String;
42
38
  }
43
39
  ```
44
40
 
45
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
46
-
47
- ---
48
- ### Interface: CreateActionOutput
49
-
50
- ```ts
51
- export interface CreateActionOutput {
52
- lockingScript: HexString;
53
- satoshis: SatoshiValue;
54
- outputDescription: DescriptionString5to50Bytes;
55
- basket?: BasketStringUnder300Bytes;
56
- customInstructions?: string;
57
- tags?: OutputTagStringUnder300Bytes[];
58
- }
59
- ```
41
+ See also: [Base64String](#type-base64string)
60
42
 
61
43
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
62
44
 
63
45
  ---
64
- ### Interface: CreateActionOptions
46
+ ### Interface: AbortActionResult
65
47
 
66
48
  ```ts
67
- export interface CreateActionOptions {
68
- signAndProcess?: BooleanDefaultTrue;
69
- acceptDelayedBroadcast?: BooleanDefaultTrue;
70
- trustSelf?: TrustSelf;
71
- knownTxids?: TXIDHexString[];
72
- returnTXIDOnly?: BooleanDefaultFalse;
73
- noSend?: BooleanDefaultFalse;
74
- noSendChange?: OutpointString[];
75
- sendWith?: TXIDHexString[];
76
- randomizeOutputs?: BooleanDefaultTrue;
49
+ export interface AbortActionResult {
50
+ aborted: true;
77
51
  }
78
52
  ```
79
53
 
80
54
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
81
55
 
82
56
  ---
83
- ### Interface: SendWithResult
57
+ ### Interface: AcquireCertificateArgs
84
58
 
85
59
  ```ts
86
- export interface SendWithResult {
87
- txid: TXIDHexString;
88
- status: "unproven" | "sending" | "failed";
60
+ export interface AcquireCertificateArgs {
61
+ type: Base64String;
62
+ certifier: PubKeyHex;
63
+ acquisitionProtocol: AcquisitionProtocol;
64
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
65
+ serialNumber?: Base64String;
66
+ revocationOutpoint?: OutpointString;
67
+ signature?: HexString;
68
+ certifierUrl?: string;
69
+ keyringRevealer?: KeyringRevealer;
70
+ keyringForSubject?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
71
+ privileged?: BooleanDefaultFalse;
72
+ privilegedReason?: DescriptionString5to50Bytes;
89
73
  }
90
74
  ```
91
75
 
76
+ See also: [AcquisitionProtocol](#type-acquisitionprotocol), [Base64String](#type-base64string), [BooleanDefaultFalse](#type-booleandefaultfalse), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [HexString](#type-hexstring), [KeyringRevealer](#type-keyringrevealer), [OutpointString](#type-outpointstring), [PubKeyHex](#type-pubkeyhex)
77
+
92
78
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
93
79
 
94
80
  ---
95
- ### Interface: SignableTransaction
81
+ ### Interface: AcquireCertificateResult
96
82
 
97
83
  ```ts
98
- export interface SignableTransaction {
99
- tx: AtomicBEEF;
100
- reference: Base64String;
84
+ export interface AcquireCertificateResult extends WalletCertificate {
101
85
  }
102
86
  ```
103
87
 
88
+ See also: [WalletCertificate](#interface-walletcertificate)
89
+
104
90
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
105
91
 
106
92
  ---
107
- ### Interface: CreateActionResult
93
+ ### Interface: BasketInsertion
108
94
 
109
95
  ```ts
110
- export interface CreateActionResult {
111
- txid?: TXIDHexString;
112
- tx?: AtomicBEEF;
113
- noSendChange?: OutpointString[];
114
- sendWithResults?: Array<SendWithResult>;
115
- signableTransaction?: SignableTransaction;
96
+ export interface BasketInsertion {
97
+ basket: BasketStringUnder300Bytes;
98
+ customInstructions?: string;
99
+ tags?: OutputTagStringUnder300Bytes[];
116
100
  }
117
101
  ```
118
102
 
103
+ See also: [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes)
104
+
119
105
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
120
106
 
121
107
  ---
@@ -134,207 +120,228 @@ export interface CreateActionArgs {
134
120
  }
135
121
  ```
136
122
 
123
+ See also: [BEEF](#type-beef), [CreateActionInput](#interface-createactioninput), [CreateActionOptions](#interface-createactionoptions), [CreateActionOutput](#interface-createactionoutput), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [LabelStringUnder300Bytes](#type-labelstringunder300bytes), [PositiveIntegerOrZero](#type-positiveintegerorzero)
124
+
137
125
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
138
126
 
139
127
  ---
140
- ### Interface: SignActionSpend
128
+ ### Interface: CreateActionInput
141
129
 
142
130
  ```ts
143
- export interface SignActionSpend {
144
- unlockingScript: HexString;
131
+ export interface CreateActionInput {
132
+ outpoint: OutpointString;
133
+ inputDescription: DescriptionString5to50Bytes;
134
+ unlockingScript?: HexString;
135
+ unlockingScriptLength?: PositiveInteger;
145
136
  sequenceNumber?: PositiveIntegerOrZero;
146
137
  }
147
138
  ```
148
139
 
140
+ See also: [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [HexString](#type-hexstring), [OutpointString](#type-outpointstring), [PositiveInteger](#type-positiveinteger), [PositiveIntegerOrZero](#type-positiveintegerorzero)
141
+
149
142
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
150
143
 
151
144
  ---
152
- ### Interface: SignActionOptions
145
+ ### Interface: CreateActionOptions
153
146
 
154
147
  ```ts
155
- export interface SignActionOptions {
148
+ export interface CreateActionOptions {
149
+ signAndProcess?: BooleanDefaultTrue;
156
150
  acceptDelayedBroadcast?: BooleanDefaultTrue;
151
+ trustSelf?: TrustSelf;
152
+ knownTxids?: TXIDHexString[];
157
153
  returnTXIDOnly?: BooleanDefaultFalse;
158
154
  noSend?: BooleanDefaultFalse;
155
+ noSendChange?: OutpointString[];
159
156
  sendWith?: TXIDHexString[];
157
+ randomizeOutputs?: BooleanDefaultTrue;
160
158
  }
161
159
  ```
162
160
 
161
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [OutpointString](#type-outpointstring), [TXIDHexString](#type-txidhexstring), [TrustSelf](#type-trustself)
162
+
163
163
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
164
164
 
165
165
  ---
166
- ### Interface: SignActionArgs
166
+ ### Interface: CreateActionOutput
167
167
 
168
168
  ```ts
169
- export interface SignActionArgs {
170
- spends: Record<PositiveIntegerOrZero, SignActionSpend>;
171
- reference: Base64String;
172
- options?: SignActionOptions;
169
+ export interface CreateActionOutput {
170
+ lockingScript: HexString;
171
+ satoshis: SatoshiValue;
172
+ outputDescription: DescriptionString5to50Bytes;
173
+ basket?: BasketStringUnder300Bytes;
174
+ customInstructions?: string;
175
+ tags?: OutputTagStringUnder300Bytes[];
173
176
  }
174
177
  ```
175
178
 
179
+ See also: [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [HexString](#type-hexstring), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes), [SatoshiValue](#type-satoshivalue)
180
+
176
181
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
177
182
 
178
183
  ---
179
- ### Interface: SignActionResult
184
+ ### Interface: CreateActionResult
180
185
 
181
186
  ```ts
182
- export interface SignActionResult {
187
+ export interface CreateActionResult {
183
188
  txid?: TXIDHexString;
184
189
  tx?: AtomicBEEF;
190
+ noSendChange?: OutpointString[];
185
191
  sendWithResults?: Array<SendWithResult>;
192
+ signableTransaction?: SignableTransaction;
186
193
  }
187
194
  ```
188
195
 
196
+ See also: [AtomicBEEF](#type-atomicbeef), [OutpointString](#type-outpointstring), [SendWithResult](#interface-sendwithresult), [SignableTransaction](#interface-signabletransaction), [TXIDHexString](#type-txidhexstring)
197
+
189
198
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
190
199
 
191
200
  ---
192
- ### Interface: AbortActionArgs
201
+ ### Interface: CreateHmacArgs
193
202
 
194
203
  ```ts
195
- export interface AbortActionArgs {
196
- reference: Base64String;
204
+ export interface CreateHmacArgs extends WalletEncryptionArgs {
205
+ data: Byte[];
197
206
  }
198
207
  ```
199
208
 
209
+ See also: [Byte](#type-byte), [WalletEncryptionArgs](#interface-walletencryptionargs)
210
+
200
211
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
201
212
 
202
213
  ---
203
- ### Interface: AbortActionResult
214
+ ### Interface: CreateSignatureArgs
204
215
 
205
216
  ```ts
206
- export interface AbortActionResult {
207
- aborted: true;
217
+ export interface CreateSignatureArgs extends WalletEncryptionArgs {
218
+ data?: Byte[];
219
+ hashToDirectlySign?: Byte[];
208
220
  }
209
221
  ```
210
222
 
223
+ See also: [Byte](#type-byte), [WalletEncryptionArgs](#interface-walletencryptionargs)
224
+
211
225
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
212
226
 
213
227
  ---
214
- ### Interface: ListActionsArgs
228
+ ### Interface: DiscoverByAttributesArgs
215
229
 
216
230
  ```ts
217
- export interface ListActionsArgs {
218
- labels: LabelStringUnder300Bytes[];
219
- labelQueryMode?: "any" | "all";
220
- includeLabels?: BooleanDefaultFalse;
221
- includeInputs?: BooleanDefaultFalse;
222
- includeInputSourceLockingScripts?: BooleanDefaultFalse;
223
- includeInputUnlockingScripts?: BooleanDefaultFalse;
224
- includeOutputs?: BooleanDefaultFalse;
225
- includeOutputLockingScripts?: BooleanDefaultFalse;
231
+ export interface DiscoverByAttributesArgs {
232
+ attributes: Record<CertificateFieldNameUnder50Bytes, string>;
226
233
  limit?: PositiveIntegerDefault10Max10000;
227
234
  offset?: PositiveIntegerOrZero;
228
235
  seekPermission?: BooleanDefaultTrue;
229
236
  }
230
237
  ```
231
238
 
239
+ See also: [BooleanDefaultTrue](#type-booleandefaulttrue), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero)
240
+
232
241
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
233
242
 
234
243
  ---
235
- ### Interface: WalletActionInput
244
+ ### Interface: DiscoverByIdentityKeyArgs
236
245
 
237
246
  ```ts
238
- export interface WalletActionInput {
239
- sourceOutpoint: OutpointString;
240
- sourceSatoshis: SatoshiValue;
241
- sourceLockingScript?: HexString;
242
- unlockingScript?: HexString;
243
- inputDescription: DescriptionString5to50Bytes;
244
- sequenceNumber: PositiveIntegerOrZero;
247
+ export interface DiscoverByIdentityKeyArgs {
248
+ identityKey: PubKeyHex;
249
+ limit?: PositiveIntegerDefault10Max10000;
250
+ offset?: PositiveIntegerOrZero;
251
+ seekPermission?: BooleanDefaultTrue;
245
252
  }
246
253
  ```
247
254
 
255
+ See also: [BooleanDefaultTrue](#type-booleandefaulttrue), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero), [PubKeyHex](#type-pubkeyhex)
256
+
248
257
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
249
258
 
250
259
  ---
251
- ### Interface: WalletActionOutput
260
+ ### Interface: DiscoverCertificatesResult
252
261
 
253
262
  ```ts
254
- export interface WalletActionOutput {
255
- satoshis: SatoshiValue;
256
- lockingScript?: HexString;
257
- spendable: boolean;
258
- customInstructions?: string;
259
- tags: OutputTagStringUnder300Bytes[];
260
- outputIndex: PositiveIntegerOrZero;
261
- outputDescription: DescriptionString5to50Bytes;
262
- basket: BasketStringUnder300Bytes;
263
+ export interface DiscoverCertificatesResult {
264
+ totalCertificates: PositiveIntegerOrZero;
265
+ certificates: Array<IdentityCertificate>;
263
266
  }
264
267
  ```
265
268
 
269
+ See also: [IdentityCertificate](#interface-identitycertificate), [PositiveIntegerOrZero](#type-positiveintegerorzero)
270
+
266
271
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
267
272
 
268
273
  ---
269
- ### Interface: WalletOutput
274
+ ### Interface: GetPublicKeyArgs
275
+
276
+ When `identityKey` is true, `WalletEncryptionArgs` are not used.
277
+
278
+ When `identityKey` is undefined, `WalletEncryptionArgs` are required.
270
279
 
271
280
  ```ts
272
- export interface WalletOutput {
273
- satoshis: SatoshiValue;
274
- lockingScript?: HexString;
275
- spendable: true;
276
- customInstructions?: string;
277
- tags?: OutputTagStringUnder300Bytes[];
278
- outpoint: OutpointString;
279
- labels?: LabelStringUnder300Bytes[];
281
+ export interface GetPublicKeyArgs extends Partial<WalletEncryptionArgs> {
282
+ identityKey?: true;
283
+ forSelf?: BooleanDefaultFalse;
280
284
  }
281
285
  ```
282
286
 
287
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [WalletEncryptionArgs](#interface-walletencryptionargs)
288
+
283
289
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
284
290
 
285
291
  ---
286
- ### Interface: WalletAction
292
+ ### Interface: IdentityCertificate
287
293
 
288
294
  ```ts
289
- export interface WalletAction {
290
- txid: TXIDHexString;
291
- satoshis: SatoshiValue;
292
- status: ActionStatus;
293
- isOutgoing: boolean;
294
- description: DescriptionString5to50Bytes;
295
- labels?: LabelStringUnder300Bytes[];
296
- version: PositiveIntegerOrZero;
297
- lockTime: PositiveIntegerOrZero;
298
- inputs?: Array<WalletActionInput>;
299
- outputs?: Array<WalletActionOutput>;
295
+ export interface IdentityCertificate extends WalletCertificate {
296
+ certifierInfo: IdentityCertifier;
297
+ publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
298
+ decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
300
299
  }
301
300
  ```
302
301
 
302
+ See also: [Base64String](#type-base64string), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [IdentityCertifier](#interface-identitycertifier), [WalletCertificate](#interface-walletcertificate)
303
+
303
304
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
304
305
 
305
306
  ---
306
- ### Interface: ListActionsResult
307
+ ### Interface: IdentityCertifier
307
308
 
308
309
  ```ts
309
- export interface ListActionsResult {
310
- totalActions: PositiveIntegerOrZero;
311
- actions: Array<WalletAction>;
310
+ export interface IdentityCertifier {
311
+ name: EntityNameStringMax100Bytes;
312
+ iconUrl: EntityIconURLStringMax500Bytes;
313
+ description: DescriptionString5to50Bytes;
314
+ trust: PositiveIntegerMax10;
312
315
  }
313
316
  ```
314
317
 
318
+ See also: [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [EntityIconURLStringMax500Bytes](#type-entityiconurlstringmax500bytes), [EntityNameStringMax100Bytes](#type-entitynamestringmax100bytes), [PositiveIntegerMax10](#type-positiveintegermax10)
319
+
315
320
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
316
321
 
317
322
  ---
318
- ### Interface: WalletPayment
323
+ ### Interface: InternalizeActionArgs
319
324
 
320
325
  ```ts
321
- export interface WalletPayment {
322
- derivationPrefix: Base64String;
323
- derivationSuffix: Base64String;
324
- senderIdentityKey: PubKeyHex;
326
+ export interface InternalizeActionArgs {
327
+ tx: AtomicBEEF;
328
+ outputs: Array<InternalizeOutput>;
329
+ description: DescriptionString5to50Bytes;
330
+ labels?: LabelStringUnder300Bytes[];
331
+ seekPermission?: BooleanDefaultTrue;
325
332
  }
326
333
  ```
327
334
 
335
+ See also: [AtomicBEEF](#type-atomicbeef), [BooleanDefaultTrue](#type-booleandefaulttrue), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [InternalizeOutput](#interface-internalizeoutput), [LabelStringUnder300Bytes](#type-labelstringunder300bytes)
336
+
328
337
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
329
338
 
330
339
  ---
331
- ### Interface: BasketInsertion
340
+ ### Interface: InternalizeActionResult
332
341
 
333
342
  ```ts
334
- export interface BasketInsertion {
335
- basket: BasketStringUnder300Bytes;
336
- customInstructions?: string;
337
- tags?: OutputTagStringUnder300Bytes[];
343
+ export interface InternalizeActionResult {
344
+ accepted: true;
338
345
  }
339
346
  ```
340
347
 
@@ -352,32 +359,111 @@ export interface InternalizeOutput {
352
359
  }
353
360
  ```
354
361
 
362
+ See also: [BasketInsertion](#interface-basketinsertion), [PositiveIntegerOrZero](#type-positiveintegerorzero), [WalletPayment](#interface-walletpayment)
363
+
355
364
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
356
365
 
357
366
  ---
358
- ### Interface: InternalizeActionArgs
367
+ ### Interface: KeyLinkageArgs
359
368
 
360
369
  ```ts
361
- export interface InternalizeActionArgs {
362
- tx: AtomicBEEF;
363
- outputs: Array<InternalizeOutput>;
364
- description: DescriptionString5to50Bytes;
365
- labels?: LabelStringUnder300Bytes[];
366
- seekPermission?: BooleanDefaultTrue;
370
+ export interface KeyLinkageArgs {
371
+ protocolID: WalletProtocol;
372
+ keyID: KeyIDStringUnder800Bytes;
373
+ counterparty?: WalletCounterparty;
374
+ privileged?: BooleanDefaultFalse;
375
+ privilegedReason?: DescriptionString5to50Bytes;
367
376
  }
368
377
  ```
369
378
 
379
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes), [WalletCounterparty](#type-walletcounterparty), [WalletProtocol](#type-walletprotocol)
380
+
370
381
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
371
382
 
372
383
  ---
373
- ### Interface: InternalizeActionResult
384
+ ### Interface: KeyLinkageResult
374
385
 
375
386
  ```ts
376
- export interface InternalizeActionResult {
377
- accepted: true;
387
+ export interface KeyLinkageResult {
388
+ encryptedLinkage: Byte[];
389
+ encryptedLinkageProof: Byte[];
390
+ prover: PubKeyHex;
391
+ verifier: PubKeyHex;
392
+ counterparty: PubKeyHex;
393
+ }
394
+ ```
395
+
396
+ See also: [Byte](#type-byte), [PubKeyHex](#type-pubkeyhex)
397
+
398
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
399
+
400
+ ---
401
+ ### Interface: ListActionsArgs
402
+
403
+ ```ts
404
+ export interface ListActionsArgs {
405
+ labels: LabelStringUnder300Bytes[];
406
+ labelQueryMode?: "any" | "all";
407
+ includeLabels?: BooleanDefaultFalse;
408
+ includeInputs?: BooleanDefaultFalse;
409
+ includeInputSourceLockingScripts?: BooleanDefaultFalse;
410
+ includeInputUnlockingScripts?: BooleanDefaultFalse;
411
+ includeOutputs?: BooleanDefaultFalse;
412
+ includeOutputLockingScripts?: BooleanDefaultFalse;
413
+ limit?: PositiveIntegerDefault10Max10000;
414
+ offset?: PositiveIntegerOrZero;
415
+ seekPermission?: BooleanDefaultTrue;
416
+ }
417
+ ```
418
+
419
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [LabelStringUnder300Bytes](#type-labelstringunder300bytes), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero)
420
+
421
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
422
+
423
+ ---
424
+ ### Interface: ListActionsResult
425
+
426
+ ```ts
427
+ export interface ListActionsResult {
428
+ totalActions: PositiveIntegerOrZero;
429
+ actions: Array<WalletAction>;
430
+ }
431
+ ```
432
+
433
+ See also: [PositiveIntegerOrZero](#type-positiveintegerorzero), [WalletAction](#interface-walletaction)
434
+
435
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
436
+
437
+ ---
438
+ ### Interface: ListCertificatesArgs
439
+
440
+ ```ts
441
+ export interface ListCertificatesArgs {
442
+ certifiers: PubKeyHex[];
443
+ types: Base64String[];
444
+ limit?: PositiveIntegerDefault10Max10000;
445
+ offset?: PositiveIntegerOrZero;
446
+ privileged?: BooleanDefaultFalse;
447
+ privilegedReason?: DescriptionString5to50Bytes;
448
+ }
449
+ ```
450
+
451
+ See also: [Base64String](#type-base64string), [BooleanDefaultFalse](#type-booleandefaultfalse), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero), [PubKeyHex](#type-pubkeyhex)
452
+
453
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
454
+
455
+ ---
456
+ ### Interface: ListCertificatesResult
457
+
458
+ ```ts
459
+ export interface ListCertificatesResult {
460
+ totalCertificates: PositiveIntegerOrZero;
461
+ certificates: Array<WalletCertificate>;
378
462
  }
379
463
  ```
380
464
 
465
+ See also: [PositiveIntegerOrZero](#type-positiveintegerorzero), [WalletCertificate](#interface-walletcertificate)
466
+
381
467
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
382
468
 
383
469
  ---
@@ -398,6 +484,8 @@ export interface ListOutputsArgs {
398
484
  }
399
485
  ```
400
486
 
487
+ See also: [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes), [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000), [PositiveIntegerOrZero](#type-positiveintegerorzero)
488
+
401
489
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
402
490
 
403
491
  ---
@@ -411,48 +499,53 @@ export interface ListOutputsResult {
411
499
  }
412
500
  ```
413
501
 
502
+ See also: [BEEF](#type-beef), [PositiveIntegerOrZero](#type-positiveintegerorzero), [WalletOutput](#interface-walletoutput)
503
+
414
504
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
415
505
 
416
506
  ---
417
- ### Interface: KeyLinkageArgs
507
+ ### Interface: ProveCertificateArgs
418
508
 
419
509
  ```ts
420
- export interface KeyLinkageArgs {
421
- protocolID: WalletProtocol;
422
- keyID: KeyIDStringUnder800Bytes;
423
- counterparty?: WalletCounterparty;
510
+ export interface ProveCertificateArgs {
511
+ certificate: WalletCertificate;
512
+ fieldsToReveal: CertificateFieldNameUnder50Bytes[];
513
+ verifier: PubKeyHex;
424
514
  privileged?: BooleanDefaultFalse;
425
515
  privilegedReason?: DescriptionString5to50Bytes;
426
516
  }
427
517
  ```
428
518
 
519
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [PubKeyHex](#type-pubkeyhex), [WalletCertificate](#interface-walletcertificate)
520
+
429
521
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
430
522
 
431
523
  ---
432
- ### Interface: WalletEncryptionArgs
524
+ ### Interface: ProveCertificateResult
433
525
 
434
526
  ```ts
435
- export interface WalletEncryptionArgs extends KeyLinkageArgs {
436
- seekPermission?: BooleanDefaultTrue;
527
+ export interface ProveCertificateResult {
528
+ keyringForVerifier: Record<CertificateFieldNameUnder50Bytes, Base64String>;
437
529
  }
438
530
  ```
439
531
 
532
+ See also: [Base64String](#type-base64string), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes)
533
+
440
534
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
441
535
 
442
536
  ---
443
- ### Interface: GetPublicKeyArgs
444
-
445
- When `identityKey` is true, `WalletEncryptionArgs` are not used.
446
-
447
- When `identityKey` is undefined, `WalletEncryptionArgs` are required.
537
+ ### Interface: RelinquishCertificateArgs
448
538
 
449
539
  ```ts
450
- export interface GetPublicKeyArgs extends Partial<WalletEncryptionArgs> {
451
- identityKey?: true;
452
- forSelf?: BooleanDefaultFalse;
540
+ export interface RelinquishCertificateArgs {
541
+ type: Base64String;
542
+ serialNumber: Base64String;
543
+ certifier: PubKeyHex;
453
544
  }
454
545
  ```
455
546
 
547
+ See also: [Base64String](#type-base64string), [PubKeyHex](#type-pubkeyhex)
548
+
456
549
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
457
550
 
458
551
  ---
@@ -467,42 +560,33 @@ export interface RevealCounterpartyKeyLinkageArgs {
467
560
  }
468
561
  ```
469
562
 
563
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [PubKeyHex](#type-pubkeyhex)
564
+
470
565
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
471
566
 
472
567
  ---
473
- ### Interface: RevealSpecificKeyLinkageArgs
568
+ ### Interface: RevealCounterpartyKeyLinkageResult
474
569
 
475
570
  ```ts
476
- export interface RevealSpecificKeyLinkageArgs extends KeyLinkageArgs {
477
- verifier: PubKeyHex;
571
+ export interface RevealCounterpartyKeyLinkageResult extends KeyLinkageResult {
572
+ revelationTime: ISOTimestampString;
478
573
  }
479
574
  ```
480
575
 
576
+ See also: [ISOTimestampString](#type-isotimestampstring), [KeyLinkageResult](#interface-keylinkageresult)
577
+
481
578
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
482
579
 
483
580
  ---
484
- ### Interface: KeyLinkageResult
581
+ ### Interface: RevealSpecificKeyLinkageArgs
485
582
 
486
583
  ```ts
487
- export interface KeyLinkageResult {
488
- encryptedLinkage: Byte[];
489
- encryptedLinkageProof: Byte[];
490
- prover: PubKeyHex;
584
+ export interface RevealSpecificKeyLinkageArgs extends KeyLinkageArgs {
491
585
  verifier: PubKeyHex;
492
- counterparty: PubKeyHex;
493
586
  }
494
587
  ```
495
588
 
496
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
497
-
498
- ---
499
- ### Interface: RevealCounterpartyKeyLinkageResult
500
-
501
- ```ts
502
- export interface RevealCounterpartyKeyLinkageResult extends KeyLinkageResult {
503
- revelationTime: ISOTimestampString;
504
- }
505
- ```
589
+ See also: [KeyLinkageArgs](#interface-keylinkageargs), [PubKeyHex](#type-pubkeyhex)
506
590
 
507
591
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
508
592
 
@@ -517,287 +601,137 @@ export interface RevealSpecificKeyLinkageResult extends KeyLinkageResult {
517
601
  }
518
602
  ```
519
603
 
604
+ See also: [Byte](#type-byte), [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes), [KeyLinkageResult](#interface-keylinkageresult), [WalletProtocol](#type-walletprotocol)
605
+
520
606
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
521
607
 
522
608
  ---
523
- ### Interface: WalletEncryptArgs
609
+ ### Interface: SendWithResult
524
610
 
525
611
  ```ts
526
- export interface WalletEncryptArgs extends WalletEncryptionArgs {
527
- plaintext: Byte[];
612
+ export interface SendWithResult {
613
+ txid: TXIDHexString;
614
+ status: "unproven" | "sending" | "failed";
528
615
  }
529
616
  ```
530
617
 
618
+ See also: [TXIDHexString](#type-txidhexstring)
619
+
531
620
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
532
621
 
533
622
  ---
534
- ### Interface: WalletDecryptArgs
623
+ ### Interface: SignActionArgs
535
624
 
536
625
  ```ts
537
- export interface WalletDecryptArgs extends WalletEncryptionArgs {
538
- ciphertext: Byte[];
626
+ export interface SignActionArgs {
627
+ spends: Record<PositiveIntegerOrZero, SignActionSpend>;
628
+ reference: Base64String;
629
+ options?: SignActionOptions;
539
630
  }
540
631
  ```
541
632
 
633
+ See also: [Base64String](#type-base64string), [PositiveIntegerOrZero](#type-positiveintegerorzero), [SignActionOptions](#interface-signactionoptions), [SignActionSpend](#interface-signactionspend)
634
+
542
635
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
543
636
 
544
637
  ---
545
- ### Interface: CreateHmacArgs
638
+ ### Interface: SignActionOptions
546
639
 
547
640
  ```ts
548
- export interface CreateHmacArgs extends WalletEncryptionArgs {
549
- data: Byte[];
641
+ export interface SignActionOptions {
642
+ acceptDelayedBroadcast?: BooleanDefaultTrue;
643
+ returnTXIDOnly?: BooleanDefaultFalse;
644
+ noSend?: BooleanDefaultFalse;
645
+ sendWith?: TXIDHexString[];
550
646
  }
551
647
  ```
552
648
 
649
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [BooleanDefaultTrue](#type-booleandefaulttrue), [TXIDHexString](#type-txidhexstring)
650
+
553
651
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
554
652
 
555
653
  ---
556
- ### Interface: VerifyHmacArgs
654
+ ### Interface: SignActionResult
557
655
 
558
656
  ```ts
559
- export interface VerifyHmacArgs extends WalletEncryptionArgs {
560
- data: Byte[];
561
- hmac: Byte[];
657
+ export interface SignActionResult {
658
+ txid?: TXIDHexString;
659
+ tx?: AtomicBEEF;
660
+ sendWithResults?: Array<SendWithResult>;
562
661
  }
563
662
  ```
564
663
 
664
+ See also: [AtomicBEEF](#type-atomicbeef), [SendWithResult](#interface-sendwithresult), [TXIDHexString](#type-txidhexstring)
665
+
565
666
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
566
667
 
567
668
  ---
568
- ### Interface: CreateSignatureArgs
669
+ ### Interface: SignActionSpend
569
670
 
570
671
  ```ts
571
- export interface CreateSignatureArgs extends WalletEncryptionArgs {
572
- data?: Byte[];
573
- hashToDirectlySign?: Byte[];
672
+ export interface SignActionSpend {
673
+ unlockingScript: HexString;
674
+ sequenceNumber?: PositiveIntegerOrZero;
574
675
  }
575
676
  ```
576
677
 
678
+ See also: [HexString](#type-hexstring), [PositiveIntegerOrZero](#type-positiveintegerorzero)
679
+
577
680
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
578
681
 
579
682
  ---
580
- ### Interface: VerifySignatureArgs
683
+ ### Interface: SignableTransaction
581
684
 
582
685
  ```ts
583
- export interface VerifySignatureArgs extends WalletEncryptionArgs {
584
- data?: Byte[];
585
- hashToDirectlyVerify?: Byte[];
586
- signature: Byte[];
587
- forSelf?: BooleanDefaultFalse;
686
+ export interface SignableTransaction {
687
+ tx: AtomicBEEF;
688
+ reference: Base64String;
588
689
  }
589
690
  ```
590
691
 
692
+ See also: [AtomicBEEF](#type-atomicbeef), [Base64String](#type-base64string)
693
+
591
694
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
592
695
 
593
696
  ---
594
- ### Interface: AcquireCertificateArgs
697
+ ### Interface: VerifyHmacArgs
595
698
 
596
699
  ```ts
597
- export interface AcquireCertificateArgs {
598
- type: Base64String;
599
- certifier: PubKeyHex;
600
- acquisitionProtocol: AcquisitionProtocol;
601
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
602
- serialNumber?: Base64String;
603
- revocationOutpoint?: OutpointString;
604
- signature?: HexString;
605
- certifierUrl?: string;
606
- keyringRevealer?: KeyringRevealer;
607
- keyringForSubject?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
608
- privileged?: BooleanDefaultFalse;
609
- privilegedReason?: DescriptionString5to50Bytes;
700
+ export interface VerifyHmacArgs extends WalletEncryptionArgs {
701
+ data: Byte[];
702
+ hmac: Byte[];
610
703
  }
611
704
  ```
612
705
 
706
+ See also: [Byte](#type-byte), [WalletEncryptionArgs](#interface-walletencryptionargs)
707
+
613
708
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
614
709
 
615
710
  ---
616
- ### Interface: WalletCertificate
711
+ ### Interface: VerifySignatureArgs
617
712
 
618
713
  ```ts
619
- export interface WalletCertificate {
620
- type: Base64String;
621
- subject: PubKeyHex;
622
- serialNumber: Base64String;
623
- certifier: PubKeyHex;
624
- revocationOutpoint: OutpointString;
625
- signature: HexString;
626
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
714
+ export interface VerifySignatureArgs extends WalletEncryptionArgs {
715
+ data?: Byte[];
716
+ hashToDirectlyVerify?: Byte[];
717
+ signature: Byte[];
718
+ forSelf?: BooleanDefaultFalse;
627
719
  }
628
720
  ```
629
721
 
722
+ See also: [BooleanDefaultFalse](#type-booleandefaultfalse), [Byte](#type-byte), [WalletEncryptionArgs](#interface-walletencryptionargs)
723
+
630
724
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
631
725
 
632
726
  ---
633
- ### Interface: IdentityCertifier
634
-
635
- ```ts
636
- export interface IdentityCertifier {
637
- name: EntityNameStringMax100Bytes;
638
- iconUrl: EntityIconURLStringMax500Bytes;
639
- description: DescriptionString5to50Bytes;
640
- trust: PositiveIntegerMax10;
641
- }
642
- ```
727
+ ### Interface: Wallet
643
728
 
644
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
729
+ The Wallet interface defines a wallet capable of various tasks including transaction creation and signing,
730
+ encryption, decryption, identity certificate management, identity verification, and communication
731
+ with applications as per the BRC standards. This interface allows applications to interact with
732
+ the wallet for a range of functionalities aligned with the Babbage architectural principles.
645
733
 
646
- ---
647
- ### Interface: IdentityCertificate
648
-
649
- ```ts
650
- export interface IdentityCertificate extends WalletCertificate {
651
- certifierInfo: IdentityCertifier;
652
- publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
653
- decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
654
- }
655
- ```
656
-
657
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
658
-
659
- ---
660
- ### Interface: AcquireCertificateResult
661
-
662
- ```ts
663
- export interface AcquireCertificateResult extends WalletCertificate {
664
- }
665
- ```
666
-
667
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
668
-
669
- ---
670
- ### Interface: ListCertificatesArgs
671
-
672
- ```ts
673
- export interface ListCertificatesArgs {
674
- certifiers: PubKeyHex[];
675
- types: Base64String[];
676
- limit?: PositiveIntegerDefault10Max10000;
677
- offset?: PositiveIntegerOrZero;
678
- privileged?: BooleanDefaultFalse;
679
- privilegedReason?: DescriptionString5to50Bytes;
680
- }
681
- ```
682
-
683
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
684
-
685
- ---
686
- ### Interface: ListCertificatesResult
687
-
688
- ```ts
689
- export interface ListCertificatesResult {
690
- totalCertificates: PositiveIntegerOrZero;
691
- certificates: Array<WalletCertificate>;
692
- }
693
- ```
694
-
695
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
696
-
697
- ---
698
- ### Interface: ProveCertificateArgs
699
-
700
- ```ts
701
- export interface ProveCertificateArgs {
702
- certificate: WalletCertificate;
703
- fieldsToReveal: CertificateFieldNameUnder50Bytes[];
704
- verifier: PubKeyHex;
705
- privileged?: BooleanDefaultFalse;
706
- privilegedReason?: DescriptionString5to50Bytes;
707
- }
708
- ```
709
-
710
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
711
-
712
- ---
713
- ### Interface: ProveCertificateResult
714
-
715
- ```ts
716
- export interface ProveCertificateResult {
717
- keyringForVerifier: Record<CertificateFieldNameUnder50Bytes, Base64String>;
718
- }
719
- ```
720
-
721
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
722
-
723
- ---
724
- ### Interface: RelinquishCertificateArgs
725
-
726
- ```ts
727
- export interface RelinquishCertificateArgs {
728
- type: Base64String;
729
- serialNumber: Base64String;
730
- certifier: PubKeyHex;
731
- }
732
- ```
733
-
734
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
735
-
736
- ---
737
- ### Interface: DiscoverByIdentityKeyArgs
738
-
739
- ```ts
740
- export interface DiscoverByIdentityKeyArgs {
741
- identityKey: PubKeyHex;
742
- limit?: PositiveIntegerDefault10Max10000;
743
- offset?: PositiveIntegerOrZero;
744
- seekPermission?: BooleanDefaultTrue;
745
- }
746
- ```
747
-
748
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
749
-
750
- ---
751
- ### Interface: DiscoverCertificatesResult
752
-
753
- ```ts
754
- export interface DiscoverCertificatesResult {
755
- totalCertificates: PositiveIntegerOrZero;
756
- certificates: Array<IdentityCertificate>;
757
- }
758
- ```
759
-
760
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
761
-
762
- ---
763
- ### Interface: DiscoverByAttributesArgs
764
-
765
- ```ts
766
- export interface DiscoverByAttributesArgs {
767
- attributes: Record<CertificateFieldNameUnder50Bytes, string>;
768
- limit?: PositiveIntegerDefault10Max10000;
769
- offset?: PositiveIntegerOrZero;
770
- seekPermission?: BooleanDefaultTrue;
771
- }
772
- ```
773
-
774
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
775
-
776
- ---
777
- ### Interface: WalletErrorObject
778
-
779
- Every method of the `Wallet` interface has a return value of the form `Promise<object>`.
780
- When errors occur, an exception object may be thrown which must conform to the `WalletError` interface.
781
- Serialization layers can rely on the `isError` property being unique to error objects.
782
- Deserialization should rethrow `WalletError` conforming objects.
783
-
784
- ```ts
785
- export interface WalletErrorObject extends Error {
786
- isError: true;
787
- }
788
- ```
789
-
790
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
791
-
792
- ---
793
- ### Interface: Wallet
794
-
795
- The Wallet interface defines a wallet capable of various tasks including transaction creation and signing,
796
- encryption, decryption, identity certificate management, identity verification, and communication
797
- with applications as per the BRC standards. This interface allows applications to interact with
798
- the wallet for a range of functionalities aligned with the Babbage architectural principles.
799
-
800
- Error Handling
734
+ Error Handling
801
735
 
802
736
  Every method of the `Wallet` interface has a return value of the form `Promise<object>`.
803
737
  When an error occurs, an exception object may be thrown which must conform to the `WalletError` interface.
@@ -872,6 +806,8 @@ export interface Wallet {
872
806
  }
873
807
  ```
874
808
 
809
+ See also: [AbortActionArgs](#interface-abortactionargs), [AbortActionResult](#interface-abortactionresult), [AcquireCertificateArgs](#interface-acquirecertificateargs), [AcquireCertificateResult](#interface-acquirecertificateresult), [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [Byte](#type-byte), [CreateActionArgs](#interface-createactionargs), [CreateActionResult](#interface-createactionresult), [CreateHmacArgs](#interface-createhmacargs), [CreateSignatureArgs](#interface-createsignatureargs), [DiscoverByAttributesArgs](#interface-discoverbyattributesargs), [DiscoverByIdentityKeyArgs](#interface-discoverbyidentitykeyargs), [DiscoverCertificatesResult](#interface-discovercertificatesresult), [GetPublicKeyArgs](#interface-getpublickeyargs), [HexString](#type-hexstring), [InternalizeActionArgs](#interface-internalizeactionargs), [InternalizeActionResult](#interface-internalizeactionresult), [ListActionsArgs](#interface-listactionsargs), [ListActionsResult](#interface-listactionsresult), [ListCertificatesArgs](#interface-listcertificatesargs), [ListCertificatesResult](#interface-listcertificatesresult), [ListOutputsArgs](#interface-listoutputsargs), [ListOutputsResult](#interface-listoutputsresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [OutpointString](#type-outpointstring), [PositiveInteger](#type-positiveinteger), [ProveCertificateArgs](#interface-provecertificateargs), [ProveCertificateResult](#interface-provecertificateresult), [PubKeyHex](#type-pubkeyhex), [RelinquishCertificateArgs](#interface-relinquishcertificateargs), [RevealCounterpartyKeyLinkageArgs](#interface-revealcounterpartykeylinkageargs), [RevealCounterpartyKeyLinkageResult](#interface-revealcounterpartykeylinkageresult), [RevealSpecificKeyLinkageArgs](#interface-revealspecifickeylinkageargs), [RevealSpecificKeyLinkageResult](#interface-revealspecifickeylinkageresult), [SignActionArgs](#interface-signactionargs), [SignActionResult](#interface-signactionresult), [VerifyHmacArgs](#interface-verifyhmacargs), [VerifySignatureArgs](#interface-verifysignatureargs), [VersionString7To30Bytes](#type-versionstring7to30bytes), [WalletDecryptArgs](#interface-walletdecryptargs), [WalletEncryptArgs](#interface-walletencryptargs), [WalletNetwork](#type-walletnetwork), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
810
+
875
811
  <details>
876
812
 
877
813
  <summary>Interface Wallet Details</summary>
@@ -883,6 +819,7 @@ Aborts a transaction that is in progress and has not yet been finalized or sent
883
819
  ```ts
884
820
  abortAction: (args: AbortActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<AbortActionResult>
885
821
  ```
822
+ See also: [AbortActionArgs](#interface-abortactionargs), [AbortActionResult](#interface-abortactionresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
886
823
 
887
824
  #### Property acquireCertificate
888
825
 
@@ -891,6 +828,7 @@ Acquires an identity certificate, whether by acquiring one from the certifier or
891
828
  ```ts
892
829
  acquireCertificate: (args: AcquireCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<AcquireCertificateResult>
893
830
  ```
831
+ See also: [AcquireCertificateArgs](#interface-acquirecertificateargs), [AcquireCertificateResult](#interface-acquirecertificateresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
894
832
 
895
833
  #### Property createAction
896
834
 
@@ -899,6 +837,7 @@ Creates a new Bitcoin transaction based on the provided inputs, outputs, labels,
899
837
  ```ts
900
838
  createAction: (args: CreateActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<CreateActionResult>
901
839
  ```
840
+ See also: [CreateActionArgs](#interface-createactionargs), [CreateActionResult](#interface-createactionresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
902
841
 
903
842
  #### Property createHmac
904
843
 
@@ -909,6 +848,7 @@ createHmac: (args: CreateHmacArgs, originator?: OriginatorDomainNameStringUnder2
909
848
  hmac: Byte[];
910
849
  }>
911
850
  ```
851
+ See also: [Byte](#type-byte), [CreateHmacArgs](#interface-createhmacargs), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
912
852
 
913
853
  #### Property createSignature
914
854
 
@@ -919,6 +859,7 @@ createSignature: (args: CreateSignatureArgs, originator?: OriginatorDomainNameSt
919
859
  signature: Byte[];
920
860
  }>
921
861
  ```
862
+ See also: [Byte](#type-byte), [CreateSignatureArgs](#interface-createsignatureargs), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
922
863
 
923
864
  #### Property decrypt
924
865
 
@@ -929,6 +870,7 @@ decrypt: (args: WalletDecryptArgs, originator?: OriginatorDomainNameStringUnder2
929
870
  plaintext: Byte[];
930
871
  }>
931
872
  ```
873
+ See also: [Byte](#type-byte), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [WalletDecryptArgs](#interface-walletdecryptargs)
932
874
 
933
875
  #### Property discoverByAttributes
934
876
 
@@ -937,6 +879,7 @@ Discovers identity certificates belonging to other users, where the documents co
937
879
  ```ts
938
880
  discoverByAttributes: (args: DiscoverByAttributesArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<DiscoverCertificatesResult>
939
881
  ```
882
+ See also: [DiscoverByAttributesArgs](#interface-discoverbyattributesargs), [DiscoverCertificatesResult](#interface-discovercertificatesresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
940
883
 
941
884
  #### Property discoverByIdentityKey
942
885
 
@@ -945,6 +888,7 @@ Discovers identity certificates, issued to a given identity key by a trusted ent
945
888
  ```ts
946
889
  discoverByIdentityKey: (args: DiscoverByIdentityKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<DiscoverCertificatesResult>
947
890
  ```
891
+ See also: [DiscoverByIdentityKeyArgs](#interface-discoverbyidentitykeyargs), [DiscoverCertificatesResult](#interface-discovercertificatesresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
948
892
 
949
893
  #### Property encrypt
950
894
 
@@ -955,6 +899,7 @@ encrypt: (args: WalletEncryptArgs, originator?: OriginatorDomainNameStringUnder2
955
899
  ciphertext: Byte[];
956
900
  }>
957
901
  ```
902
+ See also: [Byte](#type-byte), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [WalletEncryptArgs](#interface-walletencryptargs)
958
903
 
959
904
  #### Property getHeaderForHeight
960
905
 
@@ -967,6 +912,7 @@ getHeaderForHeight: (args: {
967
912
  header: HexString;
968
913
  }>
969
914
  ```
915
+ See also: [HexString](#type-hexstring), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [PositiveInteger](#type-positiveinteger)
970
916
 
971
917
  #### Property getHeight
972
918
 
@@ -977,6 +923,7 @@ getHeight: (args: {}, originator?: OriginatorDomainNameStringUnder250Bytes) => P
977
923
  height: PositiveInteger;
978
924
  }>
979
925
  ```
926
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [PositiveInteger](#type-positiveinteger)
980
927
 
981
928
  #### Property getNetwork
982
929
 
@@ -987,6 +934,7 @@ getNetwork: (args: {}, originator?: OriginatorDomainNameStringUnder250Bytes) =>
987
934
  network: WalletNetwork;
988
935
  }>
989
936
  ```
937
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [WalletNetwork](#type-walletnetwork)
990
938
 
991
939
  #### Property getPublicKey
992
940
 
@@ -997,6 +945,7 @@ getPublicKey: (args: GetPublicKeyArgs, originator?: OriginatorDomainNameStringUn
997
945
  publicKey: PubKeyHex;
998
946
  }>
999
947
  ```
948
+ See also: [GetPublicKeyArgs](#interface-getpublickeyargs), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [PubKeyHex](#type-pubkeyhex)
1000
949
 
1001
950
  #### Property getVersion
1002
951
 
@@ -1007,6 +956,7 @@ getVersion: (args: {}, originator?: OriginatorDomainNameStringUnder250Bytes) =>
1007
956
  version: VersionString7To30Bytes;
1008
957
  }>
1009
958
  ```
959
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [VersionString7To30Bytes](#type-versionstring7to30bytes)
1010
960
 
1011
961
  #### Property internalizeAction
1012
962
 
@@ -1015,6 +965,7 @@ Submits a transaction to be internalized and optionally labeled, outputs paid to
1015
965
  ```ts
1016
966
  internalizeAction: (args: InternalizeActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<InternalizeActionResult>
1017
967
  ```
968
+ See also: [InternalizeActionArgs](#interface-internalizeactionargs), [InternalizeActionResult](#interface-internalizeactionresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
1018
969
 
1019
970
  #### Property isAuthenticated
1020
971
 
@@ -1025,6 +976,7 @@ isAuthenticated: (args: {}, originator?: OriginatorDomainNameStringUnder250Bytes
1025
976
  authenticated: boolean;
1026
977
  }>
1027
978
  ```
979
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
1028
980
 
1029
981
  #### Property listActions
1030
982
 
@@ -1033,6 +985,7 @@ Lists all transactions matching the specified labels.
1033
985
  ```ts
1034
986
  listActions: (args: ListActionsArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<ListActionsResult>
1035
987
  ```
988
+ See also: [ListActionsArgs](#interface-listactionsargs), [ListActionsResult](#interface-listactionsresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
1036
989
 
1037
990
  #### Property listCertificates
1038
991
 
@@ -1041,6 +994,7 @@ Lists identity certificates belonging to the user, filtered by certifier(s) and
1041
994
  ```ts
1042
995
  listCertificates: (args: ListCertificatesArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<ListCertificatesResult>
1043
996
  ```
997
+ See also: [ListCertificatesArgs](#interface-listcertificatesargs), [ListCertificatesResult](#interface-listcertificatesresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
1044
998
 
1045
999
  #### Property listOutputs
1046
1000
 
@@ -1049,6 +1003,7 @@ Lists the spendable outputs kept within a specific basket, optionally tagged wit
1049
1003
  ```ts
1050
1004
  listOutputs: (args: ListOutputsArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<ListOutputsResult>
1051
1005
  ```
1006
+ See also: [ListOutputsArgs](#interface-listoutputsargs), [ListOutputsResult](#interface-listoutputsresult), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
1052
1007
 
1053
1008
  #### Property proveCertificate
1054
1009
 
@@ -1057,6 +1012,7 @@ Proves select fields of an identity certificate, as specified, when requested by
1057
1012
  ```ts
1058
1013
  proveCertificate: (args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<ProveCertificateResult>
1059
1014
  ```
1015
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [ProveCertificateArgs](#interface-provecertificateargs), [ProveCertificateResult](#interface-provecertificateresult)
1060
1016
 
1061
1017
  #### Property relinquishCertificate
1062
1018
 
@@ -1067,6 +1023,7 @@ relinquishCertificate: (args: RelinquishCertificateArgs, originator?: Originator
1067
1023
  relinquished: true;
1068
1024
  }>
1069
1025
  ```
1026
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [RelinquishCertificateArgs](#interface-relinquishcertificateargs)
1070
1027
 
1071
1028
  #### Property relinquishOutput
1072
1029
 
@@ -1080,6 +1037,7 @@ relinquishOutput: (args: {
1080
1037
  relinquished: true;
1081
1038
  }>
1082
1039
  ```
1040
+ See also: [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [OutpointString](#type-outpointstring)
1083
1041
 
1084
1042
  #### Property revealCounterpartyKeyLinkage
1085
1043
 
@@ -1088,6 +1046,7 @@ Reveals the key linkage between ourselves and a counterparty, to a particular ve
1088
1046
  ```ts
1089
1047
  revealCounterpartyKeyLinkage: (args: RevealCounterpartyKeyLinkageArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<RevealCounterpartyKeyLinkageResult>
1090
1048
  ```
1049
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [RevealCounterpartyKeyLinkageArgs](#interface-revealcounterpartykeylinkageargs), [RevealCounterpartyKeyLinkageResult](#interface-revealcounterpartykeylinkageresult)
1091
1050
 
1092
1051
  #### Property revealSpecificKeyLinkage
1093
1052
 
@@ -1096,6 +1055,7 @@ Reveals the key linkage between ourselves and a counterparty, to a particular ve
1096
1055
  ```ts
1097
1056
  revealSpecificKeyLinkage: (args: RevealSpecificKeyLinkageArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<RevealSpecificKeyLinkageResult>
1098
1057
  ```
1058
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [RevealSpecificKeyLinkageArgs](#interface-revealspecifickeylinkageargs), [RevealSpecificKeyLinkageResult](#interface-revealspecifickeylinkageresult)
1099
1059
 
1100
1060
  #### Property signAction
1101
1061
 
@@ -1104,6 +1064,7 @@ Signs a transaction previously created using `createAction`.
1104
1064
  ```ts
1105
1065
  signAction: (args: SignActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes) => Promise<SignActionResult>
1106
1066
  ```
1067
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [SignActionArgs](#interface-signactionargs), [SignActionResult](#interface-signactionresult)
1107
1068
 
1108
1069
  #### Property verifyHmac
1109
1070
 
@@ -1114,6 +1075,7 @@ verifyHmac: (args: VerifyHmacArgs, originator?: OriginatorDomainNameStringUnder2
1114
1075
  valid: true;
1115
1076
  }>
1116
1077
  ```
1078
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [VerifyHmacArgs](#interface-verifyhmacargs)
1117
1079
 
1118
1080
  #### Property verifySignature
1119
1081
 
@@ -1124,6 +1086,7 @@ verifySignature: (args: VerifySignatureArgs, originator?: OriginatorDomainNameSt
1124
1086
  valid: true;
1125
1087
  }>
1126
1088
  ```
1089
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes), [VerifySignatureArgs](#interface-verifysignatureargs)
1127
1090
 
1128
1091
  #### Property waitForAuthentication
1129
1092
 
@@ -1134,93 +1097,272 @@ waitForAuthentication: (args: {}, originator?: OriginatorDomainNameStringUnder25
1134
1097
  authenticated: true;
1135
1098
  }>
1136
1099
  ```
1100
+ See also: [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes)
1137
1101
 
1138
1102
  </details>
1139
1103
 
1140
1104
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1141
1105
 
1142
1106
  ---
1143
- ### Interface: WalletWire
1144
-
1145
- A Wallet Wire is an abstraction over a raw transport medium where binary data can be sent to and subsequently received from a wallet.
1107
+ ### Interface: WalletAction
1146
1108
 
1147
1109
  ```ts
1148
- export default interface WalletWire {
1149
- transmitToWallet: (message: number[]) => Promise<number[]>;
1110
+ export interface WalletAction {
1111
+ txid: TXIDHexString;
1112
+ satoshis: SatoshiValue;
1113
+ status: ActionStatus;
1114
+ isOutgoing: boolean;
1115
+ description: DescriptionString5to50Bytes;
1116
+ labels?: LabelStringUnder300Bytes[];
1117
+ version: PositiveIntegerOrZero;
1118
+ lockTime: PositiveIntegerOrZero;
1119
+ inputs?: Array<WalletActionInput>;
1120
+ outputs?: Array<WalletActionOutput>;
1150
1121
  }
1151
1122
  ```
1152
1123
 
1124
+ See also: [ActionStatus](#type-actionstatus), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [LabelStringUnder300Bytes](#type-labelstringunder300bytes), [PositiveIntegerOrZero](#type-positiveintegerorzero), [SatoshiValue](#type-satoshivalue), [TXIDHexString](#type-txidhexstring), [WalletActionInput](#interface-walletactioninput), [WalletActionOutput](#interface-walletactionoutput)
1125
+
1153
1126
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1154
1127
 
1155
1128
  ---
1156
- ## Classes
1129
+ ### Interface: WalletActionInput
1157
1130
 
1158
- | |
1159
- | --- |
1160
- | [CachedKeyDeriver](#class-cachedkeyderiver) |
1161
- | [HTTPWalletWire](#class-httpwalletwire) |
1162
- | [KeyDeriver](#class-keyderiver) |
1163
- | [ProtoWallet](#class-protowallet) |
1164
- | [WalletClient](#class-walletclient) |
1165
- | [WalletError](#class-walleterror) |
1166
- | [WalletWireProcessor](#class-walletwireprocessor) |
1167
- | [WalletWireTransceiver](#class-walletwiretransceiver) |
1168
- | [WindowCWISubstrate](#class-windowcwisubstrate) |
1169
- | [XDMSubstrate](#class-xdmsubstrate) |
1131
+ ```ts
1132
+ export interface WalletActionInput {
1133
+ sourceOutpoint: OutpointString;
1134
+ sourceSatoshis: SatoshiValue;
1135
+ sourceLockingScript?: HexString;
1136
+ unlockingScript?: HexString;
1137
+ inputDescription: DescriptionString5to50Bytes;
1138
+ sequenceNumber: PositiveIntegerOrZero;
1139
+ }
1140
+ ```
1141
+
1142
+ See also: [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [HexString](#type-hexstring), [OutpointString](#type-outpointstring), [PositiveIntegerOrZero](#type-positiveintegerorzero), [SatoshiValue](#type-satoshivalue)
1170
1143
 
1171
1144
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1172
1145
 
1173
1146
  ---
1174
-
1175
- ### Class: KeyDeriver
1176
-
1177
- Class responsible for deriving various types of keys using a root private key.
1178
- It supports deriving public and private keys, symmetric keys, and revealing key linkages.
1147
+ ### Interface: WalletActionOutput
1179
1148
 
1180
1149
  ```ts
1181
- export default class KeyDeriver {
1182
- rootKey: PrivateKey;
1183
- constructor(rootKey: PrivateKey | "anyone")
1184
- derivePublicKey(protocolID: [
1185
- 0 | 1 | 2,
1186
- string
1187
- ], keyID: string, counterparty: PublicKey | string | "self" | "anyone", forSelf: boolean = false): PublicKey
1188
- derivePrivateKey(protocolID: [
1189
- 0 | 1 | 2,
1190
- string
1191
- ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): PrivateKey
1192
- deriveSymmetricKey(protocolID: [
1193
- 0 | 1 | 2,
1194
- string
1195
- ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): SymmetricKey
1196
- revealCounterpartySecret(counterparty: PublicKey | string | "self" | "anyone"): number[]
1197
- revealSpecificSecret(counterparty: PublicKey | string | "self" | "anyone", protocolID: [
1198
- 0 | 1 | 2,
1199
- string
1200
- ], keyID: string): number[]
1150
+ export interface WalletActionOutput {
1151
+ satoshis: SatoshiValue;
1152
+ lockingScript?: HexString;
1153
+ spendable: boolean;
1154
+ customInstructions?: string;
1155
+ tags: OutputTagStringUnder300Bytes[];
1156
+ outputIndex: PositiveIntegerOrZero;
1157
+ outputDescription: DescriptionString5to50Bytes;
1158
+ basket: BasketStringUnder300Bytes;
1201
1159
  }
1202
1160
  ```
1203
1161
 
1204
- <details>
1205
-
1206
- <summary>Class KeyDeriver Details</summary>
1162
+ See also: [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes), [HexString](#type-hexstring), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes), [PositiveIntegerOrZero](#type-positiveintegerorzero), [SatoshiValue](#type-satoshivalue)
1207
1163
 
1208
- #### Constructor
1164
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1209
1165
 
1210
- Initializes the KeyDeriver instance with a root private key.
1166
+ ---
1167
+ ### Interface: WalletCertificate
1211
1168
 
1212
1169
  ```ts
1213
- constructor(rootKey: PrivateKey | "anyone")
1170
+ export interface WalletCertificate {
1171
+ type: Base64String;
1172
+ subject: PubKeyHex;
1173
+ serialNumber: Base64String;
1174
+ certifier: PubKeyHex;
1175
+ revocationOutpoint: OutpointString;
1176
+ signature: HexString;
1177
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
1178
+ }
1214
1179
  ```
1215
1180
 
1216
- Argument Details
1181
+ See also: [Base64String](#type-base64string), [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes), [HexString](#type-hexstring), [OutpointString](#type-outpointstring), [PubKeyHex](#type-pubkeyhex)
1217
1182
 
1218
- + **rootKey**
1219
- + The root private key or the string 'anyone'.
1183
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1220
1184
 
1221
- #### Method derivePrivateKey
1185
+ ---
1186
+ ### Interface: WalletDecryptArgs
1187
+
1188
+ ```ts
1189
+ export interface WalletDecryptArgs extends WalletEncryptionArgs {
1190
+ ciphertext: Byte[];
1191
+ }
1192
+ ```
1193
+
1194
+ See also: [Byte](#type-byte), [WalletEncryptionArgs](#interface-walletencryptionargs)
1195
+
1196
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1197
+
1198
+ ---
1199
+ ### Interface: WalletEncryptArgs
1200
+
1201
+ ```ts
1202
+ export interface WalletEncryptArgs extends WalletEncryptionArgs {
1203
+ plaintext: Byte[];
1204
+ }
1205
+ ```
1206
+
1207
+ See also: [Byte](#type-byte), [WalletEncryptionArgs](#interface-walletencryptionargs)
1208
+
1209
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1210
+
1211
+ ---
1212
+ ### Interface: WalletEncryptionArgs
1213
+
1214
+ ```ts
1215
+ export interface WalletEncryptionArgs extends KeyLinkageArgs {
1216
+ seekPermission?: BooleanDefaultTrue;
1217
+ }
1218
+ ```
1219
+
1220
+ See also: [BooleanDefaultTrue](#type-booleandefaulttrue), [KeyLinkageArgs](#interface-keylinkageargs)
1221
+
1222
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1223
+
1224
+ ---
1225
+ ### Interface: WalletErrorObject
1226
+
1227
+ Every method of the `Wallet` interface has a return value of the form `Promise<object>`.
1228
+ When errors occur, an exception object may be thrown which must conform to the `WalletError` interface.
1229
+ Serialization layers can rely on the `isError` property being unique to error objects.
1230
+ Deserialization should rethrow `WalletError` conforming objects.
1231
+
1232
+ ```ts
1233
+ export interface WalletErrorObject extends Error {
1234
+ isError: true;
1235
+ }
1236
+ ```
1237
+
1238
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1239
+
1240
+ ---
1241
+ ### Interface: WalletOutput
1242
+
1243
+ ```ts
1244
+ export interface WalletOutput {
1245
+ satoshis: SatoshiValue;
1246
+ lockingScript?: HexString;
1247
+ spendable: true;
1248
+ customInstructions?: string;
1249
+ tags?: OutputTagStringUnder300Bytes[];
1250
+ outpoint: OutpointString;
1251
+ labels?: LabelStringUnder300Bytes[];
1252
+ }
1253
+ ```
1254
+
1255
+ See also: [HexString](#type-hexstring), [LabelStringUnder300Bytes](#type-labelstringunder300bytes), [OutpointString](#type-outpointstring), [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes), [SatoshiValue](#type-satoshivalue)
1256
+
1257
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1258
+
1259
+ ---
1260
+ ### Interface: WalletPayment
1261
+
1262
+ ```ts
1263
+ export interface WalletPayment {
1264
+ derivationPrefix: Base64String;
1265
+ derivationSuffix: Base64String;
1266
+ senderIdentityKey: PubKeyHex;
1267
+ }
1268
+ ```
1269
+
1270
+ See also: [Base64String](#type-base64string), [PubKeyHex](#type-pubkeyhex)
1271
+
1272
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1273
+
1274
+ ---
1275
+ ### Interface: WalletWire
1276
+
1277
+ A Wallet Wire is an abstraction over a raw transport medium where binary data can be sent to and subsequently received from a wallet.
1278
+
1279
+ ```ts
1280
+ export default interface WalletWire {
1281
+ transmitToWallet: (message: number[]) => Promise<number[]>;
1282
+ }
1283
+ ```
1284
+
1285
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1286
+
1287
+ ---
1288
+ ## Classes
1289
+
1290
+ | |
1291
+ | --- |
1292
+ | [CachedKeyDeriver](#class-cachedkeyderiver) |
1293
+ | [HTTPWalletWire](#class-httpwalletwire) |
1294
+ | [KeyDeriver](#class-keyderiver) |
1295
+ | [ProtoWallet](#class-protowallet) |
1296
+ | [WalletClient](#class-walletclient) |
1297
+ | [WalletError](#class-walleterror) |
1298
+ | [WalletWireProcessor](#class-walletwireprocessor) |
1299
+ | [WalletWireTransceiver](#class-walletwiretransceiver) |
1300
+ | [WindowCWISubstrate](#class-windowcwisubstrate) |
1301
+ | [XDMSubstrate](#class-xdmsubstrate) |
1302
+
1303
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1304
+
1305
+ ---
1306
+
1307
+ ### Class: CachedKeyDeriver
1308
+
1309
+ A cached version of KeyDeriver that caches the results of key derivation methods.
1310
+ This is useful for optimizing performance when the same keys are derived multiple times.
1311
+ It supports configurable cache size with sane defaults and maintains cache entries using LRU (Least Recently Used) eviction policy.
1312
+
1313
+ ```ts
1314
+ export default class CachedKeyDeriver {
1315
+ constructor(rootKey: PrivateKey | "anyone", options?: {
1316
+ maxCacheSize?: number;
1317
+ })
1318
+ derivePublicKey(protocolID: [
1319
+ 0 | 1 | 2,
1320
+ string
1321
+ ], keyID: string, counterparty: PublicKey | string | "self" | "anyone", forSelf: boolean = false): PublicKey
1322
+ derivePrivateKey(protocolID: [
1323
+ 0 | 1 | 2,
1324
+ string
1325
+ ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): PrivateKey
1326
+ deriveSymmetricKey(protocolID: [
1327
+ 0 | 1 | 2,
1328
+ string
1329
+ ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): SymmetricKey
1330
+ revealCounterpartySecret(counterparty: PublicKey | string | "self" | "anyone"): number[]
1331
+ revealSpecificSecret(counterparty: PublicKey | string | "self" | "anyone", protocolID: [
1332
+ 0 | 1 | 2,
1333
+ string
1334
+ ], keyID: string): number[]
1335
+ }
1336
+ ```
1337
+
1338
+ See also: [PrivateKey](#class-privatekey), [PublicKey](#class-publickey), [SymmetricKey](#class-symmetrickey)
1339
+
1340
+ <details>
1341
+
1342
+ <summary>Class CachedKeyDeriver Details</summary>
1343
+
1344
+ #### Constructor
1345
+
1346
+ Initializes the CachedKeyDeriver instance with a root private key and optional cache settings.
1347
+
1348
+ ```ts
1349
+ constructor(rootKey: PrivateKey | "anyone", options?: {
1350
+ maxCacheSize?: number;
1351
+ })
1352
+ ```
1353
+ See also: [PrivateKey](#class-privatekey)
1354
+
1355
+ Argument Details
1356
+
1357
+ + **rootKey**
1358
+ + The root private key or the string 'anyone'.
1359
+ + **options**
1360
+ + Optional settings for the cache.
1361
+
1362
+ #### Method derivePrivateKey
1222
1363
 
1223
1364
  Derives a private key based on protocol ID, key ID, and counterparty.
1365
+ Caches the result for future calls with the same parameters.
1224
1366
 
1225
1367
  ```ts
1226
1368
  derivePrivateKey(protocolID: [
@@ -1228,6 +1370,7 @@ derivePrivateKey(protocolID: [
1228
1370
  string
1229
1371
  ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): PrivateKey
1230
1372
  ```
1373
+ See also: [PrivateKey](#class-privatekey), [PublicKey](#class-publickey)
1231
1374
 
1232
1375
  Returns
1233
1376
 
@@ -1245,6 +1388,7 @@ Argument Details
1245
1388
  #### Method derivePublicKey
1246
1389
 
1247
1390
  Derives a public key based on protocol ID, key ID, and counterparty.
1391
+ Caches the result for future calls with the same parameters.
1248
1392
 
1249
1393
  ```ts
1250
1394
  derivePublicKey(protocolID: [
@@ -1252,6 +1396,7 @@ derivePublicKey(protocolID: [
1252
1396
  string
1253
1397
  ], keyID: string, counterparty: PublicKey | string | "self" | "anyone", forSelf: boolean = false): PublicKey
1254
1398
  ```
1399
+ See also: [PublicKey](#class-publickey)
1255
1400
 
1256
1401
  Returns
1257
1402
 
@@ -1271,7 +1416,7 @@ Argument Details
1271
1416
  #### Method deriveSymmetricKey
1272
1417
 
1273
1418
  Derives a symmetric key based on protocol ID, key ID, and counterparty.
1274
- Note: Symmetric keys should not be derivable by everyone due to security risks.
1419
+ Caches the result for future calls with the same parameters.
1275
1420
 
1276
1421
  ```ts
1277
1422
  deriveSymmetricKey(protocolID: [
@@ -1279,6 +1424,7 @@ deriveSymmetricKey(protocolID: [
1279
1424
  string
1280
1425
  ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): SymmetricKey
1281
1426
  ```
1427
+ See also: [PublicKey](#class-publickey), [SymmetricKey](#class-symmetrickey)
1282
1428
 
1283
1429
  Returns
1284
1430
 
@@ -1300,11 +1446,12 @@ Throws
1300
1446
  #### Method revealCounterpartySecret
1301
1447
 
1302
1448
  Reveals the shared secret between the root key and the counterparty.
1303
- Note: This should not be used for 'self'.
1449
+ Caches the result for future calls with the same parameters.
1304
1450
 
1305
1451
  ```ts
1306
1452
  revealCounterpartySecret(counterparty: PublicKey | string | "self" | "anyone"): number[]
1307
1453
  ```
1454
+ See also: [PublicKey](#class-publickey)
1308
1455
 
1309
1456
  Returns
1310
1457
 
@@ -1322,6 +1469,7 @@ Throws
1322
1469
  #### Method revealSpecificSecret
1323
1470
 
1324
1471
  Reveals the specific key association for a given protocol ID, key ID, and counterparty.
1472
+ Caches the result for future calls with the same parameters.
1325
1473
 
1326
1474
  ```ts
1327
1475
  revealSpecificSecret(counterparty: PublicKey | string | "self" | "anyone", protocolID: [
@@ -1329,6 +1477,7 @@ revealSpecificSecret(counterparty: PublicKey | string | "self" | "anyone", proto
1329
1477
  string
1330
1478
  ], keyID: string): number[]
1331
1479
  ```
1480
+ See also: [PublicKey](#class-publickey)
1332
1481
 
1333
1482
  Returns
1334
1483
 
@@ -1348,17 +1497,32 @@ Argument Details
1348
1497
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1349
1498
 
1350
1499
  ---
1351
- ### Class: CachedKeyDeriver
1500
+ ### Class: HTTPWalletWire
1352
1501
 
1353
- A cached version of KeyDeriver that caches the results of key derivation methods.
1354
- This is useful for optimizing performance when the same keys are derived multiple times.
1355
- It supports configurable cache size with sane defaults and maintains cache entries using LRU (Least Recently Used) eviction policy.
1502
+ ```ts
1503
+ export default class HTTPWalletWire implements WalletWire {
1504
+ baseUrl: string;
1505
+ httpClient: typeof fetch;
1506
+ originator: string | undefined;
1507
+ constructor(originator: string | undefined, baseUrl: string = "http://localhost:3301", httpClient = fetch)
1508
+ async transmitToWallet(message: number[]): Promise<number[]>
1509
+ }
1510
+ ```
1511
+
1512
+ See also: [WalletWire](#interface-walletwire)
1513
+
1514
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1515
+
1516
+ ---
1517
+ ### Class: KeyDeriver
1518
+
1519
+ Class responsible for deriving various types of keys using a root private key.
1520
+ It supports deriving public and private keys, symmetric keys, and revealing key linkages.
1356
1521
 
1357
1522
  ```ts
1358
- export default class CachedKeyDeriver {
1359
- constructor(rootKey: PrivateKey | "anyone", options?: {
1360
- maxCacheSize?: number;
1361
- })
1523
+ export default class KeyDeriver {
1524
+ rootKey: PrivateKey;
1525
+ constructor(rootKey: PrivateKey | "anyone")
1362
1526
  derivePublicKey(protocolID: [
1363
1527
  0 | 1 | 2,
1364
1528
  string
@@ -1379,31 +1543,29 @@ export default class CachedKeyDeriver {
1379
1543
  }
1380
1544
  ```
1381
1545
 
1546
+ See also: [PrivateKey](#class-privatekey), [PublicKey](#class-publickey), [SymmetricKey](#class-symmetrickey)
1547
+
1382
1548
  <details>
1383
1549
 
1384
- <summary>Class CachedKeyDeriver Details</summary>
1550
+ <summary>Class KeyDeriver Details</summary>
1385
1551
 
1386
1552
  #### Constructor
1387
1553
 
1388
- Initializes the CachedKeyDeriver instance with a root private key and optional cache settings.
1554
+ Initializes the KeyDeriver instance with a root private key.
1389
1555
 
1390
1556
  ```ts
1391
- constructor(rootKey: PrivateKey | "anyone", options?: {
1392
- maxCacheSize?: number;
1393
- })
1557
+ constructor(rootKey: PrivateKey | "anyone")
1394
1558
  ```
1559
+ See also: [PrivateKey](#class-privatekey)
1395
1560
 
1396
1561
  Argument Details
1397
1562
 
1398
1563
  + **rootKey**
1399
1564
  + The root private key or the string 'anyone'.
1400
- + **options**
1401
- + Optional settings for the cache.
1402
1565
 
1403
1566
  #### Method derivePrivateKey
1404
1567
 
1405
1568
  Derives a private key based on protocol ID, key ID, and counterparty.
1406
- Caches the result for future calls with the same parameters.
1407
1569
 
1408
1570
  ```ts
1409
1571
  derivePrivateKey(protocolID: [
@@ -1411,6 +1573,7 @@ derivePrivateKey(protocolID: [
1411
1573
  string
1412
1574
  ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): PrivateKey
1413
1575
  ```
1576
+ See also: [PrivateKey](#class-privatekey), [PublicKey](#class-publickey)
1414
1577
 
1415
1578
  Returns
1416
1579
 
@@ -1428,7 +1591,6 @@ Argument Details
1428
1591
  #### Method derivePublicKey
1429
1592
 
1430
1593
  Derives a public key based on protocol ID, key ID, and counterparty.
1431
- Caches the result for future calls with the same parameters.
1432
1594
 
1433
1595
  ```ts
1434
1596
  derivePublicKey(protocolID: [
@@ -1436,6 +1598,7 @@ derivePublicKey(protocolID: [
1436
1598
  string
1437
1599
  ], keyID: string, counterparty: PublicKey | string | "self" | "anyone", forSelf: boolean = false): PublicKey
1438
1600
  ```
1601
+ See also: [PublicKey](#class-publickey)
1439
1602
 
1440
1603
  Returns
1441
1604
 
@@ -1455,7 +1618,7 @@ Argument Details
1455
1618
  #### Method deriveSymmetricKey
1456
1619
 
1457
1620
  Derives a symmetric key based on protocol ID, key ID, and counterparty.
1458
- Caches the result for future calls with the same parameters.
1621
+ Note: Symmetric keys should not be derivable by everyone due to security risks.
1459
1622
 
1460
1623
  ```ts
1461
1624
  deriveSymmetricKey(protocolID: [
@@ -1463,6 +1626,7 @@ deriveSymmetricKey(protocolID: [
1463
1626
  string
1464
1627
  ], keyID: string, counterparty: PublicKey | string | "self" | "anyone"): SymmetricKey
1465
1628
  ```
1629
+ See also: [PublicKey](#class-publickey), [SymmetricKey](#class-symmetrickey)
1466
1630
 
1467
1631
  Returns
1468
1632
 
@@ -1484,11 +1648,12 @@ Throws
1484
1648
  #### Method revealCounterpartySecret
1485
1649
 
1486
1650
  Reveals the shared secret between the root key and the counterparty.
1487
- Caches the result for future calls with the same parameters.
1651
+ Note: This should not be used for 'self'.
1488
1652
 
1489
1653
  ```ts
1490
1654
  revealCounterpartySecret(counterparty: PublicKey | string | "self" | "anyone"): number[]
1491
1655
  ```
1656
+ See also: [PublicKey](#class-publickey)
1492
1657
 
1493
1658
  Returns
1494
1659
 
@@ -1506,7 +1671,6 @@ Throws
1506
1671
  #### Method revealSpecificSecret
1507
1672
 
1508
1673
  Reveals the specific key association for a given protocol ID, key ID, and counterparty.
1509
- Caches the result for future calls with the same parameters.
1510
1674
 
1511
1675
  ```ts
1512
1676
  revealSpecificSecret(counterparty: PublicKey | string | "self" | "anyone", protocolID: [
@@ -1514,6 +1678,7 @@ revealSpecificSecret(counterparty: PublicKey | string | "self" | "anyone", proto
1514
1678
  string
1515
1679
  ], keyID: string): number[]
1516
1680
  ```
1681
+ See also: [PublicKey](#class-publickey)
1517
1682
 
1518
1683
  Returns
1519
1684
 
@@ -1532,18 +1697,6 @@ Argument Details
1532
1697
 
1533
1698
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1534
1699
 
1535
- ---
1536
- ### Class: WalletError
1537
-
1538
- ```ts
1539
- export class WalletError extends Error {
1540
- code: number;
1541
- constructor(message: string, code = 1, stack?: string)
1542
- }
1543
- ```
1544
-
1545
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1546
-
1547
1700
  ---
1548
1701
  ### Class: ProtoWallet
1549
1702
 
@@ -1987,177 +2140,37 @@ export default class ProtoWallet implements Wallet {
1987
2140
  }
1988
2141
  ```
1989
2142
 
2143
+ 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), [KeyDeriver](#class-keyderiver), [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), [PrivateKey](#class-privatekey), [ProtocolString5To400Bytes](#type-protocolstring5to400bytes), [PubKeyHex](#type-pubkeyhex), [SatoshiValue](#type-satoshivalue), [TXIDHexString](#type-txidhexstring), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
2144
+
1990
2145
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1991
2146
 
1992
2147
  ---
1993
- ### Class: WindowCWISubstrate
2148
+ ### Class: WalletClient
1994
2149
 
1995
- Facilitates wallet operations over the window.CWI interface.
2150
+ The SDK is how applications communicate with wallets over a communications substrate.
1996
2151
 
1997
2152
  ```ts
1998
- export default class WindowCWISubstrate implements Wallet {
1999
- constructor()
2000
- async createAction(args: {
2001
- description: DescriptionString5to50Bytes;
2002
- inputs?: Array<{
2003
- tx?: BEEF;
2004
- outpoint: OutpointString;
2005
- unlockingScript?: HexString;
2006
- unlockingScriptLength?: PositiveInteger;
2007
- inputDescription: DescriptionString5to50Bytes;
2008
- sequenceNumber?: PositiveIntegerOrZero;
2009
- }>;
2010
- outputs?: Array<{
2011
- lockingScript: HexString;
2012
- satoshis: SatoshiValue;
2013
- outputDescription: DescriptionString5to50Bytes;
2014
- basket?: BasketStringUnder300Bytes;
2015
- customInstructions?: string;
2016
- tags?: OutputTagStringUnder300Bytes[];
2017
- }>;
2018
- lockTime?: PositiveIntegerOrZero;
2019
- version?: PositiveIntegerOrZero;
2020
- labels?: LabelStringUnder300Bytes[];
2021
- options?: {
2022
- signAndProcess?: BooleanDefaultTrue;
2023
- acceptDelayedBroadcast?: BooleanDefaultTrue;
2024
- trustSelf?: "known";
2025
- knownTxids?: TXIDHexString[];
2026
- returnTXIDOnly?: BooleanDefaultFalse;
2027
- noSend?: BooleanDefaultFalse;
2028
- noSendChange?: OutpointString[];
2029
- sendWith?: TXIDHexString[];
2030
- };
2031
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2032
- txid?: TXIDHexString;
2033
- tx?: BEEF;
2034
- noSendChange?: OutpointString[];
2035
- sendWithResults?: Array<{
2036
- txid: TXIDHexString;
2037
- status: "unproven" | "sending" | "failed";
2038
- }>;
2039
- signableTransaction?: {
2040
- tx: BEEF;
2041
- reference: Base64String;
2042
- };
2043
- }>
2044
- async signAction(args: {
2045
- spends: Record<PositiveIntegerOrZero, {
2046
- unlockingScript: HexString;
2047
- sequenceNumber?: PositiveIntegerOrZero;
2048
- }>;
2049
- reference: Base64String;
2050
- options?: {
2051
- acceptDelayedBroadcast?: BooleanDefaultTrue;
2052
- returnTXIDOnly?: BooleanDefaultFalse;
2053
- noSend?: BooleanDefaultFalse;
2054
- noSendChange?: OutpointString[];
2055
- sendWith: TXIDHexString[];
2056
- };
2057
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2058
- txid?: TXIDHexString;
2059
- tx?: BEEF;
2060
- noSendChange?: OutpointString[];
2061
- sendWithResults?: Array<{
2062
- txid: TXIDHexString;
2063
- status: "unproven" | "sending" | "failed";
2064
- }>;
2065
- }>
2153
+ export default class WalletClient implements Wallet {
2154
+ public substrate: "auto" | Wallet;
2155
+ originator?: OriginatorDomainNameStringUnder250Bytes;
2156
+ constructor(substrate: "auto" | "Cicada" | "XDM" | "window.CWI" | Wallet = "auto", originator?: OriginatorDomainNameStringUnder250Bytes)
2157
+ async connectToSubstrate()
2158
+ async createAction(args: CreateActionArgs): Promise<CreateActionResult>
2159
+ async signAction(args: SignActionArgs): Promise<SignActionResult>
2066
2160
  async abortAction(args: {
2067
2161
  reference: Base64String;
2068
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2162
+ }): Promise<{
2069
2163
  aborted: true;
2070
2164
  }>
2071
- async listActions(args: {
2072
- labels: LabelStringUnder300Bytes[];
2073
- labelQueryMode?: "any" | "all";
2074
- includeLabels?: BooleanDefaultFalse;
2075
- includeInputs?: BooleanDefaultFalse;
2076
- includeInputSourceLockingScripts?: BooleanDefaultFalse;
2077
- includeInputUnlockingScripts?: BooleanDefaultFalse;
2078
- includeOutputs?: BooleanDefaultFalse;
2079
- includeOutputLockingScripts?: BooleanDefaultFalse;
2080
- limit?: PositiveIntegerDefault10Max10000;
2081
- offset?: PositiveIntegerOrZero;
2082
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2083
- totalActions: PositiveIntegerOrZero;
2084
- actions: Array<{
2085
- txid: TXIDHexString;
2086
- satoshis: SatoshiValue;
2087
- status: "completed" | "unprocessed" | "sending" | "unproven" | "unsigned" | "nosend" | "nonfinal";
2088
- isOutgoing: boolean;
2089
- description: DescriptionString5to50Bytes;
2090
- labels?: LabelStringUnder300Bytes[];
2091
- version: PositiveIntegerOrZero;
2092
- lockTime: PositiveIntegerOrZero;
2093
- inputs?: Array<{
2094
- sourceOutpoint: OutpointString;
2095
- sourceSatoshis: SatoshiValue;
2096
- sourceLockingScript?: HexString;
2097
- unlockingScript?: HexString;
2098
- inputDescription: DescriptionString5to50Bytes;
2099
- sequenceNumber: PositiveIntegerOrZero;
2100
- }>;
2101
- outputs?: Array<{
2102
- outputIndex: PositiveIntegerOrZero;
2103
- satoshis: SatoshiValue;
2104
- lockingScript?: HexString;
2105
- spendable: boolean;
2106
- outputDescription: DescriptionString5to50Bytes;
2107
- basket: BasketStringUnder300Bytes;
2108
- tags: OutputTagStringUnder300Bytes[];
2109
- customInstructions?: string;
2110
- }>;
2111
- }>;
2112
- }>
2113
- async internalizeAction(args: {
2114
- tx: BEEF;
2115
- outputs: Array<{
2116
- outputIndex: PositiveIntegerOrZero;
2117
- protocol: "wallet payment" | "basket insertion";
2118
- paymentRemittance?: {
2119
- derivationPrefix: Base64String;
2120
- derivationSuffix: Base64String;
2121
- senderIdentityKey: PubKeyHex;
2122
- };
2123
- insertionRemittance?: {
2124
- basket: BasketStringUnder300Bytes;
2125
- customInstructions?: string;
2126
- tags?: OutputTagStringUnder300Bytes[];
2127
- };
2128
- }>;
2129
- description: DescriptionString5to50Bytes;
2130
- labels?: LabelStringUnder300Bytes[];
2131
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2165
+ async listActions(args: ListActionsArgs): Promise<ListActionsResult>
2166
+ async internalizeAction(args: InternalizeActionArgs): Promise<{
2132
2167
  accepted: true;
2133
2168
  }>
2134
- async listOutputs(args: {
2135
- basket: BasketStringUnder300Bytes;
2136
- tags?: OutputTagStringUnder300Bytes[];
2137
- tagQueryMode?: "all" | "any";
2138
- include?: "locking scripts" | "entire transactions";
2139
- includeCustomInstructions?: BooleanDefaultFalse;
2140
- includeTags?: BooleanDefaultFalse;
2141
- includeLabels?: BooleanDefaultFalse;
2142
- limit?: PositiveIntegerDefault10Max10000;
2143
- offset?: PositiveIntegerOrZero;
2144
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2145
- totalOutputs: PositiveIntegerOrZero;
2146
- outputs: Array<{
2147
- outpoint: OutpointString;
2148
- satoshis: SatoshiValue;
2149
- lockingScript?: HexString;
2150
- tx?: BEEF;
2151
- spendable: true;
2152
- customInstructions?: string;
2153
- tags?: OutputTagStringUnder300Bytes[];
2154
- labels?: LabelStringUnder300Bytes[];
2155
- }>;
2156
- }>
2169
+ async listOutputs(args: ListOutputsArgs): Promise<ListOutputsResult>
2157
2170
  async relinquishOutput(args: {
2158
2171
  basket: BasketStringUnder300Bytes;
2159
2172
  output: OutpointString;
2160
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2173
+ }): Promise<{
2161
2174
  relinquished: true;
2162
2175
  }>
2163
2176
  async getPublicKey(args: {
@@ -2171,7 +2184,7 @@ export default class WindowCWISubstrate implements Wallet {
2171
2184
  privilegedReason?: DescriptionString5to50Bytes;
2172
2185
  counterparty?: PubKeyHex | "self" | "anyone";
2173
2186
  forSelf?: BooleanDefaultFalse;
2174
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2187
+ }): Promise<{
2175
2188
  publicKey: PubKeyHex;
2176
2189
  }>
2177
2190
  async revealCounterpartyKeyLinkage(args: {
@@ -2179,7 +2192,7 @@ export default class WindowCWISubstrate implements Wallet {
2179
2192
  verifier: PubKeyHex;
2180
2193
  privilegedReason?: DescriptionString5to50Bytes;
2181
2194
  privileged?: BooleanDefaultFalse;
2182
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2195
+ }): Promise<{
2183
2196
  prover: PubKeyHex;
2184
2197
  verifier: PubKeyHex;
2185
2198
  counterparty: PubKeyHex;
@@ -2197,7 +2210,7 @@ export default class WindowCWISubstrate implements Wallet {
2197
2210
  keyID: KeyIDStringUnder800Bytes;
2198
2211
  privilegedReason?: DescriptionString5to50Bytes;
2199
2212
  privileged?: BooleanDefaultFalse;
2200
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2213
+ }): Promise<{
2201
2214
  prover: PubKeyHex;
2202
2215
  verifier: PubKeyHex;
2203
2216
  counterparty: PubKeyHex;
@@ -2220,7 +2233,7 @@ export default class WindowCWISubstrate implements Wallet {
2220
2233
  privilegedReason?: DescriptionString5to50Bytes;
2221
2234
  counterparty?: PubKeyHex | "self" | "anyone";
2222
2235
  privileged?: BooleanDefaultFalse;
2223
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2236
+ }): Promise<{
2224
2237
  ciphertext: Byte[];
2225
2238
  }>
2226
2239
  async decrypt(args: {
@@ -2233,7 +2246,7 @@ export default class WindowCWISubstrate implements Wallet {
2233
2246
  privilegedReason?: DescriptionString5to50Bytes;
2234
2247
  counterparty?: PubKeyHex | "self" | "anyone";
2235
2248
  privileged?: BooleanDefaultFalse;
2236
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2249
+ }): Promise<{
2237
2250
  plaintext: Byte[];
2238
2251
  }>
2239
2252
  async createHmac(args: {
@@ -2246,7 +2259,7 @@ export default class WindowCWISubstrate implements Wallet {
2246
2259
  privilegedReason?: DescriptionString5to50Bytes;
2247
2260
  counterparty?: PubKeyHex | "self" | "anyone";
2248
2261
  privileged?: BooleanDefaultFalse;
2249
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2262
+ }): Promise<{
2250
2263
  hmac: Byte[];
2251
2264
  }>
2252
2265
  async verifyHmac(args: {
@@ -2260,7 +2273,7 @@ export default class WindowCWISubstrate implements Wallet {
2260
2273
  privilegedReason?: DescriptionString5to50Bytes;
2261
2274
  counterparty?: PubKeyHex | "self" | "anyone";
2262
2275
  privileged?: BooleanDefaultFalse;
2263
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2276
+ }): Promise<{
2264
2277
  valid: true;
2265
2278
  }>
2266
2279
  async createSignature(args: {
@@ -2274,7 +2287,7 @@ export default class WindowCWISubstrate implements Wallet {
2274
2287
  privilegedReason?: DescriptionString5to50Bytes;
2275
2288
  counterparty?: PubKeyHex | "self" | "anyone";
2276
2289
  privileged?: BooleanDefaultFalse;
2277
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2290
+ }): Promise<{
2278
2291
  signature: Byte[];
2279
2292
  }>
2280
2293
  async verifySignature(args: {
@@ -2290,319 +2303,122 @@ export default class WindowCWISubstrate implements Wallet {
2290
2303
  counterparty?: PubKeyHex | "self" | "anyone";
2291
2304
  forSelf?: BooleanDefaultFalse;
2292
2305
  privileged?: BooleanDefaultFalse;
2293
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2294
- valid: true;
2295
- }>
2296
- async acquireCertificate(args: {
2297
- type: Base64String;
2298
- subject: PubKeyHex;
2299
- serialNumber: Base64String;
2300
- revocationOutpoint: OutpointString;
2301
- signature: HexString;
2302
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2303
- certifier: PubKeyHex;
2304
- keyringRevealer: PubKeyHex | "certifier";
2305
- keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2306
- acquisitionProtocol: "direct" | "issuance";
2307
- certifierUrl?: string;
2308
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2309
- type: Base64String;
2310
- subject: PubKeyHex;
2311
- serialNumber: Base64String;
2312
- certifier: PubKeyHex;
2313
- revocationOutpoint: OutpointString;
2314
- signature: HexString;
2315
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2316
- }>
2317
- async listCertificates(args: {
2318
- certifiers: PubKeyHex[];
2319
- types: Base64String[];
2320
- limit?: PositiveIntegerDefault10Max10000;
2321
- offset?: PositiveIntegerOrZero;
2322
- privileged?: BooleanDefaultFalse;
2323
- privilegedReason?: DescriptionString5to50Bytes;
2324
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2325
- totalCertificates: PositiveIntegerOrZero;
2326
- certificates: Array<{
2327
- type: Base64String;
2328
- subject: PubKeyHex;
2329
- serialNumber: Base64String;
2330
- certifier: PubKeyHex;
2331
- revocationOutpoint: OutpointString;
2332
- signature: HexString;
2333
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2334
- }>;
2335
- }>
2336
- async proveCertificate(args: {
2337
- certificate: {
2338
- type: Base64String;
2339
- subject: PubKeyHex;
2340
- serialNumber: Base64String;
2341
- certifier: PubKeyHex;
2342
- revocationOutpoint: OutpointString;
2343
- signature: HexString;
2344
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2345
- };
2346
- fieldsToReveal: CertificateFieldNameUnder50Bytes[];
2347
- verifier: PubKeyHex;
2348
- privileged?: BooleanDefaultFalse;
2349
- privilegedReason?: DescriptionString5to50Bytes;
2350
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2351
- keyringForVerifier: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2352
- }>
2353
- async relinquishCertificate(args: {
2354
- type: Base64String;
2355
- serialNumber: Base64String;
2356
- certifier: PubKeyHex;
2357
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2358
- relinquished: true;
2359
- }>
2360
- async discoverByIdentityKey(args: {
2361
- identityKey: PubKeyHex;
2362
- limit?: PositiveIntegerDefault10Max10000;
2363
- offset?: PositiveIntegerOrZero;
2364
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2365
- totalCertificates: PositiveIntegerOrZero;
2366
- certificates: Array<{
2367
- type: Base64String;
2368
- subject: PubKeyHex;
2369
- serialNumber: Base64String;
2370
- certifier: PubKeyHex;
2371
- revocationOutpoint: OutpointString;
2372
- signature: HexString;
2373
- fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2374
- certifierInfo: {
2375
- name: EntityNameStringMax100Bytes;
2376
- iconUrl: EntityIconURLStringMax500Bytes;
2377
- description: DescriptionString5to50Bytes;
2378
- trust: PositiveIntegerMax10;
2379
- };
2380
- publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2381
- decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
2382
- }>;
2383
- }>
2384
- async discoverByAttributes(args: {
2385
- attributes: Record<CertificateFieldNameUnder50Bytes, string>;
2386
- limit?: PositiveIntegerDefault10Max10000;
2387
- offset?: PositiveIntegerOrZero;
2388
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2389
- totalCertificates: PositiveIntegerOrZero;
2390
- certificates: Array<{
2391
- type: Base64String;
2392
- subject: PubKeyHex;
2393
- serialNumber: Base64String;
2394
- certifier: PubKeyHex;
2395
- revocationOutpoint: OutpointString;
2396
- signature: HexString;
2397
- fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2398
- certifierInfo: {
2399
- name: EntityNameStringMax100Bytes;
2400
- iconUrl: EntityIconURLStringMax500Bytes;
2401
- description: DescriptionString5to50Bytes;
2402
- trust: PositiveIntegerMax10;
2403
- };
2404
- publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2405
- decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
2406
- }>;
2407
- }>
2408
- async isAuthenticated(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2409
- authenticated: boolean;
2410
- }>
2411
- async waitForAuthentication(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2412
- authenticated: true;
2413
- }>
2414
- async getHeight(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2415
- height: PositiveInteger;
2416
- }>
2417
- async getHeaderForHeight(args: {
2418
- height: PositiveInteger;
2419
- }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2420
- header: HexString;
2421
- }>
2422
- async getNetwork(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2423
- network: "mainnet" | "testnet";
2424
- }>
2425
- async getVersion(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2426
- version: VersionString7To30Bytes;
2427
- }>
2428
- }
2429
- ```
2430
-
2431
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2432
-
2433
- ---
2434
- ### Class: XDMSubstrate
2435
-
2436
- Facilitates wallet operations over cross-document messaging.
2437
-
2438
- ```ts
2439
- export default class XDMSubstrate implements Wallet {
2440
- constructor()
2441
- async invoke(call, args): Promise<any>
2442
- async createAction(args: {
2443
- description: DescriptionString5to50Bytes;
2444
- inputs?: Array<{
2445
- tx?: BEEF;
2446
- outpoint: OutpointString;
2447
- unlockingScript?: HexString;
2448
- unlockingScriptLength?: PositiveInteger;
2449
- inputDescription: DescriptionString5to50Bytes;
2450
- sequenceNumber?: PositiveIntegerOrZero;
2451
- }>;
2452
- outputs?: Array<{
2453
- lockingScript: HexString;
2454
- satoshis: SatoshiValue;
2455
- outputDescription: DescriptionString5to50Bytes;
2456
- basket?: BasketStringUnder300Bytes;
2457
- customInstructions?: string;
2458
- tags?: OutputTagStringUnder300Bytes[];
2459
- }>;
2460
- lockTime?: PositiveIntegerOrZero;
2461
- version?: PositiveIntegerOrZero;
2462
- labels?: LabelStringUnder300Bytes[];
2463
- options?: {
2464
- signAndProcess?: BooleanDefaultTrue;
2465
- acceptDelayedBroadcast?: BooleanDefaultTrue;
2466
- trustSelf?: "known";
2467
- knownTxids?: TXIDHexString[];
2468
- returnTXIDOnly?: BooleanDefaultFalse;
2469
- noSend?: BooleanDefaultFalse;
2470
- noSendChange?: OutpointString[];
2471
- sendWith?: TXIDHexString[];
2472
- };
2473
- }): Promise<{
2474
- txid?: TXIDHexString;
2475
- tx?: BEEF;
2476
- noSendChange?: OutpointString[];
2477
- sendWithResults?: Array<{
2478
- txid: TXIDHexString;
2479
- status: "unproven" | "sending" | "failed";
2480
- }>;
2481
- signableTransaction?: {
2482
- tx: BEEF;
2483
- reference: Base64String;
2484
- };
2485
- }>
2486
- async signAction(args: {
2487
- spends: Record<PositiveIntegerOrZero, {
2488
- unlockingScript: HexString;
2489
- sequenceNumber?: PositiveIntegerOrZero;
2490
- }>;
2491
- reference: Base64String;
2492
- options?: {
2493
- acceptDelayedBroadcast?: BooleanDefaultTrue;
2494
- returnTXIDOnly?: BooleanDefaultFalse;
2495
- noSend?: BooleanDefaultFalse;
2496
- noSendChange?: OutpointString[];
2497
- sendWith: TXIDHexString[];
2498
- };
2499
- }): Promise<{
2500
- txid?: TXIDHexString;
2501
- tx?: BEEF;
2502
- noSendChange?: OutpointString[];
2503
- sendWithResults?: Array<{
2504
- txid: TXIDHexString;
2505
- status: "unproven" | "sending" | "failed";
2506
- }>;
2507
- }>
2508
- async abortAction(args: {
2509
- reference: Base64String;
2510
- }): Promise<{
2511
- aborted: true;
2512
- }>
2513
- async listActions(args: {
2514
- labels: LabelStringUnder300Bytes[];
2515
- labelQueryMode?: "any" | "all";
2516
- includeLabels?: BooleanDefaultFalse;
2517
- includeInputs?: BooleanDefaultFalse;
2518
- includeInputSourceLockingScripts?: BooleanDefaultFalse;
2519
- includeInputUnlockingScripts?: BooleanDefaultFalse;
2520
- includeOutputs?: BooleanDefaultFalse;
2521
- includeOutputLockingScripts?: BooleanDefaultFalse;
2522
- limit?: PositiveIntegerDefault10Max10000;
2523
- offset?: PositiveIntegerOrZero;
2524
- }): Promise<{
2525
- totalActions: PositiveIntegerOrZero;
2526
- actions: Array<{
2527
- txid: TXIDHexString;
2528
- satoshis: SatoshiValue;
2529
- status: "completed" | "unprocessed" | "sending" | "unproven" | "unsigned" | "nosend" | "nonfinal";
2530
- isOutgoing: boolean;
2531
- description: DescriptionString5to50Bytes;
2532
- labels?: LabelStringUnder300Bytes[];
2533
- version: PositiveIntegerOrZero;
2534
- lockTime: PositiveIntegerOrZero;
2535
- inputs?: Array<{
2536
- sourceOutpoint: OutpointString;
2537
- sourceSatoshis: SatoshiValue;
2538
- sourceLockingScript?: HexString;
2539
- unlockingScript?: HexString;
2540
- inputDescription: DescriptionString5to50Bytes;
2541
- sequenceNumber: PositiveIntegerOrZero;
2542
- }>;
2543
- outputs?: Array<{
2544
- outputIndex: PositiveIntegerOrZero;
2545
- satoshis: SatoshiValue;
2546
- lockingScript?: HexString;
2547
- spendable: boolean;
2548
- outputDescription: DescriptionString5to50Bytes;
2549
- basket: BasketStringUnder300Bytes;
2550
- tags: OutputTagStringUnder300Bytes[];
2551
- customInstructions?: string;
2552
- }>;
2553
- }>;
2554
- }>
2555
- async internalizeAction(args: {
2556
- tx: BEEF;
2557
- outputs: Array<{
2558
- outputIndex: PositiveIntegerOrZero;
2559
- protocol: "wallet payment" | "basket insertion";
2560
- paymentRemittance?: {
2561
- derivationPrefix: Base64String;
2562
- derivationSuffix: Base64String;
2563
- senderIdentityKey: PubKeyHex;
2564
- };
2565
- insertionRemittance?: {
2566
- basket: BasketStringUnder300Bytes;
2567
- customInstructions?: string;
2568
- tags?: OutputTagStringUnder300Bytes[];
2569
- };
2570
- }>;
2571
- description: DescriptionString5to50Bytes;
2572
- labels?: LabelStringUnder300Bytes[];
2573
2306
  }): Promise<{
2574
- accepted: true;
2307
+ valid: true;
2575
2308
  }>
2576
- async listOutputs(args: {
2577
- basket: BasketStringUnder300Bytes;
2578
- tags?: OutputTagStringUnder300Bytes[];
2579
- tagQueryMode?: "all" | "any";
2580
- include?: "locking scripts" | "entire transactions";
2581
- includeCustomInstructions?: BooleanDefaultFalse;
2582
- includeTags?: BooleanDefaultFalse;
2583
- includeLabels?: BooleanDefaultFalse;
2309
+ async acquireCertificate(args: AcquireCertificateArgs): Promise<AcquireCertificateResult>
2310
+ async listCertificates(args: {
2311
+ certifiers: PubKeyHex[];
2312
+ types: Base64String[];
2584
2313
  limit?: PositiveIntegerDefault10Max10000;
2585
2314
  offset?: PositiveIntegerOrZero;
2315
+ privileged?: BooleanDefaultFalse;
2316
+ privilegedReason?: DescriptionString5to50Bytes;
2317
+ }): Promise<ListCertificatesResult>
2318
+ async proveCertificate(args: ProveCertificateArgs): Promise<ProveCertificateResult>
2319
+ async relinquishCertificate(args: {
2320
+ type: Base64String;
2321
+ serialNumber: Base64String;
2322
+ certifier: PubKeyHex;
2586
2323
  }): Promise<{
2587
- totalOutputs: PositiveIntegerOrZero;
2588
- outputs: Array<{
2589
- outpoint: OutpointString;
2590
- satoshis: SatoshiValue;
2591
- lockingScript?: HexString;
2592
- tx?: BEEF;
2593
- spendable: true;
2594
- customInstructions?: string;
2595
- tags?: OutputTagStringUnder300Bytes[];
2596
- labels?: LabelStringUnder300Bytes[];
2597
- }>;
2324
+ relinquished: true;
2325
+ }>
2326
+ async discoverByIdentityKey(args: {
2327
+ identityKey: PubKeyHex;
2328
+ limit?: PositiveIntegerDefault10Max10000;
2329
+ offset?: PositiveIntegerOrZero;
2330
+ }): Promise<DiscoverCertificatesResult>
2331
+ async discoverByAttributes(args: {
2332
+ attributes: Record<CertificateFieldNameUnder50Bytes, string>;
2333
+ limit?: PositiveIntegerDefault10Max10000;
2334
+ offset?: PositiveIntegerOrZero;
2335
+ }): Promise<DiscoverCertificatesResult>
2336
+ async isAuthenticated(args: {} = {}): Promise<{
2337
+ authenticated: boolean;
2338
+ }>
2339
+ async waitForAuthentication(args: {} = {}): Promise<{
2340
+ authenticated: true;
2341
+ }>
2342
+ async getHeight(args: {} = {}): Promise<{
2343
+ height: PositiveInteger;
2344
+ }>
2345
+ async getHeaderForHeight(args: {
2346
+ height: PositiveInteger;
2347
+ }): Promise<{
2348
+ header: HexString;
2349
+ }>
2350
+ async getNetwork(args: {} = {}): Promise<{
2351
+ network: "mainnet" | "testnet";
2352
+ }>
2353
+ async getVersion(args: {} = {}): Promise<{
2354
+ version: VersionString7To30Bytes;
2355
+ }>
2356
+ }
2357
+ ```
2358
+
2359
+ See also: [AcquireCertificateArgs](#interface-acquirecertificateargs), [AcquireCertificateResult](#interface-acquirecertificateresult), [Base64String](#type-base64string), [BasketStringUnder300Bytes](#type-basketstringunder300bytes), [BooleanDefaultFalse](#type-booleandefaultfalse), [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), [SignActionArgs](#interface-signactionargs), [SignActionResult](#interface-signactionresult), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
2360
+
2361
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2362
+
2363
+ ---
2364
+ ### Class: WalletError
2365
+
2366
+ ```ts
2367
+ export class WalletError extends Error {
2368
+ code: number;
2369
+ isError: boolean = true;
2370
+ constructor(message: string, code = 1, stack?: string)
2371
+ }
2372
+ ```
2373
+
2374
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2375
+
2376
+ ---
2377
+ ### Class: WalletWireProcessor
2378
+
2379
+ Processes incoming wallet calls received over a wallet wire, with a given wallet.
2380
+
2381
+ ```ts
2382
+ export default class WalletWireProcessor implements WalletWire {
2383
+ wallet: Wallet;
2384
+ constructor(wallet: Wallet)
2385
+ async transmitToWallet(message: number[]): Promise<number[]>
2386
+ }
2387
+ ```
2388
+
2389
+ See also: [Wallet](#interface-wallet), [WalletWire](#interface-walletwire)
2390
+
2391
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2392
+
2393
+ ---
2394
+ ### Class: WalletWireTransceiver
2395
+
2396
+ A way to make remote calls to a wallet over a wallet wire.
2397
+
2398
+ ```ts
2399
+ export default class WalletWireTransceiver implements Wallet {
2400
+ wire: WalletWire;
2401
+ constructor(wire: WalletWire)
2402
+ async createAction(args: CreateActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateActionResult>
2403
+ async signAction(args: SignActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<SignActionResult>
2404
+ async abortAction(args: {
2405
+ reference: Base64String;
2406
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2407
+ aborted: true;
2408
+ }>
2409
+ async listActions(args: ListActionsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListActionsResult>
2410
+ async internalizeAction(args: InternalizeActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2411
+ accepted: true;
2598
2412
  }>
2413
+ async listOutputs(args: ListOutputsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListOutputsResult>
2599
2414
  async relinquishOutput(args: {
2600
2415
  basket: BasketStringUnder300Bytes;
2601
2416
  output: OutpointString;
2602
- }): Promise<{
2417
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2603
2418
  relinquished: true;
2604
2419
  }>
2605
2420
  async getPublicKey(args: {
2421
+ seekPermission?: BooleanDefaultTrue;
2606
2422
  identityKey?: true;
2607
2423
  protocolID?: [
2608
2424
  0 | 1 | 2,
@@ -2613,7 +2429,7 @@ export default class XDMSubstrate implements Wallet {
2613
2429
  privilegedReason?: DescriptionString5to50Bytes;
2614
2430
  counterparty?: PubKeyHex | "self" | "anyone";
2615
2431
  forSelf?: BooleanDefaultFalse;
2616
- }): Promise<{
2432
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2617
2433
  publicKey: PubKeyHex;
2618
2434
  }>
2619
2435
  async revealCounterpartyKeyLinkage(args: {
@@ -2621,13 +2437,13 @@ export default class XDMSubstrate implements Wallet {
2621
2437
  verifier: PubKeyHex;
2622
2438
  privilegedReason?: DescriptionString5to50Bytes;
2623
2439
  privileged?: BooleanDefaultFalse;
2624
- }): Promise<{
2440
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2625
2441
  prover: PubKeyHex;
2626
2442
  verifier: PubKeyHex;
2627
2443
  counterparty: PubKeyHex;
2628
2444
  revelationTime: ISOTimestampString;
2629
2445
  encryptedLinkage: Byte[];
2630
- encryptedLinkageProof: Byte[];
2446
+ encryptedLinkageProof: number[];
2631
2447
  }>
2632
2448
  async revealSpecificKeyLinkage(args: {
2633
2449
  counterparty: PubKeyHex;
@@ -2639,7 +2455,7 @@ export default class XDMSubstrate implements Wallet {
2639
2455
  keyID: KeyIDStringUnder800Bytes;
2640
2456
  privilegedReason?: DescriptionString5to50Bytes;
2641
2457
  privileged?: BooleanDefaultFalse;
2642
- }): Promise<{
2458
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2643
2459
  prover: PubKeyHex;
2644
2460
  verifier: PubKeyHex;
2645
2461
  counterparty: PubKeyHex;
@@ -2653,6 +2469,7 @@ export default class XDMSubstrate implements Wallet {
2653
2469
  proofType: Byte;
2654
2470
  }>
2655
2471
  async encrypt(args: {
2472
+ seekPermission?: BooleanDefaultTrue;
2656
2473
  plaintext: Byte[];
2657
2474
  protocolID: [
2658
2475
  0 | 1 | 2,
@@ -2662,10 +2479,11 @@ export default class XDMSubstrate implements Wallet {
2662
2479
  privilegedReason?: DescriptionString5to50Bytes;
2663
2480
  counterparty?: PubKeyHex | "self" | "anyone";
2664
2481
  privileged?: BooleanDefaultFalse;
2665
- }): Promise<{
2482
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2666
2483
  ciphertext: Byte[];
2667
2484
  }>
2668
2485
  async decrypt(args: {
2486
+ seekPermission?: BooleanDefaultTrue;
2669
2487
  ciphertext: Byte[];
2670
2488
  protocolID: [
2671
2489
  0 | 1 | 2,
@@ -2675,10 +2493,11 @@ export default class XDMSubstrate implements Wallet {
2675
2493
  privilegedReason?: DescriptionString5to50Bytes;
2676
2494
  counterparty?: PubKeyHex | "self" | "anyone";
2677
2495
  privileged?: BooleanDefaultFalse;
2678
- }): Promise<{
2496
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2679
2497
  plaintext: Byte[];
2680
2498
  }>
2681
2499
  async createHmac(args: {
2500
+ seekPermission?: BooleanDefaultTrue;
2682
2501
  data: Byte[];
2683
2502
  protocolID: [
2684
2503
  0 | 1 | 2,
@@ -2688,10 +2507,11 @@ export default class XDMSubstrate implements Wallet {
2688
2507
  privilegedReason?: DescriptionString5to50Bytes;
2689
2508
  counterparty?: PubKeyHex | "self" | "anyone";
2690
2509
  privileged?: BooleanDefaultFalse;
2691
- }): Promise<{
2510
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2692
2511
  hmac: Byte[];
2693
2512
  }>
2694
2513
  async verifyHmac(args: {
2514
+ seekPermission?: BooleanDefaultTrue;
2695
2515
  data: Byte[];
2696
2516
  hmac: Byte[];
2697
2517
  protocolID: [
@@ -2702,10 +2522,11 @@ export default class XDMSubstrate implements Wallet {
2702
2522
  privilegedReason?: DescriptionString5to50Bytes;
2703
2523
  counterparty?: PubKeyHex | "self" | "anyone";
2704
2524
  privileged?: BooleanDefaultFalse;
2705
- }): Promise<{
2525
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2706
2526
  valid: true;
2707
2527
  }>
2708
2528
  async createSignature(args: {
2529
+ seekPermission?: BooleanDefaultTrue;
2709
2530
  data?: Byte[];
2710
2531
  hashToDirectlySign?: Byte[];
2711
2532
  protocolID: [
@@ -2716,10 +2537,11 @@ export default class XDMSubstrate implements Wallet {
2716
2537
  privilegedReason?: DescriptionString5to50Bytes;
2717
2538
  counterparty?: PubKeyHex | "self" | "anyone";
2718
2539
  privileged?: BooleanDefaultFalse;
2719
- }): Promise<{
2540
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2720
2541
  signature: Byte[];
2721
2542
  }>
2722
2543
  async verifySignature(args: {
2544
+ seekPermission?: BooleanDefaultTrue;
2723
2545
  data?: Byte[];
2724
2546
  hashToDirectlyVerify?: Byte[];
2725
2547
  signature: Byte[];
@@ -2732,30 +2554,10 @@ export default class XDMSubstrate implements Wallet {
2732
2554
  counterparty?: PubKeyHex | "self" | "anyone";
2733
2555
  forSelf?: BooleanDefaultFalse;
2734
2556
  privileged?: BooleanDefaultFalse;
2735
- }): Promise<{
2557
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2736
2558
  valid: true;
2737
2559
  }>
2738
- async acquireCertificate(args: {
2739
- type: Base64String;
2740
- subject: PubKeyHex;
2741
- serialNumber: Base64String;
2742
- revocationOutpoint: OutpointString;
2743
- signature: HexString;
2744
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2745
- certifier: PubKeyHex;
2746
- keyringRevealer: PubKeyHex | "certifier";
2747
- keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2748
- acquisitionProtocol: "direct" | "issuance";
2749
- certifierUrl?: string;
2750
- }): Promise<{
2751
- type: Base64String;
2752
- subject: PubKeyHex;
2753
- serialNumber: Base64String;
2754
- certifier: PubKeyHex;
2755
- revocationOutpoint: OutpointString;
2756
- signature: HexString;
2757
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2758
- }>
2560
+ async acquireCertificate(args: AcquireCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AcquireCertificateResult>
2759
2561
  async listCertificates(args: {
2760
2562
  certifiers: PubKeyHex[];
2761
2563
  types: Base64String[];
@@ -2763,128 +2565,66 @@ export default class XDMSubstrate implements Wallet {
2763
2565
  offset?: PositiveIntegerOrZero;
2764
2566
  privileged?: BooleanDefaultFalse;
2765
2567
  privilegedReason?: DescriptionString5to50Bytes;
2766
- }): Promise<{
2767
- totalCertificates: PositiveIntegerOrZero;
2768
- certificates: Array<{
2769
- type: Base64String;
2770
- subject: PubKeyHex;
2771
- serialNumber: Base64String;
2772
- certifier: PubKeyHex;
2773
- revocationOutpoint: OutpointString;
2774
- signature: HexString;
2775
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2776
- }>;
2777
- }>
2778
- async proveCertificate(args: {
2779
- certificate: {
2780
- type: Base64String;
2781
- subject: PubKeyHex;
2782
- serialNumber: Base64String;
2783
- certifier: PubKeyHex;
2784
- revocationOutpoint: OutpointString;
2785
- signature: HexString;
2786
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
2787
- };
2788
- fieldsToReveal: CertificateFieldNameUnder50Bytes[];
2789
- verifier: PubKeyHex;
2790
- privileged?: BooleanDefaultFalse;
2791
- privilegedReason?: DescriptionString5to50Bytes;
2792
- }): Promise<{
2793
- keyringForVerifier: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2794
- }>
2568
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListCertificatesResult>
2569
+ async proveCertificate(args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ProveCertificateResult>
2795
2570
  async relinquishCertificate(args: {
2796
2571
  type: Base64String;
2797
2572
  serialNumber: Base64String;
2798
2573
  certifier: PubKeyHex;
2799
- }): Promise<{
2574
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2800
2575
  relinquished: true;
2801
2576
  }>
2802
2577
  async discoverByIdentityKey(args: {
2578
+ seekPermission?: BooleanDefaultTrue;
2803
2579
  identityKey: PubKeyHex;
2804
2580
  limit?: PositiveIntegerDefault10Max10000;
2805
2581
  offset?: PositiveIntegerOrZero;
2806
- }): Promise<{
2807
- totalCertificates: PositiveIntegerOrZero;
2808
- certificates: Array<{
2809
- type: Base64String;
2810
- subject: PubKeyHex;
2811
- serialNumber: Base64String;
2812
- certifier: PubKeyHex;
2813
- revocationOutpoint: OutpointString;
2814
- signature: HexString;
2815
- fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2816
- certifierInfo: {
2817
- name: EntityNameStringMax100Bytes;
2818
- iconUrl: EntityIconURLStringMax500Bytes;
2819
- description: DescriptionString5to50Bytes;
2820
- trust: PositiveIntegerMax10;
2821
- };
2822
- publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2823
- decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
2824
- }>;
2825
- }>
2582
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
2826
2583
  async discoverByAttributes(args: {
2584
+ seekPermission?: BooleanDefaultTrue;
2827
2585
  attributes: Record<CertificateFieldNameUnder50Bytes, string>;
2828
2586
  limit?: PositiveIntegerDefault10Max10000;
2829
2587
  offset?: PositiveIntegerOrZero;
2830
- }): Promise<{
2831
- totalCertificates: PositiveIntegerOrZero;
2832
- certificates: Array<{
2833
- type: Base64String;
2834
- subject: PubKeyHex;
2835
- serialNumber: Base64String;
2836
- certifier: PubKeyHex;
2837
- revocationOutpoint: OutpointString;
2838
- signature: HexString;
2839
- fields: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2840
- certifierInfo: {
2841
- name: EntityNameStringMax100Bytes;
2842
- iconUrl: EntityIconURLStringMax500Bytes;
2843
- description: DescriptionString5to50Bytes;
2844
- trust: PositiveIntegerMax10;
2845
- };
2846
- publiclyRevealedKeyring: Record<CertificateFieldNameUnder50Bytes, Base64String>;
2847
- decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
2848
- }>;
2849
- }>
2850
- async isAuthenticated(args: {}): Promise<{
2588
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
2589
+ async isAuthenticated(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2851
2590
  authenticated: boolean;
2852
2591
  }>
2853
- async waitForAuthentication(args: {}): Promise<{
2592
+ async waitForAuthentication(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2854
2593
  authenticated: true;
2855
2594
  }>
2856
- async getHeight(args: {}): Promise<{
2595
+ async getHeight(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2857
2596
  height: PositiveInteger;
2858
2597
  }>
2859
2598
  async getHeaderForHeight(args: {
2860
2599
  height: PositiveInteger;
2861
- }): Promise<{
2600
+ }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2862
2601
  header: HexString;
2863
2602
  }>
2864
- async getNetwork(args: {}): Promise<{
2603
+ async getNetwork(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2865
2604
  network: "mainnet" | "testnet";
2866
2605
  }>
2867
- async getVersion(args: {}): Promise<{
2606
+ async getVersion(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2868
2607
  version: VersionString7To30Bytes;
2869
2608
  }>
2870
2609
  }
2871
2610
  ```
2872
2611
 
2612
+ 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), [SignActionArgs](#interface-signactionargs), [SignActionResult](#interface-signactionresult), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [WalletWire](#interface-walletwire), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
2613
+
2873
2614
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2874
2615
 
2875
2616
  ---
2876
- ### Class: WalletWireTransceiver
2617
+ ### Class: WindowCWISubstrate
2877
2618
 
2878
- A way to make remote calls to a wallet over a wallet wire.
2619
+ Facilitates wallet operations over the window.CWI interface.
2879
2620
 
2880
2621
  ```ts
2881
- export default class WalletWireTransceiver implements Wallet {
2882
- wire: WalletWire;
2883
- constructor(wire: WalletWire)
2622
+ export default class WindowCWISubstrate implements Wallet {
2623
+ constructor()
2884
2624
  async createAction(args: {
2885
2625
  description: DescriptionString5to50Bytes;
2886
- inputBEEF?: BEEF;
2887
2626
  inputs?: Array<{
2627
+ tx?: BEEF;
2888
2628
  outpoint: OutpointString;
2889
2629
  unlockingScript?: HexString;
2890
2630
  unlockingScriptLength?: PositiveInteger;
@@ -2911,7 +2651,6 @@ export default class WalletWireTransceiver implements Wallet {
2911
2651
  noSend?: BooleanDefaultFalse;
2912
2652
  noSendChange?: OutpointString[];
2913
2653
  sendWith?: TXIDHexString[];
2914
- randomizeOutputs?: BooleanDefaultTrue;
2915
2654
  };
2916
2655
  }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
2917
2656
  txid?: TXIDHexString;
@@ -2954,7 +2693,6 @@ export default class WalletWireTransceiver implements Wallet {
2954
2693
  aborted: true;
2955
2694
  }>
2956
2695
  async listActions(args: {
2957
- seekPermission?: BooleanDefaultTrue;
2958
2696
  labels: LabelStringUnder300Bytes[];
2959
2697
  labelQueryMode?: "any" | "all";
2960
2698
  includeLabels?: BooleanDefaultFalse;
@@ -2997,8 +2735,7 @@ export default class WalletWireTransceiver implements Wallet {
2997
2735
  }>;
2998
2736
  }>
2999
2737
  async internalizeAction(args: {
3000
- seekPermission?: BooleanDefaultTrue;
3001
- tx: AtomicBEEF;
2738
+ tx: BEEF;
3002
2739
  outputs: Array<{
3003
2740
  outputIndex: PositiveIntegerOrZero;
3004
2741
  protocol: "wallet payment" | "basket insertion";
@@ -3019,7 +2756,6 @@ export default class WalletWireTransceiver implements Wallet {
3019
2756
  accepted: true;
3020
2757
  }>
3021
2758
  async listOutputs(args: {
3022
- seekPermission?: BooleanDefaultTrue;
3023
2759
  basket: BasketStringUnder300Bytes;
3024
2760
  tags?: OutputTagStringUnder300Bytes[];
3025
2761
  tagQueryMode?: "all" | "any";
@@ -3031,11 +2767,11 @@ export default class WalletWireTransceiver implements Wallet {
3031
2767
  offset?: PositiveIntegerOrZero;
3032
2768
  }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
3033
2769
  totalOutputs: PositiveIntegerOrZero;
3034
- BEEF?: BEEF;
3035
2770
  outputs: Array<{
3036
2771
  outpoint: OutpointString;
3037
2772
  satoshis: SatoshiValue;
3038
2773
  lockingScript?: HexString;
2774
+ tx?: BEEF;
3039
2775
  spendable: true;
3040
2776
  customInstructions?: string;
3041
2777
  tags?: OutputTagStringUnder300Bytes[];
@@ -3049,7 +2785,6 @@ export default class WalletWireTransceiver implements Wallet {
3049
2785
  relinquished: true;
3050
2786
  }>
3051
2787
  async getPublicKey(args: {
3052
- seekPermission?: BooleanDefaultTrue;
3053
2788
  identityKey?: true;
3054
2789
  protocolID?: [
3055
2790
  0 | 1 | 2,
@@ -3074,7 +2809,7 @@ export default class WalletWireTransceiver implements Wallet {
3074
2809
  counterparty: PubKeyHex;
3075
2810
  revelationTime: ISOTimestampString;
3076
2811
  encryptedLinkage: Byte[];
3077
- encryptedLinkageProof: number[];
2812
+ encryptedLinkageProof: Byte[];
3078
2813
  }>
3079
2814
  async revealSpecificKeyLinkage(args: {
3080
2815
  counterparty: PubKeyHex;
@@ -3100,7 +2835,6 @@ export default class WalletWireTransceiver implements Wallet {
3100
2835
  proofType: Byte;
3101
2836
  }>
3102
2837
  async encrypt(args: {
3103
- seekPermission?: BooleanDefaultTrue;
3104
2838
  plaintext: Byte[];
3105
2839
  protocolID: [
3106
2840
  0 | 1 | 2,
@@ -3114,7 +2848,6 @@ export default class WalletWireTransceiver implements Wallet {
3114
2848
  ciphertext: Byte[];
3115
2849
  }>
3116
2850
  async decrypt(args: {
3117
- seekPermission?: BooleanDefaultTrue;
3118
2851
  ciphertext: Byte[];
3119
2852
  protocolID: [
3120
2853
  0 | 1 | 2,
@@ -3128,7 +2861,6 @@ export default class WalletWireTransceiver implements Wallet {
3128
2861
  plaintext: Byte[];
3129
2862
  }>
3130
2863
  async createHmac(args: {
3131
- seekPermission?: BooleanDefaultTrue;
3132
2864
  data: Byte[];
3133
2865
  protocolID: [
3134
2866
  0 | 1 | 2,
@@ -3142,7 +2874,6 @@ export default class WalletWireTransceiver implements Wallet {
3142
2874
  hmac: Byte[];
3143
2875
  }>
3144
2876
  async verifyHmac(args: {
3145
- seekPermission?: BooleanDefaultTrue;
3146
2877
  data: Byte[];
3147
2878
  hmac: Byte[];
3148
2879
  protocolID: [
@@ -3157,7 +2888,6 @@ export default class WalletWireTransceiver implements Wallet {
3157
2888
  valid: true;
3158
2889
  }>
3159
2890
  async createSignature(args: {
3160
- seekPermission?: BooleanDefaultTrue;
3161
2891
  data?: Byte[];
3162
2892
  hashToDirectlySign?: Byte[];
3163
2893
  protocolID: [
@@ -3172,7 +2902,6 @@ export default class WalletWireTransceiver implements Wallet {
3172
2902
  signature: Byte[];
3173
2903
  }>
3174
2904
  async verifySignature(args: {
3175
- seekPermission?: BooleanDefaultTrue;
3176
2905
  data?: Byte[];
3177
2906
  hashToDirectlyVerify?: Byte[];
3178
2907
  signature: Byte[];
@@ -3190,17 +2919,16 @@ export default class WalletWireTransceiver implements Wallet {
3190
2919
  }>
3191
2920
  async acquireCertificate(args: {
3192
2921
  type: Base64String;
2922
+ subject: PubKeyHex;
2923
+ serialNumber: Base64String;
2924
+ revocationOutpoint: OutpointString;
2925
+ signature: HexString;
2926
+ fields: Record<CertificateFieldNameUnder50Bytes, string>;
3193
2927
  certifier: PubKeyHex;
2928
+ keyringRevealer: PubKeyHex | "certifier";
2929
+ keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
3194
2930
  acquisitionProtocol: "direct" | "issuance";
3195
- fields: Record<CertificateFieldNameUnder50Bytes, string>;
3196
- serialNumber?: Base64String;
3197
- revocationOutpoint?: OutpointString;
3198
- signature?: HexString;
3199
2931
  certifierUrl?: string;
3200
- keyringRevealer?: PubKeyHex | "certifier";
3201
- keyringForSubject?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
3202
- privileged?: BooleanDefaultFalse;
3203
- privilegedReason?: DescriptionString5to50Bytes;
3204
2932
  }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{
3205
2933
  type: Base64String;
3206
2934
  subject: PubKeyHex;
@@ -3254,7 +2982,6 @@ export default class WalletWireTransceiver implements Wallet {
3254
2982
  relinquished: true;
3255
2983
  }>
3256
2984
  async discoverByIdentityKey(args: {
3257
- seekPermission?: BooleanDefaultTrue;
3258
2985
  identityKey: PubKeyHex;
3259
2986
  limit?: PositiveIntegerDefault10Max10000;
3260
2987
  offset?: PositiveIntegerOrZero;
@@ -3279,7 +3006,6 @@ export default class WalletWireTransceiver implements Wallet {
3279
3006
  }>;
3280
3007
  }>
3281
3008
  async discoverByAttributes(args: {
3282
- seekPermission?: BooleanDefaultTrue;
3283
3009
  attributes: Record<CertificateFieldNameUnder50Bytes, string>;
3284
3010
  limit?: PositiveIntegerDefault10Max10000;
3285
3011
  offset?: PositiveIntegerOrZero;
@@ -3326,34 +3052,19 @@ export default class WalletWireTransceiver implements Wallet {
3326
3052
  }
3327
3053
  ```
3328
3054
 
3329
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3330
-
3331
- ---
3332
- ### Class: HTTPWalletWire
3333
-
3334
- ```ts
3335
- export default class HTTPWalletWire implements WalletWire {
3336
- baseUrl: string;
3337
- httpClient: typeof fetch;
3338
- originator: string | undefined;
3339
- constructor(originator: string | undefined, baseUrl: string = "http://localhost:3301", httpClient = fetch)
3340
- async transmitToWallet(message: number[]): Promise<number[]>
3341
- }
3342
- ```
3055
+ 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), [TXIDHexString](#type-txidhexstring), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
3343
3056
 
3344
3057
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3345
3058
 
3346
3059
  ---
3347
- ### Class: WalletClient
3060
+ ### Class: XDMSubstrate
3348
3061
 
3349
- The SDK is how applications communicate with wallets over a communications substrate.
3062
+ Facilitates wallet operations over cross-document messaging.
3350
3063
 
3351
3064
  ```ts
3352
- export default class WalletClient implements Wallet {
3353
- public substrate: "auto" | Wallet;
3354
- originator?: OriginatorDomainNameStringUnder250Bytes;
3355
- constructor(substrate: "auto" | "Cicada" | "XDM" | "window.CWI" | Wallet = "auto", originator?: OriginatorDomainNameStringUnder250Bytes)
3356
- async connectToSubstrate()
3065
+ export default class XDMSubstrate implements Wallet {
3066
+ constructor(domain: string = "*")
3067
+ async invoke(call: CallType, args: any): Promise<any>
3357
3068
  async createAction(args: {
3358
3069
  description: DescriptionString5to50Bytes;
3359
3070
  inputs?: Array<{
@@ -3762,13 +3473,13 @@ export default class WalletClient implements Wallet {
3762
3473
  decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>;
3763
3474
  }>;
3764
3475
  }>
3765
- async isAuthenticated(args: {} = {}): Promise<{
3476
+ async isAuthenticated(args: {}): Promise<{
3766
3477
  authenticated: boolean;
3767
3478
  }>
3768
- async waitForAuthentication(args: {} = {}): Promise<{
3479
+ async waitForAuthentication(args: {}): Promise<{
3769
3480
  authenticated: true;
3770
3481
  }>
3771
- async getHeight(args: {} = {}): Promise<{
3482
+ async getHeight(args: {}): Promise<{
3772
3483
  height: PositiveInteger;
3773
3484
  }>
3774
3485
  async getHeaderForHeight(args: {
@@ -3776,29 +3487,16 @@ export default class WalletClient implements Wallet {
3776
3487
  }): Promise<{
3777
3488
  header: HexString;
3778
3489
  }>
3779
- async getNetwork(args: {} = {}): Promise<{
3490
+ async getNetwork(args: {}): Promise<{
3780
3491
  network: "mainnet" | "testnet";
3781
3492
  }>
3782
- async getVersion(args: {} = {}): Promise<{
3493
+ async getVersion(args: {}): Promise<{
3783
3494
  version: VersionString7To30Bytes;
3784
3495
  }>
3785
3496
  }
3786
3497
  ```
3787
3498
 
3788
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3789
-
3790
- ---
3791
- ### Class: WalletWireProcessor
3792
-
3793
- Processes incoming wallet calls received over a wallet wire, with a given wallet.
3794
-
3795
- ```ts
3796
- export default class WalletWireProcessor implements WalletWire {
3797
- wallet: Wallet;
3798
- constructor(wallet: Wallet)
3799
- async transmitToWallet(message: number[]): Promise<number[]>
3800
- }
3801
- ```
3499
+ 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), [TXIDHexString](#type-txidhexstring), [VersionString7To30Bytes](#type-versionstring7to30bytes), [Wallet](#interface-wallet), [decrypt](#variable-decrypt), [encrypt](#variable-encrypt)
3802
3500
 
3803
3501
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3804
3502
 
@@ -3809,372 +3507,386 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
3809
3507
 
3810
3508
  | | | |
3811
3509
  | --- | --- | --- |
3812
- | [AcquisitionProtocol](#type-acquisitionprotocol) | [EntityNameStringMax100Bytes](#type-entitynamestringmax100characters) | [PositiveIntegerMax10](#type-positiveintegermax10) |
3813
- | [ActionStatus](#type-actionstatus) | [ErrorCodeString10To40Bytes](#type-errorcodestring10to40characters) | [PositiveIntegerOrZero](#type-positiveintegerorzero) |
3814
- | [AtomicBEEF](#type-atomicbeef) | [ErrorDescriptionString20To200Bytes](#type-errordescriptionstring20to200characters) | [ProtocolString5To400Bytes](#type-protocolstring5to400characters) |
3510
+ | [AcquisitionProtocol](#type-acquisitionprotocol) | [EntityNameStringMax100Bytes](#type-entitynamestringmax100bytes) | [PositiveIntegerMax10](#type-positiveintegermax10) |
3511
+ | [ActionStatus](#type-actionstatus) | [ErrorCodeString10To40Bytes](#type-errorcodestring10to40bytes) | [PositiveIntegerOrZero](#type-positiveintegerorzero) |
3512
+ | [AtomicBEEF](#type-atomicbeef) | [ErrorDescriptionString20To200Bytes](#type-errordescriptionstring20to200bytes) | [ProtocolString5To400Bytes](#type-protocolstring5to400bytes) |
3815
3513
  | [BEEF](#type-beef) | [HexString](#type-hexstring) | [PubKeyHex](#type-pubkeyhex) |
3816
3514
  | [Base64String](#type-base64string) | [ISOTimestampString](#type-isotimestampstring) | [SatoshiValue](#type-satoshivalue) |
3817
- | [BasketStringUnder300Bytes](#type-basketstringunder300characters) | [KeyIDStringUnder800Bytes](#type-keyidstringunder800characters) | [TXIDHexString](#type-txidhexstring) |
3515
+ | [BasketStringUnder300Bytes](#type-basketstringunder300bytes) | [KeyIDStringUnder800Bytes](#type-keyidstringunder800bytes) | [TXIDHexString](#type-txidhexstring) |
3818
3516
  | [BooleanDefaultFalse](#type-booleandefaultfalse) | [KeyringRevealer](#type-keyringrevealer) | [TrustSelf](#type-trustself) |
3819
- | [BooleanDefaultTrue](#type-booleandefaulttrue) | [LabelStringUnder300Bytes](#type-labelstringunder300characters) | [VersionString7To30Bytes](#type-versionstring7to30characters) |
3820
- | [Byte](#type-byte) | [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250characters) | [WalletCounterparty](#type-walletcounterparty) |
3517
+ | [BooleanDefaultTrue](#type-booleandefaulttrue) | [LabelStringUnder300Bytes](#type-labelstringunder300bytes) | [VersionString7To30Bytes](#type-versionstring7to30bytes) |
3518
+ | [Byte](#type-byte) | [OriginatorDomainNameStringUnder250Bytes](#type-originatordomainnamestringunder250bytes) | [WalletCounterparty](#type-walletcounterparty) |
3821
3519
  | [CallType](#type-calltype) | [OutpointString](#type-outpointstring) | [WalletErrorCode](#type-walleterrorcode) |
3822
- | [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50characters) | [OutputTagStringUnder300Bytes](#type-outputtagstringunder300characters) | [WalletNetwork](#type-walletnetwork) |
3823
- | [DescriptionString5to50Bytes](#type-descriptionstring5to50characters) | [PositiveInteger](#type-positiveinteger) | [WalletProtocol](#type-walletprotocol) |
3824
- | [EntityIconURLStringMax500Bytes](#type-entityiconurlstringmax500characters) | [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000) | |
3520
+ | [CertificateFieldNameUnder50Bytes](#type-certificatefieldnameunder50bytes) | [OutputTagStringUnder300Bytes](#type-outputtagstringunder300bytes) | [WalletNetwork](#type-walletnetwork) |
3521
+ | [DescriptionString5to50Bytes](#type-descriptionstring5to50bytes) | [PositiveInteger](#type-positiveinteger) | [WalletProtocol](#type-walletprotocol) |
3522
+ | [EntityIconURLStringMax500Bytes](#type-entityiconurlstringmax500bytes) | [PositiveIntegerDefault10Max10000](#type-positiveintegerdefault10max10000) | |
3825
3523
 
3826
3524
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3827
3525
 
3828
3526
  ---
3829
3527
 
3830
- ### Type: BooleanDefaultFalse
3528
+ ### Type: AcquisitionProtocol
3831
3529
 
3832
3530
  ```ts
3833
- export type BooleanDefaultFalse = boolean
3531
+ export type AcquisitionProtocol = "direct" | "issuance"
3834
3532
  ```
3835
3533
 
3836
3534
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3837
3535
 
3838
3536
  ---
3839
- ### Type: BooleanDefaultTrue
3537
+ ### Type: ActionStatus
3840
3538
 
3841
3539
  ```ts
3842
- export type BooleanDefaultTrue = boolean
3540
+ export type ActionStatus = "completed" | "unprocessed" | "sending" | "unproven" | "unsigned" | "nosend" | "nonfinal"
3843
3541
  ```
3844
3542
 
3845
3543
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3846
3544
 
3847
3545
  ---
3848
- ### Type: Byte
3546
+ ### Type: AtomicBEEF
3849
3547
 
3850
3548
  ```ts
3851
- export type Byte = number
3549
+ export type AtomicBEEF = Byte[]
3852
3550
  ```
3853
3551
 
3552
+ See also: [Byte](#type-byte)
3553
+
3854
3554
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3855
3555
 
3856
3556
  ---
3857
- ### Type: PositiveIntegerOrZero
3557
+ ### Type: BEEF
3858
3558
 
3859
3559
  ```ts
3860
- export type PositiveIntegerOrZero = number
3560
+ export type BEEF = Byte[]
3861
3561
  ```
3862
3562
 
3563
+ See also: [Byte](#type-byte)
3564
+
3863
3565
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3864
3566
 
3865
3567
  ---
3866
- ### Type: PositiveInteger
3568
+ ### Type: Base64String
3867
3569
 
3868
3570
  ```ts
3869
- export type PositiveInteger = number
3571
+ export type Base64String = string
3870
3572
  ```
3871
3573
 
3872
3574
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3873
3575
 
3874
3576
  ---
3875
- ### Type: PositiveIntegerMax10
3577
+ ### Type: BasketStringUnder300Bytes
3876
3578
 
3877
3579
  ```ts
3878
- export type PositiveIntegerMax10 = number
3580
+ export type BasketStringUnder300Bytes = string
3879
3581
  ```
3880
3582
 
3881
3583
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3882
3584
 
3883
3585
  ---
3884
- ### Type: PositiveIntegerDefault10Max10000
3586
+ ### Type: BooleanDefaultFalse
3885
3587
 
3886
3588
  ```ts
3887
- export type PositiveIntegerDefault10Max10000 = number
3589
+ export type BooleanDefaultFalse = boolean
3888
3590
  ```
3889
3591
 
3890
3592
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3891
3593
 
3892
3594
  ---
3893
- ### Type: SatoshiValue
3595
+ ### Type: BooleanDefaultTrue
3894
3596
 
3895
3597
  ```ts
3896
- export type SatoshiValue = number
3598
+ export type BooleanDefaultTrue = boolean
3897
3599
  ```
3898
3600
 
3899
3601
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3900
3602
 
3901
3603
  ---
3902
- ### Type: ISOTimestampString
3604
+ ### Type: Byte
3903
3605
 
3904
3606
  ```ts
3905
- export type ISOTimestampString = string
3607
+ export type Byte = number
3906
3608
  ```
3907
3609
 
3908
3610
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3909
3611
 
3910
3612
  ---
3911
- ### Type: HexString
3613
+ ### Type: CallType
3912
3614
 
3913
3615
  ```ts
3914
- export type HexString = string
3616
+ export type CallType = keyof typeof calls
3915
3617
  ```
3916
3618
 
3917
3619
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3918
3620
 
3919
3621
  ---
3920
- ### Type: TXIDHexString
3622
+ ### Type: CertificateFieldNameUnder50Bytes
3921
3623
 
3922
3624
  ```ts
3923
- export type TXIDHexString = HexString
3625
+ export type CertificateFieldNameUnder50Bytes = string
3924
3626
  ```
3925
3627
 
3926
3628
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3927
3629
 
3928
3630
  ---
3929
- ### Type: OutpointString
3631
+ ### Type: DescriptionString5to50Bytes
3930
3632
 
3931
3633
  ```ts
3932
- export type OutpointString = string
3634
+ export type DescriptionString5to50Bytes = string
3933
3635
  ```
3934
3636
 
3935
3637
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3936
3638
 
3937
3639
  ---
3938
- ### Type: PubKeyHex
3640
+ ### Type: EntityIconURLStringMax500Bytes
3939
3641
 
3940
3642
  ```ts
3941
- export type PubKeyHex = HexString
3643
+ export type EntityIconURLStringMax500Bytes = string
3942
3644
  ```
3943
3645
 
3944
3646
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3945
3647
 
3946
3648
  ---
3947
- ### Type: Base64String
3649
+ ### Type: EntityNameStringMax100Bytes
3948
3650
 
3949
3651
  ```ts
3950
- export type Base64String = string
3652
+ export type EntityNameStringMax100Bytes = string
3951
3653
  ```
3952
3654
 
3953
3655
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3954
3656
 
3955
3657
  ---
3956
- ### Type: OriginatorDomainNameStringUnder250Bytes
3658
+ ### Type: ErrorCodeString10To40Bytes
3957
3659
 
3958
3660
  ```ts
3959
- export type OriginatorDomainNameStringUnder250Bytes = string
3661
+ export type ErrorCodeString10To40Bytes = string
3960
3662
  ```
3961
3663
 
3962
3664
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3963
3665
 
3964
3666
  ---
3965
- ### Type: DescriptionString5to50Bytes
3667
+ ### Type: ErrorDescriptionString20To200Bytes
3966
3668
 
3967
3669
  ```ts
3968
- export type DescriptionString5to50Bytes = string
3670
+ export type ErrorDescriptionString20To200Bytes = string
3969
3671
  ```
3970
3672
 
3971
3673
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3972
3674
 
3973
3675
  ---
3974
- ### Type: BasketStringUnder300Bytes
3676
+ ### Type: HexString
3975
3677
 
3976
3678
  ```ts
3977
- export type BasketStringUnder300Bytes = string
3679
+ export type HexString = string
3978
3680
  ```
3979
3681
 
3980
3682
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3981
3683
 
3982
3684
  ---
3983
- ### Type: OutputTagStringUnder300Bytes
3685
+ ### Type: ISOTimestampString
3984
3686
 
3985
3687
  ```ts
3986
- export type OutputTagStringUnder300Bytes = string
3688
+ export type ISOTimestampString = string
3987
3689
  ```
3988
3690
 
3989
3691
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3990
3692
 
3991
3693
  ---
3992
- ### Type: LabelStringUnder300Bytes
3694
+ ### Type: KeyIDStringUnder800Bytes
3993
3695
 
3994
3696
  ```ts
3995
- export type LabelStringUnder300Bytes = string
3697
+ export type KeyIDStringUnder800Bytes = string
3996
3698
  ```
3997
3699
 
3998
3700
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3999
3701
 
4000
3702
  ---
4001
- ### Type: BEEF
3703
+ ### Type: KeyringRevealer
4002
3704
 
4003
3705
  ```ts
4004
- export type BEEF = Byte[]
3706
+ export type KeyringRevealer = PubKeyHex | "certifier"
4005
3707
  ```
4006
3708
 
3709
+ See also: [PubKeyHex](#type-pubkeyhex)
3710
+
4007
3711
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4008
3712
 
4009
3713
  ---
4010
- ### Type: AtomicBEEF
3714
+ ### Type: LabelStringUnder300Bytes
4011
3715
 
4012
3716
  ```ts
4013
- export type AtomicBEEF = Byte[]
3717
+ export type LabelStringUnder300Bytes = string
4014
3718
  ```
4015
3719
 
4016
3720
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4017
3721
 
4018
3722
  ---
4019
- ### Type: ProtocolString5To400Bytes
3723
+ ### Type: OriginatorDomainNameStringUnder250Bytes
4020
3724
 
4021
3725
  ```ts
4022
- export type ProtocolString5To400Bytes = string
3726
+ export type OriginatorDomainNameStringUnder250Bytes = string
4023
3727
  ```
4024
3728
 
4025
3729
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4026
3730
 
4027
3731
  ---
4028
- ### Type: KeyIDStringUnder800Bytes
3732
+ ### Type: OutpointString
4029
3733
 
4030
3734
  ```ts
4031
- export type KeyIDStringUnder800Bytes = string
3735
+ export type OutpointString = string
4032
3736
  ```
4033
3737
 
4034
3738
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4035
3739
 
4036
3740
  ---
4037
- ### Type: CertificateFieldNameUnder50Bytes
3741
+ ### Type: OutputTagStringUnder300Bytes
4038
3742
 
4039
3743
  ```ts
4040
- export type CertificateFieldNameUnder50Bytes = string
3744
+ export type OutputTagStringUnder300Bytes = string
4041
3745
  ```
4042
3746
 
4043
3747
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4044
3748
 
4045
3749
  ---
4046
- ### Type: EntityNameStringMax100Bytes
3750
+ ### Type: PositiveInteger
4047
3751
 
4048
3752
  ```ts
4049
- export type EntityNameStringMax100Bytes = string
3753
+ export type PositiveInteger = number
4050
3754
  ```
4051
3755
 
4052
3756
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4053
3757
 
4054
3758
  ---
4055
- ### Type: EntityIconURLStringMax500Bytes
3759
+ ### Type: PositiveIntegerDefault10Max10000
4056
3760
 
4057
3761
  ```ts
4058
- export type EntityIconURLStringMax500Bytes = string
3762
+ export type PositiveIntegerDefault10Max10000 = number
4059
3763
  ```
4060
3764
 
4061
3765
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4062
3766
 
4063
3767
  ---
4064
- ### Type: VersionString7To30Bytes
3768
+ ### Type: PositiveIntegerMax10
4065
3769
 
4066
3770
  ```ts
4067
- export type VersionString7To30Bytes = string
3771
+ export type PositiveIntegerMax10 = number
4068
3772
  ```
4069
3773
 
4070
3774
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4071
3775
 
4072
3776
  ---
4073
- ### Type: ErrorCodeString10To40Bytes
3777
+ ### Type: PositiveIntegerOrZero
4074
3778
 
4075
3779
  ```ts
4076
- export type ErrorCodeString10To40Bytes = string
3780
+ export type PositiveIntegerOrZero = number
4077
3781
  ```
4078
3782
 
4079
3783
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4080
3784
 
4081
3785
  ---
4082
- ### Type: ErrorDescriptionString20To200Bytes
3786
+ ### Type: ProtocolString5To400Bytes
4083
3787
 
4084
3788
  ```ts
4085
- export type ErrorDescriptionString20To200Bytes = string
3789
+ export type ProtocolString5To400Bytes = string
4086
3790
  ```
4087
3791
 
4088
3792
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4089
3793
 
4090
3794
  ---
4091
- ### Type: WalletNetwork
3795
+ ### Type: PubKeyHex
4092
3796
 
4093
3797
  ```ts
4094
- export type WalletNetwork = "mainnet" | "testnet"
3798
+ export type PubKeyHex = HexString
4095
3799
  ```
4096
3800
 
3801
+ See also: [HexString](#type-hexstring)
3802
+
4097
3803
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4098
3804
 
4099
3805
  ---
4100
- ### Type: WalletProtocol
3806
+ ### Type: SatoshiValue
4101
3807
 
4102
3808
  ```ts
4103
- export type WalletProtocol = [
4104
- 0 | 1 | 2,
4105
- ProtocolString5To400Bytes
4106
- ]
3809
+ export type SatoshiValue = number
4107
3810
  ```
4108
3811
 
4109
3812
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4110
3813
 
4111
3814
  ---
4112
- ### Type: WalletCounterparty
3815
+ ### Type: TXIDHexString
4113
3816
 
4114
3817
  ```ts
4115
- export type WalletCounterparty = PubKeyHex | "self" | "anyone"
3818
+ export type TXIDHexString = HexString
4116
3819
  ```
4117
3820
 
3821
+ See also: [HexString](#type-hexstring)
3822
+
4118
3823
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4119
3824
 
4120
3825
  ---
4121
- ### Type: AcquisitionProtocol
3826
+ ### Type: TrustSelf
3827
+
3828
+ Controls behavior of input BEEF validation.
3829
+
3830
+ If `known`, input transactions may omit supporting validity proof data for all TXIDs known to this wallet.
3831
+
3832
+ If undefined, input BEEFs must be complete and valid.
4122
3833
 
4123
3834
  ```ts
4124
- export type AcquisitionProtocol = "direct" | "issuance"
3835
+ export type TrustSelf = "known"
4125
3836
  ```
4126
3837
 
4127
3838
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4128
3839
 
4129
3840
  ---
4130
- ### Type: KeyringRevealer
3841
+ ### Type: VersionString7To30Bytes
4131
3842
 
4132
3843
  ```ts
4133
- export type KeyringRevealer = PubKeyHex | "certifier"
3844
+ export type VersionString7To30Bytes = string
4134
3845
  ```
4135
3846
 
4136
3847
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4137
3848
 
4138
3849
  ---
4139
- ### Type: ActionStatus
3850
+ ### Type: WalletCounterparty
4140
3851
 
4141
3852
  ```ts
4142
- export type ActionStatus = "completed" | "unprocessed" | "sending" | "unproven" | "unsigned" | "nosend" | "nonfinal"
3853
+ export type WalletCounterparty = PubKeyHex | "self" | "anyone"
4143
3854
  ```
4144
3855
 
3856
+ See also: [PubKeyHex](#type-pubkeyhex)
3857
+
4145
3858
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4146
3859
 
4147
3860
  ---
4148
- ### Type: TrustSelf
4149
-
4150
- Controls behavior of input BEEF validation.
4151
-
4152
- If `known`, input transactions may omit supporting validity proof data for all TXIDs known to this wallet.
4153
-
4154
- If undefined, input BEEFs must be complete and valid.
3861
+ ### Type: WalletErrorCode
4155
3862
 
4156
3863
  ```ts
4157
- export type TrustSelf = "known"
3864
+ export type WalletErrorCode = keyof typeof walletErrors
4158
3865
  ```
4159
3866
 
4160
3867
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4161
3868
 
4162
3869
  ---
4163
- ### Type: WalletErrorCode
3870
+ ### Type: WalletNetwork
4164
3871
 
4165
3872
  ```ts
4166
- export type WalletErrorCode = keyof typeof walletErrors
3873
+ export type WalletNetwork = "mainnet" | "testnet"
4167
3874
  ```
4168
3875
 
4169
3876
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4170
3877
 
4171
3878
  ---
4172
- ### Type: CallType
3879
+ ### Type: WalletProtocol
4173
3880
 
4174
3881
  ```ts
4175
- export type CallType = keyof typeof calls
3882
+ export type WalletProtocol = [
3883
+ 0 | 1 | 2,
3884
+ ProtocolString5To400Bytes
3885
+ ]
4176
3886
  ```
4177
3887
 
3888
+ See also: [ProtocolString5To400Bytes](#type-protocolstring5to400bytes)
3889
+
4178
3890
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4179
3891
 
4180
3892
  ---