UNPKG

wallet-storage-client

Version:
274 lines 15 kB
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