@bsv/message-box-client 2.0.5 → 2.0.6
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/dist/cjs/package.json +2 -2
- package/dist/cjs/src/PeerPayClient.js +58 -57
- package/dist/cjs/src/PeerPayClient.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/PeerPayClient.js +59 -57
- package/dist/esm/src/PeerPayClient.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/PeerPayClient.d.ts +1 -0
- package/dist/types/src/PeerPayClient.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/package.json +2 -2
- package/src/PeerPayClient.ts +69 -63
|
@@ -10,8 +10,11 @@
|
|
|
10
10
|
* between identified peers on the BSV network.
|
|
11
11
|
*/
|
|
12
12
|
import { MessageBoxClient } from './MessageBoxClient.js';
|
|
13
|
-
import {
|
|
13
|
+
import { AuthFetch, Brc29RemittanceModule } from '@bsv/sdk';
|
|
14
14
|
import * as Logger from './Utils/logger.js';
|
|
15
|
+
function toNumberArray(tx) {
|
|
16
|
+
return Array.isArray(tx) ? tx : Array.from(tx);
|
|
17
|
+
}
|
|
15
18
|
function safeParse(input) {
|
|
16
19
|
try {
|
|
17
20
|
return typeof input === 'string' ? JSON.parse(input) : input;
|
|
@@ -32,6 +35,7 @@ export class PeerPayClient extends MessageBoxClient {
|
|
|
32
35
|
peerPayWalletClient;
|
|
33
36
|
_authFetchInstance;
|
|
34
37
|
messageBox;
|
|
38
|
+
settlementModule;
|
|
35
39
|
constructor(config) {
|
|
36
40
|
const { messageBoxHost = 'https://messagebox.babbage.systems', walletClient, enableLogging = false, originator } = config;
|
|
37
41
|
// 🔹 Pass enableLogging to MessageBoxClient
|
|
@@ -39,6 +43,15 @@ export class PeerPayClient extends MessageBoxClient {
|
|
|
39
43
|
this.messageBox = config.messageBox ?? STANDARD_PAYMENT_MESSAGEBOX;
|
|
40
44
|
this.peerPayWalletClient = walletClient;
|
|
41
45
|
this.originator = originator;
|
|
46
|
+
this.settlementModule = new Brc29RemittanceModule({
|
|
47
|
+
protocolID: [2, '3241645161d8'],
|
|
48
|
+
labels: ['peerpay'],
|
|
49
|
+
description: 'PeerPay payment',
|
|
50
|
+
outputDescription: 'Payment for PeerPay transaction',
|
|
51
|
+
internalizeProtocol: 'wallet payment',
|
|
52
|
+
refundFeeSatoshis: 1000,
|
|
53
|
+
minRefundSatoshis: 1000
|
|
54
|
+
});
|
|
42
55
|
}
|
|
43
56
|
get authFetchInstance() {
|
|
44
57
|
if (this._authFetchInstance === null || this._authFetchInstance === undefined) {
|
|
@@ -63,53 +76,34 @@ export class PeerPayClient extends MessageBoxClient {
|
|
|
63
76
|
throw new Error('Invalid payment details: recipient and valid amount are required');
|
|
64
77
|
}
|
|
65
78
|
;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
Logger.log(`[PP CLIENT] Locking Script: ${lockingScript}`);
|
|
84
|
-
// Create the payment action
|
|
85
|
-
const paymentAction = await this.peerPayWalletClient.createAction({
|
|
86
|
-
description: 'PeerPay payment',
|
|
87
|
-
labels: ['peerpay'],
|
|
88
|
-
outputs: [{
|
|
89
|
-
satoshis: payment.amount,
|
|
90
|
-
lockingScript,
|
|
91
|
-
customInstructions: JSON.stringify({
|
|
92
|
-
derivationPrefix,
|
|
93
|
-
derivationSuffix,
|
|
94
|
-
payee: payment.recipient
|
|
95
|
-
}),
|
|
96
|
-
outputDescription: 'Payment for PeerPay transaction'
|
|
97
|
-
}],
|
|
98
|
-
options: {
|
|
99
|
-
randomizeOutputs: false
|
|
79
|
+
const result = await this.settlementModule.buildSettlement({
|
|
80
|
+
threadId: 'peerpay',
|
|
81
|
+
option: {
|
|
82
|
+
amountSatoshis: payment.amount,
|
|
83
|
+
payee: payment.recipient,
|
|
84
|
+
labels: ['peerpay'],
|
|
85
|
+
description: 'PeerPay payment'
|
|
86
|
+
}
|
|
87
|
+
}, {
|
|
88
|
+
wallet: this.peerPayWalletClient,
|
|
89
|
+
originator: this.originator,
|
|
90
|
+
now: () => Date.now(),
|
|
91
|
+
logger: Logger
|
|
92
|
+
});
|
|
93
|
+
if (result.action === 'terminate') {
|
|
94
|
+
if (result.termination.code === 'brc29.public_key_missing') {
|
|
95
|
+
throw new Error('Failed to derive recipient’s public key');
|
|
100
96
|
}
|
|
101
|
-
|
|
102
|
-
if (paymentAction.tx === undefined) {
|
|
103
|
-
throw new Error('Transaction creation failed!');
|
|
97
|
+
throw new Error(result.termination.message);
|
|
104
98
|
}
|
|
105
|
-
Logger.log('[PP CLIENT] Payment Action:',
|
|
99
|
+
Logger.log('[PP CLIENT] Payment Action Settlement Artifact:', result.artifact);
|
|
106
100
|
return {
|
|
107
101
|
customInstructions: {
|
|
108
|
-
derivationPrefix,
|
|
109
|
-
derivationSuffix
|
|
102
|
+
derivationPrefix: result.artifact.customInstructions.derivationPrefix,
|
|
103
|
+
derivationSuffix: result.artifact.customInstructions.derivationSuffix
|
|
110
104
|
},
|
|
111
|
-
transaction:
|
|
112
|
-
amount:
|
|
105
|
+
transaction: result.artifact.transaction,
|
|
106
|
+
amount: result.artifact.amountSatoshis
|
|
113
107
|
};
|
|
114
108
|
}
|
|
115
109
|
/**
|
|
@@ -214,20 +208,28 @@ export class PeerPayClient extends MessageBoxClient {
|
|
|
214
208
|
async acceptPayment(payment) {
|
|
215
209
|
try {
|
|
216
210
|
Logger.log(`[PP CLIENT] Processing payment: ${JSON.stringify(payment, null, 2)}`);
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
211
|
+
const acceptResult = await this.settlementModule.acceptSettlement({
|
|
212
|
+
threadId: 'peerpay',
|
|
213
|
+
sender: payment.sender,
|
|
214
|
+
settlement: {
|
|
215
|
+
customInstructions: {
|
|
216
|
+
derivationPrefix: payment.token.customInstructions.derivationPrefix,
|
|
217
|
+
derivationSuffix: payment.token.customInstructions.derivationSuffix
|
|
218
|
+
},
|
|
219
|
+
transaction: toNumberArray(payment.token.transaction),
|
|
220
|
+
amountSatoshis: payment.token.amount,
|
|
221
|
+
outputIndex: payment.token.outputIndex ?? STANDARD_PAYMENT_OUTPUT_INDEX
|
|
222
|
+
}
|
|
223
|
+
}, {
|
|
224
|
+
wallet: this.peerPayWalletClient,
|
|
225
|
+
originator: this.originator,
|
|
226
|
+
now: () => Date.now(),
|
|
227
|
+
logger: Logger
|
|
228
|
+
});
|
|
229
|
+
if (acceptResult.action === 'terminate') {
|
|
230
|
+
throw new Error(acceptResult.termination.message);
|
|
231
|
+
}
|
|
232
|
+
const paymentResult = acceptResult.receiptData?.internalizeResult;
|
|
231
233
|
Logger.log(`[PP CLIENT] Payment internalized successfully: ${JSON.stringify(paymentResult, null, 2)}`);
|
|
232
234
|
Logger.log(`[PP CLIENT] Acknowledging payment with messageId: ${payment.messageId}`);
|
|
233
235
|
await this.acknowledgeMessage({ messageIds: [payment.messageId] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerPayClient.js","sourceRoot":"","sources":["../../../src/PeerPayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,
|
|
1
|
+
{"version":3,"file":"PeerPayClient.js","sourceRoot":"","sources":["../../../src/PeerPayClient.ts"],"names":[],"mappings":"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"}
|