UNPKG

@bsv/spv-wallet-js-client

Version:

TypeScript library for connecting to a SPV Wallet server

202 lines (201 loc) 7.85 kB
import { AccessKey, AdminStats, AdminTx, Contact, NewContact, PaymailAddress, SharedConfig, Utxo, XPub, PageModel, Webhook, Metadata, QueryPageParams, AdminClientOptions } from './types'; import { AdminAccessKeyFilter, AdminContactFilter, AdminPaymailFilter, AdminUtxoFilter, TransactionFilter, XpubFilter } from './filters'; import { Logger, LoggerConfig } from './logger'; import { HttpClient } from './httpclient'; /** * SPVWalletAdminAPI class for handling administrative operations * * @class SPVWalletAdminAPI */ export declare class SPVWalletAdminAPI { logger: Logger; http: HttpClient; /** * Creates a new instance of SPVWalletAdminAPI * * @param {string} serverUrl - The base URL of the SPV Wallet server * @param {AdminClientOptions} options - Configuration options including adminKey * @param {LoggerConfig} loggerConfig - Logger configuration (optional) */ constructor(serverUrl: string, options: AdminClientOptions, loggerConfig?: LoggerConfig); private ensureSuffix; private makeRequester; /** * Check if the admin key is valid * * @returns {Promise<boolean>} True if admin key is valid */ status(): Promise<boolean>; /** * Get server statistics * * @returns {Promise<AdminStats>} Server statistics */ stats(): Promise<AdminStats>; /** * Get a list of all access keys in the system * * @param {AdminAccessKeyFilter} conditions - Filter conditions for access keys * @param {Metadata} metadata - Metadata filter * @param {QueryPageParams} params - Pagination parameters * @returns {Promise<PageModel<AccessKey>>} List of access keys */ accessKeys(conditions: AdminAccessKeyFilter, metadata: Metadata, params: QueryPageParams): Promise<PageModel<AccessKey>>; /** * Get a list of all contacts in the system * * @param {AdminContactFilter} conditions - Filter conditions for contacts * @param {Metadata} metadata - Metadata filter * @param {QueryPageParams} params - Pagination parameters * @returns {Promise<PageModel<Contact>>} List of contacts */ contacts(conditions: AdminContactFilter, metadata: Metadata, params: QueryPageParams): Promise<PageModel<Contact>>; /** * Update contact information * * @param {string} id - Contact ID * @param {string} fullName - New full name for the contact * @param {Metadata} metadata - Updated metadata * @returns {Promise<Contact>} Updated contact information */ contactUpdate(id: string, fullName: string, metadata: Metadata): Promise<Contact>; /** * Delete a contact * * @param {string} id - ID of the contact to delete * @returns {Promise<void>} */ deleteContact(id: string): Promise<void>; /** * Accept a contact invitation * * @param {string} id - ID of the invitation to accept * @returns {Promise<Contact>} The accepted contact */ acceptInvitation(id: string): Promise<Contact>; /** * Reject a contact invitation * * @param {string} id - ID of the invitation to reject * @returns {Promise<void>} */ rejectInvitation(id: string): Promise<void>; /** * Get a transaction by ID * * @param {string} id - Transaction ID * @returns {Promise<AdminTx>} Transaction details */ transaction(id: string): Promise<AdminTx>; /** * Get a list of all transactions * * @param {TransactionFilter} conditions - Filter conditions for transactions * @param {Metadata} metadata - Metadata filter * @param {QueryPageParams} params - Pagination parameters * @returns {Promise<PageModel<AdminTx>>} List of transactions */ transactions(conditions: TransactionFilter, metadata: Metadata, params: QueryPageParams): Promise<PageModel<AdminTx>>; /** * Get a list of all UTXOs * * @param {AdminUtxoFilter} conditions - Filter conditions for UTXOs * @param {Metadata} metadata - Metadata filter * @param {QueryPageParams} params - Pagination parameters * @returns {Promise<PageModel<Utxo>>} List of UTXOs */ utxos(conditions: AdminUtxoFilter, metadata: Metadata, params: QueryPageParams): Promise<PageModel<Utxo>>; /** * Get a list of all xPubs * * @param {XpubFilter} conditions - Filter conditions for xPubs * @param {Metadata} metadata - Metadata filter * @param {QueryPageParams} params - Pagination parameters * @returns {Promise<PageModel<XPub>>} List of xPubs */ xPubs(conditions: XpubFilter, metadata: Metadata, params: QueryPageParams): Promise<PageModel<XPub>>; /** * Register a new xPub * * @param {string} rawXPub - Raw xPub key to register * @param {Metadata} metadata - Metadata for the xPub * @returns {Promise<XPub>} Registered xPub information */ createXPub(rawXPub: string, metadata: Metadata): Promise<XPub>; /** * Get a paymail by address * * @param {string} id - Paymail ID or address * @returns {Promise<PaymailAddress>} Paymail information */ paymail(id: string): Promise<PaymailAddress>; /** * Get a list of all paymails * * @param {AdminPaymailFilter} conditions - Filter conditions for paymails * @param {Metadata} metadata - Metadata filter * @param {QueryPageParams} params - Pagination parameters * @returns {Promise<PageModel<PaymailAddress>>} List of paymail addresses */ paymails(conditions: AdminPaymailFilter, metadata: Metadata, params: QueryPageParams): Promise<PageModel<PaymailAddress>>; /** * Create a new paymail * * @param {string} rawXPub - Raw xpub to register the paymail to * @param {string} address - Paymail address (e.g., alias@domain.com) * @param {string} publicName - Public name for the paymail * @param {string} avatar - Avatar URL * @param {Metadata} metadata - Additional metadata * @returns {Promise<PaymailAddress>} Created paymail address */ createPaymail(rawXPub: string, address: string, publicName: string, avatar: string, metadata: Metadata): Promise<PaymailAddress>; /** * Delete a paymail * @param {string} id - Paymail Id of user to be deleted */ deletePaymail(id: string): Promise<void>; /** * Get webhook subscriptions * * @returns {Promise<Webhook[]>} List of webhook subscriptions */ webhooks(): Promise<Webhook[]>; /** * Subscribe to webhook * * @param {string} url - Webhook URL * @param {string} tokenHeader - Header name for the authentication token * @param {string} tokenValue - Value of the authentication token * @returns {Promise<void>} */ subscribeWebhook(url: string, tokenHeader: string, tokenValue: string): Promise<void>; /** * Unsubscribe from webhook * * @param {string} url - URL of the webhook to unsubscribe * @returns {Promise<void>} */ unsubscribeWebhook(url: string): Promise<void>; /** * Create new contact * * @param {string} contactPaymail - Paymail address for the new contact * @param {NewContact} newContact - Contact information * @returns {Promise<Contact>} Created contact */ createContact(contactPaymail: string, newContact: NewContact): Promise<Contact>; /** * Confirm contacts * * @param {string} paymailA - First contact's paymail * @param {string} paymailB - Second contact's paymail * @returns {Promise<void>} */ confirmContacts(paymailA: string, paymailB: string): Promise<void>; /** * Get shared configuration * * @returns {Promise<SharedConfig>} Shared configuration settings */ sharedConfig(): Promise<SharedConfig>; }