@bsv/message-box-client 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/message-box-client",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -75,6 +75,6 @@
75
75
  },
76
76
  "dependencies": {
77
77
  "@bsv/authsocket-client": "^1.0.11",
78
- "@bsv/sdk": "^1.6.20"
78
+ "@bsv/sdk": "^1.7.5"
79
79
  }
80
80
  }
@@ -12,7 +12,8 @@
12
12
 
13
13
  import { MessageBoxClient } from './MessageBoxClient.js'
14
14
  import { PeerMessage } from './types.js'
15
- import { WalletClient, P2PKH, PublicKey, createNonce, AtomicBEEF, AuthFetch, Base64String } from '@bsv/sdk'
15
+ import { WalletInterface, P2PKH, PublicKey, createNonce, AtomicBEEF, AuthFetch, Base64String, OriginatorDomainNameStringUnder250Bytes } from '@bsv/sdk'
16
+
16
17
  import * as Logger from './Utils/logger.js'
17
18
 
18
19
  function safeParse<T> (input: any): T {
@@ -34,8 +35,9 @@ const STANDARD_PAYMENT_OUTPUT_INDEX = 0
34
35
  */
35
36
  export interface PeerPayClientConfig {
36
37
  messageBoxHost?: string
37
- walletClient: WalletClient
38
- enableLogging?: boolean // Added optional logging flag
38
+ walletClient: WalletInterface
39
+ enableLogging?: boolean // Added optional logging flag,
40
+ originator?: OriginatorDomainNameStringUnder250Bytes
39
41
  }
40
42
 
41
43
  /**
@@ -71,21 +73,22 @@ export interface IncomingPayment {
71
73
  * PeerPayClient enables peer-to-peer Bitcoin payments using MessageBox.
72
74
  */
73
75
  export class PeerPayClient extends MessageBoxClient {
74
- private readonly peerPayWalletClient: WalletClient
76
+ private readonly peerPayWalletClient: WalletInterface
75
77
  private _authFetchInstance?: AuthFetch
76
-
78
+ private originator?: OriginatorDomainNameStringUnder250Bytes
77
79
  constructor (config: PeerPayClientConfig) {
78
- const { messageBoxHost = 'https://messagebox.babbage.systems', walletClient, enableLogging = false } = config
80
+ const { messageBoxHost = 'https://messagebox.babbage.systems', walletClient, enableLogging = false, originator } = config
79
81
 
80
82
  // 🔹 Pass enableLogging to MessageBoxClient
81
83
  super({ host: messageBoxHost, walletClient, enableLogging })
82
84
 
83
85
  this.peerPayWalletClient = walletClient
86
+ this.originator = originator
84
87
  }
85
88
 
86
89
  private get authFetchInstance (): AuthFetch {
87
90
  if (this._authFetchInstance === null || this._authFetchInstance === undefined) {
88
- this._authFetchInstance = new AuthFetch(this.peerPayWalletClient)
91
+ this._authFetchInstance = new AuthFetch(this.peerPayWalletClient, undefined, undefined, this.originator)
89
92
  }
90
93
  return this._authFetchInstance
91
94
  }
@@ -119,7 +122,7 @@ export class PeerPayClient extends MessageBoxClient {
119
122
  protocolID: [2, '3241645161d8'],
120
123
  keyID: `${derivationPrefix} ${derivationSuffix}`,
121
124
  counterparty: payment.recipient
122
- })
125
+ }, this.originator)
123
126
 
124
127
  Logger.log(`[PP CLIENT] Derived Public Key: ${derivedKeyResult}`)
125
128
 
@@ -148,7 +151,7 @@ export class PeerPayClient extends MessageBoxClient {
148
151
  options: {
149
152
  randomizeOutputs: false
150
153
  }
151
- })
154
+ }, this.originator)
152
155
 
153
156
  if (paymentAction.tx === undefined) {
154
157
  throw new Error('Transaction creation failed!')
@@ -186,7 +189,7 @@ export class PeerPayClient extends MessageBoxClient {
186
189
 
187
190
  const paymentToken = await this.createPaymentToken(payment)
188
191
 
189
- // Ensure the recipient is included before sending
192
+ // Ensure the recipient is included before sendings
190
193
  await this.sendMessage({
191
194
  recipient: payment.recipient,
192
195
  messageBox: STANDARD_PAYMENT_MESSAGEBOX,
@@ -216,7 +219,8 @@ export class PeerPayClient extends MessageBoxClient {
216
219
  await this.sendLiveMessage({
217
220
  recipient: payment.recipient,
218
221
  messageBox: STANDARD_PAYMENT_MESSAGEBOX,
219
- body: JSON.stringify(paymentToken)
222
+ body: JSON.stringify(paymentToken),
223
+ originator: this.originator
220
224
  }, overrideHost)
221
225
  } catch (err) {
222
226
  Logger.warn('[PP CLIENT] sendLiveMessage failed, falling back to HTTP:', err)
@@ -225,7 +229,8 @@ export class PeerPayClient extends MessageBoxClient {
225
229
  await this.sendMessage({
226
230
  recipient: payment.recipient,
227
231
  messageBox: STANDARD_PAYMENT_MESSAGEBOX,
228
- body: JSON.stringify(paymentToken)
232
+ body: JSON.stringify(paymentToken),
233
+ originator: this.originator
229
234
  }, overrideHost)
230
235
  }
231
236
  }
@@ -244,14 +249,17 @@ export class PeerPayClient extends MessageBoxClient {
244
249
  */
245
250
  async listenForLivePayments ({
246
251
  onPayment,
247
- overrideHost
252
+ overrideHost,
253
+ originator
248
254
  }: {
249
255
  onPayment: (payment: IncomingPayment) => void
250
256
  overrideHost?: string
257
+ originator?: string
251
258
  }): Promise<void> {
252
259
  await this.listenForLiveMessages({
253
260
  messageBox: STANDARD_PAYMENT_MESSAGEBOX,
254
- overrideHost,
261
+ overrideHost,
262
+ originator,
255
263
 
256
264
  // Convert PeerMessage → IncomingPayment before calling onPayment
257
265
  onMessage: (message: PeerMessage) => {
@@ -294,12 +302,12 @@ export class PeerPayClient extends MessageBoxClient {
294
302
  protocol: 'wallet payment'
295
303
  }],
296
304
  description: 'PeerPay Payment'
297
- })
305
+ }, this.originator)
298
306
 
299
307
  Logger.log(`[PP CLIENT] Payment internalized successfully: ${JSON.stringify(paymentResult, null, 2)}`)
300
308
  Logger.log(`[PP CLIENT] Acknowledging payment with messageId: ${payment.messageId}`)
301
309
 
302
- await this.acknowledgeMessage({ messageIds: [payment.messageId] })
310
+ await this.acknowledgeMessage({ messageIds: [payment.messageId] , originator: this.originator})
303
311
 
304
312
  return { payment, paymentResult }
305
313
  } catch (error) {
@@ -363,7 +371,7 @@ export class PeerPayClient extends MessageBoxClient {
363
371
 
364
372
  try {
365
373
  Logger.log(`[PP CLIENT] Acknowledging message ${payment.messageId} after refunding...`)
366
- await this.acknowledgeMessage({ messageIds: [payment.messageId] })
374
+ await this.acknowledgeMessage({ messageIds: [payment.messageId], originator: this.originator })
367
375
  Logger.log('[PP CLIENT] Acknowledgment after refund successful.')
368
376
  } catch (error: any) {
369
377
  Logger.error(`[PP CLIENT] Error acknowledging message after refund: ${(error as { message: string }).message}`)
@@ -76,8 +76,8 @@ describe('PeerPayClient Unit Tests', () => {
76
76
  const token = await peerPayClient.createPaymentToken(payment)
77
77
 
78
78
  expect(token).toHaveProperty('amount', 5)
79
- expect(mockWalletClient.getPublicKey).toHaveBeenCalledWith(expect.any(Object))
80
- expect(mockWalletClient.createAction).toHaveBeenCalledWith(expect.any(Object))
79
+ expect(mockWalletClient.getPublicKey).toHaveBeenCalledWith(expect.any(Object), undefined)
80
+ expect(mockWalletClient.createAction).toHaveBeenCalledWith(expect.any(Object), undefined)
81
81
  })
82
82
 
83
83
  it('should throw an error if recipient public key cannot be derived', async () => {