@1sat/actions 0.0.231 → 0.0.233

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.
Files changed (60) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/mandala/index.d.ts +0 -1
  6. package/dist/mandala/index.d.ts.map +1 -1
  7. package/dist/mandala/index.js +0 -1
  8. package/dist/mandala/index.js.map +1 -1
  9. package/dist/mandala/receive.d.ts +16 -4
  10. package/dist/mandala/receive.d.ts.map +1 -1
  11. package/dist/mandala/receive.js +30 -86
  12. package/dist/mandala/receive.js.map +1 -1
  13. package/dist/mandala/send.d.ts +1 -1
  14. package/dist/mandala/send.d.ts.map +1 -1
  15. package/dist/mandala/send.js +9 -23
  16. package/dist/mandala/send.js.map +1 -1
  17. package/dist/mandala/send.test.js +3 -3
  18. package/dist/mandala/send.test.js.map +1 -1
  19. package/dist/{mandala → metanet}/brc78.d.ts.map +1 -1
  20. package/dist/{mandala → metanet}/brc78.js.map +1 -1
  21. package/dist/metanet/deliver.d.ts +26 -0
  22. package/dist/metanet/deliver.d.ts.map +1 -0
  23. package/dist/metanet/deliver.js +34 -0
  24. package/dist/metanet/deliver.js.map +1 -0
  25. package/dist/{mandala → metanet}/envelope.d.ts.map +1 -1
  26. package/dist/{mandala → metanet}/envelope.js.map +1 -1
  27. package/dist/metanet/envelope.test.d.ts.map +1 -0
  28. package/dist/{mandala → metanet}/envelope.test.js.map +1 -1
  29. package/dist/metanet/inbox.d.ts +51 -0
  30. package/dist/metanet/inbox.d.ts.map +1 -0
  31. package/dist/metanet/inbox.js +100 -0
  32. package/dist/metanet/inbox.js.map +1 -0
  33. package/dist/metanet/index.d.ts +8 -0
  34. package/dist/metanet/index.d.ts.map +1 -0
  35. package/dist/metanet/index.js +9 -0
  36. package/dist/metanet/index.js.map +1 -0
  37. package/dist/metanet/receive.d.ts +50 -0
  38. package/dist/metanet/receive.d.ts.map +1 -0
  39. package/dist/metanet/receive.js +107 -0
  40. package/dist/metanet/receive.js.map +1 -0
  41. package/dist/{mandala → metanet}/relay.d.ts +3 -2
  42. package/dist/{mandala → metanet}/relay.d.ts.map +1 -1
  43. package/dist/{mandala → metanet}/relay.js +3 -2
  44. package/dist/{mandala → metanet}/relay.js.map +1 -1
  45. package/dist/payments/index.d.ts +32 -1
  46. package/dist/payments/index.d.ts.map +1 -1
  47. package/dist/payments/index.js +118 -6
  48. package/dist/payments/index.js.map +1 -1
  49. package/dist/payments/sendBsvHandle.test.d.ts +2 -0
  50. package/dist/payments/sendBsvHandle.test.d.ts.map +1 -0
  51. package/dist/payments/sendBsvHandle.test.js +478 -0
  52. package/dist/payments/sendBsvHandle.test.js.map +1 -0
  53. package/package.json +7 -7
  54. package/dist/mandala/envelope.test.d.ts.map +0 -1
  55. /package/dist/{mandala → metanet}/brc78.d.ts +0 -0
  56. /package/dist/{mandala → metanet}/brc78.js +0 -0
  57. /package/dist/{mandala → metanet}/envelope.d.ts +0 -0
  58. /package/dist/{mandala → metanet}/envelope.js +0 -0
  59. /package/dist/{mandala → metanet}/envelope.test.d.ts +0 -0
  60. /package/dist/{mandala → metanet}/envelope.test.js +0 -0
@@ -0,0 +1,478 @@
1
+ import { beforeEach, describe, expect, test } from 'bun:test';
2
+ import { BRC29_PROTOCOL_ID } from '@1sat/types';
3
+ import { TRANSACTION_CBOR_CONTENT_TYPE, encodeMimeEntity, parseMimeEntity, } from '@1sat/utils';
4
+ import { EncryptedMessage, Hash, LockingScript, MerklePath, P2PKH, PrivateKey, ProtoWallet, PublicKey, Transaction, UnlockingScript, Utils, } from '@bsv/sdk';
5
+ import { decode as dagCborDecode, encode as dagCborEncode, } from '@ipld/dag-cbor';
6
+ import { encryptBrc78 } from '../metanet/brc78.js';
7
+ import { ENVELOPE_SIGNATURE_KEY_ID, ENVELOPE_SIGNATURE_PROTOCOL, envelopeSigningPreimage, signEnvelope, } from '../metanet/envelope.js';
8
+ import { syncMetanetInbox } from '../metanet/receive.js';
9
+ import { messageRelay } from '../metanet/relay.js';
10
+ import { createContext } from '../types.js';
11
+ import { sendBsv } from './index.js';
12
+ const relayed = [];
13
+ const acknowledged = [];
14
+ const listed = [];
15
+ const SENDER = PrivateKey.fromHex('11'.repeat(32));
16
+ const SENDER_ID = SENDER.toPublicKey().toString();
17
+ const RECIPIENT = PrivateKey.fromHex('22'.repeat(32));
18
+ const RECIPIENT_ID = RECIPIENT.toPublicKey().toString();
19
+ const RESOLVED_BOX = 'https://messagebox.lkup.net';
20
+ const DEFAULT_BOX = 'https://messagebox.1sat.app';
21
+ beforeEach(() => {
22
+ relayed.length = 0;
23
+ acknowledged.length = 0;
24
+ listed.length = 0;
25
+ Object.assign(messageRelay, {
26
+ sendCborMessage: async (_wallet, messagebox, recipient, messageBox, body) => {
27
+ const messageId = `env-${relayed.length + 1}`;
28
+ relayed.push({ messagebox, recipient, messageBox, body, messageId });
29
+ return { status: 'success', messageId };
30
+ },
31
+ listCborMessages: async (wallet, messagebox, messageBox) => {
32
+ listed.push({ messagebox, messageBox });
33
+ const { publicKey } = await wallet.getPublicKey({ identityKey: true });
34
+ return relayed
35
+ .filter((m) => m.recipient === publicKey && m.messageBox === messageBox)
36
+ .map((m) => ({
37
+ messageId: m.messageId,
38
+ body: m.body,
39
+ sender: new Uint8Array(33),
40
+ }));
41
+ },
42
+ acknowledgeCborMessages: async (_wallet, _messagebox, messageIds) => {
43
+ acknowledged.push(messageIds);
44
+ return { status: 'success' };
45
+ },
46
+ });
47
+ });
48
+ /** Sender wallet: ProtoWallet crypto plus a createAction that builds a funded tx. */
49
+ function senderWallet() {
50
+ const createArgs = [];
51
+ const wallet = Object.assign(Object.create(new ProtoWallet(SENDER)), {
52
+ createAction: async (args) => {
53
+ createArgs.push(args);
54
+ const parent = new Transaction();
55
+ parent.addOutput({
56
+ lockingScript: new LockingScript([]),
57
+ satoshis: 100000,
58
+ });
59
+ parent.merklePath = new MerklePath(1, [
60
+ [{ offset: 0, hash: parent.id('hex'), txid: true }],
61
+ ]);
62
+ const tx = new Transaction();
63
+ tx.addInput({
64
+ sourceTransaction: parent,
65
+ sourceOutputIndex: 0,
66
+ unlockingScript: new UnlockingScript([]),
67
+ });
68
+ for (const out of args.outputs ?? []) {
69
+ tx.addOutput({
70
+ lockingScript: LockingScript.fromHex(out.lockingScript),
71
+ satoshis: out.satoshis,
72
+ });
73
+ }
74
+ return { txid: tx.id('hex'), tx: tx.toAtomicBEEF() };
75
+ },
76
+ });
77
+ return { wallet, createArgs };
78
+ }
79
+ /** Recipient wallet: ProtoWallet crypto plus a recorded internalizeAction. */
80
+ function recipientWallet(fail = false) {
81
+ const internalized = [];
82
+ const wallet = Object.assign(Object.create(new ProtoWallet(RECIPIENT)), {
83
+ internalizeAction: async (args) => {
84
+ if (fail)
85
+ throw new Error('internalize refused');
86
+ internalized.push(args);
87
+ return { accepted: true };
88
+ },
89
+ });
90
+ return { wallet, internalized };
91
+ }
92
+ const json = (body, status = 200) => new Response(JSON.stringify(body), { status });
93
+ /**
94
+ * Network fake: `lkup.net` offers BRC-169 handles (deggen → RECIPIENT);
95
+ * `paymail.example` has no manifest and serves paymail P2P.
96
+ */
97
+ async function withNetwork(fn) {
98
+ const calls = [];
99
+ const realFetch = globalThis.fetch;
100
+ globalThis.fetch = (async (input) => {
101
+ const url = String(input);
102
+ calls.push(url);
103
+ if (url === 'https://lkup.net/manifest.json') {
104
+ return json({ metanet: { handles: { version: '1.0' } } });
105
+ }
106
+ if (url ===
107
+ 'https://lkup.net/.well-known/metanet-handles/resolve?handle=deggen') {
108
+ return json({
109
+ metanetHandles: '1.0',
110
+ handle: 'deggen',
111
+ domain: 'lkup.net',
112
+ identityKey: RECIPIENT_ID,
113
+ certificate: { subject: RECIPIENT_ID },
114
+ messagebox: RESOLVED_BOX,
115
+ ttl: 3600,
116
+ revoked: false,
117
+ });
118
+ }
119
+ if (url.startsWith('https://dns.google.com/resolve')) {
120
+ return json({ Status: 3 });
121
+ }
122
+ if (url === 'https://paymail.example:443/.well-known/bsvalias') {
123
+ return json({
124
+ capabilities: {
125
+ '2a40af698840': 'https://paymail.example/p2p/{alias}/dest',
126
+ '5c55a7fdb7bb': 'https://paymail.example/p2p/{alias}/beef',
127
+ },
128
+ });
129
+ }
130
+ if (url === 'https://paymail.example/p2p/alice/dest') {
131
+ return json({
132
+ reference: 'ref-1',
133
+ outputs: [
134
+ {
135
+ script: new P2PKH()
136
+ .lock(RECIPIENT.toPublicKey().toAddress())
137
+ .toHex(),
138
+ satoshis: 1000,
139
+ },
140
+ ],
141
+ });
142
+ }
143
+ if (url === 'https://paymail.example/p2p/alice/beef') {
144
+ return json({ txid: 'x' });
145
+ }
146
+ return new Response('not found', { status: 404 });
147
+ });
148
+ try {
149
+ return await fn(calls);
150
+ }
151
+ finally {
152
+ globalThis.fetch = realFetch;
153
+ }
154
+ }
155
+ /** Post a signed envelope from SENDER to the recipient's metanet_inbox. */
156
+ async function postEnvelope(mime, payment, hashed = mime) {
157
+ const proto = new ProtoWallet(SENDER);
158
+ const content = await encryptBrc78(proto, Array.from(mime), RECIPIENT_ID);
159
+ const { envelope } = await signEnvelope(proto, {
160
+ metanetHandles: '1.0',
161
+ recipient: { handle: 'deggen', domain: 'lkup.net' },
162
+ sender: { identityKey: Uint8Array.from(Utils.toArray(SENDER_ID, 'hex')) },
163
+ created: '2026-10-03T00:00:00Z',
164
+ payment,
165
+ contentHash: Uint8Array.from(Hash.sha256(Array.from(hashed))),
166
+ }, Uint8Array.from(content));
167
+ const messageId = `env-${relayed.length + 1}`;
168
+ relayed.push({
169
+ messagebox: RESOLVED_BOX,
170
+ recipient: RECIPIENT_ID,
171
+ messageBox: 'metanet_inbox',
172
+ body: envelope,
173
+ messageId,
174
+ });
175
+ return messageId;
176
+ }
177
+ describe('sendBsv destination rules', () => {
178
+ test('@handle@domain is BRC-169 only: no paymail fallback', async () => {
179
+ const { wallet, createArgs } = senderWallet();
180
+ const res = await withNetwork(async (calls) => {
181
+ const r = await sendBsv.execute(createContext(wallet), {
182
+ requests: [{ handle: '@alice@paymail.example', satoshis: 1000 }],
183
+ });
184
+ expect(calls.some((c) => c.includes('bsvalias'))).toBe(false);
185
+ expect(calls.some((c) => c.includes('dns.google'))).toBe(false);
186
+ return r;
187
+ });
188
+ expect(res.error).toContain('paymail.example');
189
+ expect(createArgs).toHaveLength(0);
190
+ });
191
+ test('handle@domain whose manifest offers handles is BRC-169', async () => {
192
+ const { wallet, createArgs } = senderWallet();
193
+ const res = await withNetwork(() => sendBsv.execute(createContext(wallet), {
194
+ requests: [{ paymail: 'deggen@lkup.net', satoshis: 1000 }],
195
+ }));
196
+ expect(res.error).toBeUndefined();
197
+ expect(res.delivered).toBe('envelope');
198
+ expect(createArgs[0].options?.noSend).toBe(true);
199
+ expect(relayed).toHaveLength(1);
200
+ });
201
+ test('handle@domain without a handles manifest takes the paymail path', async () => {
202
+ for (const req of [
203
+ { paymail: 'alice@paymail.example', satoshis: 1000 },
204
+ { handle: 'alice@paymail.example', satoshis: 1000 },
205
+ ]) {
206
+ const { wallet, createArgs } = senderWallet();
207
+ const res = await withNetwork(async (calls) => {
208
+ const r = await sendBsv.execute(createContext(wallet), {
209
+ requests: [req],
210
+ });
211
+ expect(calls[0]).toBe('https://paymail.example/manifest.json');
212
+ expect(calls).toContain('https://paymail.example/p2p/alice/beef');
213
+ return r;
214
+ });
215
+ expect(res.error).toBeUndefined();
216
+ expect(res.delivered).toBeUndefined();
217
+ expect(createArgs).toHaveLength(1);
218
+ expect(createArgs[0].options?.noSend).toBeUndefined();
219
+ expect(createArgs[0].outputs?.[0].outputDescription).toBe('Paymail payment to alice@paymail.example');
220
+ expect(relayed).toHaveLength(0);
221
+ }
222
+ });
223
+ test('a handle payment must be the only request', async () => {
224
+ const { wallet, createArgs } = senderWallet();
225
+ const res = await withNetwork(() => sendBsv.execute(createContext(wallet), {
226
+ requests: [
227
+ { handle: '@deggen@lkup.net', satoshis: 1000 },
228
+ { address: RECIPIENT.toPublicKey().toAddress(), satoshis: 1000 },
229
+ ],
230
+ }));
231
+ expect(res.error).toBe('handle-payment-must-be-the-only-request');
232
+ expect(createArgs).toHaveLength(0);
233
+ });
234
+ });
235
+ describe('sendBsv to a BRC-169 handle', () => {
236
+ test('protected noSend BRC-29 output, envelope to the resolved metanet_inbox', async () => {
237
+ const { wallet, createArgs } = senderWallet();
238
+ const res = await withNetwork(() => sendBsv.execute(createContext(wallet), {
239
+ requests: [
240
+ {
241
+ handle: '@deggen+conf@lkup.net',
242
+ satoshis: 21545,
243
+ memo: 'See you at conf2036',
244
+ },
245
+ ],
246
+ }));
247
+ expect(res.error).toBeUndefined();
248
+ expect(res.delivered).toBe('envelope');
249
+ expect(res.messageId).toBe('env-1');
250
+ // One protected noSend action, one output.
251
+ expect(createArgs).toHaveLength(1);
252
+ const args = createArgs[0];
253
+ expect(args.options).toEqual({ noSend: true, randomizeOutputs: false });
254
+ expect(args.labels).toEqual(['p nosend expiry seconds 31536000']);
255
+ expect(args.outputs).toHaveLength(1);
256
+ expect(args.outputs[0].satoshis).toBe(21545);
257
+ // Delivered to the resolved messagebox, box metanet_inbox.
258
+ expect(relayed).toHaveLength(1);
259
+ expect(relayed[0].messagebox).toBe(RESOLVED_BOX);
260
+ expect(relayed[0].recipient).toBe(RECIPIENT_ID);
261
+ expect(relayed[0].messageBox).toBe('metanet_inbox');
262
+ const env = dagCborDecode(relayed[0].body);
263
+ expect(env.metanetHandles).toBe('1.0');
264
+ expect(env.recipient).toEqual({
265
+ handle: 'deggen',
266
+ tag: 'conf',
267
+ domain: 'lkup.net',
268
+ });
269
+ expect(Utils.toHex(Array.from(env.sender.identityKey))).toBe(SENDER_ID);
270
+ // payment: BRC-29 fields as bstr, beef = the action's Atomic BEEF.
271
+ const payment = env.payment;
272
+ expect(Utils.toUTF8(Array.from(payment.protocol))).toBe('3241645161d8');
273
+ expect(payment.satoshis).toBe(21545);
274
+ expect(Array.from(payment.beef)).toEqual(res.tx);
275
+ expect(payment.derivationPrefix).toHaveLength(16);
276
+ expect(payment.derivationSuffix).toHaveLength(16);
277
+ // The output pays the key the recipient derives under BRC-29.
278
+ const keyID = `${Utils.toBase64(Array.from(payment.derivationPrefix))} ${Utils.toBase64(Array.from(payment.derivationSuffix))}`;
279
+ const { publicKey: derived } = await new ProtoWallet(SENDER).getPublicKey({
280
+ protocolID: BRC29_PROTOCOL_ID,
281
+ keyID,
282
+ counterparty: RECIPIENT_ID,
283
+ });
284
+ const { publicKey: recipientDerived } = await new ProtoWallet(RECIPIENT).getPublicKey({
285
+ protocolID: BRC29_PROTOCOL_ID,
286
+ keyID,
287
+ counterparty: SENDER_ID,
288
+ forSelf: true,
289
+ });
290
+ expect(recipientDerived).toBe(derived);
291
+ expect(args.outputs[0].lockingScript).toBe(new P2PKH().lock(PublicKey.fromString(derived).toAddress()).toHex());
292
+ // content: BRC-78 to the recipient, a text/plain MIME memo.
293
+ const plaintext = EncryptedMessage.decrypt(Array.from(env.content), RECIPIENT);
294
+ expect(Utils.toUTF8(plaintext)).toBe('Content-Type: text/plain; charset=utf-8\r\n\r\nSee you at conf2036');
295
+ const entity = parseMimeEntity(plaintext);
296
+ expect(entity.contentType).toBe('text/plain; charset=utf-8');
297
+ expect(Array.from(env.contentHash)).toEqual(Hash.sha256(plaintext));
298
+ // signature: §7.2 item 3, verifiable from sender.identityKey.
299
+ const { content: _c, signature, ...unsigned } = env;
300
+ const { valid } = await new ProtoWallet('anyone').verifySignature({
301
+ data: Array.from(envelopeSigningPreimage(unsigned)),
302
+ signature: Array.from(signature),
303
+ protocolID: ENVELOPE_SIGNATURE_PROTOCOL,
304
+ keyID: ENVELOPE_SIGNATURE_KEY_ID,
305
+ counterparty: SENDER_ID,
306
+ });
307
+ expect(valid).toBe(true);
308
+ });
309
+ test('an empty memo is an empty text/plain body', async () => {
310
+ const { wallet } = senderWallet();
311
+ await withNetwork(() => sendBsv.execute(createContext(wallet), {
312
+ requests: [{ handle: '@deggen@lkup.net', satoshis: 1 }],
313
+ }));
314
+ const env = dagCborDecode(relayed[0].body);
315
+ expect(Utils.toUTF8(EncryptedMessage.decrypt(Array.from(env.content), RECIPIENT))).toBe('Content-Type: text/plain; charset=utf-8\r\n\r\n');
316
+ });
317
+ test('a failed delivery returns the noSend action and the error', async () => {
318
+ const { wallet } = senderWallet();
319
+ messageRelay.sendCborMessage = async () => {
320
+ throw new Error('sendMessage 503');
321
+ };
322
+ const res = await withNetwork(() => sendBsv.execute(createContext(wallet), {
323
+ requests: [{ handle: '@deggen@lkup.net', satoshis: 1 }],
324
+ }));
325
+ expect(res.txid).toBeDefined();
326
+ expect(res.tx).toBeDefined();
327
+ expect(res.delivered).toBeUndefined();
328
+ expect(res.error).toBe('delivery-failed: sendMessage 503');
329
+ });
330
+ });
331
+ describe('syncMetanetInbox', () => {
332
+ async function sendPayment(memo) {
333
+ const { wallet } = senderWallet();
334
+ const res = await withNetwork(() => sendBsv.execute(createContext(wallet), {
335
+ requests: [{ handle: '@deggen@lkup.net', satoshis: 21545, memo }],
336
+ }));
337
+ expect(res.error).toBeUndefined();
338
+ return res;
339
+ }
340
+ test('round trip: a sent payment is verified, decrypted, internalized as a wallet payment, then acknowledged', async () => {
341
+ const sent = await sendPayment('lunch');
342
+ const env = dagCborDecode(relayed[0].body);
343
+ const { wallet, internalized } = recipientWallet();
344
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
345
+ expect(res.error).toBeUndefined();
346
+ expect(listed).toEqual([
347
+ { messagebox: DEFAULT_BOX, messageBox: 'metanet_inbox' },
348
+ ]);
349
+ expect(res.skipped).toEqual([]);
350
+ expect(res.received).toEqual([
351
+ {
352
+ messageId: 'env-1',
353
+ txid: sent.txid,
354
+ sender: SENDER_ID,
355
+ satoshis: 21545,
356
+ memo: 'lunch',
357
+ tokenIds: [],
358
+ },
359
+ ]);
360
+ expect(internalized).toHaveLength(1);
361
+ const args = internalized[0];
362
+ expect(Transaction.fromAtomicBEEF(args.tx).id('hex')).toBe(sent.txid);
363
+ expect(args.outputs).toEqual([
364
+ {
365
+ outputIndex: 0,
366
+ protocol: 'wallet payment',
367
+ paymentRemittance: {
368
+ derivationPrefix: Utils.toBase64(Array.from(env.payment.derivationPrefix)),
369
+ derivationSuffix: Utils.toBase64(Array.from(env.payment.derivationSuffix)),
370
+ senderIdentityKey: SENDER_ID,
371
+ },
372
+ },
373
+ ]);
374
+ expect(args.labels).toEqual(['metanet payment']);
375
+ expect(args.description).toBe('Metanet payment: lunch');
376
+ expect(acknowledged).toEqual([['env-1']]);
377
+ });
378
+ test('a failed internalize is not acknowledged', async () => {
379
+ await sendPayment();
380
+ const { wallet } = recipientWallet(true);
381
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
382
+ expect(res.skipped).toEqual([
383
+ { messageId: 'env-1', reason: 'internalize refused' },
384
+ ]);
385
+ expect(acknowledged).toEqual([]);
386
+ });
387
+ test('a bad signature is left unacknowledged and reported', async () => {
388
+ await sendPayment();
389
+ const env = dagCborDecode(relayed[0].body);
390
+ env.payment.satoshis = 1;
391
+ relayed[0].body = dagCborEncode(env);
392
+ const { wallet, internalized } = recipientWallet();
393
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
394
+ expect(res.skipped).toEqual([
395
+ { messageId: 'env-1', reason: 'envelope signature does not verify' },
396
+ ]);
397
+ expect(internalized).toHaveLength(0);
398
+ expect(acknowledged).toEqual([]);
399
+ });
400
+ test('a contentHash mismatch is left unacknowledged and reported', async () => {
401
+ const id = await postEnvelope(encodeMimeEntity('text/plain', Utils.toArray('a', 'utf8')), null, encodeMimeEntity('text/plain', Utils.toArray('b', 'utf8')));
402
+ const { wallet, internalized } = recipientWallet();
403
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
404
+ expect(res.skipped).toEqual([
405
+ { messageId: id, reason: 'contentHash does not match the content' },
406
+ ]);
407
+ expect(internalized).toHaveLength(0);
408
+ expect(acknowledged).toEqual([]);
409
+ });
410
+ test('a JSON envelope is reported, not acknowledged', async () => {
411
+ relayed.push({
412
+ messagebox: RESOLVED_BOX,
413
+ recipient: RECIPIENT_ID,
414
+ messageBox: 'metanet_inbox',
415
+ body: Uint8Array.from(Utils.toArray('{"metanetHandles":"1.0"}', 'utf8')),
416
+ messageId: 'json-1',
417
+ });
418
+ const { wallet } = recipientWallet();
419
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
420
+ expect(res.skipped).toEqual([
421
+ { messageId: 'json-1', reason: 'not a DAG-CBOR BRC-169 envelope' },
422
+ ]);
423
+ expect(acknowledged).toEqual([]);
424
+ });
425
+ test('BRC-232 transaction content is processed as the Mandala inbox processes it', async () => {
426
+ // A BRC-232 delivery carrying a BRC-29 wallet-payment output.
427
+ const sent = await sendPayment();
428
+ const env = dagCborDecode(relayed[0].body);
429
+ relayed.length = 0;
430
+ const body = {
431
+ txid: Uint8Array.from(Utils.toArray(sent.txid, 'hex')),
432
+ beef: Uint8Array.from(sent.tx),
433
+ outputs: [
434
+ {
435
+ outputIndex: 0,
436
+ protocol: 'wallet payment',
437
+ derivationPrefix: Utils.toBase64(Array.from(env.payment.derivationPrefix)),
438
+ derivationSuffix: Utils.toBase64(Array.from(env.payment.derivationSuffix)),
439
+ senderIdentityKey: Uint8Array.from(Utils.toArray(SENDER_ID, 'hex')),
440
+ },
441
+ ],
442
+ };
443
+ const id = await postEnvelope(encodeMimeEntity(TRANSACTION_CBOR_CONTENT_TYPE, dagCborEncode(body)), null);
444
+ const { wallet, internalized } = recipientWallet();
445
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
446
+ expect(res.skipped).toEqual([]);
447
+ expect(res.received).toEqual([
448
+ { messageId: id, txid: sent.txid, sender: SENDER_ID, tokenIds: [] },
449
+ ]);
450
+ expect(internalized).toHaveLength(1);
451
+ expect(internalized[0].description).toBe('Receive delivered outputs');
452
+ expect(internalized[0].labels).toBeUndefined();
453
+ expect(internalized[0].outputs[0]).toEqual({
454
+ outputIndex: 0,
455
+ protocol: 'wallet payment',
456
+ paymentRemittance: {
457
+ derivationPrefix: body.outputs[0].derivationPrefix,
458
+ derivationSuffix: body.outputs[0].derivationSuffix,
459
+ senderIdentityKey: SENDER_ID,
460
+ },
461
+ });
462
+ expect(acknowledged).toEqual([[id]]);
463
+ });
464
+ test('a message with neither payment nor transaction content is left unacknowledged', async () => {
465
+ const id = await postEnvelope(encodeMimeEntity('text/plain', Utils.toArray('hi', 'utf8')), null);
466
+ const { wallet, internalized } = recipientWallet();
467
+ const res = await syncMetanetInbox.execute(createContext(wallet), {});
468
+ expect(res.skipped).toEqual([
469
+ {
470
+ messageId: id,
471
+ reason: 'nothing to internalize: no payment, content type text/plain',
472
+ },
473
+ ]);
474
+ expect(internalized).toHaveLength(0);
475
+ expect(acknowledged).toEqual([]);
476
+ });
477
+ });
478
+ //# sourceMappingURL=sendBsvHandle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendBsvHandle.test.js","sourceRoot":"","sources":["../../src/payments/sendBsvHandle.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/actions",
3
- "version": "0.0.231",
3
+ "version": "0.0.233",
4
4
  "description": "Action definitions for the 1Sat SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,11 +29,11 @@
29
29
  ],
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@1sat/client": "0.0.60",
33
- "@1sat/templates": "0.0.42",
34
- "@1sat/types": "0.0.51",
35
- "@1sat/utils": "0.0.41",
36
- "@1sat/wallet": "0.0.117",
32
+ "@1sat/client": "0.0.62",
33
+ "@1sat/templates": "0.0.43",
34
+ "@1sat/types": "0.0.52",
35
+ "@1sat/utils": "0.0.42",
36
+ "@1sat/wallet": "0.0.119",
37
37
  "@bsv/message-box-client": "^2.5.0",
38
38
  "@ipld/dag-cbor": "^10.0.2",
39
39
  "xdelta3-wasm": "^1.0.0"
@@ -42,7 +42,7 @@
42
42
  "@bsv/sdk": "^2.6.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@1sat/wallet-remote": "0.0.74",
45
+ "@1sat/wallet-remote": "0.0.76",
46
46
  "@bsv/sdk": "^2.6.0",
47
47
  "typescript": "^5.9.3"
48
48
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.test.d.ts","sourceRoot":"","sources":["../../src/mandala/envelope.test.ts"],"names":[],"mappings":""}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes