@bsv/wallet-toolbox-mobile 1.7.18 → 2.0.0-beta.0
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.
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import { AbortActionArgs, AcquireCertificateArgs, AcquisitionProtocol, AtomicBEEF, Base64String, BasketInsertion, BasketStringUnder300Bytes, BEEF, BooleanDefaultFalse, BooleanDefaultTrue, CertificateFieldNameUnder50Bytes, CreateActionArgs, CreateActionInput, CreateActionOptions, CreateActionOutput, DescriptionString5to50Bytes, DiscoverByAttributesArgs, DiscoverByIdentityKeyArgs, HexString, InternalizeActionArgs, InternalizeOutput, KeyringRevealer, LabelStringUnder300Bytes, ListActionsArgs, ListCertificatesArgs, ListOutputsArgs, OutpointString, OutputTagStringUnder300Bytes, PositiveInteger, PositiveIntegerDefault10Max10000, PositiveIntegerOrZero, ProveCertificateArgs, PubKeyHex, RelinquishCertificateArgs, RelinquishOutputArgs, SatoshiValue, SignActionArgs, SignActionOptions, SignActionSpend, TrustSelf, TXIDHexString, WalletPayment } from '@bsv/sdk';
|
|
2
|
+
import { OutPoint } from './types';
|
|
3
|
+
export declare function parseWalletOutpoint(outpoint: string): {
|
|
4
|
+
txid: string;
|
|
5
|
+
vout: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function validateSatoshis(v: number | undefined, name: string, min?: number): number;
|
|
8
|
+
export declare function validateOptionalInteger(v: number | undefined, name: string, min?: number, max?: number): number | undefined;
|
|
9
|
+
export declare function validateInteger(v: number | undefined, name: string, defaultValue?: number, min?: number, max?: number): number;
|
|
10
|
+
export declare function validatePositiveIntegerOrZero(v: number, name: string): number;
|
|
11
|
+
export declare function validateStringLength(s: string, name: string, min?: number, max?: number): string;
|
|
12
|
+
export declare function isHexString(s: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {string & { minLength: 5, maxLength: 2000 }} DescriptionString5to2000Bytes
|
|
15
|
+
* A string used for descriptions, with a length between 5 and 2000 characters.
|
|
16
|
+
*/
|
|
17
|
+
export type DescriptionString5to2000Bytes = string;
|
|
18
|
+
export interface ValidWalletSignerArgs {
|
|
19
|
+
}
|
|
20
|
+
export interface ValidCreateActionInput {
|
|
21
|
+
outpoint: OutPoint;
|
|
22
|
+
inputDescription: DescriptionString5to2000Bytes;
|
|
23
|
+
sequenceNumber: PositiveIntegerOrZero;
|
|
24
|
+
unlockingScript?: HexString;
|
|
25
|
+
unlockingScriptLength: PositiveInteger;
|
|
26
|
+
}
|
|
27
|
+
export declare function validateCreateActionInput(i: CreateActionInput): ValidCreateActionInput;
|
|
28
|
+
export interface ValidCreateActionOutput {
|
|
29
|
+
lockingScript: HexString;
|
|
30
|
+
satoshis: SatoshiValue;
|
|
31
|
+
outputDescription: DescriptionString5to2000Bytes;
|
|
32
|
+
basket?: BasketStringUnder300Bytes;
|
|
33
|
+
customInstructions?: string;
|
|
34
|
+
tags: BasketStringUnder300Bytes[];
|
|
35
|
+
}
|
|
36
|
+
export declare function validateCreateActionOutput(o: CreateActionOutput): ValidCreateActionOutput;
|
|
37
|
+
/**
|
|
38
|
+
* Set all default true/false booleans to true or false if undefined.
|
|
39
|
+
* Set all possibly undefined numbers to their default values.
|
|
40
|
+
* Set all possibly undefined arrays to empty arrays.
|
|
41
|
+
* Convert string outpoints to `{ txid: string, vout: number }`
|
|
42
|
+
*/
|
|
43
|
+
export declare function validateCreateActionOptions(options?: CreateActionOptions): ValidCreateActionOptions;
|
|
44
|
+
export interface ValidProcessActionOptions {
|
|
45
|
+
acceptDelayedBroadcast: BooleanDefaultTrue;
|
|
46
|
+
returnTXIDOnly: BooleanDefaultFalse;
|
|
47
|
+
noSend: BooleanDefaultFalse;
|
|
48
|
+
sendWith: TXIDHexString[];
|
|
49
|
+
}
|
|
50
|
+
export interface ValidCreateActionOptions extends ValidProcessActionOptions {
|
|
51
|
+
signAndProcess: boolean;
|
|
52
|
+
trustSelf?: TrustSelf;
|
|
53
|
+
knownTxids: TXIDHexString[];
|
|
54
|
+
noSendChange: OutPoint[];
|
|
55
|
+
randomizeOutputs: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface ValidSignActionOptions extends ValidProcessActionOptions {
|
|
58
|
+
acceptDelayedBroadcast: boolean;
|
|
59
|
+
returnTXIDOnly: boolean;
|
|
60
|
+
noSend: boolean;
|
|
61
|
+
sendWith: TXIDHexString[];
|
|
62
|
+
}
|
|
63
|
+
export interface ValidProcessActionArgs extends ValidWalletSignerArgs {
|
|
64
|
+
options: ValidProcessActionOptions;
|
|
65
|
+
isSendWith: boolean;
|
|
66
|
+
isNewTx: boolean;
|
|
67
|
+
isRemixChange: boolean;
|
|
68
|
+
isNoSend: boolean;
|
|
69
|
+
isDelayed: boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface ValidCreateActionArgs extends ValidProcessActionArgs {
|
|
72
|
+
description: DescriptionString5to2000Bytes;
|
|
73
|
+
inputBEEF?: BEEF;
|
|
74
|
+
inputs: ValidCreateActionInput[];
|
|
75
|
+
outputs: ValidCreateActionOutput[];
|
|
76
|
+
lockTime: number;
|
|
77
|
+
version: number;
|
|
78
|
+
labels: string[];
|
|
79
|
+
options: ValidCreateActionOptions;
|
|
80
|
+
isSignAction: boolean;
|
|
81
|
+
randomVals?: number[];
|
|
82
|
+
/**
|
|
83
|
+
* If true, signableTransactions will include sourceTransaction for each input,
|
|
84
|
+
* including those that do not require signature and those that were also contained
|
|
85
|
+
* in the inputBEEF.
|
|
86
|
+
*/
|
|
87
|
+
includeAllSourceTransactions: boolean;
|
|
88
|
+
}
|
|
89
|
+
export interface ValidSignActionArgs extends ValidProcessActionArgs {
|
|
90
|
+
spends: Record<PositiveIntegerOrZero, SignActionSpend>;
|
|
91
|
+
reference: Base64String;
|
|
92
|
+
options: ValidSignActionOptions;
|
|
93
|
+
}
|
|
94
|
+
export declare function validateCreateActionArgs(args: CreateActionArgs): ValidCreateActionArgs;
|
|
95
|
+
/**
|
|
96
|
+
* Set all default true/false booleans to true or false if undefined.
|
|
97
|
+
* Set all possibly undefined numbers to their default values.
|
|
98
|
+
* Set all possibly undefined arrays to empty arrays.
|
|
99
|
+
* Convert string outpoints to `{ txid: string, vout: number }`
|
|
100
|
+
*/
|
|
101
|
+
export declare function validateSignActionOptions(options?: SignActionOptions): ValidSignActionOptions;
|
|
102
|
+
export declare function validateSignActionArgs(args: SignActionArgs): ValidSignActionArgs;
|
|
103
|
+
export interface ValidAbortActionArgs extends ValidWalletSignerArgs {
|
|
104
|
+
reference: Base64String;
|
|
105
|
+
}
|
|
106
|
+
export declare function validateAbortActionArgs(args: AbortActionArgs): ValidAbortActionArgs;
|
|
107
|
+
export interface ValidWalletPayment {
|
|
108
|
+
derivationPrefix: Base64String;
|
|
109
|
+
derivationSuffix: Base64String;
|
|
110
|
+
senderIdentityKey: PubKeyHex;
|
|
111
|
+
}
|
|
112
|
+
export declare function validateWalletPayment(args?: WalletPayment): ValidWalletPayment | undefined;
|
|
113
|
+
export interface ValidBasketInsertion {
|
|
114
|
+
basket: BasketStringUnder300Bytes;
|
|
115
|
+
customInstructions?: string;
|
|
116
|
+
tags: BasketStringUnder300Bytes[];
|
|
117
|
+
}
|
|
118
|
+
export declare function validateBasketInsertion(args?: BasketInsertion): ValidBasketInsertion | undefined;
|
|
119
|
+
export interface ValidInternalizeOutput {
|
|
120
|
+
outputIndex: PositiveIntegerOrZero;
|
|
121
|
+
protocol: 'wallet payment' | 'basket insertion';
|
|
122
|
+
paymentRemittance?: ValidWalletPayment;
|
|
123
|
+
insertionRemittance?: ValidBasketInsertion;
|
|
124
|
+
}
|
|
125
|
+
export declare function validateInternalizeOutput(args: InternalizeOutput): ValidInternalizeOutput;
|
|
126
|
+
export interface ValidInternalizeActionArgs extends ValidWalletSignerArgs {
|
|
127
|
+
tx: AtomicBEEF;
|
|
128
|
+
outputs: InternalizeOutput[];
|
|
129
|
+
description: DescriptionString5to2000Bytes;
|
|
130
|
+
labels: LabelStringUnder300Bytes[];
|
|
131
|
+
seekPermission: BooleanDefaultTrue;
|
|
132
|
+
}
|
|
133
|
+
export declare function validateOriginator(s?: string): string | undefined;
|
|
134
|
+
export declare function validateInternalizeActionArgs(args: InternalizeActionArgs): ValidInternalizeActionArgs;
|
|
135
|
+
export declare function validateOptionalOutpointString(outpoint: string | undefined, name: string): string | undefined;
|
|
136
|
+
export declare function validateOutpointString(outpoint: string, name: string): string;
|
|
137
|
+
export interface ValidRelinquishOutputArgs extends ValidWalletSignerArgs {
|
|
138
|
+
basket: BasketStringUnder300Bytes;
|
|
139
|
+
output: OutpointString;
|
|
140
|
+
}
|
|
141
|
+
export declare function validateRelinquishOutputArgs(args: RelinquishOutputArgs): ValidRelinquishOutputArgs;
|
|
142
|
+
export interface ValidRelinquishCertificateArgs extends ValidWalletSignerArgs {
|
|
143
|
+
type: Base64String;
|
|
144
|
+
serialNumber: Base64String;
|
|
145
|
+
certifier: PubKeyHex;
|
|
146
|
+
}
|
|
147
|
+
export declare function validateRelinquishCertificateArgs(args: RelinquishCertificateArgs): ValidRelinquishCertificateArgs;
|
|
148
|
+
export interface ValidListCertificatesArgs extends ValidWalletSignerArgs {
|
|
149
|
+
partial?: {
|
|
150
|
+
type?: Base64String;
|
|
151
|
+
serialNumber?: Base64String;
|
|
152
|
+
certifier?: PubKeyHex;
|
|
153
|
+
subject?: PubKeyHex;
|
|
154
|
+
revocationOutpoint?: OutpointString;
|
|
155
|
+
signature?: HexString;
|
|
156
|
+
};
|
|
157
|
+
certifiers: PubKeyHex[];
|
|
158
|
+
types: Base64String[];
|
|
159
|
+
limit: PositiveIntegerDefault10Max10000;
|
|
160
|
+
offset: PositiveIntegerOrZero;
|
|
161
|
+
privileged: BooleanDefaultFalse;
|
|
162
|
+
privilegedReason?: DescriptionString5to50Bytes;
|
|
163
|
+
}
|
|
164
|
+
export declare function validateListCertificatesArgs(args: ListCertificatesArgs): ValidListCertificatesArgs;
|
|
165
|
+
export interface ValidAcquireCertificateArgs extends ValidWalletSignerArgs {
|
|
166
|
+
acquisitionProtocol: AcquisitionProtocol;
|
|
167
|
+
type: Base64String;
|
|
168
|
+
serialNumber?: Base64String;
|
|
169
|
+
certifier: PubKeyHex;
|
|
170
|
+
revocationOutpoint?: OutpointString;
|
|
171
|
+
fields: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
172
|
+
signature?: HexString;
|
|
173
|
+
certifierUrl?: string;
|
|
174
|
+
keyringRevealer?: KeyringRevealer;
|
|
175
|
+
keyringForSubject?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
|
|
176
|
+
privileged: boolean;
|
|
177
|
+
privilegedReason?: DescriptionString5to50Bytes;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
*
|
|
181
|
+
* @param args
|
|
182
|
+
* @param subject Must be valid for "direct" `acquisitionProtocol`. public key of the certificate subject.
|
|
183
|
+
* @returns
|
|
184
|
+
*/
|
|
185
|
+
export declare function validateAcquireCertificateArgs(args: AcquireCertificateArgs): Promise<ValidAcquireCertificateArgs>;
|
|
186
|
+
export interface ValidAcquireDirectCertificateArgs extends ValidWalletSignerArgs {
|
|
187
|
+
type: Base64String;
|
|
188
|
+
serialNumber: Base64String;
|
|
189
|
+
certifier: PubKeyHex;
|
|
190
|
+
revocationOutpoint: OutpointString;
|
|
191
|
+
fields: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
192
|
+
signature: HexString;
|
|
193
|
+
/**
|
|
194
|
+
* validated to an empty string, must be provided by wallet and must
|
|
195
|
+
* match expectations of keyringForSubject
|
|
196
|
+
*/
|
|
197
|
+
subject: PubKeyHex;
|
|
198
|
+
keyringRevealer: KeyringRevealer;
|
|
199
|
+
keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
|
|
200
|
+
privileged: boolean;
|
|
201
|
+
privilegedReason?: DescriptionString5to50Bytes;
|
|
202
|
+
}
|
|
203
|
+
export interface ValidAcquireIssuanceCertificateArgs extends ValidWalletSignerArgs {
|
|
204
|
+
type: Base64String;
|
|
205
|
+
certifier: PubKeyHex;
|
|
206
|
+
certifierUrl: string;
|
|
207
|
+
fields: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
208
|
+
/**
|
|
209
|
+
* validated to an empty string, must be provided by wallet and must
|
|
210
|
+
* match expectations of keyringForSubject
|
|
211
|
+
*/
|
|
212
|
+
subject: PubKeyHex;
|
|
213
|
+
privileged: boolean;
|
|
214
|
+
privilegedReason?: DescriptionString5to50Bytes;
|
|
215
|
+
}
|
|
216
|
+
export declare function validateAcquireIssuanceCertificateArgs(args: AcquireCertificateArgs): ValidAcquireIssuanceCertificateArgs;
|
|
217
|
+
export declare function validateAcquireDirectCertificateArgs(args: AcquireCertificateArgs): ValidAcquireDirectCertificateArgs;
|
|
218
|
+
export interface ValidProveCertificateArgs extends ValidWalletSignerArgs {
|
|
219
|
+
type?: Base64String;
|
|
220
|
+
serialNumber?: Base64String;
|
|
221
|
+
certifier?: PubKeyHex;
|
|
222
|
+
subject?: PubKeyHex;
|
|
223
|
+
revocationOutpoint?: OutpointString;
|
|
224
|
+
signature?: HexString;
|
|
225
|
+
fieldsToReveal: CertificateFieldNameUnder50Bytes[];
|
|
226
|
+
verifier: PubKeyHex;
|
|
227
|
+
privileged: boolean;
|
|
228
|
+
privilegedReason?: DescriptionString5to50Bytes;
|
|
229
|
+
}
|
|
230
|
+
export declare function validateProveCertificateArgs(args: ProveCertificateArgs): ValidProveCertificateArgs;
|
|
231
|
+
export interface ValidDiscoverByIdentityKeyArgs extends ValidWalletSignerArgs {
|
|
232
|
+
identityKey: PubKeyHex;
|
|
233
|
+
limit: PositiveIntegerDefault10Max10000;
|
|
234
|
+
offset: PositiveIntegerOrZero;
|
|
235
|
+
seekPermission: boolean;
|
|
236
|
+
}
|
|
237
|
+
export declare function validateDiscoverByIdentityKeyArgs(args: DiscoverByIdentityKeyArgs): ValidDiscoverByIdentityKeyArgs;
|
|
238
|
+
export interface ValidDiscoverByAttributesArgs extends ValidWalletSignerArgs {
|
|
239
|
+
attributes: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
240
|
+
limit: PositiveIntegerDefault10Max10000;
|
|
241
|
+
offset: PositiveIntegerOrZero;
|
|
242
|
+
seekPermission: boolean;
|
|
243
|
+
}
|
|
244
|
+
export declare function validateDiscoverByAttributesArgs(args: DiscoverByAttributesArgs): ValidDiscoverByAttributesArgs;
|
|
245
|
+
export interface ValidListOutputsArgs extends ValidWalletSignerArgs {
|
|
246
|
+
basket: BasketStringUnder300Bytes;
|
|
247
|
+
tags: OutputTagStringUnder300Bytes[];
|
|
248
|
+
tagQueryMode: 'all' | 'any';
|
|
249
|
+
includeLockingScripts: boolean;
|
|
250
|
+
includeTransactions: boolean;
|
|
251
|
+
includeCustomInstructions: BooleanDefaultFalse;
|
|
252
|
+
includeTags: BooleanDefaultFalse;
|
|
253
|
+
includeLabels: BooleanDefaultFalse;
|
|
254
|
+
limit: PositiveIntegerDefault10Max10000;
|
|
255
|
+
offset: number;
|
|
256
|
+
seekPermission: BooleanDefaultTrue;
|
|
257
|
+
knownTxids: string[];
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* @param {BasketStringUnder300Bytes} args.basket - Required. The associated basket name whose outputs should be listed.
|
|
261
|
+
* @param {OutputTagStringUnder300Bytes[]} [args.tags] - Optional. Filter outputs based on these tags.
|
|
262
|
+
* @param {'all' | 'any'} [args.tagQueryMode] - Optional. Filter mode, defining whether all or any of the tags must match. By default, any tag can match.
|
|
263
|
+
* @param {'locking scripts' | 'entire transactions'} [args.include] - Optional. Whether to include locking scripts (with each output) or entire transactions (as aggregated BEEF, at the top level) in the result. By default, unless specified, neither are returned.
|
|
264
|
+
* @param {BooleanDefaultFalse} [args.includeEntireTransactions] - Optional. Whether to include the entire transaction(s) in the result.
|
|
265
|
+
* @param {BooleanDefaultFalse} [args.includeCustomInstructions] - Optional. Whether custom instructions should be returned in the result.
|
|
266
|
+
* @param {BooleanDefaultFalse} [args.includeTags] - Optional. Whether the tags associated with the output should be returned.
|
|
267
|
+
* @param {BooleanDefaultFalse} [args.includeLabels] - Optional. Whether the labels associated with the transaction containing the output should be returned.
|
|
268
|
+
* @param {PositiveIntegerDefault10Max10000} [args.limit] - Optional limit on the number of outputs to return.
|
|
269
|
+
* @param {number} [args.offset] - If positive or zero: Number of outputs to skip before starting to return results, oldest first.
|
|
270
|
+
* If negative: Outputs are returned newest first and offset of -1 is the newest output.
|
|
271
|
+
* When using negative offsets, caution is required as new outputs may be added between calls,
|
|
272
|
+
* potentially causing outputs to be duplicated across calls.
|
|
273
|
+
* @param {BooleanDefaultTrue} [args.seekPermission] — Optional. Whether to seek permission from the user for this operation if required. Default true, will return an error rather than proceed if set to false.
|
|
274
|
+
*/
|
|
275
|
+
export declare function validateListOutputsArgs(args: ListOutputsArgs): ValidListOutputsArgs;
|
|
276
|
+
export interface ValidListActionsArgs extends ValidWalletSignerArgs {
|
|
277
|
+
labels: LabelStringUnder300Bytes[];
|
|
278
|
+
labelQueryMode: 'any' | 'all';
|
|
279
|
+
includeLabels: BooleanDefaultFalse;
|
|
280
|
+
includeInputs: BooleanDefaultFalse;
|
|
281
|
+
includeInputSourceLockingScripts: BooleanDefaultFalse;
|
|
282
|
+
includeInputUnlockingScripts: BooleanDefaultFalse;
|
|
283
|
+
includeOutputs: BooleanDefaultFalse;
|
|
284
|
+
includeOutputLockingScripts: BooleanDefaultFalse;
|
|
285
|
+
limit: PositiveIntegerDefault10Max10000;
|
|
286
|
+
offset: PositiveIntegerOrZero;
|
|
287
|
+
seekPermission: BooleanDefaultTrue;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* @param {LabelStringUnder300Bytes[]} args.labels - An array of labels used to filter actions.
|
|
291
|
+
* @param {'any' | 'all'} [args.labelQueryMode] - Optional. Specifies how to match labels (default is any which matches any of the labels).
|
|
292
|
+
* @param {BooleanDefaultFalse} [args.includeLabels] - Optional. Whether to include transaction labels in the result set.
|
|
293
|
+
* @param {BooleanDefaultFalse} [args.includeInputs] - Optional. Whether to include input details in the result set.
|
|
294
|
+
* @param {BooleanDefaultFalse} [args.includeInputSourceLockingScripts] - Optional. Whether to include input source locking scripts in the result set.
|
|
295
|
+
* @param {BooleanDefaultFalse} [args.includeInputUnlockingScripts] - Optional. Whether to include input unlocking scripts in the result set.
|
|
296
|
+
* @param {BooleanDefaultFalse} [args.includeOutputs] - Optional. Whether to include output details in the result set.
|
|
297
|
+
* @param {BooleanDefaultFalse} [args.includeOutputLockingScripts] - Optional. Whether to include output locking scripts in the result set.
|
|
298
|
+
* @param {PositiveIntegerDefault10Max10000} [args.limit] - Optional. The maximum number of transactions to retrieve.
|
|
299
|
+
* @param {PositiveIntegerOrZero} [args.offset] - Optional. Number of transactions to skip before starting to return the results.
|
|
300
|
+
* @param {BooleanDefaultTrue} [args.seekPermission] — Optional. Whether to seek permission from the user for this operation if required. Default true, will return an error rather than proceed if set to false.
|
|
301
|
+
*/
|
|
302
|
+
export declare function validateListActionsArgs(args: ListActionsArgs): ValidListActionsArgs;
|
|
303
|
+
//# sourceMappingURL=validationHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationHelpers.d.ts","sourceRoot":"","sources":["../../../../src/sdk/validationHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,632 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseWalletOutpoint = parseWalletOutpoint;
|
|
4
|
+
exports.validateSatoshis = validateSatoshis;
|
|
5
|
+
exports.validateOptionalInteger = validateOptionalInteger;
|
|
6
|
+
exports.validateInteger = validateInteger;
|
|
7
|
+
exports.validatePositiveIntegerOrZero = validatePositiveIntegerOrZero;
|
|
8
|
+
exports.validateStringLength = validateStringLength;
|
|
9
|
+
exports.isHexString = isHexString;
|
|
10
|
+
exports.validateCreateActionInput = validateCreateActionInput;
|
|
11
|
+
exports.validateCreateActionOutput = validateCreateActionOutput;
|
|
12
|
+
exports.validateCreateActionOptions = validateCreateActionOptions;
|
|
13
|
+
exports.validateCreateActionArgs = validateCreateActionArgs;
|
|
14
|
+
exports.validateSignActionOptions = validateSignActionOptions;
|
|
15
|
+
exports.validateSignActionArgs = validateSignActionArgs;
|
|
16
|
+
exports.validateAbortActionArgs = validateAbortActionArgs;
|
|
17
|
+
exports.validateWalletPayment = validateWalletPayment;
|
|
18
|
+
exports.validateBasketInsertion = validateBasketInsertion;
|
|
19
|
+
exports.validateInternalizeOutput = validateInternalizeOutput;
|
|
20
|
+
exports.validateOriginator = validateOriginator;
|
|
21
|
+
exports.validateInternalizeActionArgs = validateInternalizeActionArgs;
|
|
22
|
+
exports.validateOptionalOutpointString = validateOptionalOutpointString;
|
|
23
|
+
exports.validateOutpointString = validateOutpointString;
|
|
24
|
+
exports.validateRelinquishOutputArgs = validateRelinquishOutputArgs;
|
|
25
|
+
exports.validateRelinquishCertificateArgs = validateRelinquishCertificateArgs;
|
|
26
|
+
exports.validateListCertificatesArgs = validateListCertificatesArgs;
|
|
27
|
+
exports.validateAcquireCertificateArgs = validateAcquireCertificateArgs;
|
|
28
|
+
exports.validateAcquireIssuanceCertificateArgs = validateAcquireIssuanceCertificateArgs;
|
|
29
|
+
exports.validateAcquireDirectCertificateArgs = validateAcquireDirectCertificateArgs;
|
|
30
|
+
exports.validateProveCertificateArgs = validateProveCertificateArgs;
|
|
31
|
+
exports.validateDiscoverByIdentityKeyArgs = validateDiscoverByIdentityKeyArgs;
|
|
32
|
+
exports.validateDiscoverByAttributesArgs = validateDiscoverByAttributesArgs;
|
|
33
|
+
exports.validateListOutputsArgs = validateListOutputsArgs;
|
|
34
|
+
exports.validateListActionsArgs = validateListActionsArgs;
|
|
35
|
+
const sdk_1 = require("@bsv/sdk");
|
|
36
|
+
const WERR_errors_1 = require("./WERR_errors");
|
|
37
|
+
function parseWalletOutpoint(outpoint) {
|
|
38
|
+
const [txid, vout] = outpoint.split('.');
|
|
39
|
+
return { txid, vout: Number(vout) };
|
|
40
|
+
}
|
|
41
|
+
function defaultTrue(v) {
|
|
42
|
+
return v !== null && v !== void 0 ? v : true;
|
|
43
|
+
}
|
|
44
|
+
function defaultFalse(v) {
|
|
45
|
+
return v !== null && v !== void 0 ? v : false;
|
|
46
|
+
}
|
|
47
|
+
function defaultZero(v) {
|
|
48
|
+
return v !== null && v !== void 0 ? v : 0;
|
|
49
|
+
}
|
|
50
|
+
function default0xffffffff(v) {
|
|
51
|
+
return v !== null && v !== void 0 ? v : 0xffffffff;
|
|
52
|
+
}
|
|
53
|
+
function defaultOne(v) {
|
|
54
|
+
return v !== null && v !== void 0 ? v : 1;
|
|
55
|
+
}
|
|
56
|
+
function defaultEmpty(v) {
|
|
57
|
+
return v !== null && v !== void 0 ? v : [];
|
|
58
|
+
}
|
|
59
|
+
function validateOptionalStringLength(s, name, min, max) {
|
|
60
|
+
if (s === undefined)
|
|
61
|
+
return undefined;
|
|
62
|
+
return validateStringLength(s, name, min, max);
|
|
63
|
+
}
|
|
64
|
+
function validateSatoshis(v, name, min) {
|
|
65
|
+
if (v === undefined || !Number.isInteger(v) || v < 0 || v > 21e14)
|
|
66
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, 'a valid number of satoshis');
|
|
67
|
+
if (min !== undefined && v < min)
|
|
68
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `at least ${min} satoshis.`);
|
|
69
|
+
return v;
|
|
70
|
+
}
|
|
71
|
+
function validateOptionalInteger(v, name, min, max) {
|
|
72
|
+
if (v === undefined)
|
|
73
|
+
return undefined;
|
|
74
|
+
return validateInteger(v, name, undefined, min, max);
|
|
75
|
+
}
|
|
76
|
+
function validateInteger(v, name, defaultValue, min, max) {
|
|
77
|
+
if (v === undefined) {
|
|
78
|
+
if (defaultValue !== undefined)
|
|
79
|
+
return defaultValue;
|
|
80
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, 'a valid integer');
|
|
81
|
+
}
|
|
82
|
+
if (!Number.isInteger(v))
|
|
83
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, 'an integer');
|
|
84
|
+
v = Number(v);
|
|
85
|
+
if (min !== undefined && v < min)
|
|
86
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `at least ${min} length.`);
|
|
87
|
+
if (max !== undefined && v > max)
|
|
88
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `no more than ${max} length.`);
|
|
89
|
+
return v;
|
|
90
|
+
}
|
|
91
|
+
function validatePositiveIntegerOrZero(v, name) {
|
|
92
|
+
return validateInteger(v, name, 0, 0);
|
|
93
|
+
}
|
|
94
|
+
function validateStringLength(s, name, min, max) {
|
|
95
|
+
const bytes = sdk_1.Utils.toArray(s, 'utf8').length;
|
|
96
|
+
if (min !== undefined && bytes < min)
|
|
97
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `at least ${min} length.`);
|
|
98
|
+
if (max !== undefined && bytes > max)
|
|
99
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `no more than ${max} length.`);
|
|
100
|
+
return s;
|
|
101
|
+
}
|
|
102
|
+
function validateOptionalBasket(s) {
|
|
103
|
+
if (s === undefined)
|
|
104
|
+
return undefined;
|
|
105
|
+
return validateBasket(s);
|
|
106
|
+
}
|
|
107
|
+
function validateBasket(s) {
|
|
108
|
+
return validateIdentifier(s, 'basket', 1, 300);
|
|
109
|
+
}
|
|
110
|
+
function validateLabel(s) {
|
|
111
|
+
return validateIdentifier(s, 'label', 1, 300);
|
|
112
|
+
}
|
|
113
|
+
function validateTag(s) {
|
|
114
|
+
return validateIdentifier(s, 'tag', 1, 300);
|
|
115
|
+
}
|
|
116
|
+
function validateIdentifier(s, name, min, max) {
|
|
117
|
+
s = s.trim().toLowerCase();
|
|
118
|
+
const bytes = sdk_1.Utils.toArray(s, 'utf8').length;
|
|
119
|
+
if (min !== undefined && bytes < min)
|
|
120
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `at least ${min} length.`);
|
|
121
|
+
if (max !== undefined && bytes > max)
|
|
122
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `no more than ${max} length.`);
|
|
123
|
+
return s;
|
|
124
|
+
}
|
|
125
|
+
function validateOptionalBase64String(s, name, min, max) {
|
|
126
|
+
if (s === undefined)
|
|
127
|
+
return undefined;
|
|
128
|
+
return validateBase64String(s, name, min, max);
|
|
129
|
+
}
|
|
130
|
+
function validateBase64String(s, name, min, max) {
|
|
131
|
+
// Remove any whitespace and check if the string length is valid for Base64
|
|
132
|
+
s = s.trim();
|
|
133
|
+
const base64Regex = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
|
|
134
|
+
const paddingMatch = /=+$/.exec(s);
|
|
135
|
+
const paddingCount = paddingMatch ? paddingMatch[0].length : 0;
|
|
136
|
+
if (paddingCount > 2 || (s.length % 4 !== 0 && paddingCount !== 0) || !base64Regex.test(s)) {
|
|
137
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `balid base64 string`);
|
|
138
|
+
}
|
|
139
|
+
const bytes = sdk_1.Utils.toArray(s, 'base64').length;
|
|
140
|
+
if (min !== undefined && bytes < min)
|
|
141
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `at least ${min} length.`);
|
|
142
|
+
if (max !== undefined && bytes > max)
|
|
143
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `no more than ${max} length.`);
|
|
144
|
+
return s;
|
|
145
|
+
}
|
|
146
|
+
function validateOptionalHexString(s, name, min, max) {
|
|
147
|
+
if (s === undefined)
|
|
148
|
+
return undefined;
|
|
149
|
+
return validateHexString(s, name, min, max);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @param s
|
|
153
|
+
* @param name
|
|
154
|
+
* @param min if valid, string length minimum (not bytes)
|
|
155
|
+
* @param max if valid, string length maximum (not bytes)
|
|
156
|
+
* @returns
|
|
157
|
+
*/
|
|
158
|
+
function validateHexString(s, name, min, max) {
|
|
159
|
+
s = s.trim().toLowerCase();
|
|
160
|
+
if (s.length % 2 === 1)
|
|
161
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `even length, not ${s.length}.`);
|
|
162
|
+
const hexRegex = /^[0-9A-Fa-f]+$/;
|
|
163
|
+
if (!hexRegex.test(s))
|
|
164
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `hexadecimal string.`);
|
|
165
|
+
if (min !== undefined && s.length < min)
|
|
166
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `at least ${min} length.`);
|
|
167
|
+
if (max !== undefined && s.length > max)
|
|
168
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `no more than ${max} length.`);
|
|
169
|
+
return s;
|
|
170
|
+
}
|
|
171
|
+
function isHexString(s) {
|
|
172
|
+
s = s.trim();
|
|
173
|
+
if (s.length % 2 === 1)
|
|
174
|
+
return false;
|
|
175
|
+
const hexRegex = /^[0-9A-Fa-f]+$/;
|
|
176
|
+
if (!hexRegex.test(s))
|
|
177
|
+
return false;
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
function validateCreateActionInput(i) {
|
|
181
|
+
var _a;
|
|
182
|
+
if (i.unlockingScript === undefined && i.unlockingScriptLength === undefined)
|
|
183
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('unlockingScript, unlockingScriptLength', `at least one valid value.`);
|
|
184
|
+
const unlockingScript = validateOptionalHexString(i.unlockingScript, 'unlockingScript');
|
|
185
|
+
const unlockingScriptLength = (_a = i.unlockingScriptLength) !== null && _a !== void 0 ? _a : unlockingScript.length / 2;
|
|
186
|
+
if (unlockingScript && unlockingScriptLength !== unlockingScript.length / 2)
|
|
187
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('unlockingScriptLength', `length unlockingScript if both valid.`);
|
|
188
|
+
const vi = {
|
|
189
|
+
outpoint: parseWalletOutpoint(i.outpoint),
|
|
190
|
+
inputDescription: validateStringLength(i.inputDescription, 'inputDescription', 5, 2000),
|
|
191
|
+
unlockingScript,
|
|
192
|
+
unlockingScriptLength,
|
|
193
|
+
sequenceNumber: default0xffffffff(i.sequenceNumber)
|
|
194
|
+
};
|
|
195
|
+
return vi;
|
|
196
|
+
}
|
|
197
|
+
function validateCreateActionOutput(o) {
|
|
198
|
+
const vo = {
|
|
199
|
+
lockingScript: validateHexString(o.lockingScript, 'lockingScript'),
|
|
200
|
+
satoshis: validateSatoshis(o.satoshis, 'satoshis'),
|
|
201
|
+
outputDescription: validateStringLength(o.outputDescription, 'outputDescription', 5, 2000),
|
|
202
|
+
basket: validateOptionalBasket(o.basket),
|
|
203
|
+
customInstructions: o.customInstructions,
|
|
204
|
+
tags: defaultEmpty(o.tags).map(t => validateTag(t))
|
|
205
|
+
};
|
|
206
|
+
return vo;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Set all default true/false booleans to true or false if undefined.
|
|
210
|
+
* Set all possibly undefined numbers to their default values.
|
|
211
|
+
* Set all possibly undefined arrays to empty arrays.
|
|
212
|
+
* Convert string outpoints to `{ txid: string, vout: number }`
|
|
213
|
+
*/
|
|
214
|
+
function validateCreateActionOptions(options) {
|
|
215
|
+
const o = options || {};
|
|
216
|
+
const vo = {
|
|
217
|
+
signAndProcess: defaultTrue(o.signAndProcess),
|
|
218
|
+
acceptDelayedBroadcast: defaultTrue(o.acceptDelayedBroadcast),
|
|
219
|
+
knownTxids: defaultEmpty(o.knownTxids),
|
|
220
|
+
returnTXIDOnly: defaultFalse(o.returnTXIDOnly),
|
|
221
|
+
noSend: defaultFalse(o.noSend),
|
|
222
|
+
noSendChange: defaultEmpty(o.noSendChange).map(nsc => parseWalletOutpoint(nsc)),
|
|
223
|
+
sendWith: defaultEmpty(o.sendWith),
|
|
224
|
+
randomizeOutputs: defaultTrue(o.randomizeOutputs)
|
|
225
|
+
};
|
|
226
|
+
return vo;
|
|
227
|
+
}
|
|
228
|
+
function validateCreateActionArgs(args) {
|
|
229
|
+
var _a;
|
|
230
|
+
const vargs = {
|
|
231
|
+
description: validateStringLength(args.description, 'description', 5, 2000),
|
|
232
|
+
inputBEEF: args.inputBEEF,
|
|
233
|
+
inputs: defaultEmpty(args.inputs).map(i => validateCreateActionInput(i)),
|
|
234
|
+
outputs: defaultEmpty(args.outputs).map(o => validateCreateActionOutput(o)),
|
|
235
|
+
lockTime: defaultZero(args.lockTime),
|
|
236
|
+
version: defaultOne(args.version),
|
|
237
|
+
labels: defaultEmpty((_a = args.labels) === null || _a === void 0 ? void 0 : _a.map(l => validateLabel(l))),
|
|
238
|
+
options: validateCreateActionOptions(args.options),
|
|
239
|
+
isSendWith: false,
|
|
240
|
+
isDelayed: false,
|
|
241
|
+
isNoSend: false,
|
|
242
|
+
isNewTx: false,
|
|
243
|
+
isRemixChange: false,
|
|
244
|
+
isSignAction: false,
|
|
245
|
+
randomVals: undefined,
|
|
246
|
+
includeAllSourceTransactions: false
|
|
247
|
+
};
|
|
248
|
+
vargs.isSendWith = vargs.options.sendWith.length > 0;
|
|
249
|
+
vargs.isRemixChange = !vargs.isSendWith && vargs.inputs.length === 0 && vargs.outputs.length === 0;
|
|
250
|
+
vargs.isNewTx = vargs.isRemixChange || vargs.inputs.length > 0 || vargs.outputs.length > 0;
|
|
251
|
+
vargs.isSignAction =
|
|
252
|
+
vargs.isNewTx && (vargs.options.signAndProcess === false || vargs.inputs.some(i => i.unlockingScript === undefined));
|
|
253
|
+
vargs.isDelayed = vargs.options.acceptDelayedBroadcast;
|
|
254
|
+
vargs.isNoSend = vargs.options.noSend;
|
|
255
|
+
return vargs;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Set all default true/false booleans to true or false if undefined.
|
|
259
|
+
* Set all possibly undefined numbers to their default values.
|
|
260
|
+
* Set all possibly undefined arrays to empty arrays.
|
|
261
|
+
* Convert string outpoints to `{ txid: string, vout: number }`
|
|
262
|
+
*/
|
|
263
|
+
function validateSignActionOptions(options) {
|
|
264
|
+
const o = options || {};
|
|
265
|
+
const vo = {
|
|
266
|
+
acceptDelayedBroadcast: defaultTrue(o.acceptDelayedBroadcast),
|
|
267
|
+
returnTXIDOnly: defaultFalse(o.returnTXIDOnly),
|
|
268
|
+
noSend: defaultFalse(o.noSend),
|
|
269
|
+
sendWith: defaultEmpty(o.sendWith)
|
|
270
|
+
};
|
|
271
|
+
return vo;
|
|
272
|
+
}
|
|
273
|
+
function validateSignActionArgs(args) {
|
|
274
|
+
const vargs = {
|
|
275
|
+
spends: args.spends,
|
|
276
|
+
reference: args.reference,
|
|
277
|
+
options: validateSignActionOptions(args.options),
|
|
278
|
+
isSendWith: false,
|
|
279
|
+
isDelayed: false,
|
|
280
|
+
isNoSend: false,
|
|
281
|
+
isNewTx: true,
|
|
282
|
+
isRemixChange: false
|
|
283
|
+
};
|
|
284
|
+
vargs.isSendWith = vargs.options.sendWith.length > 0;
|
|
285
|
+
vargs.isDelayed = vargs.options.acceptDelayedBroadcast;
|
|
286
|
+
vargs.isNoSend = vargs.options.noSend;
|
|
287
|
+
return vargs;
|
|
288
|
+
}
|
|
289
|
+
function validateAbortActionArgs(args) {
|
|
290
|
+
const vargs = {
|
|
291
|
+
reference: validateBase64String(args.reference, 'reference')
|
|
292
|
+
};
|
|
293
|
+
return vargs;
|
|
294
|
+
}
|
|
295
|
+
function validateWalletPayment(args) {
|
|
296
|
+
if (args === undefined)
|
|
297
|
+
return undefined;
|
|
298
|
+
const v = {
|
|
299
|
+
derivationPrefix: validateBase64String(args.derivationPrefix, 'derivationPrefix'),
|
|
300
|
+
derivationSuffix: validateBase64String(args.derivationSuffix, 'derivationSuffix'),
|
|
301
|
+
senderIdentityKey: validateHexString(args.senderIdentityKey, 'senderIdentityKey')
|
|
302
|
+
};
|
|
303
|
+
return v;
|
|
304
|
+
}
|
|
305
|
+
function validateBasketInsertion(args) {
|
|
306
|
+
if (args === undefined)
|
|
307
|
+
return undefined;
|
|
308
|
+
const v = {
|
|
309
|
+
basket: validateBasket(args.basket),
|
|
310
|
+
customInstructions: validateOptionalStringLength(args.customInstructions, 'customInstructions', 0, 1000), // TODO: real max??
|
|
311
|
+
tags: defaultEmpty(args.tags).map(t => validateTag(t))
|
|
312
|
+
};
|
|
313
|
+
return v;
|
|
314
|
+
}
|
|
315
|
+
function validateInternalizeOutput(args) {
|
|
316
|
+
if (args.protocol !== 'basket insertion' && args.protocol !== 'wallet payment')
|
|
317
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('protocol', `'basket insertion' or 'wallet payment'`);
|
|
318
|
+
const v = {
|
|
319
|
+
outputIndex: validatePositiveIntegerOrZero(args.outputIndex, 'outputIndex'),
|
|
320
|
+
protocol: args.protocol,
|
|
321
|
+
paymentRemittance: validateWalletPayment(args.paymentRemittance),
|
|
322
|
+
insertionRemittance: validateBasketInsertion(args.insertionRemittance)
|
|
323
|
+
};
|
|
324
|
+
return v;
|
|
325
|
+
}
|
|
326
|
+
function validateOriginator(s) {
|
|
327
|
+
if (s === undefined)
|
|
328
|
+
return undefined;
|
|
329
|
+
s = s.trim().toLowerCase();
|
|
330
|
+
validateStringLength(s, 'originator', 1, 250);
|
|
331
|
+
const sps = s.split('.');
|
|
332
|
+
for (const sp of sps) {
|
|
333
|
+
validateStringLength(sp, 'originator part', 1, 63);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
function validateInternalizeActionArgs(args) {
|
|
337
|
+
const vargs = {
|
|
338
|
+
tx: args.tx,
|
|
339
|
+
outputs: args.outputs.map(o => validateInternalizeOutput(o)),
|
|
340
|
+
description: validateStringLength(args.description, 'description', 5, 2000),
|
|
341
|
+
labels: (args.labels || []).map(t => validateLabel(t)),
|
|
342
|
+
seekPermission: defaultTrue(args.seekPermission)
|
|
343
|
+
};
|
|
344
|
+
try {
|
|
345
|
+
const beef = sdk_1.Beef.fromBinary(vargs.tx);
|
|
346
|
+
if (beef.txs.length < 1)
|
|
347
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('tx', `at least one transaction to internalize an output from`);
|
|
348
|
+
}
|
|
349
|
+
catch (_a) {
|
|
350
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('tx', `valid with at least one transaction to internalize an output from`);
|
|
351
|
+
}
|
|
352
|
+
if (vargs.outputs.length < 1)
|
|
353
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('outputs', `at least one output to internalize from the transaction`);
|
|
354
|
+
return vargs;
|
|
355
|
+
}
|
|
356
|
+
function validateOptionalOutpointString(outpoint, name) {
|
|
357
|
+
if (outpoint === undefined)
|
|
358
|
+
return undefined;
|
|
359
|
+
return validateOutpointString(outpoint, name);
|
|
360
|
+
}
|
|
361
|
+
function validateOutpointString(outpoint, name) {
|
|
362
|
+
const s = outpoint.split('.');
|
|
363
|
+
if (s.length !== 2 || !Number.isInteger(Number(s[1])))
|
|
364
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `txid as hex string and numeric output index joined with '.'`);
|
|
365
|
+
const txid = validateHexString(s[0], `${name} txid`, undefined, 64);
|
|
366
|
+
const vout = validatePositiveIntegerOrZero(Number(s[1]), `${name} vout`);
|
|
367
|
+
return `${txid}.${vout}`;
|
|
368
|
+
}
|
|
369
|
+
function validateRelinquishOutputArgs(args) {
|
|
370
|
+
const vargs = {
|
|
371
|
+
basket: validateBasket(args.basket),
|
|
372
|
+
output: validateOutpointString(args.output, 'output')
|
|
373
|
+
};
|
|
374
|
+
return vargs;
|
|
375
|
+
}
|
|
376
|
+
function validateRelinquishCertificateArgs(args) {
|
|
377
|
+
const vargs = {
|
|
378
|
+
type: validateBase64String(args.type, 'type'),
|
|
379
|
+
serialNumber: validateBase64String(args.serialNumber, 'serialNumber'),
|
|
380
|
+
certifier: validateHexString(args.certifier, 'certifier')
|
|
381
|
+
};
|
|
382
|
+
return vargs;
|
|
383
|
+
}
|
|
384
|
+
function validateListCertificatesArgs(args) {
|
|
385
|
+
const vargs = {
|
|
386
|
+
certifiers: defaultEmpty(args.certifiers.map(c => validateHexString(c.trim(), 'certifiers'))),
|
|
387
|
+
types: defaultEmpty(args.types.map(t => validateBase64String(t.trim(), 'types'))),
|
|
388
|
+
limit: validateInteger(args.limit, 'limit', 10, 1, 10000),
|
|
389
|
+
offset: validatePositiveIntegerOrZero(defaultZero(args.offset), 'offset'),
|
|
390
|
+
privileged: defaultFalse(args.privileged),
|
|
391
|
+
privilegedReason: validateOptionalStringLength(args.privilegedReason, 'privilegedReason', 5, 50),
|
|
392
|
+
partial: undefined
|
|
393
|
+
};
|
|
394
|
+
return vargs;
|
|
395
|
+
}
|
|
396
|
+
function validateCertificateFields(fields) {
|
|
397
|
+
for (const fieldName of Object.keys(fields)) {
|
|
398
|
+
validateStringLength(fieldName, 'field name', 1, 50);
|
|
399
|
+
}
|
|
400
|
+
return fields;
|
|
401
|
+
}
|
|
402
|
+
function validateKeyringRevealer(kr, name) {
|
|
403
|
+
if (kr === 'certifier')
|
|
404
|
+
return kr;
|
|
405
|
+
return validateHexString(kr, name);
|
|
406
|
+
}
|
|
407
|
+
function validateOptionalKeyringRevealer(kr, name) {
|
|
408
|
+
if (kr === undefined)
|
|
409
|
+
return undefined;
|
|
410
|
+
return validateKeyringRevealer(kr, name);
|
|
411
|
+
}
|
|
412
|
+
function validateKeyringForSubject(kr, name) {
|
|
413
|
+
for (const fn of Object.keys(kr)) {
|
|
414
|
+
validateStringLength(fn, `${name} field name`, 1, 50);
|
|
415
|
+
validateBase64String(kr[fn], `${name} field value`);
|
|
416
|
+
}
|
|
417
|
+
return kr;
|
|
418
|
+
}
|
|
419
|
+
function validateOptionalKeyringForSubject(kr, name) {
|
|
420
|
+
if (kr === undefined)
|
|
421
|
+
return undefined;
|
|
422
|
+
return validateKeyringForSubject(kr, name);
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
*
|
|
426
|
+
* @param args
|
|
427
|
+
* @param subject Must be valid for "direct" `acquisitionProtocol`. public key of the certificate subject.
|
|
428
|
+
* @returns
|
|
429
|
+
*/
|
|
430
|
+
async function validateAcquireCertificateArgs(args) {
|
|
431
|
+
const vargs = {
|
|
432
|
+
acquisitionProtocol: args.acquisitionProtocol,
|
|
433
|
+
type: validateBase64String(args.type, 'type'),
|
|
434
|
+
serialNumber: validateOptionalBase64String(args.serialNumber, 'serialNumber'),
|
|
435
|
+
certifier: validateHexString(args.certifier, 'certifier'),
|
|
436
|
+
revocationOutpoint: validateOptionalOutpointString(args.revocationOutpoint, 'revocationOutpoint'),
|
|
437
|
+
fields: validateCertificateFields(args.fields),
|
|
438
|
+
signature: validateOptionalHexString(args.signature, 'signature'),
|
|
439
|
+
certifierUrl: args.certifierUrl,
|
|
440
|
+
keyringRevealer: validateOptionalKeyringRevealer(args.keyringRevealer, 'keyringRevealer'),
|
|
441
|
+
keyringForSubject: validateOptionalKeyringForSubject(args.keyringForSubject, 'keyringForSubject'),
|
|
442
|
+
privileged: defaultFalse(args.privileged),
|
|
443
|
+
privilegedReason: validateOptionalStringLength(args.privilegedReason, 'privilegedReason', 5, 50)
|
|
444
|
+
};
|
|
445
|
+
if (vargs.privileged && !vargs.privilegedReason)
|
|
446
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('privilegedReason', `valid when 'privileged' is true `);
|
|
447
|
+
if (vargs.acquisitionProtocol === 'direct') {
|
|
448
|
+
if (!vargs.serialNumber)
|
|
449
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('serialNumber', 'valid when acquisitionProtocol is "direct"');
|
|
450
|
+
if (!vargs.signature)
|
|
451
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('signature', 'valid when acquisitionProtocol is "direct"');
|
|
452
|
+
if (!vargs.revocationOutpoint)
|
|
453
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('revocationOutpoint', 'valid when acquisitionProtocol is "direct"');
|
|
454
|
+
}
|
|
455
|
+
return vargs;
|
|
456
|
+
}
|
|
457
|
+
function validateAcquireIssuanceCertificateArgs(args) {
|
|
458
|
+
if (args.acquisitionProtocol !== 'issuance')
|
|
459
|
+
throw new WERR_errors_1.WERR_INTERNAL('Only acquire certificate via issuance requests allowed here.');
|
|
460
|
+
if (args.serialNumber)
|
|
461
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('serialNumber', 'valid when acquisitionProtocol is "direct"');
|
|
462
|
+
if (args.signature)
|
|
463
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('signature', 'valid when acquisitionProtocol is "direct"');
|
|
464
|
+
if (args.revocationOutpoint)
|
|
465
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('revocationOutpoint', 'valid when acquisitionProtocol is "direct"');
|
|
466
|
+
if (args.keyringRevealer)
|
|
467
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('keyringRevealer', 'valid when acquisitionProtocol is "direct"');
|
|
468
|
+
if (args.keyringForSubject)
|
|
469
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('keyringForSubject', 'valid when acquisitionProtocol is "direct"');
|
|
470
|
+
if (!args.certifierUrl)
|
|
471
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('certifierUrl', 'valid when acquisitionProtocol is "issuance"');
|
|
472
|
+
if (args.privileged && !args.privilegedReason)
|
|
473
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('privilegedReason', `valid when 'privileged' is true `);
|
|
474
|
+
const vargs = {
|
|
475
|
+
type: validateBase64String(args.type, 'type'),
|
|
476
|
+
certifier: validateHexString(args.certifier, 'certifier'),
|
|
477
|
+
certifierUrl: args.certifierUrl,
|
|
478
|
+
fields: validateCertificateFields(args.fields),
|
|
479
|
+
privileged: defaultFalse(args.privileged),
|
|
480
|
+
privilegedReason: validateOptionalStringLength(args.privilegedReason, 'privilegedReason', 5, 50),
|
|
481
|
+
subject: ''
|
|
482
|
+
};
|
|
483
|
+
return vargs;
|
|
484
|
+
}
|
|
485
|
+
function validateAcquireDirectCertificateArgs(args) {
|
|
486
|
+
if (args.acquisitionProtocol !== 'direct')
|
|
487
|
+
throw new WERR_errors_1.WERR_INTERNAL('Only acquire direct certificate requests allowed here.');
|
|
488
|
+
if (!args.serialNumber)
|
|
489
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('serialNumber', 'valid when acquisitionProtocol is "direct"');
|
|
490
|
+
if (!args.signature)
|
|
491
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('signature', 'valid when acquisitionProtocol is "direct"');
|
|
492
|
+
if (!args.revocationOutpoint)
|
|
493
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('revocationOutpoint', 'valid when acquisitionProtocol is "direct"');
|
|
494
|
+
if (!args.keyringRevealer)
|
|
495
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('keyringRevealer', 'valid when acquisitionProtocol is "direct"');
|
|
496
|
+
if (!args.keyringForSubject)
|
|
497
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('keyringForSubject', 'valid when acquisitionProtocol is "direct"');
|
|
498
|
+
if (args.privileged && !args.privilegedReason)
|
|
499
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('privilegedReason', `valid when 'privileged' is true `);
|
|
500
|
+
const vargs = {
|
|
501
|
+
type: validateBase64String(args.type, 'type'),
|
|
502
|
+
serialNumber: validateBase64String(args.serialNumber, 'serialNumber'),
|
|
503
|
+
certifier: validateHexString(args.certifier, 'certifier'),
|
|
504
|
+
revocationOutpoint: validateOutpointString(args.revocationOutpoint, 'revocationOutpoint'),
|
|
505
|
+
fields: validateCertificateFields(args.fields),
|
|
506
|
+
signature: validateHexString(args.signature, 'signature'),
|
|
507
|
+
keyringRevealer: validateKeyringRevealer(args.keyringRevealer, 'keyringRevealer'),
|
|
508
|
+
keyringForSubject: validateKeyringForSubject(args.keyringForSubject, 'keyringForSubject'),
|
|
509
|
+
privileged: defaultFalse(args.privileged),
|
|
510
|
+
privilegedReason: validateOptionalStringLength(args.privilegedReason, 'privilegedReason', 5, 50),
|
|
511
|
+
subject: ''
|
|
512
|
+
};
|
|
513
|
+
return vargs;
|
|
514
|
+
}
|
|
515
|
+
function validateProveCertificateArgs(args) {
|
|
516
|
+
if (args.privileged && !args.privilegedReason)
|
|
517
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('privilegedReason', `valid when 'privileged' is true `);
|
|
518
|
+
const vargs = {
|
|
519
|
+
type: validateOptionalBase64String(args.certificate.type, 'certificate.type'),
|
|
520
|
+
serialNumber: validateOptionalBase64String(args.certificate.serialNumber, 'certificate.serialNumber'),
|
|
521
|
+
certifier: validateOptionalHexString(args.certificate.certifier, 'certificate.certifier'),
|
|
522
|
+
subject: validateOptionalHexString(args.certificate.subject, 'certificate.subject'),
|
|
523
|
+
revocationOutpoint: validateOptionalOutpointString(args.certificate.revocationOutpoint, 'certificate.revocationOutpoint'),
|
|
524
|
+
signature: validateOptionalHexString(args.certificate.signature, 'certificate.signature'),
|
|
525
|
+
fieldsToReveal: defaultEmpty(args.fieldsToReveal).map(fieldName => validateStringLength(fieldName, `fieldsToReveal ${fieldName}`, 1, 50)),
|
|
526
|
+
verifier: validateHexString(args.verifier, 'verifier'),
|
|
527
|
+
privileged: defaultFalse(args.privileged),
|
|
528
|
+
privilegedReason: validateOptionalStringLength(args.privilegedReason, 'privilegedReason', 5, 50)
|
|
529
|
+
};
|
|
530
|
+
return vargs;
|
|
531
|
+
}
|
|
532
|
+
function validateDiscoverByIdentityKeyArgs(args) {
|
|
533
|
+
const vargs = {
|
|
534
|
+
identityKey: validateHexString(args.identityKey, 'identityKey', 66, 66),
|
|
535
|
+
limit: validateInteger(args.limit, 'limit', 10, 1, 10000),
|
|
536
|
+
offset: validatePositiveIntegerOrZero(defaultZero(args.offset), 'offset'),
|
|
537
|
+
seekPermission: defaultFalse(args.seekPermission)
|
|
538
|
+
};
|
|
539
|
+
return vargs;
|
|
540
|
+
}
|
|
541
|
+
function validateAttributes(attributes) {
|
|
542
|
+
for (const fieldName of Object.keys(attributes)) {
|
|
543
|
+
validateStringLength(fieldName, `field name ${fieldName}`, 1, 50);
|
|
544
|
+
}
|
|
545
|
+
return attributes;
|
|
546
|
+
}
|
|
547
|
+
function validateDiscoverByAttributesArgs(args) {
|
|
548
|
+
const vargs = {
|
|
549
|
+
attributes: validateAttributes(args.attributes),
|
|
550
|
+
limit: validateInteger(args.limit, 'limit', 10, 1, 10000),
|
|
551
|
+
offset: validatePositiveIntegerOrZero(defaultZero(args.offset), 'offset'),
|
|
552
|
+
seekPermission: defaultFalse(args.seekPermission)
|
|
553
|
+
};
|
|
554
|
+
return vargs;
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* @param {BasketStringUnder300Bytes} args.basket - Required. The associated basket name whose outputs should be listed.
|
|
558
|
+
* @param {OutputTagStringUnder300Bytes[]} [args.tags] - Optional. Filter outputs based on these tags.
|
|
559
|
+
* @param {'all' | 'any'} [args.tagQueryMode] - Optional. Filter mode, defining whether all or any of the tags must match. By default, any tag can match.
|
|
560
|
+
* @param {'locking scripts' | 'entire transactions'} [args.include] - Optional. Whether to include locking scripts (with each output) or entire transactions (as aggregated BEEF, at the top level) in the result. By default, unless specified, neither are returned.
|
|
561
|
+
* @param {BooleanDefaultFalse} [args.includeEntireTransactions] - Optional. Whether to include the entire transaction(s) in the result.
|
|
562
|
+
* @param {BooleanDefaultFalse} [args.includeCustomInstructions] - Optional. Whether custom instructions should be returned in the result.
|
|
563
|
+
* @param {BooleanDefaultFalse} [args.includeTags] - Optional. Whether the tags associated with the output should be returned.
|
|
564
|
+
* @param {BooleanDefaultFalse} [args.includeLabels] - Optional. Whether the labels associated with the transaction containing the output should be returned.
|
|
565
|
+
* @param {PositiveIntegerDefault10Max10000} [args.limit] - Optional limit on the number of outputs to return.
|
|
566
|
+
* @param {number} [args.offset] - If positive or zero: Number of outputs to skip before starting to return results, oldest first.
|
|
567
|
+
* If negative: Outputs are returned newest first and offset of -1 is the newest output.
|
|
568
|
+
* When using negative offsets, caution is required as new outputs may be added between calls,
|
|
569
|
+
* potentially causing outputs to be duplicated across calls.
|
|
570
|
+
* @param {BooleanDefaultTrue} [args.seekPermission] — Optional. Whether to seek permission from the user for this operation if required. Default true, will return an error rather than proceed if set to false.
|
|
571
|
+
*/
|
|
572
|
+
function validateListOutputsArgs(args) {
|
|
573
|
+
let tagQueryMode;
|
|
574
|
+
if (args.tagQueryMode === undefined || args.tagQueryMode === 'any')
|
|
575
|
+
tagQueryMode = 'any';
|
|
576
|
+
else if (args.tagQueryMode === 'all')
|
|
577
|
+
tagQueryMode = 'all';
|
|
578
|
+
else
|
|
579
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('tagQueryMode', `undefined, 'any', or 'all'`);
|
|
580
|
+
const vargs = {
|
|
581
|
+
basket: validateStringLength(args.basket, 'basket', 1, 300),
|
|
582
|
+
tags: (args.tags || []).map(t => validateStringLength(t, 'tag', 1, 300)),
|
|
583
|
+
tagQueryMode,
|
|
584
|
+
includeLockingScripts: args.include === 'locking scripts',
|
|
585
|
+
includeTransactions: args.include === 'entire transactions',
|
|
586
|
+
includeCustomInstructions: defaultFalse(args.includeCustomInstructions),
|
|
587
|
+
includeTags: defaultFalse(args.includeTags),
|
|
588
|
+
includeLabels: defaultFalse(args.includeLabels),
|
|
589
|
+
limit: validateInteger(args.limit, 'limit', 10, 1, 10000),
|
|
590
|
+
offset: validateInteger(args.offset, 'offset', 0, undefined, undefined),
|
|
591
|
+
seekPermission: defaultTrue(args.seekPermission),
|
|
592
|
+
knownTxids: []
|
|
593
|
+
};
|
|
594
|
+
return vargs;
|
|
595
|
+
}
|
|
596
|
+
/**
|
|
597
|
+
* @param {LabelStringUnder300Bytes[]} args.labels - An array of labels used to filter actions.
|
|
598
|
+
* @param {'any' | 'all'} [args.labelQueryMode] - Optional. Specifies how to match labels (default is any which matches any of the labels).
|
|
599
|
+
* @param {BooleanDefaultFalse} [args.includeLabels] - Optional. Whether to include transaction labels in the result set.
|
|
600
|
+
* @param {BooleanDefaultFalse} [args.includeInputs] - Optional. Whether to include input details in the result set.
|
|
601
|
+
* @param {BooleanDefaultFalse} [args.includeInputSourceLockingScripts] - Optional. Whether to include input source locking scripts in the result set.
|
|
602
|
+
* @param {BooleanDefaultFalse} [args.includeInputUnlockingScripts] - Optional. Whether to include input unlocking scripts in the result set.
|
|
603
|
+
* @param {BooleanDefaultFalse} [args.includeOutputs] - Optional. Whether to include output details in the result set.
|
|
604
|
+
* @param {BooleanDefaultFalse} [args.includeOutputLockingScripts] - Optional. Whether to include output locking scripts in the result set.
|
|
605
|
+
* @param {PositiveIntegerDefault10Max10000} [args.limit] - Optional. The maximum number of transactions to retrieve.
|
|
606
|
+
* @param {PositiveIntegerOrZero} [args.offset] - Optional. Number of transactions to skip before starting to return the results.
|
|
607
|
+
* @param {BooleanDefaultTrue} [args.seekPermission] — Optional. Whether to seek permission from the user for this operation if required. Default true, will return an error rather than proceed if set to false.
|
|
608
|
+
*/
|
|
609
|
+
function validateListActionsArgs(args) {
|
|
610
|
+
let labelQueryMode;
|
|
611
|
+
if (args.labelQueryMode === undefined || args.labelQueryMode === 'any')
|
|
612
|
+
labelQueryMode = 'any';
|
|
613
|
+
else if (args.labelQueryMode === 'all')
|
|
614
|
+
labelQueryMode = 'all';
|
|
615
|
+
else
|
|
616
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('labelQueryMode', `undefined, 'any', or 'all'`);
|
|
617
|
+
const vargs = {
|
|
618
|
+
labels: (args.labels || []).map(t => validateLabel(t)),
|
|
619
|
+
labelQueryMode,
|
|
620
|
+
includeLabels: defaultFalse(args.includeLabels),
|
|
621
|
+
includeInputs: defaultFalse(args.includeInputs),
|
|
622
|
+
includeInputSourceLockingScripts: defaultFalse(args.includeInputSourceLockingScripts),
|
|
623
|
+
includeInputUnlockingScripts: defaultFalse(args.includeInputUnlockingScripts),
|
|
624
|
+
includeOutputs: defaultFalse(args.includeOutputs),
|
|
625
|
+
includeOutputLockingScripts: defaultFalse(args.includeOutputLockingScripts),
|
|
626
|
+
limit: validateInteger(args.limit, 'limit', 10, 1, 10000),
|
|
627
|
+
offset: validateInteger(args.offset, 'offset', 0, 0),
|
|
628
|
+
seekPermission: defaultTrue(args.seekPermission)
|
|
629
|
+
};
|
|
630
|
+
return vargs;
|
|
631
|
+
}
|
|
632
|
+
//# sourceMappingURL=validationHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationHelpers.js","sourceRoot":"","sources":["../../../../src/sdk/validationHelpers.ts"],"names":[],"mappings":"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"}
|