@1sat/permission-module 0.0.19 → 0.0.20
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/createOneSatPermissionModule.d.ts.map +1 -1
- package/dist/createOneSatPermissionModule.js +10 -1
- package/dist/createOneSatPermissionModule.js.map +1 -1
- package/dist/handlers.d.ts +29 -2
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +98 -0
- package/dist/handlers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +44 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOneSatPermissionModule.d.ts","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createOneSatPermissionModule.d.ts","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,KAAK,gCAAgC,EAErC,MAAM,SAAS,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7B,UAAU,CACT,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE,wCAAwC;IACxC,OAAO,IAAI,IAAI,CAAA;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,gCAAgC,GACpC,sBAAsB,CA6ExB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommitmentCache } from './commitmentCache';
|
|
2
|
-
import { handleCreateActionRequest, handleCreateActionResponse, handleCreateSignatureRequest, handleGetPublicKeyRequest, } from './handlers';
|
|
2
|
+
import { handleCreateActionRequest, handleCreateActionResponse, handleCreateSignatureRequest, handleGetPublicKeyRequest, handleInternalizeActionRequest, handleListOutputsRequest, } from './handlers';
|
|
3
3
|
import { DEFAULT_COMMITMENT_TTL_SECONDS, } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Build a permission module that gates 1Sat-asset signing via hashOutputs
|
|
@@ -20,6 +20,7 @@ export function createOneSatPermissionModule(args) {
|
|
|
20
20
|
promptHandler: args.promptHandler,
|
|
21
21
|
cache,
|
|
22
22
|
adminOriginator: args.adminOriginator,
|
|
23
|
+
permissionStore: args.permissionStore,
|
|
23
24
|
};
|
|
24
25
|
return {
|
|
25
26
|
async onRequest(req) {
|
|
@@ -36,6 +37,14 @@ export function createOneSatPermissionModule(args) {
|
|
|
36
37
|
const next = await handleGetPublicKeyRequest(deps, req.args, req.originator);
|
|
37
38
|
return { args: next };
|
|
38
39
|
}
|
|
40
|
+
case 'listOutputs': {
|
|
41
|
+
const next = await handleListOutputsRequest(deps, req.args, req.originator);
|
|
42
|
+
return { args: next };
|
|
43
|
+
}
|
|
44
|
+
case 'internalizeAction': {
|
|
45
|
+
const next = await handleInternalizeActionRequest(deps, req.args, req.originator);
|
|
46
|
+
return { args: next };
|
|
47
|
+
}
|
|
39
48
|
default:
|
|
40
49
|
return { args: req.args };
|
|
41
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOneSatPermissionModule.js","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createOneSatPermissionModule.js","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEN,8BAA8B,GAC9B,MAAM,SAAS,CAAA;AA0BhB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAC3C,IAAsC;IAEtC,MAAM,KAAK,GAAG,IAAI,eAAe,CAChC,IAAI,CAAC,oBAAoB,IAAI,8BAA8B,CAC3D,CAAA;IACD,KAAK,CAAC,KAAK,EAAE,CAAA;IAEb,MAAM,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,KAAK;QACL,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,eAAe,EAAE,IAAI,CAAC,eAAe;KACrC,CAAA;IAED,OAAO;QACN,KAAK,CAAC,SAAS,CAAC,GAAG;YAClB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC3C,IAAI,EACJ,GAAG,CAAC,IAAwB,EAC5B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACxB,MAAM,IAAI,GAAG,MAAM,4BAA4B,CAC9C,IAAI,EACJ,GAAG,CAAC,IAA2B,EAC/B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC3C,IAAI,EACJ,GAAG,CAAC,IAAwB,EAC5B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACpB,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAC1C,IAAI,EACJ,GAAG,CAAC,IAAuB,EAC3B,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBAC1B,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAChD,IAAI,EACJ,GAAG,CAAC,IAA6B,EACjC,GAAG,CAAC,UAAU,CACd,CAAA;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACtB,CAAC;gBACD;oBACC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,CAAC;QACF,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO;YAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvC,OAAO,0BAA0B,CAChC,IAAI,EACJ,GAAyB,EACzB,OAAO,CAAC,UAAU,CAClB,CAAA;YACF,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,OAAO;YACN,KAAK,CAAC,IAAI,EAAE,CAAA;QACb,CAAC;KACD,CAAA;AACF,CAAC"}
|
package/dist/handlers.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type { CreateActionArgs, CreateActionResult, CreateSignatureArgs, GetPublicKeyArgs, WalletInterface } from '@bsv/sdk';
|
|
1
|
+
import type { CreateActionArgs, CreateActionResult, CreateSignatureArgs, GetPublicKeyArgs, InternalizeActionArgs, ListOutputsArgs, WalletInterface } from '@bsv/sdk';
|
|
2
2
|
import { CommitmentCache } from './commitmentCache';
|
|
3
|
-
import type { PromptHandler } from './types';
|
|
3
|
+
import type { BasketGrantStore, PromptHandler } from './types';
|
|
4
4
|
interface HandlerDeps {
|
|
5
5
|
wallet: WalletInterface;
|
|
6
6
|
promptHandler: PromptHandler;
|
|
7
7
|
cache: CommitmentCache;
|
|
8
8
|
adminOriginator?: string;
|
|
9
|
+
permissionStore?: BasketGrantStore;
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* createAction onRequest:
|
|
@@ -44,5 +45,31 @@ export declare function handleCreateSignatureRequest(deps: HandlerDeps, args: Cr
|
|
|
44
45
|
* already discloses address-derivation access at the wallet level.
|
|
45
46
|
*/
|
|
46
47
|
export declare function handleGetPublicKeyRequest(_deps: HandlerDeps, args: GetPublicKeyArgs, _originator: string): Promise<GetPublicKeyArgs>;
|
|
48
|
+
/**
|
|
49
|
+
* Decide whether the originator has access to every P-prefixed `1Sat` basket
|
|
50
|
+
* touched by this request. Used by both `listOutputs` and `internalizeAction`
|
|
51
|
+
* — they're the two methods WPM delegates to the 1Sat module for P-baskets.
|
|
52
|
+
*
|
|
53
|
+
* Admin originator bypasses (same convention as
|
|
54
|
+
* `WalletPermissionsManager.isAdminOriginator` → `ensureBasketAccess`
|
|
55
|
+
* short-circuit).
|
|
56
|
+
*
|
|
57
|
+
* Baskets that already have a stored grant pass silently. Any remaining
|
|
58
|
+
* baskets are surfaced as a single `'basketAccess'` prompt with the full
|
|
59
|
+
* un-granted list; on approval the module persists each grant.
|
|
60
|
+
*
|
|
61
|
+
* Without a `permissionStore` configured we prompt every time — caching only
|
|
62
|
+
* happens when the caller wired in the store.
|
|
63
|
+
*/
|
|
64
|
+
export declare function ensureBasketAccess(deps: HandlerDeps, originator: string, baskets: Iterable<string>): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* listOutputs onRequest: gate basket access then pass args through unchanged.
|
|
67
|
+
*/
|
|
68
|
+
export declare function handleListOutputsRequest(deps: HandlerDeps, args: ListOutputsArgs, originator: string): Promise<ListOutputsArgs>;
|
|
69
|
+
/**
|
|
70
|
+
* internalizeAction onRequest: gate basket access for every output's
|
|
71
|
+
* insertionRemittance basket then pass args through unchanged.
|
|
72
|
+
*/
|
|
73
|
+
export declare function handleInternalizeActionRequest(deps: HandlerDeps, args: InternalizeActionArgs, originator: string): Promise<InternalizeActionArgs>;
|
|
47
74
|
export {};
|
|
48
75
|
//# sourceMappingURL=handlers.d.ts.map
|
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;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,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,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAKnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D,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;CAClC;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAqC3B;AA0BD;;;;;;;;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,CAuC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAmDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAsDf;AAOD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,eAAe,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CACnD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAShC"}
|
package/dist/handlers.js
CHANGED
|
@@ -192,4 +192,102 @@ function summarizeIntent(args) {
|
|
|
192
192
|
const outs = args.outputs?.length ?? 0;
|
|
193
193
|
return `Transaction with ${ins} input(s) and ${outs} output(s)`;
|
|
194
194
|
}
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
196
|
+
// Basket-access gating
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
const P_BASKET_PREFIX = 'p 1sat ';
|
|
199
|
+
/**
|
|
200
|
+
* Decide whether the originator has access to every P-prefixed `1Sat` basket
|
|
201
|
+
* touched by this request. Used by both `listOutputs` and `internalizeAction`
|
|
202
|
+
* — they're the two methods WPM delegates to the 1Sat module for P-baskets.
|
|
203
|
+
*
|
|
204
|
+
* Admin originator bypasses (same convention as
|
|
205
|
+
* `WalletPermissionsManager.isAdminOriginator` → `ensureBasketAccess`
|
|
206
|
+
* short-circuit).
|
|
207
|
+
*
|
|
208
|
+
* Baskets that already have a stored grant pass silently. Any remaining
|
|
209
|
+
* baskets are surfaced as a single `'basketAccess'` prompt with the full
|
|
210
|
+
* un-granted list; on approval the module persists each grant.
|
|
211
|
+
*
|
|
212
|
+
* Without a `permissionStore` configured we prompt every time — caching only
|
|
213
|
+
* happens when the caller wired in the store.
|
|
214
|
+
*/
|
|
215
|
+
export async function ensureBasketAccess(deps, originator, baskets) {
|
|
216
|
+
if (deps.adminOriginator && originator === deps.adminOriginator)
|
|
217
|
+
return;
|
|
218
|
+
const unique = new Set();
|
|
219
|
+
for (const b of baskets) {
|
|
220
|
+
if (typeof b === 'string' && b.startsWith(P_BASKET_PREFIX))
|
|
221
|
+
unique.add(b);
|
|
222
|
+
}
|
|
223
|
+
if (unique.size === 0)
|
|
224
|
+
return;
|
|
225
|
+
const toPrompt = [];
|
|
226
|
+
if (deps.permissionStore) {
|
|
227
|
+
for (const basket of unique) {
|
|
228
|
+
const grant = await deps.permissionStore.findGrant({
|
|
229
|
+
type: 'basket',
|
|
230
|
+
originator,
|
|
231
|
+
basket,
|
|
232
|
+
});
|
|
233
|
+
if (!grant || isGrantExpired(grant.expiry)) {
|
|
234
|
+
toPrompt.push(basket);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
toPrompt.push(...unique);
|
|
240
|
+
}
|
|
241
|
+
if (toPrompt.length === 0)
|
|
242
|
+
return;
|
|
243
|
+
const approved = await deps.promptHandler({
|
|
244
|
+
kind: 'basketAccess',
|
|
245
|
+
originator,
|
|
246
|
+
intent: {
|
|
247
|
+
baskets: toPrompt.map((basket) => ({ basket })),
|
|
248
|
+
},
|
|
249
|
+
summary: toPrompt.length === 1
|
|
250
|
+
? `Grant access to ${toPrompt[0]}`
|
|
251
|
+
: `Grant access to ${toPrompt.length} baskets`,
|
|
252
|
+
});
|
|
253
|
+
if (!approved) {
|
|
254
|
+
throw new Error(`1Sat permission module: user denied basket access (${toPrompt.join(', ')}).`);
|
|
255
|
+
}
|
|
256
|
+
if (deps.permissionStore) {
|
|
257
|
+
const now = Date.now();
|
|
258
|
+
for (const basket of toPrompt) {
|
|
259
|
+
await deps.permissionStore.putGrant({
|
|
260
|
+
key: { type: 'basket', originator, basket },
|
|
261
|
+
expiry: 0,
|
|
262
|
+
grantedAt: now,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function isGrantExpired(expiry) {
|
|
268
|
+
if (!expiry)
|
|
269
|
+
return false;
|
|
270
|
+
return expiry < Math.floor(Date.now() / 1000);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* listOutputs onRequest: gate basket access then pass args through unchanged.
|
|
274
|
+
*/
|
|
275
|
+
export async function handleListOutputsRequest(deps, args, originator) {
|
|
276
|
+
await ensureBasketAccess(deps, originator, args.basket ? [args.basket] : []);
|
|
277
|
+
return args;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* internalizeAction onRequest: gate basket access for every output's
|
|
281
|
+
* insertionRemittance basket then pass args through unchanged.
|
|
282
|
+
*/
|
|
283
|
+
export async function handleInternalizeActionRequest(deps, args, originator) {
|
|
284
|
+
const baskets = [];
|
|
285
|
+
for (const out of args.outputs ?? []) {
|
|
286
|
+
if (out.protocol === 'basket insertion' && out.insertionRemittance?.basket) {
|
|
287
|
+
baskets.push(out.insertionRemittance.basket);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
await ensureBasketAccess(deps, originator, baskets);
|
|
291
|
+
return args;
|
|
292
|
+
}
|
|
195
293
|
//# sourceMappingURL=handlers.js.map
|
package/dist/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export { CommitmentCache } from './commitmentCache';
|
|
|
3
3
|
export { computeHashOutputs } from './hashOutputs';
|
|
4
4
|
export { aipPlaceholderBytes, sigmaPlaceholderBytes, substitutePlaceholders, } from './placeholder';
|
|
5
5
|
export { MIN_BIP143_PREIMAGE_BYTES, parsePreimage, type ParsedPreimage, } from './sighashParser';
|
|
6
|
-
export { DEFAULT_COMMITMENT_TTL_SECONDS, type CapturedCommitment, type CreateOneSatPermissionModuleArgs, type PromptHandler, type PromptKind, type PromptRequest, } from './types';
|
|
6
|
+
export { DEFAULT_COMMITMENT_TTL_SECONDS, type BasketAccessRequest, type BasketGrantKey, type BasketGrantStore, type BasketStoredGrant, type CapturedCommitment, type CreateOneSatPermissionModuleArgs, type PromptHandler, type PromptKind, type PromptRequest, } from './types';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,yBAAyB,EACzB,aAAa,EACb,KAAK,cAAc,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,EAC9B,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,GAClB,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,yBAAyB,EACzB,aAAa,EACb,KAAK,cAAc,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,GAClB,MAAM,SAAS,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,GAG5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,yBAAyB,EACzB,aAAa,GAEb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,GAG5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,yBAAyB,EACzB,aAAa,GAEb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,8BAA8B,GAU9B,MAAM,SAAS,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface CapturedCommitment {
|
|
|
20
20
|
reference: string;
|
|
21
21
|
}
|
|
22
22
|
/** Kinds of prompts the module asks the host wallet to show. */
|
|
23
|
-
export type PromptKind = 'transaction' | 'signature' | 'protocol';
|
|
23
|
+
export type PromptKind = 'transaction' | 'signature' | 'protocol' | 'basketAccess';
|
|
24
24
|
/**
|
|
25
25
|
* Structured request handed to the wallet's promptHandler.
|
|
26
26
|
*
|
|
@@ -35,16 +35,50 @@ export interface PromptRequest {
|
|
|
35
35
|
* Free-form context payload describing the operation. Shape is
|
|
36
36
|
* intentionally permissive so the SDK actions can ride additional
|
|
37
37
|
* detail through to the prompt without locking the schema.
|
|
38
|
+
*
|
|
39
|
+
* For `kind: 'basketAccess'`, contains `{ baskets: BasketAccessRequest[] }`.
|
|
38
40
|
*/
|
|
39
41
|
intent: Record<string, unknown>;
|
|
40
42
|
/** Short human-readable summary line. Filled in by the module. */
|
|
41
43
|
summary: string;
|
|
42
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* One basket the dApp wants access to, surfaced inside the
|
|
47
|
+
* `kind: 'basketAccess'` prompt intent.
|
|
48
|
+
*/
|
|
49
|
+
export interface BasketAccessRequest {
|
|
50
|
+
basket: string;
|
|
51
|
+
description?: string;
|
|
52
|
+
}
|
|
43
53
|
/**
|
|
44
54
|
* Callback the host wallet provides for showing prompts and awaiting
|
|
45
55
|
* the user's decision.
|
|
46
56
|
*/
|
|
47
57
|
export type PromptHandler = (request: PromptRequest) => Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Persistent grant store interface the 1Sat module uses for basket-access
|
|
60
|
+
* decisions. The shape matches `@1sat/wallet`'s `IPermissionStore` (so a
|
|
61
|
+
* `LocalWalletPermissionsManager` can be passed in directly) but the
|
|
62
|
+
* permission module declares it independently to avoid a wallet-package
|
|
63
|
+
* dependency.
|
|
64
|
+
*/
|
|
65
|
+
export interface BasketGrantStore {
|
|
66
|
+
findGrant(key: BasketGrantKey): Promise<BasketStoredGrant | null>;
|
|
67
|
+
putGrant(grant: BasketStoredGrant): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
export interface BasketGrantKey {
|
|
70
|
+
type: 'basket';
|
|
71
|
+
originator: string;
|
|
72
|
+
basket: string;
|
|
73
|
+
}
|
|
74
|
+
export interface BasketStoredGrant {
|
|
75
|
+
key: BasketGrantKey;
|
|
76
|
+
/** UNIX seconds, 0 for never expires. */
|
|
77
|
+
expiry: number;
|
|
78
|
+
/** UNIX milliseconds when this grant was created. */
|
|
79
|
+
grantedAt: number;
|
|
80
|
+
reason?: string;
|
|
81
|
+
}
|
|
48
82
|
/** Args accepted by `createOneSatPermissionModule`. */
|
|
49
83
|
export interface CreateOneSatPermissionModuleArgs {
|
|
50
84
|
/**
|
|
@@ -55,6 +89,15 @@ export interface CreateOneSatPermissionModuleArgs {
|
|
|
55
89
|
wallet: WalletInterface;
|
|
56
90
|
/** UI callback for prompting the user. */
|
|
57
91
|
promptHandler: PromptHandler;
|
|
92
|
+
/**
|
|
93
|
+
* Optional persistent grant store consulted before prompting for
|
|
94
|
+
* basket-access on P-baskets. When omitted, the module prompts on
|
|
95
|
+
* every basket-touching call. When provided, grants persist and
|
|
96
|
+
* future calls hit the store-backed cache. This is the same store
|
|
97
|
+
* `LocalWalletPermissionsManager` writes to from its grouped-permission
|
|
98
|
+
* grant flow, so manifest-declared grants are picked up here too.
|
|
99
|
+
*/
|
|
100
|
+
permissionStore?: BasketGrantStore;
|
|
58
101
|
/** Optional override for commitment cache TTL (seconds). */
|
|
59
102
|
commitmentTtlSeconds?: number;
|
|
60
103
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;AAElF;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACjE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,cAAc,CAAA;IACnB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,uDAAuD;AACvD,MAAM,WAAW,gCAAgC;IAChD;;;;OAIG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB,0CAA0C;IAC1C,aAAa,EAAE,aAAa,CAAA;IAC5B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1sat/permission-module",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
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.29",
|
|
33
|
+
"@1sat/actions": "0.0.156",
|
|
34
|
+
"@1sat/wallet": "0.0.81"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@bsv/sdk": "^2.0.13",
|