@bsv/message-box-client
Version:
A client for P2P messaging and payments
99 lines • 2.75 kB
TypeScript
import { Base64String, WalletClient } from '@bsv/sdk';
/**
* Configuration options for initializing a MessageBoxClient.
*/
export interface MessageBoxClientOptions {
/**
* Wallet instance used for auth, identity, and encryption.
* If not provided, a new WalletClient will be created.
*/
walletClient?: WalletClient;
/**
* Base URL of the MessageBox server.
* @default 'https://messagebox.babbage.systems'
*/
host?: string;
/**
* If true, enables detailed logging to the console.
* @default false
*/
enableLogging?: boolean;
/**
* Overlay network preset for routing resolution.
* @default 'local'
*/
networkPreset?: 'local' | 'mainnet' | 'testnet';
}
/**
* Represents a decrypted message received from a MessageBox.
* Includes metadata such as sender identity, timestamps, and optional acknowledgment status.
*
* Used in both HTTP and WebSocket message retrieval responses.
*/
export interface PeerMessage {
messageId: string;
body: string | Record<string, any>;
sender: string;
created_at: string;
updated_at: string;
acknowledged?: boolean;
}
/**
* Parameters required to send a message.
* Message content may be a string or object, and encryption is enabled by default.
*
* @example
* {
* recipient: "03abc...",
* messageBox: "payment_inbox",
* body: { type: "ping" },
* skipEncryption: false
* }
*/
export interface SendMessageParams {
recipient: string;
messageBox: string;
body: string | object;
messageId?: string;
skipEncryption?: boolean;
}
/**
* Server response structure for successful message delivery.
*
* Returned by both `sendMessage` and `sendLiveMessage`.
*/
export interface SendMessageResponse {
status: string;
messageId: string;
}
/**
* Parameters for acknowledging messages in the system.
*
* @interface AcknowledgeMessageParams
*
* @property {string[]} messageIds - An array of message IDs to acknowledge.
* @property {string} [host] - Optional host URL where the messages originated.
*/
export interface AcknowledgeMessageParams {
messageIds: string[];
host?: string;
}
/**
* Parameters for listing messages in a message box.
*
* @property messageBox - The identifier of the message box to retrieve messages from.
* @property host - (Optional) The host URL to connect to for retrieving messages.
*/
export interface ListMessagesParams {
messageBox: string;
host?: string;
}
/**
* Encapsulates an AES-256-GCM encrypted message body.
*
* Used when transmitting encrypted payloads to the MessageBox server.
*/
export interface EncryptedMessage {
encryptedMessage: Base64String;
}
//# sourceMappingURL=types.d.ts.map