@1sat/permission-module 0.0.6 → 0.0.7

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.
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Build a structured prompt intent from the createAction args the
3
+ * WalletPermissionsManager hands the module.
4
+ *
5
+ * `WalletPermissionsManager.createAction` encrypts `args.description`,
6
+ * `inputDescription`, `outputDescription`, and `customInstructions`
7
+ * before dispatching to permission modules — so we can't read them.
8
+ * What's left:
9
+ *
10
+ * - `args.labels` — unencrypted; carries our `'p 1sat input <basket> <id>'`
11
+ * / `'p 1sat output <basket> <id>'` lookup keys
12
+ * - `args.outputs[i].lockingScript` — decode P2PKH for recipient address
13
+ * - `args.outputs[i].satoshis`
14
+ *
15
+ * Trust model: input metadata is fetched by id from the wallet's own
16
+ * storage — not from anything the dApp could fabricate in args. Output
17
+ * recipients come from the locking-script bytes (cryptographically
18
+ * committed to the final tx). The dApp can't lie about what the user
19
+ * is being asked to approve.
20
+ */
21
+ import type { CreateActionArgs, WalletInterface } from '@bsv/sdk';
22
+ export type EnrichedIntentKind = 'ordinal-transfer' | 'token-transfer' | 'lock' | 'unlock' | 'inscription' | 'social-post' | 'opns' | 'unknown';
23
+ /** A successful (basket, id) lookup against the wallet's storage. */
24
+ export interface EnrichedAsset {
25
+ basket: string;
26
+ id: string;
27
+ outpoint: string;
28
+ satoshis: number;
29
+ tags: string[];
30
+ customInstructions?: string;
31
+ }
32
+ export interface EnrichedOutput {
33
+ index: number;
34
+ satoshis: number;
35
+ basket?: string;
36
+ tags: string[];
37
+ /** Recipient address if the locking script is P2PKH (or P2PKH-suffixed). */
38
+ recipient?: string;
39
+ }
40
+ export interface EnrichedIntent {
41
+ kind: EnrichedIntentKind;
42
+ /** One entry per `'p 1sat input <basket> <id>'` label. */
43
+ inputs: EnrichedAsset[];
44
+ /** All raw outputs with recipient decoded from script. */
45
+ outputs: EnrichedOutput[];
46
+ labels: string[];
47
+ summary: string;
48
+ /** ORDFS or compatible content URL builder. */
49
+ contentUrlForOrigin: (origin: string) => string;
50
+ chain: 'mainnet' | 'testnet';
51
+ }
52
+ interface EnrichOptions {
53
+ chain?: 'mainnet' | 'testnet';
54
+ contentHost?: string;
55
+ }
56
+ export declare function enrichIntent(wallet: WalletInterface, args: CreateActionArgs, opts?: EnrichOptions): Promise<EnrichedIntent>;
57
+ export declare function tagValue(tags: string[] | undefined, key: string): string | undefined;
58
+ export {};
59
+ //# sourceMappingURL=enrichIntent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichIntent.d.ts","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,OAAO,KAAK,EACX,gBAAgB,EAEhB,eAAe,EAEf,MAAM,UAAU,CAAA;AAGjB,MAAM,MAAM,kBAAkB,GAC3B,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,GACN,QAAQ,GACR,aAAa,GACb,aAAa,GACb,MAAM,GACN,SAAS,CAAA;AAEZ,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,kBAAkB,CAAA;IACxB,0DAA0D;IAC1D,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,0DAA0D;IAC1D,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAC5B;AAUD,UAAU,aAAa;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,EACtB,IAAI,GAAE,aAAkB,GACtB,OAAO,CAAC,cAAc,CAAC,CA0BzB;AA4JD,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GACT,MAAM,GAAG,SAAS,CAOpB"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Build a structured prompt intent from the createAction args the
3
+ * WalletPermissionsManager hands the module.
4
+ *
5
+ * `WalletPermissionsManager.createAction` encrypts `args.description`,
6
+ * `inputDescription`, `outputDescription`, and `customInstructions`
7
+ * before dispatching to permission modules — so we can't read them.
8
+ * What's left:
9
+ *
10
+ * - `args.labels` — unencrypted; carries our `'p 1sat input <basket> <id>'`
11
+ * / `'p 1sat output <basket> <id>'` lookup keys
12
+ * - `args.outputs[i].lockingScript` — decode P2PKH for recipient address
13
+ * - `args.outputs[i].satoshis`
14
+ *
15
+ * Trust model: input metadata is fetched by id from the wallet's own
16
+ * storage — not from anything the dApp could fabricate in args. Output
17
+ * recipients come from the locking-script bytes (cryptographically
18
+ * committed to the final tx). The dApp can't lie about what the user
19
+ * is being asked to approve.
20
+ */
21
+ import { BSOCIAL_BASKET, BSV21_BASKET, LOCK_BASKET, OPNS_BASKET, ORDINALS_BASKET, P1SAT_INPUT_LABEL_PREFIX, } from '@1sat/types';
22
+ import { parseAddress } from '@1sat/wallet';
23
+ import { Script } from '@bsv/sdk';
24
+ const ASSET_BASKETS = [
25
+ ORDINALS_BASKET,
26
+ BSV21_BASKET,
27
+ LOCK_BASKET,
28
+ OPNS_BASKET,
29
+ BSOCIAL_BASKET,
30
+ ];
31
+ export async function enrichIntent(wallet, args, opts = {}) {
32
+ const chain = opts.chain ?? 'mainnet';
33
+ const contentHost = opts.contentHost ?? 'https://ordfs.network';
34
+ const labels = args.labels ?? [];
35
+ const inputRefs = parseAssetLabels(labels, P1SAT_INPUT_LABEL_PREFIX);
36
+ const inputs = (await Promise.all(inputRefs.map((ref) => lookupAsset(wallet, ref.basket, ref.id)))).filter((a) => a !== null);
37
+ const outputs = (args.outputs ?? []).map((out, i) => decodeOutput(out, i, chain));
38
+ const kind = detectKind(inputs, outputs);
39
+ const summary = buildSummary(kind, inputs, outputs);
40
+ return {
41
+ kind,
42
+ inputs,
43
+ outputs,
44
+ labels,
45
+ summary,
46
+ contentUrlForOrigin: (origin) => contentUrlFromOrigin(contentHost, origin),
47
+ chain,
48
+ };
49
+ }
50
+ function parseAssetLabels(labels, prefix) {
51
+ const refs = [];
52
+ for (const label of labels) {
53
+ if (!label.startsWith(prefix))
54
+ continue;
55
+ const payload = label.slice(prefix.length).trim();
56
+ const sep = payload.indexOf(' ');
57
+ if (sep <= 0)
58
+ continue;
59
+ const basket = payload.slice(0, sep);
60
+ const id = payload.slice(sep + 1).trim();
61
+ if (!basket || !id)
62
+ continue;
63
+ refs.push({ basket, id });
64
+ }
65
+ return refs;
66
+ }
67
+ // ---------------------------------------------------------------------------
68
+ // Asset lookup — listOutputs filtered by tag, narrows to the matching record.
69
+ // ---------------------------------------------------------------------------
70
+ async function lookupAsset(wallet, basket, id) {
71
+ // Only query baskets the module knows about — guards against malicious
72
+ // labels pointing at unrelated baskets.
73
+ if (!ASSET_BASKETS.includes(basket))
74
+ return null;
75
+ try {
76
+ const result = await wallet.listOutputs({
77
+ basket,
78
+ tags: [`id:${id}`],
79
+ includeTags: true,
80
+ includeCustomInstructions: true,
81
+ limit: 10,
82
+ });
83
+ const match = result.outputs[0];
84
+ if (!match)
85
+ return null;
86
+ return {
87
+ basket,
88
+ id,
89
+ outpoint: match.outpoint,
90
+ satoshis: match.satoshis,
91
+ tags: match.tags ?? [],
92
+ customInstructions: match
93
+ .customInstructions,
94
+ };
95
+ }
96
+ catch {
97
+ return null;
98
+ }
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // Output decoding — recipient address from the (committed) locking script.
102
+ // ---------------------------------------------------------------------------
103
+ function decodeOutput(out, index, chain) {
104
+ const enriched = {
105
+ index,
106
+ satoshis: out.satoshis ?? 0,
107
+ basket: out.basket,
108
+ tags: out.tags ?? [],
109
+ };
110
+ if (!out.lockingScript)
111
+ return enriched;
112
+ let script;
113
+ try {
114
+ script = Script.fromHex(out.lockingScript);
115
+ }
116
+ catch {
117
+ return enriched;
118
+ }
119
+ const recipient = parseAddress(script, 0, chain);
120
+ if (recipient) {
121
+ enriched.recipient = recipient;
122
+ return enriched;
123
+ }
124
+ // Inscription envelope or other suffix-bearing scripts — try parsing
125
+ // P2PKH after OP_ENDIF.
126
+ const endifIndex = script.chunks.findIndex((c) => c.op === 0x68);
127
+ if (endifIndex > 0) {
128
+ const after = parseAddress(script, endifIndex + 1, chain);
129
+ if (after)
130
+ enriched.recipient = after;
131
+ }
132
+ return enriched;
133
+ }
134
+ // ---------------------------------------------------------------------------
135
+ // Intent classification — driven by input asset basket membership.
136
+ // ---------------------------------------------------------------------------
137
+ function detectKind(inputs, outputs) {
138
+ if (inputs.some((i) => i.basket === ORDINALS_BASKET))
139
+ return 'ordinal-transfer';
140
+ if (inputs.some((i) => i.basket === BSV21_BASKET))
141
+ return 'token-transfer';
142
+ if (inputs.some((i) => i.basket === LOCK_BASKET))
143
+ return 'unlock';
144
+ if (inputs.some((i) => i.basket === OPNS_BASKET))
145
+ return 'opns';
146
+ if (outputs.some((o) => o.basket === LOCK_BASKET))
147
+ return 'lock';
148
+ if (outputs.some((o) => o.basket === BSOCIAL_BASKET))
149
+ return 'social-post';
150
+ if (outputs.some((o) => o.basket === ORDINALS_BASKET))
151
+ return 'inscription';
152
+ return 'unknown';
153
+ }
154
+ function buildSummary(kind, inputs, outputs) {
155
+ switch (kind) {
156
+ case 'ordinal-transfer': {
157
+ const recipient = outputs.find((o) => o.recipient)?.recipient;
158
+ const name = tagValue(inputs[0]?.tags, 'name');
159
+ const what = name ? `“${name}”` : 'an ordinal';
160
+ return recipient ? `Send ${what} to ${truncate(recipient, 18)}` : `Send ${what}`;
161
+ }
162
+ case 'token-transfer': {
163
+ const sym = tagValue(inputs[0]?.tags, 'sym') ?? 'tokens';
164
+ const recipient = outputs.find((o) => o.recipient)?.recipient;
165
+ return recipient ? `Send ${sym} to ${truncate(recipient, 18)}` : `Send ${sym}`;
166
+ }
167
+ case 'lock':
168
+ return `Lock funds`;
169
+ case 'unlock':
170
+ return `Unlock matured locks`;
171
+ case 'inscription':
172
+ return `Create inscription`;
173
+ case 'social-post':
174
+ return `Create social post`;
175
+ case 'opns':
176
+ return `OpNS operation`;
177
+ default:
178
+ return `Approve transaction`;
179
+ }
180
+ }
181
+ // ---------------------------------------------------------------------------
182
+ // Helpers
183
+ // ---------------------------------------------------------------------------
184
+ export function tagValue(tags, key) {
185
+ if (!tags)
186
+ return undefined;
187
+ const prefix = `${key}:`;
188
+ for (const t of tags) {
189
+ if (t.startsWith(prefix))
190
+ return t.slice(prefix.length);
191
+ }
192
+ return undefined;
193
+ }
194
+ function truncate(s, max) {
195
+ if (s.length <= max)
196
+ return s;
197
+ return `${s.slice(0, max - 3)}…`;
198
+ }
199
+ function contentUrlFromOrigin(host, origin) {
200
+ const trimmed = host.replace(/\/$/, '');
201
+ const formatted = origin.replace('.', '_');
202
+ return `${trimmed}/${formatted}`;
203
+ }
204
+ //# sourceMappingURL=enrichIntent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichIntent.js","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,9 @@ interface HandlerDeps {
21
21
  * createAction onRequest:
22
22
  * 1. Admin originator → return args unchanged.
23
23
  * 2. Substitute placeholder markers in outputs (AIP/Sigma).
24
- * 3. Prompt user with structured intent. Reject throws.
24
+ * 3. Enrich the intent look up input assets in the wallet by their
25
+ * `'p 1sat input <basket> <id>'` labels (trusted records, not dApp-supplied).
26
+ * 4. Prompt user with the structured intent. Reject throws.
25
27
  */
26
28
  export declare function handleCreateActionRequest(deps: HandlerDeps, args: CreateActionArgs, originator: string): Promise<CreateActionArgs>;
27
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAGhB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,WAAW;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,KAAK,EAAE,eAAe,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC;;;;;;OAMG;IACH,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CACpD;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAsB7B;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CACjD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAkC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAGhB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,UAAU,WAAW;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,KAAK,EAAE,eAAe,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC;;;;;;OAMG;IACH,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAqC3B;AAmBD;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,kBAAkB,EACvB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAsB7B;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CACjD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAkC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
package/dist/handlers.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Transaction } from '@bsv/sdk';
2
2
  import { P1SAT_PROTOCOL } from '@1sat/types';
3
3
  import { normalizeOriginator, } from '@1sat/wallet';
4
+ import { enrichIntent } from './enrichIntent';
4
5
  import { computeHashOutputs } from './hashOutputs';
5
6
  import { substitutePlaceholders } from './placeholder';
6
7
  import { MIN_BIP143_PREIMAGE_BYTES, parsePreimage } from './sighashParser';
@@ -8,7 +9,9 @@ import { MIN_BIP143_PREIMAGE_BYTES, parsePreimage } from './sighashParser';
8
9
  * createAction onRequest:
9
10
  * 1. Admin originator → return args unchanged.
10
11
  * 2. Substitute placeholder markers in outputs (AIP/Sigma).
11
- * 3. Prompt user with structured intent. Reject throws.
12
+ * 3. Enrich the intent look up input assets in the wallet by their
13
+ * `'p 1sat input <basket> <id>'` labels (trusted records, not dApp-supplied).
14
+ * 4. Prompt user with the structured intent. Reject throws.
12
15
  */
13
16
  export async function handleCreateActionRequest(deps, args, originator) {
14
17
  if (isAdmin(deps, originator))
@@ -17,23 +20,45 @@ export async function handleCreateActionRequest(deps, args, originator) {
17
20
  if (outputs.length > 0) {
18
21
  outputs = await substitutePlaceholders(outputs, deps.wallet, (refVin) => resolveInputOutpoint(args.inputs ?? [], refVin));
19
22
  }
20
- const summary = summarizeIntent(args);
23
+ const enriched = await enrichIntent(deps.wallet, { ...args, outputs });
21
24
  const approved = await deps.promptHandler({
22
25
  kind: 'transaction',
23
26
  originator,
24
27
  intent: {
25
- description: args.description,
26
- inputs: args.inputs?.map(stripInputForPrompt) ?? [],
27
- outputs: outputs.map(stripOutputForPrompt),
28
- labels: args.labels ?? [],
28
+ kind: enriched.kind,
29
+ inputs: enriched.inputs,
30
+ outputs: enriched.outputs.map((o) => ({
31
+ index: o.index,
32
+ satoshis: o.satoshis,
33
+ basket: o.basket,
34
+ tags: o.tags,
35
+ recipient: o.recipient,
36
+ })),
37
+ contentUrls: buildContentUrlMap(enriched),
38
+ chain: enriched.chain,
29
39
  },
30
- summary,
40
+ summary: enriched.summary,
31
41
  });
32
42
  if (!approved) {
33
43
  throw new Error('1Sat permission module: user rejected the transaction.');
34
44
  }
35
45
  return { ...args, outputs };
36
46
  }
47
+ /**
48
+ * Pre-resolve content URLs for each input asset that has an `origin:`
49
+ * tag, so the UI doesn't need to know how to construct ORDFS URLs.
50
+ */
51
+ function buildContentUrlMap(enriched) {
52
+ const out = {};
53
+ for (const asset of enriched.inputs) {
54
+ const origin = asset.tags.find((t) => t.startsWith('origin:'));
55
+ if (!origin)
56
+ continue;
57
+ const value = origin.slice('origin:'.length);
58
+ out[asset.id] = enriched.contentUrlForOrigin(value);
59
+ }
60
+ return out;
61
+ }
37
62
  /**
38
63
  * createAction onResponse:
39
64
  * Extract the signable transaction's hashOutputs and authorized outpoint
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/permission-module",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "1Sat permission module for WalletPermissionsManager — gates createSignature with hashOutputs commitments captured at createAction time",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,9 +29,9 @@
29
29
  ],
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@1sat/types": "0.0.23",
33
- "@1sat/actions": "0.0.135",
34
- "@1sat/wallet": "0.0.73"
32
+ "@1sat/types": "0.0.24",
33
+ "@1sat/actions": "0.0.136",
34
+ "@1sat/wallet": "0.0.74"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@bsv/sdk": "^2.0.13",