wallet-storage-client
Version:
Client only Wallet Storage
274 lines • 15 kB
TypeScript
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";
import { sdk } from "../index.client";
import { OutPoint } from "./types";
export declare function parseWalletOutpoint(outpoint: string): {
txid: string;
vout: number;
};
export declare function validateSatoshis(v: number | undefined, name: string, min?: number): number;
export declare function validateOptionalInteger(v: number | undefined, name: string, min?: number, max?: number): number | undefined;
export declare function validateInteger(v: number | undefined, name: string, defaultValue?: number, min?: number, max?: number): number;
export declare function validatePositiveIntegerOrZero(v: number, name: string): number;
export declare function validateStringLength(s: string, name: string, min?: number, max?: number): string;
export declare function isHexString(s: string): boolean;
export interface ValidWalletSignerArgs {
}
export interface ValidCreateActionInput {
outpoint: OutPoint;
inputDescription: DescriptionString5to50Bytes;
sequenceNumber: PositiveIntegerOrZero;
unlockingScript?: HexString;
unlockingScriptLength: PositiveInteger;
}
export declare function validateCreateActionInput(i: CreateActionInput): ValidCreateActionInput;
export interface ValidCreateActionOutput {
lockingScript: HexString;
satoshis: SatoshiValue;
outputDescription: DescriptionString5to50Bytes;
basket?: BasketStringUnder300Bytes;
customInstructions?: string;
tags: BasketStringUnder300Bytes[];
}
export declare function validateCreateActionOutput(o: CreateActionOutput): ValidCreateActionOutput;
/**
* Set all default true/false booleans to true or false if undefined.
* Set all possibly undefined numbers to their default values.
* Set all possibly undefined arrays to empty arrays.
* Convert string outpoints to `{ txid: string, vout: number }`
*/
export declare function validateCreateActionOptions(options?: CreateActionOptions): ValidCreateActionOptions;
export interface ValidProcessActionOptions {
acceptDelayedBroadcast: BooleanDefaultTrue;
returnTXIDOnly: BooleanDefaultFalse;
noSend: BooleanDefaultFalse;
sendWith: TXIDHexString[];
}
export interface ValidCreateActionOptions extends ValidProcessActionOptions {
signAndProcess: boolean;
trustSelf?: TrustSelf;
knownTxids: TXIDHexString[];
noSendChange: OutPoint[];
randomizeOutputs: boolean;
}
export interface ValidSignActionOptions extends ValidProcessActionOptions {
acceptDelayedBroadcast: boolean;
returnTXIDOnly: boolean;
noSend: boolean;
sendWith: TXIDHexString[];
}
export interface ValidProcessActionArgs extends ValidWalletSignerArgs {
options: sdk.ValidProcessActionOptions;
isSendWith: boolean;
isNewTx: boolean;
isNoSend: boolean;
isDelayed: boolean;
}
export interface ValidCreateActionArgs extends ValidProcessActionArgs {
description: DescriptionString5to50Bytes;
inputBEEF?: BEEF;
inputs: sdk.ValidCreateActionInput[];
outputs: sdk.ValidCreateActionOutput[];
lockTime: number;
version: number;
labels: string[];
options: ValidCreateActionOptions;
isSignAction: boolean;
}
export interface ValidSignActionArgs extends ValidProcessActionArgs {
spends: Record<PositiveIntegerOrZero, SignActionSpend>;
reference: Base64String;
options: sdk.ValidSignActionOptions;
}
export declare function validateCreateActionArgs(args: CreateActionArgs): ValidCreateActionArgs;
/**
* Set all default true/false booleans to true or false if undefined.
* Set all possibly undefined numbers to their default values.
* Set all possibly undefined arrays to empty arrays.
* Convert string outpoints to `{ txid: string, vout: number }`
*/
export declare function validateSignActionOptions(options?: SignActionOptions): ValidSignActionOptions;
export declare function validateSignActionArgs(args: SignActionArgs): ValidSignActionArgs;
export interface ValidAbortActionArgs extends ValidWalletSignerArgs {
reference: Base64String;
}
export declare function validateAbortActionArgs(args: AbortActionArgs): ValidAbortActionArgs;
export interface ValidWalletPayment {
derivationPrefix: Base64String;
derivationSuffix: Base64String;
senderIdentityKey: PubKeyHex;
}
export declare function validateWalletPayment(args?: WalletPayment): ValidWalletPayment | undefined;
export interface ValidBasketInsertion {
basket: BasketStringUnder300Bytes;
customInstructions?: string;
tags: BasketStringUnder300Bytes[];
}
export declare function validateBasketInsertion(args?: BasketInsertion): ValidBasketInsertion | undefined;
export interface ValidInternalizeOutput {
outputIndex: PositiveIntegerOrZero;
protocol: 'wallet payment' | 'basket insertion';
paymentRemittance?: ValidWalletPayment;
insertionRemittance?: ValidBasketInsertion;
}
export declare function validateInternalizeOutput(args: InternalizeOutput): ValidInternalizeOutput;
export interface ValidInternalizeActionArgs extends ValidWalletSignerArgs {
tx: AtomicBEEF;
outputs: InternalizeOutput[];
description: DescriptionString5to50Bytes;
labels: LabelStringUnder300Bytes[];
seekPermission: BooleanDefaultTrue;
}
export declare function validateOriginator(s?: string): string | undefined;
export declare function validateInternalizeActionArgs(args: InternalizeActionArgs): ValidInternalizeActionArgs;
export declare function validateOptionalOutpointString(outpoint: string | undefined, name: string): string | undefined;
export declare function validateOutpointString(outpoint: string, name: string): string;
export interface ValidRelinquishOutputArgs extends ValidWalletSignerArgs {
basket: BasketStringUnder300Bytes;
output: OutpointString;
}
export declare function validateRelinquishOutputArgs(args: RelinquishOutputArgs): ValidRelinquishOutputArgs;
export interface ValidRelinquishCertificateArgs extends ValidWalletSignerArgs {
type: Base64String;
serialNumber: Base64String;
certifier: PubKeyHex;
}
export declare function validateRelinquishCertificateArgs(args: RelinquishCertificateArgs): ValidRelinquishCertificateArgs;
export interface ValidListCertificatesArgs extends ValidWalletSignerArgs {
partial?: {
type?: Base64String;
serialNumber?: Base64String;
certifier?: PubKeyHex;
subject?: PubKeyHex;
revocationOutpoint?: OutpointString;
signature?: HexString;
};
certifiers: PubKeyHex[];
types: Base64String[];
limit: PositiveIntegerDefault10Max10000;
offset: PositiveIntegerOrZero;
privileged: BooleanDefaultFalse;
privilegedReason?: DescriptionString5to50Bytes;
}
export declare function validateListCertificatesArgs(args: ListCertificatesArgs): ValidListCertificatesArgs;
export interface ValidAcquireCertificateArgs extends ValidWalletSignerArgs {
acquisitionProtocol: AcquisitionProtocol;
type: Base64String;
serialNumber?: Base64String;
certifier: PubKeyHex;
revocationOutpoint?: OutpointString;
fields: Record<CertificateFieldNameUnder50Bytes, string>;
signature?: HexString;
certifierUrl?: string;
keyringRevealer?: KeyringRevealer;
keyringForSubject?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
privileged: boolean;
privilegedReason?: DescriptionString5to50Bytes;
}
/**
*
* @param args
* @param subject Must be valid for "direct" `acquisitionProtocol`. public key of the certificate subject.
* @returns
*/
export declare function validateAcquireCertificateArgs(args: AcquireCertificateArgs): Promise<ValidAcquireCertificateArgs>;
export interface ValidAcquireDirectCertificateArgs extends ValidWalletSignerArgs {
type: Base64String;
serialNumber: Base64String;
certifier: PubKeyHex;
revocationOutpoint: OutpointString;
fields: Record<CertificateFieldNameUnder50Bytes, string>;
signature: HexString;
/**
* validated to an empty string, must be provided by wallet and must
* match expectations of keyringForSubject
*/
subject: PubKeyHex;
keyringRevealer: KeyringRevealer;
keyringForSubject: Record<CertificateFieldNameUnder50Bytes, Base64String>;
privileged: boolean;
privilegedReason?: DescriptionString5to50Bytes;
}
export declare function validateAcquireDirectCertificateArgs(args: AcquireCertificateArgs): ValidAcquireDirectCertificateArgs;
export interface ValidProveCertificateArgs extends ValidWalletSignerArgs {
type?: Base64String;
serialNumber?: Base64String;
certifier?: PubKeyHex;
subject?: PubKeyHex;
revocationOutpoint?: OutpointString;
signature?: HexString;
fieldsToReveal: CertificateFieldNameUnder50Bytes[];
verifier: PubKeyHex;
privileged: boolean;
privilegedReason?: DescriptionString5to50Bytes;
}
export declare function validateProveCertificateArgs(args: ProveCertificateArgs): ValidProveCertificateArgs;
export interface ValidDiscoverByIdentityKeyArgs extends ValidWalletSignerArgs {
identityKey: PubKeyHex;
limit: PositiveIntegerDefault10Max10000;
offset: PositiveIntegerOrZero;
seekPermission: boolean;
}
export declare function validateDiscoverByIdentityKeyArgs(args: DiscoverByIdentityKeyArgs): ValidDiscoverByIdentityKeyArgs;
export interface ValidDiscoverByAttributesArgs extends ValidWalletSignerArgs {
attributes: Record<CertificateFieldNameUnder50Bytes, string>;
limit: PositiveIntegerDefault10Max10000;
offset: PositiveIntegerOrZero;
seekPermission: boolean;
}
export declare function validateDiscoverByAttributesArgs(args: DiscoverByAttributesArgs): ValidDiscoverByAttributesArgs;
export interface ValidListOutputsArgs extends ValidWalletSignerArgs {
basket: BasketStringUnder300Bytes;
tags: OutputTagStringUnder300Bytes[];
tagQueryMode: 'all' | 'any';
includeLockingScripts: boolean;
includeTransactions: boolean;
includeCustomInstructions: BooleanDefaultFalse;
includeTags: BooleanDefaultFalse;
includeLabels: BooleanDefaultFalse;
limit: PositiveIntegerDefault10Max10000;
offset: PositiveIntegerOrZero;
seekPermission: BooleanDefaultTrue;
knownTxids: string[];
}
/**
* @param {BasketStringUnder300Bytes} args.basket - Required. The associated basket name whose outputs should be listed.
* @param {OutputTagStringUnder300Bytes[]} [args.tags] - Optional. Filter outputs based on these tags.
* @param {'all' | 'any'} [args.tagQueryMode] - Optional. Filter mode, defining whether all or any of the tags must match. By default, any tag can match.
* @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.
* @param {BooleanDefaultFalse} [args.includeEntireTransactions] - Optional. Whether to include the entire transaction(s) in the result.
* @param {BooleanDefaultFalse} [args.includeCustomInstructions] - Optional. Whether custom instructions should be returned in the result.
* @param {BooleanDefaultFalse} [args.includeTags] - Optional. Whether the tags associated with the output should be returned.
* @param {BooleanDefaultFalse} [args.includeLabels] - Optional. Whether the labels associated with the transaction containing the output should be returned.
* @param {PositiveIntegerDefault10Max10000} [args.limit] - Optional limit on the number of outputs to return.
* @param {PositiveIntegerOrZero} [args.offset] - Optional. Number of outputs to skip before starting to return results.
* @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.
*/
export declare function validateListOutputsArgs(args: ListOutputsArgs): ValidListOutputsArgs;
export interface ValidListActionsArgs extends ValidWalletSignerArgs {
labels: LabelStringUnder300Bytes[];
labelQueryMode: 'any' | 'all';
includeLabels: BooleanDefaultFalse;
includeInputs: BooleanDefaultFalse;
includeInputSourceLockingScripts: BooleanDefaultFalse;
includeInputUnlockingScripts: BooleanDefaultFalse;
includeOutputs: BooleanDefaultFalse;
includeOutputLockingScripts: BooleanDefaultFalse;
limit: PositiveIntegerDefault10Max10000;
offset: PositiveIntegerOrZero;
seekPermission: BooleanDefaultTrue;
}
/**
* @param {LabelStringUnder300Bytes[]} args.labels - An array of labels used to filter actions.
* @param {'any' | 'all'} [args.labelQueryMode] - Optional. Specifies how to match labels (default is any which matches any of the labels).
* @param {BooleanDefaultFalse} [args.includeLabels] - Optional. Whether to include transaction labels in the result set.
* @param {BooleanDefaultFalse} [args.includeInputs] - Optional. Whether to include input details in the result set.
* @param {BooleanDefaultFalse} [args.includeInputSourceLockingScripts] - Optional. Whether to include input source locking scripts in the result set.
* @param {BooleanDefaultFalse} [args.includeInputUnlockingScripts] - Optional. Whether to include input unlocking scripts in the result set.
* @param {BooleanDefaultFalse} [args.includeOutputs] - Optional. Whether to include output details in the result set.
* @param {BooleanDefaultFalse} [args.includeOutputLockingScripts] - Optional. Whether to include output locking scripts in the result set.
* @param {PositiveIntegerDefault10Max10000} [args.limit] - Optional. The maximum number of transactions to retrieve.
* @param {PositiveIntegerOrZero} [args.offset] - Optional. Number of transactions to skip before starting to return the results.
* @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.
*/
export declare function validateListActionsArgs(args: ListActionsArgs): ValidListActionsArgs;
//# sourceMappingURL=validationHelpers.d.ts.map