@bsv/spv-wallet-js-client
Version:
TypeScript library for connecting to a SPV Wallet server
202 lines (201 loc) • 7.85 kB
TypeScript
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>;
}