@1sat/permission-module 0.0.5 → 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.
- package/dist/enrichIntent.d.ts +59 -0
- package/dist/enrichIntent.d.ts.map +1 -0
- package/dist/enrichIntent.js +204 -0
- package/dist/enrichIntent.js.map +1 -0
- package/dist/handlers.d.ts +3 -1
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +32 -7
- package/dist/handlers.js.map +1 -1
- package/package.json +4 -4
|
@@ -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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"}
|
package/dist/handlers.d.ts
CHANGED
|
@@ -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.
|
|
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
|
/**
|
package/dist/handlers.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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
|
|
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
|
-
|
|
26
|
-
inputs:
|
|
27
|
-
outputs: outputs.map(
|
|
28
|
-
|
|
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
|
package/dist/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AASA,OAAO,EAAQ,WAAW,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAEN,mBAAmB,GAEnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAmB1E
|
|
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.
|
|
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.
|
|
33
|
-
"@1sat/actions": "0.0.
|
|
34
|
-
"@1sat/wallet": "0.0.
|
|
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",
|