@1sat/actions 0.0.126 → 0.0.129

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.
@@ -2,14 +2,15 @@
2
2
  * Cosign Token Deliveries Sync Action
3
3
  *
4
4
  * One-shot pull from a MessageBox slot used by cosign-wrapped BSV21 mints
5
- * and transfers. Each message body carries a finalized BEEF, the cosign
6
- * customInstructions the recipient will need to sign at spend time, and
5
+ * and transfers. Each (decrypted) message body carries a finalized BEEF,
6
+ * the cosign customInstructions the recipient will need at spend time, and
7
7
  * the output index that's owned by this wallet. We internalize the output
8
- * into the bsv21 basket with the supplied customInstructions verbatim
9
- * (no derivation re-write — these are cosign-protocol keys, not BRC-29).
8
+ * into the bsv21 basket with the supplied customInstructions verbatim.
10
9
  *
11
- * Intended call sites: any UI mount where a fresh sync is desired (e.g.
12
- * yours-wallet popup mount). Not a polling loop.
10
+ * Uses `@bsv/p2p` MessageBoxClient so encrypted bodies are decrypted using
11
+ * BRC-2 ECDH/AES-256-GCM via the wallet (matches what the sender used to
12
+ * encrypt). Intended call sites: any UI mount where a fresh sync is
13
+ * desired (e.g. yours-wallet popup mount). Not a polling loop.
13
14
  */
14
15
  import type { Action } from '../types';
15
16
  export interface SyncCosignDeliveriesInput {
@@ -1 +1 @@
1
- {"version":3,"file":"syncCosignDeliveries.d.ts","sourceRoot":"","sources":["../../src/sync/syncCosignDeliveries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMtC,MAAM,WAAW,yBAAyB;IACzC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,0BAA0B;IAC1C,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;CACd;AA8BD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACxC,yBAAyB,EACzB,0BAA0B,CAoH1B,CAAA"}
1
+ {"version":3,"file":"syncCosignDeliveries.d.ts","sourceRoot":"","sources":["../../src/sync/syncCosignDeliveries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AA6DtC,MAAM,WAAW,yBAAyB;IACzC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,0BAA0B;IAC1C,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;CACd;AAiBD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACxC,yBAAyB,EACzB,0BAA0B,CAoI1B,CAAA"}
@@ -2,17 +2,63 @@
2
2
  * Cosign Token Deliveries Sync Action
3
3
  *
4
4
  * One-shot pull from a MessageBox slot used by cosign-wrapped BSV21 mints
5
- * and transfers. Each message body carries a finalized BEEF, the cosign
6
- * customInstructions the recipient will need to sign at spend time, and
5
+ * and transfers. Each (decrypted) message body carries a finalized BEEF,
6
+ * the cosign customInstructions the recipient will need at spend time, and
7
7
  * the output index that's owned by this wallet. We internalize the output
8
- * into the bsv21 basket with the supplied customInstructions verbatim
9
- * (no derivation re-write — these are cosign-protocol keys, not BRC-29).
8
+ * into the bsv21 basket with the supplied customInstructions verbatim.
10
9
  *
11
- * Intended call sites: any UI mount where a fresh sync is desired (e.g.
12
- * yours-wallet popup mount). Not a polling loop.
10
+ * Uses `@bsv/p2p` MessageBoxClient so encrypted bodies are decrypted using
11
+ * BRC-2 ECDH/AES-256-GCM via the wallet (matches what the sender used to
12
+ * encrypt). Intended call sites: any UI mount where a fresh sync is
13
+ * desired (e.g. yours-wallet popup mount). Not a polling loop.
13
14
  */
15
+ import { MessageBoxClient } from '@bsv/p2p';
14
16
  import { Utils } from '@bsv/sdk';
15
- import { AuthFetch } from '@bsv/sdk/auth';
17
+ /**
18
+ * Unwrap the server's {message: <string>} envelope, detect the nested
19
+ * {encryptedMessage: <base64>} ciphertext, and decrypt with the wallet
20
+ * using the same BRC-2 ECDH/AES-256-GCM keys the sender used.
21
+ *
22
+ * Falls through to a plain JSON parse when neither layer is present.
23
+ */
24
+ async function unwrapAndDecryptMessageBody(rawBody, sender, wallet) {
25
+ const tryParse = (s) => {
26
+ try {
27
+ return JSON.parse(s);
28
+ }
29
+ catch {
30
+ return s;
31
+ }
32
+ };
33
+ let level = rawBody;
34
+ if (typeof level === 'string')
35
+ level = tryParse(level);
36
+ // Server wraps as {message: <inner string>}.
37
+ if (level !== null &&
38
+ typeof level === 'object' &&
39
+ typeof level.message === 'string') {
40
+ level = tryParse(level.message);
41
+ }
42
+ // If we now have {encryptedMessage: <base64>}, decrypt.
43
+ if (level !== null &&
44
+ typeof level === 'object' &&
45
+ typeof level.encryptedMessage ===
46
+ 'string') {
47
+ const ciphertext = Utils.toArray(level.encryptedMessage, 'base64');
48
+ const decrypted = await wallet.decrypt({
49
+ protocolID: [1, 'messagebox'],
50
+ keyID: '1',
51
+ counterparty: sender,
52
+ ciphertext,
53
+ });
54
+ const plaintext = Utils.toUTF8(decrypted.plaintext);
55
+ level = tryParse(plaintext);
56
+ }
57
+ if (level === null || typeof level !== 'object') {
58
+ throw new Error('message body did not resolve to a JSON object');
59
+ }
60
+ return level;
61
+ }
16
62
  // ============================================================================
17
63
  // Action
18
64
  // ============================================================================
@@ -38,52 +84,71 @@ export const syncCosignDeliveries = {
38
84
  },
39
85
  async execute(ctx, input) {
40
86
  const messageBox = input.messageBox || 'cosign_token_inbox';
41
- const messageboxUrl = input.messageboxUrl?.replace(/\/+$/, '') ||
87
+ const host = input.messageboxUrl?.replace(/\/+$/, '') ||
42
88
  'https://messagebox.1sat.app';
43
- const authFetch = new AuthFetch(ctx.wallet);
44
- // 1. List pending messages.
45
- const listResponse = await authFetch.fetch(`${messageboxUrl}/listMessages`, {
46
- method: 'POST',
47
- headers: { 'Content-Type': 'application/json' },
48
- body: JSON.stringify({ messageBox }),
49
- });
50
- if (!listResponse.ok) {
51
- throw new Error(`Failed to list messages: ${listResponse.status} ${listResponse.statusText}`);
52
- }
53
- const { messages } = (await listResponse.json());
54
- if (!messages || messages.length === 0) {
89
+ // MessageBoxClient encrypts on send and decrypts on listMessages,
90
+ // so we go through it (not raw AuthFetch) — the bodies on the wire
91
+ // are AES-256-GCM ciphertext under BRC-2 ECDH keys.
92
+ // biome-ignore lint/suspicious/noExplicitAny: WalletInterface typing diff between @bsv/sdk versions
93
+ const client = new MessageBoxClient({ walletClient: ctx.wallet, host });
94
+ const messages = await client.listMessages({ messageBox, host });
95
+ if (messages.length === 0) {
55
96
  return { processed: 0, failed: 0 };
56
97
  }
57
- // 2. Internalize each delivery into the wallet's bsv21 basket.
58
98
  let processed = 0;
59
99
  let failed = 0;
60
100
  const acknowledgedIds = [];
61
101
  for (const msg of messages) {
62
102
  try {
63
- const delivery = JSON.parse(msg.body);
64
- const beefBytes = Array.isArray(delivery.beef)
65
- ? delivery.beef
66
- : Utils.toArray(delivery.beef, 'hex');
103
+ // The server stores message bodies wrapped as {message: <inner>}
104
+ // where <inner> is itself a JSON string of {encryptedMessage:
105
+ // "<base64>"} (BRC-2 ECDH/AES-256-GCM ciphertext). MessageBox
106
+ // Client.listMessages's auto-decrypt only matches when the top-
107
+ // level parsed body has `encryptedMessage` directly, so it
108
+ // silently skips this nested envelope. Unwrap + decrypt here.
109
+ const body = await unwrapAndDecryptMessageBody(msg.body, msg.sender, ctx.wallet);
110
+ console.log(`[syncCosignDeliveries] message ${msg.messageId} parsed body keys:`, Object.keys(body));
111
+ const tokenId = typeof body.tokenId === 'string' ? body.tokenId : '';
112
+ const vout = typeof body.vout === 'number' ? body.vout : -1;
113
+ const beefField = body.beef;
114
+ const customInstructions = typeof body.customInstructions === 'string'
115
+ ? body.customInstructions
116
+ : '';
117
+ const amount = typeof body.amount === 'string' || typeof body.amount === 'number'
118
+ ? String(body.amount)
119
+ : '0';
120
+ if (!tokenId || vout < 0 || !beefField || !customInstructions) {
121
+ throw new Error(`message body missing required fields (have keys: ${Object.keys(body).join(',')})`);
122
+ }
123
+ const beefBytes = Array.isArray(beefField)
124
+ ? beefField
125
+ : typeof beefField === 'string'
126
+ ? Utils.toArray(beefField, 'hex')
127
+ : [];
128
+ if (beefBytes.length === 0) {
129
+ throw new Error('beef field could not be decoded as bytes');
130
+ }
131
+ const tokenIdShort = tokenId.slice(0, 8);
67
132
  const tags = [
68
- `bsv21:${delivery.tokenId}`,
69
- `amt:${delivery.amount}`,
70
- `tokenId:${delivery.tokenId}`,
133
+ `bsv21:${tokenId}`,
134
+ `amt:${amount}`,
135
+ `tokenId:${tokenId}`,
71
136
  ];
72
137
  await ctx.wallet.internalizeAction({
73
138
  tx: beefBytes,
74
139
  outputs: [
75
140
  {
76
- outputIndex: delivery.vout,
141
+ outputIndex: vout,
77
142
  protocol: 'basket insertion',
78
143
  insertionRemittance: {
79
144
  basket: 'bsv21',
80
145
  tags,
81
- customInstructions: delivery.customInstructions,
146
+ customInstructions,
82
147
  },
83
148
  },
84
149
  ],
85
- description: `Cosign token delivery (${delivery.tokenId.slice(0, 8)}…)`.slice(0, 50),
86
- labels: [`bsv21:${delivery.tokenId}`],
150
+ description: `Cosign token delivery (${tokenIdShort}…)`.slice(0, 50),
151
+ labels: [`bsv21:${tokenId}`],
87
152
  });
88
153
  acknowledgedIds.push(msg.messageId);
89
154
  processed++;
@@ -93,15 +158,12 @@ export const syncCosignDeliveries = {
93
158
  failed++;
94
159
  }
95
160
  }
96
- // 3. Acknowledge successfully internalized messages.
97
161
  if (acknowledgedIds.length > 0) {
98
- const ackResponse = await authFetch.fetch(`${messageboxUrl}/acknowledgeMessage`, {
99
- method: 'POST',
100
- headers: { 'Content-Type': 'application/json' },
101
- body: JSON.stringify({ messageIds: acknowledgedIds }),
102
- });
103
- if (!ackResponse.ok) {
104
- console.error(`[syncCosignDeliveries] Failed to acknowledge messages: ${ackResponse.status}`);
162
+ try {
163
+ await client.acknowledgeMessage({ messageIds: acknowledgedIds, host });
164
+ }
165
+ catch (err) {
166
+ console.error('[syncCosignDeliveries] Failed to acknowledge messages:', err instanceof Error ? err.message : String(err));
105
167
  }
106
168
  }
107
169
  return { processed, failed };
@@ -1 +1 @@
1
- {"version":3,"file":"syncCosignDeliveries.js","sourceRoot":"","sources":["../../src/sync/syncCosignDeliveries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA6CzC,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAG7B;IACH,IAAI,EAAE;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACV,6FAA6F;QAC9F,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,UAAU,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACV,+DAA+D;iBAChE;gBACD,aAAa,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACV,gEAAgE;iBACjE;aACD;SACD;QACD,gBAAgB,EAAE,KAAK;KACvB;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK;QACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,oBAAoB,CAAA;QAC3D,MAAM,aAAa,GAClB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,6BAA6B,CAAA;QAE9B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE3C,4BAA4B;QAC5B,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,KAAK,CACzC,GAAG,aAAa,eAAe,EAC/B;YACC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;SACpC,CACD,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACd,4BAA4B,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,CAC5E,CAAA;QACF,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAAyB,CAAA;QACxE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;QACnC,CAAC;QAED,+DAA+D;QAC/D,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,MAAM,eAAe,GAAa,EAAE,CAAA;QACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAA0B,CAAA;gBAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC7C,CAAC,CAAC,QAAQ,CAAC,IAAI;oBACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBACtC,MAAM,IAAI,GAAG;oBACZ,SAAS,QAAQ,CAAC,OAAO,EAAE;oBAC3B,OAAO,QAAQ,CAAC,MAAM,EAAE;oBACxB,WAAW,QAAQ,CAAC,OAAO,EAAE;iBAC7B,CAAA;gBACD,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;oBAClC,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE;wBACR;4BACC,WAAW,EAAE,QAAQ,CAAC,IAAI;4BAC1B,QAAQ,EAAE,kBAAkB;4BAC5B,mBAAmB,EAAE;gCACpB,MAAM,EAAE,OAAO;gCACf,IAAI;gCACJ,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;6BAC/C;yBACD;qBACD;oBACD,WAAW,EAAE,0BAA0B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAC5E,CAAC,EACD,EAAE,CACF;oBACD,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC;iBACrC,CAAC,CAAA;gBACF,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACnC,SAAS,EAAE,CAAA;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CACZ,oDAAoD,GAAG,CAAC,SAAS,GAAG,EACpE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAA;gBACD,MAAM,EAAE,CAAA;YACT,CAAC;QACF,CAAC;QAED,qDAAqD;QACrD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,KAAK,CACxC,GAAG,aAAa,qBAAqB,EACrC;gBACC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;aACrD,CACD,CAAA;YACD,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CACZ,0DAA0D,WAAW,CAAC,MAAM,EAAE,CAC9E,CAAA;YACF,CAAC;QACF,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;CACD,CAAA"}
1
+ {"version":3,"file":"syncCosignDeliveries.js","sourceRoot":"","sources":["../../src/sync/syncCosignDeliveries.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.126",
3
+ "version": "0.0.129",
4
4
  "description": "Action definitions for the 1Sat SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,7 +33,8 @@
33
33
  "@1sat/types": "0.0.20",
34
34
  "@1sat/utils": "0.0.16",
35
35
  "@1sat/wallet": "0.0.68",
36
- "@1sat/templates": "0.0.12"
36
+ "@1sat/templates": "0.0.12",
37
+ "@bsv/p2p": "^1.1.6"
37
38
  },
38
39
  "peerDependencies": {
39
40
  "@bsv/sdk": "^2.0.13"