@1sat/wallet 0.0.43 → 0.0.44
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { WalletInterface } from '@bsv/sdk';
|
|
2
|
-
import { type CounterpartyPermissionEventHandler, type GroupedPermissionEventHandler, type PermissionEventHandler, type PermissionsManagerConfig, WalletPermissionsManager, type WalletPermissionsManagerCallbacks } from '@bsv/wallet-toolbox/out/src/index.client.js';
|
|
1
|
+
import type { WalletInterface, WalletProtocol } from '@bsv/sdk';
|
|
2
|
+
import { type CounterpartyPermissionEventHandler, type GroupedPermissionEventHandler, type PermissionEventHandler, type PermissionToken, type PermissionsManagerConfig, WalletPermissionsManager, type WalletPermissionsManagerCallbacks } from '@bsv/wallet-toolbox/out/src/index.client.js';
|
|
3
3
|
import type { IPermissionStore } from './types';
|
|
4
4
|
export interface LocalWalletPermissionsManagerOptions {
|
|
5
5
|
/** Store grants are persisted into and read from. */
|
|
@@ -14,16 +14,25 @@ type AnyPermissionEventHandler = PermissionEventHandler | GroupedPermissionEvent
|
|
|
14
14
|
* and keep every other call the same (`bindCallback`, `grantPermission`,
|
|
15
15
|
* `denyPermission`, etc.).
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* -
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* -
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
17
|
+
* Reads:
|
|
18
|
+
* - `ensure*Access` checks the local store first; on miss it delegates to
|
|
19
|
+
* super (which then consults its own cache, on-chain tokens, and falls
|
|
20
|
+
* through to firing a prompt). Existing on-chain grants are honored.
|
|
21
|
+
* - Because super's grouped-permission filter calls back through
|
|
22
|
+
* `this.has*Access` → `this.ensure*Access`, our overrides are picked up
|
|
23
|
+
* polymorphically and the connect-time grouped prompt only requests
|
|
24
|
+
* permissions still missing from the store.
|
|
25
|
+
*
|
|
26
|
+
* Writes:
|
|
27
|
+
* - `grantPermission` writes to the store and resolves super's pending
|
|
28
|
+
* request via `super.grantPermission({ ephemeral: true })` (no on-chain
|
|
29
|
+
* mint, no cache write).
|
|
30
|
+
* - `grantGroupedPermission` writes each granted sub-permission to the
|
|
31
|
+
* store and resolves super's pending request via
|
|
32
|
+
* `super.dismissGroupedPermission` (no on-chain mint).
|
|
33
|
+
*
|
|
34
|
+
* Counterparty pact grants pass through to super unchanged — those still go
|
|
35
|
+
* on-chain by design.
|
|
27
36
|
*/
|
|
28
37
|
export declare class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
29
38
|
private readonly permissionStore;
|
|
@@ -31,10 +40,49 @@ export declare class LocalWalletPermissionsManager extends WalletPermissionsMana
|
|
|
31
40
|
private readonly pendingGrouped;
|
|
32
41
|
constructor(underlyingWallet: WalletInterface, adminOriginator: string, config: PermissionsManagerConfig | undefined, options: LocalWalletPermissionsManagerOptions);
|
|
33
42
|
bindCallback(eventName: keyof WalletPermissionsManagerCallbacks, handler: AnyPermissionEventHandler): number;
|
|
43
|
+
ensureProtocolPermission(args: {
|
|
44
|
+
originator: string;
|
|
45
|
+
privileged: boolean;
|
|
46
|
+
protocolID: WalletProtocol;
|
|
47
|
+
counterparty: string;
|
|
48
|
+
reason?: string;
|
|
49
|
+
seekPermission?: boolean;
|
|
50
|
+
usageType: 'signing' | 'encrypting' | 'hmac' | 'publicKey' | 'identityKey' | 'linkageRevelation' | 'generic';
|
|
51
|
+
}): Promise<boolean>;
|
|
52
|
+
ensureBasketAccess(args: {
|
|
53
|
+
originator: string;
|
|
54
|
+
basket: string;
|
|
55
|
+
reason?: string;
|
|
56
|
+
seekPermission?: boolean;
|
|
57
|
+
usageType: 'insertion' | 'removal' | 'listing';
|
|
58
|
+
}): Promise<boolean>;
|
|
59
|
+
ensureCertificateAccess(args: {
|
|
60
|
+
originator: string;
|
|
61
|
+
privileged: boolean;
|
|
62
|
+
verifier: string;
|
|
63
|
+
certType: string;
|
|
64
|
+
fields: string[];
|
|
65
|
+
reason?: string;
|
|
66
|
+
seekPermission?: boolean;
|
|
67
|
+
usageType: 'disclosure';
|
|
68
|
+
}): Promise<boolean>;
|
|
69
|
+
ensureSpendingAuthorization(args: {
|
|
70
|
+
originator: string;
|
|
71
|
+
satoshis: number;
|
|
72
|
+
lineItems?: Array<{
|
|
73
|
+
type: 'input' | 'output' | 'fee';
|
|
74
|
+
description: string;
|
|
75
|
+
satoshis: number;
|
|
76
|
+
}>;
|
|
77
|
+
reason?: string;
|
|
78
|
+
seekPermission?: boolean;
|
|
79
|
+
}): Promise<boolean>;
|
|
80
|
+
private storeHit;
|
|
34
81
|
grantPermission(params: {
|
|
35
82
|
requestID: string;
|
|
36
83
|
expiry?: number;
|
|
37
84
|
ephemeral?: boolean;
|
|
85
|
+
amount?: number;
|
|
38
86
|
}): Promise<void>;
|
|
39
87
|
denyPermission(requestID: string): Promise<void>;
|
|
40
88
|
grantGroupedPermission(params: {
|
|
@@ -44,7 +92,29 @@ export declare class LocalWalletPermissionsManager extends WalletPermissionsMana
|
|
|
44
92
|
}): Promise<void>;
|
|
45
93
|
denyGroupedPermission(requestID: string): Promise<void>;
|
|
46
94
|
dismissGroupedPermission(requestID: string): Promise<void>;
|
|
47
|
-
|
|
95
|
+
listProtocolPermissions(filter?: {
|
|
96
|
+
originator?: string;
|
|
97
|
+
privileged?: boolean;
|
|
98
|
+
protocolName?: string;
|
|
99
|
+
protocolSecurityLevel?: number;
|
|
100
|
+
counterparty?: string;
|
|
101
|
+
}): Promise<PermissionToken[]>;
|
|
102
|
+
listBasketAccess(params?: {
|
|
103
|
+
originator?: string;
|
|
104
|
+
basket?: string;
|
|
105
|
+
}): Promise<PermissionToken[]>;
|
|
106
|
+
listSpendingAuthorizations(params: {
|
|
107
|
+
originator?: string;
|
|
108
|
+
}): Promise<PermissionToken[]>;
|
|
109
|
+
listCertificateAccess(params?: {
|
|
110
|
+
originator?: string;
|
|
111
|
+
privileged?: boolean;
|
|
112
|
+
certType?: string;
|
|
113
|
+
verifier?: string;
|
|
114
|
+
}): Promise<PermissionToken[]>;
|
|
115
|
+
private idbTokensFor;
|
|
116
|
+
revokeAllForOriginator(originator: string): Promise<PermissionToken[]>;
|
|
117
|
+
revokePermission(oldToken: PermissionToken): Promise<void>;
|
|
48
118
|
}
|
|
49
119
|
export {};
|
|
50
120
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { WalletPermissionsManager, } from '@bsv/wallet-toolbox/out/src/index.client.js';
|
|
2
|
-
import { isExpired, normalizeOriginator, permissionKeyFromRequest,
|
|
2
|
+
import { isExpired, normalizeOriginator, permissionKeyFromRequest, permissionKeyToString, } from './key';
|
|
3
|
+
const IDB_TXID_PREFIX = 'idb:';
|
|
3
4
|
/**
|
|
4
5
|
* `WalletPermissionsManager` variant that persists grants to an injected
|
|
5
6
|
* `IPermissionStore` instead of minting on-chain PushDrop tokens.
|
|
@@ -8,27 +9,39 @@ import { isExpired, normalizeOriginator, permissionKeyFromRequest, permissionKey
|
|
|
8
9
|
* and keep every other call the same (`bindCallback`, `grantPermission`,
|
|
9
10
|
* `denyPermission`, etc.).
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* -
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
12
|
+
* Reads:
|
|
13
|
+
* - `ensure*Access` checks the local store first; on miss it delegates to
|
|
14
|
+
* super (which then consults its own cache, on-chain tokens, and falls
|
|
15
|
+
* through to firing a prompt). Existing on-chain grants are honored.
|
|
16
|
+
* - Because super's grouped-permission filter calls back through
|
|
17
|
+
* `this.has*Access` → `this.ensure*Access`, our overrides are picked up
|
|
18
|
+
* polymorphically and the connect-time grouped prompt only requests
|
|
19
|
+
* permissions still missing from the store.
|
|
20
|
+
*
|
|
21
|
+
* Writes:
|
|
22
|
+
* - `grantPermission` writes to the store and resolves super's pending
|
|
23
|
+
* request via `super.grantPermission({ ephemeral: true })` (no on-chain
|
|
24
|
+
* mint, no cache write).
|
|
25
|
+
* - `grantGroupedPermission` writes each granted sub-permission to the
|
|
26
|
+
* store and resolves super's pending request via
|
|
27
|
+
* `super.dismissGroupedPermission` (no on-chain mint).
|
|
28
|
+
*
|
|
29
|
+
* Counterparty pact grants pass through to super unchanged — those still go
|
|
30
|
+
* on-chain by design.
|
|
21
31
|
*/
|
|
22
32
|
export class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
23
33
|
permissionStore;
|
|
24
34
|
pendingSingle = new Map();
|
|
25
35
|
pendingGrouped = new Map();
|
|
26
|
-
constructor(underlyingWallet, adminOriginator,
|
|
36
|
+
constructor(underlyingWallet, adminOriginator,
|
|
37
|
+
// biome-ignore lint/style/useDefaultParameterLast: keeps signature aligned with WalletPermissionsManager
|
|
38
|
+
config = {}, options) {
|
|
27
39
|
super(underlyingWallet, adminOriginator, config);
|
|
28
40
|
this.permissionStore = options.store;
|
|
29
41
|
}
|
|
30
42
|
// -----------------------------------------------------------------
|
|
31
|
-
// Callback binding —
|
|
43
|
+
// Callback binding — capture the request so grant overrides can
|
|
44
|
+
// look it up by requestID later.
|
|
32
45
|
// -----------------------------------------------------------------
|
|
33
46
|
bindCallback(eventName, handler) {
|
|
34
47
|
if (eventName === 'onCounterpartyPermissionRequested') {
|
|
@@ -38,17 +51,6 @@ export class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
|
38
51
|
const userHandler = handler;
|
|
39
52
|
const wrapped = async (request) => {
|
|
40
53
|
this.pendingGrouped.set(request.requestID, request);
|
|
41
|
-
const keys = permissionKeysFromGroup(request.originator, request.permissions);
|
|
42
|
-
if (keys.length > 0) {
|
|
43
|
-
const grants = await Promise.all(keys.map((k) => this.permissionStore.findGrant(k)));
|
|
44
|
-
const allHit = grants.length === keys.length &&
|
|
45
|
-
grants.every((g) => g != null && !isExpired(g.expiry));
|
|
46
|
-
if (allHit) {
|
|
47
|
-
await super.dismissGroupedPermission(request.requestID);
|
|
48
|
-
this.pendingGrouped.delete(request.requestID);
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
54
|
return userHandler(request);
|
|
53
55
|
};
|
|
54
56
|
return super.bindCallback(eventName, wrapped);
|
|
@@ -56,22 +58,70 @@ export class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
|
56
58
|
const userHandler = handler;
|
|
57
59
|
const wrapped = async (request) => {
|
|
58
60
|
this.pendingSingle.set(request.requestID, request);
|
|
59
|
-
const key = permissionKeyFromRequest(request);
|
|
60
|
-
const existing = await this.permissionStore.findGrant(key);
|
|
61
|
-
if (existing && !isExpired(existing.expiry)) {
|
|
62
|
-
await super.grantPermission({
|
|
63
|
-
requestID: request.requestID,
|
|
64
|
-
ephemeral: true,
|
|
65
|
-
});
|
|
66
|
-
this.pendingSingle.delete(request.requestID);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
61
|
return userHandler(request);
|
|
70
62
|
};
|
|
71
63
|
return super.bindCallback(eventName, wrapped);
|
|
72
64
|
}
|
|
73
65
|
// -----------------------------------------------------------------
|
|
74
|
-
//
|
|
66
|
+
// Read overrides — store-first, then delegate to super.
|
|
67
|
+
// -----------------------------------------------------------------
|
|
68
|
+
async ensureProtocolPermission(args) {
|
|
69
|
+
const counterparty = args.protocolID[0] === 1 ? '' : (args.counterparty ?? 'self');
|
|
70
|
+
const key = {
|
|
71
|
+
type: 'protocol',
|
|
72
|
+
originator: normalizeOriginator(args.originator),
|
|
73
|
+
privileged: !!args.privileged,
|
|
74
|
+
protocolLevel: args.protocolID[0],
|
|
75
|
+
protocolName: args.protocolID[1],
|
|
76
|
+
counterparty,
|
|
77
|
+
};
|
|
78
|
+
if (await this.storeHit(key))
|
|
79
|
+
return true;
|
|
80
|
+
return super.ensureProtocolPermission(args);
|
|
81
|
+
}
|
|
82
|
+
async ensureBasketAccess(args) {
|
|
83
|
+
const key = {
|
|
84
|
+
type: 'basket',
|
|
85
|
+
originator: normalizeOriginator(args.originator),
|
|
86
|
+
basket: args.basket,
|
|
87
|
+
};
|
|
88
|
+
if (await this.storeHit(key))
|
|
89
|
+
return true;
|
|
90
|
+
return super.ensureBasketAccess(args);
|
|
91
|
+
}
|
|
92
|
+
async ensureCertificateAccess(args) {
|
|
93
|
+
const key = {
|
|
94
|
+
type: 'certificate',
|
|
95
|
+
originator: normalizeOriginator(args.originator),
|
|
96
|
+
privileged: !!args.privileged,
|
|
97
|
+
verifier: args.verifier,
|
|
98
|
+
certType: args.certType,
|
|
99
|
+
fields: [...args.fields].sort(),
|
|
100
|
+
};
|
|
101
|
+
if (await this.storeHit(key))
|
|
102
|
+
return true;
|
|
103
|
+
return super.ensureCertificateAccess(args);
|
|
104
|
+
}
|
|
105
|
+
async ensureSpendingAuthorization(args) {
|
|
106
|
+
const key = {
|
|
107
|
+
type: 'spending',
|
|
108
|
+
originator: normalizeOriginator(args.originator),
|
|
109
|
+
};
|
|
110
|
+
const grant = await this.permissionStore.findGrant(key);
|
|
111
|
+
if (grant &&
|
|
112
|
+
!isExpired(grant.expiry) &&
|
|
113
|
+
(grant.authorizedAmount ?? 0) >= args.satoshis) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return super.ensureSpendingAuthorization(args);
|
|
117
|
+
}
|
|
118
|
+
async storeHit(key) {
|
|
119
|
+
const grant = await this.permissionStore.findGrant(key);
|
|
120
|
+
return !!grant && !isExpired(grant.expiry);
|
|
121
|
+
}
|
|
122
|
+
// -----------------------------------------------------------------
|
|
123
|
+
// Grant / deny overrides — write store, resolve super's pending
|
|
124
|
+
// without minting on chain.
|
|
75
125
|
// -----------------------------------------------------------------
|
|
76
126
|
async grantPermission(params) {
|
|
77
127
|
const request = this.pendingSingle.get(params.requestID);
|
|
@@ -83,7 +133,10 @@ export class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
|
83
133
|
grantedAt: Date.now(),
|
|
84
134
|
reason: request.reason,
|
|
85
135
|
};
|
|
86
|
-
if (
|
|
136
|
+
if (key.type === 'spending' && params.amount != null) {
|
|
137
|
+
grant.authorizedAmount = params.amount;
|
|
138
|
+
}
|
|
139
|
+
else if (request.type === 'spending' &&
|
|
87
140
|
request.spending?.satoshis != null) {
|
|
88
141
|
grant.authorizedAmount = request.spending.satoshis;
|
|
89
142
|
}
|
|
@@ -99,22 +152,63 @@ export class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
|
99
152
|
async grantGroupedPermission(params) {
|
|
100
153
|
const request = this.pendingGrouped.get(params.requestID);
|
|
101
154
|
if (request) {
|
|
102
|
-
const
|
|
103
|
-
const grantedKeys = permissionKeysFromGroup(normalized, params.granted);
|
|
155
|
+
const originator = normalizeOriginator(request.originator);
|
|
104
156
|
const now = Date.now();
|
|
105
157
|
const expiry = params.expiry ?? 0;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
158
|
+
if (params.granted.spendingAuthorization) {
|
|
159
|
+
await this.permissionStore.putGrant({
|
|
160
|
+
key: { type: 'spending', originator },
|
|
161
|
+
expiry,
|
|
162
|
+
grantedAt: now,
|
|
163
|
+
authorizedAmount: params.granted.spendingAuthorization.amount,
|
|
164
|
+
reason: params.granted.spendingAuthorization.description,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
for (const p of params.granted.protocolPermissions ?? []) {
|
|
168
|
+
if (p.counterparty === '')
|
|
169
|
+
continue;
|
|
170
|
+
const level = p.protocolID[0];
|
|
171
|
+
const counterparty = level === 1 ? '' : (p.counterparty ?? 'self');
|
|
172
|
+
await this.permissionStore.putGrant({
|
|
173
|
+
key: {
|
|
174
|
+
type: 'protocol',
|
|
175
|
+
originator,
|
|
176
|
+
privileged: false,
|
|
177
|
+
protocolLevel: level,
|
|
178
|
+
protocolName: p.protocolID[1],
|
|
179
|
+
counterparty,
|
|
180
|
+
},
|
|
181
|
+
expiry,
|
|
182
|
+
grantedAt: now,
|
|
183
|
+
reason: p.description,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
for (const b of params.granted.basketAccess ?? []) {
|
|
187
|
+
await this.permissionStore.putGrant({
|
|
188
|
+
key: { type: 'basket', originator, basket: b.basket },
|
|
189
|
+
expiry,
|
|
190
|
+
grantedAt: now,
|
|
191
|
+
reason: b.description,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
for (const c of params.granted.certificateAccess ?? []) {
|
|
195
|
+
await this.permissionStore.putGrant({
|
|
196
|
+
key: {
|
|
197
|
+
type: 'certificate',
|
|
198
|
+
originator,
|
|
199
|
+
privileged: false,
|
|
200
|
+
verifier: c.verifierPublicKey,
|
|
201
|
+
certType: c.type,
|
|
202
|
+
fields: [...c.fields].sort(),
|
|
203
|
+
},
|
|
204
|
+
expiry,
|
|
205
|
+
grantedAt: now,
|
|
206
|
+
reason: c.description,
|
|
207
|
+
});
|
|
114
208
|
}
|
|
115
209
|
this.pendingGrouped.delete(params.requestID);
|
|
116
210
|
}
|
|
117
|
-
return super.
|
|
211
|
+
return super.dismissGroupedPermission(params.requestID);
|
|
118
212
|
}
|
|
119
213
|
async denyGroupedPermission(requestID) {
|
|
120
214
|
this.pendingGrouped.delete(requestID);
|
|
@@ -125,12 +219,252 @@ export class LocalWalletPermissionsManager extends WalletPermissionsManager {
|
|
|
125
219
|
return super.dismissGroupedPermission(requestID);
|
|
126
220
|
}
|
|
127
221
|
// -----------------------------------------------------------------
|
|
128
|
-
//
|
|
222
|
+
// Listing — merge IDB grants with super's on-chain tokens.
|
|
223
|
+
// -----------------------------------------------------------------
|
|
224
|
+
async listProtocolPermissions(filter = {}) {
|
|
225
|
+
const onchain = await super.listProtocolPermissions(filter);
|
|
226
|
+
const idb = await this.idbTokensFor('protocol', filter.originator, (g) => {
|
|
227
|
+
if (g.key.type !== 'protocol')
|
|
228
|
+
return false;
|
|
229
|
+
if (filter.privileged !== undefined &&
|
|
230
|
+
g.key.privileged !== filter.privileged) {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
if (filter.protocolName !== undefined &&
|
|
234
|
+
g.key.protocolName !== filter.protocolName) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
if (filter.protocolSecurityLevel !== undefined &&
|
|
238
|
+
g.key.protocolLevel !== filter.protocolSecurityLevel) {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
if (filter.counterparty !== undefined &&
|
|
242
|
+
g.key.counterparty !== filter.counterparty) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
return true;
|
|
246
|
+
});
|
|
247
|
+
return mergeTokens(onchain, idb);
|
|
248
|
+
}
|
|
249
|
+
async listBasketAccess(params = {}) {
|
|
250
|
+
const onchain = await super.listBasketAccess(params);
|
|
251
|
+
const idb = await this.idbTokensFor('basket', params.originator, (g) => {
|
|
252
|
+
if (g.key.type !== 'basket')
|
|
253
|
+
return false;
|
|
254
|
+
if (params.basket !== undefined && g.key.basket !== params.basket) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
return true;
|
|
258
|
+
});
|
|
259
|
+
return mergeTokens(onchain, idb);
|
|
260
|
+
}
|
|
261
|
+
async listSpendingAuthorizations(params) {
|
|
262
|
+
const onchain = await super.listSpendingAuthorizations(params);
|
|
263
|
+
const idb = await this.idbTokensFor('spending', params.originator, (g) => g.key.type === 'spending');
|
|
264
|
+
return mergeTokens(onchain, idb);
|
|
265
|
+
}
|
|
266
|
+
async listCertificateAccess(params = {}) {
|
|
267
|
+
const onchain = await super.listCertificateAccess(params);
|
|
268
|
+
const idb = await this.idbTokensFor('certificate', params.originator, (g) => {
|
|
269
|
+
if (g.key.type !== 'certificate')
|
|
270
|
+
return false;
|
|
271
|
+
if (params.privileged !== undefined &&
|
|
272
|
+
g.key.privileged !== params.privileged) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
if (params.certType !== undefined &&
|
|
276
|
+
g.key.certType !== params.certType) {
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
if (params.verifier !== undefined &&
|
|
280
|
+
g.key.verifier !== params.verifier) {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
return true;
|
|
284
|
+
});
|
|
285
|
+
return mergeTokens(onchain, idb);
|
|
286
|
+
}
|
|
287
|
+
async idbTokensFor(type, originator, predicate) {
|
|
288
|
+
const filter = { type };
|
|
289
|
+
if (originator)
|
|
290
|
+
filter.originator = normalizeOriginator(originator);
|
|
291
|
+
const grants = await this.permissionStore.listGrants(filter);
|
|
292
|
+
return grants.filter(predicate).map(grantToToken);
|
|
293
|
+
}
|
|
294
|
+
// -----------------------------------------------------------------
|
|
295
|
+
// Revocation — clear store, then delegate on-chain spend to super.
|
|
129
296
|
// -----------------------------------------------------------------
|
|
130
297
|
async revokeAllForOriginator(originator) {
|
|
131
298
|
const normalized = normalizeOriginator(originator);
|
|
132
299
|
await this.permissionStore.deleteAllForOriginator(normalized);
|
|
133
300
|
return super.revokeAllForOriginator(normalized);
|
|
134
301
|
}
|
|
302
|
+
async revokePermission(oldToken) {
|
|
303
|
+
const idbKey = idbKeyFromToken(oldToken);
|
|
304
|
+
if (idbKey) {
|
|
305
|
+
await this.permissionStore.deleteGrant(idbKey);
|
|
306
|
+
}
|
|
307
|
+
if (oldToken.txid.startsWith(IDB_TXID_PREFIX)) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
return super.revokePermission(oldToken);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
function grantToToken(grant) {
|
|
314
|
+
const base = {
|
|
315
|
+
txid: `${IDB_TXID_PREFIX}${permissionKeyToString(grant.key)}`,
|
|
316
|
+
tx: [],
|
|
317
|
+
outputIndex: 0,
|
|
318
|
+
outputScript: '',
|
|
319
|
+
satoshis: 0,
|
|
320
|
+
originator: grant.key.originator,
|
|
321
|
+
expiry: grant.expiry,
|
|
322
|
+
};
|
|
323
|
+
switch (grant.key.type) {
|
|
324
|
+
case 'protocol':
|
|
325
|
+
base.privileged = grant.key.privileged;
|
|
326
|
+
base.protocol = grant.key.protocolName;
|
|
327
|
+
base.securityLevel = grant.key.protocolLevel;
|
|
328
|
+
base.counterparty = grant.key.counterparty;
|
|
329
|
+
break;
|
|
330
|
+
case 'basket':
|
|
331
|
+
base.basketName = grant.key.basket;
|
|
332
|
+
break;
|
|
333
|
+
case 'certificate':
|
|
334
|
+
base.privileged = grant.key.privileged;
|
|
335
|
+
base.certType = grant.key.certType;
|
|
336
|
+
base.certFields = grant.key.fields;
|
|
337
|
+
base.verifier = grant.key.verifier;
|
|
338
|
+
break;
|
|
339
|
+
case 'spending':
|
|
340
|
+
if (grant.authorizedAmount != null) {
|
|
341
|
+
base.authorizedAmount = grant.authorizedAmount;
|
|
342
|
+
}
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
return base;
|
|
346
|
+
}
|
|
347
|
+
function idbKeyFromToken(token) {
|
|
348
|
+
if (token.txid.startsWith(IDB_TXID_PREFIX)) {
|
|
349
|
+
return parseIdbKey(token.txid.slice(IDB_TXID_PREFIX.length));
|
|
350
|
+
}
|
|
351
|
+
const originator = normalizeOriginator(token.originator);
|
|
352
|
+
if (token.basketName) {
|
|
353
|
+
return { type: 'basket', originator, basket: token.basketName };
|
|
354
|
+
}
|
|
355
|
+
if (token.protocol && token.securityLevel !== undefined) {
|
|
356
|
+
return {
|
|
357
|
+
type: 'protocol',
|
|
358
|
+
originator,
|
|
359
|
+
privileged: !!token.privileged,
|
|
360
|
+
protocolLevel: token.securityLevel,
|
|
361
|
+
protocolName: token.protocol,
|
|
362
|
+
counterparty: token.counterparty ?? 'self',
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
if (token.certType && token.verifier && token.certFields) {
|
|
366
|
+
return {
|
|
367
|
+
type: 'certificate',
|
|
368
|
+
originator,
|
|
369
|
+
privileged: !!token.privileged,
|
|
370
|
+
verifier: token.verifier,
|
|
371
|
+
certType: token.certType,
|
|
372
|
+
fields: [...token.certFields].sort(),
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
if (token.authorizedAmount !== undefined) {
|
|
376
|
+
return { type: 'spending', originator };
|
|
377
|
+
}
|
|
378
|
+
return null;
|
|
379
|
+
}
|
|
380
|
+
function parseIdbKey(serialized) {
|
|
381
|
+
const idx = serialized.indexOf(':');
|
|
382
|
+
if (idx < 0)
|
|
383
|
+
return null;
|
|
384
|
+
const tag = serialized.slice(0, idx);
|
|
385
|
+
const rest = serialized.slice(idx + 1);
|
|
386
|
+
if (tag === 'basket') {
|
|
387
|
+
const sep = rest.indexOf(':');
|
|
388
|
+
if (sep < 0)
|
|
389
|
+
return null;
|
|
390
|
+
return {
|
|
391
|
+
type: 'basket',
|
|
392
|
+
originator: rest.slice(0, sep),
|
|
393
|
+
basket: rest.slice(sep + 1),
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
if (tag === 'spend') {
|
|
397
|
+
return { type: 'spending', originator: rest };
|
|
398
|
+
}
|
|
399
|
+
if (tag === 'proto') {
|
|
400
|
+
const parts = rest.split(':');
|
|
401
|
+
if (parts.length < 4)
|
|
402
|
+
return null;
|
|
403
|
+
const [originator, privileged, levelAndName, counterparty] = parts;
|
|
404
|
+
const commaIdx = levelAndName.indexOf(',');
|
|
405
|
+
if (commaIdx < 0)
|
|
406
|
+
return null;
|
|
407
|
+
const level = Number(levelAndName.slice(0, commaIdx));
|
|
408
|
+
const protocolName = levelAndName.slice(commaIdx + 1);
|
|
409
|
+
return {
|
|
410
|
+
type: 'protocol',
|
|
411
|
+
originator,
|
|
412
|
+
privileged: privileged === 'true',
|
|
413
|
+
protocolLevel: level,
|
|
414
|
+
protocolName,
|
|
415
|
+
counterparty,
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
if (tag === 'cert') {
|
|
419
|
+
const parts = rest.split(':');
|
|
420
|
+
if (parts.length < 5)
|
|
421
|
+
return null;
|
|
422
|
+
const [originator, privileged, verifier, certType, fieldsJoined] = parts;
|
|
423
|
+
return {
|
|
424
|
+
type: 'certificate',
|
|
425
|
+
originator,
|
|
426
|
+
privileged: privileged === 'true',
|
|
427
|
+
verifier,
|
|
428
|
+
certType,
|
|
429
|
+
fields: fieldsJoined ? fieldsJoined.split('|') : [],
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
function mergeTokens(onchain, idb) {
|
|
435
|
+
const seen = new Set();
|
|
436
|
+
const out = [];
|
|
437
|
+
for (const t of onchain) {
|
|
438
|
+
const k = onchainSignature(t);
|
|
439
|
+
if (k)
|
|
440
|
+
seen.add(k);
|
|
441
|
+
out.push(t);
|
|
442
|
+
}
|
|
443
|
+
for (const t of idb) {
|
|
444
|
+
const k = idbSignature(t);
|
|
445
|
+
if (k && seen.has(k))
|
|
446
|
+
continue;
|
|
447
|
+
out.push(t);
|
|
448
|
+
}
|
|
449
|
+
return out;
|
|
450
|
+
}
|
|
451
|
+
function onchainSignature(t) {
|
|
452
|
+
const originator = normalizeOriginator(t.originator);
|
|
453
|
+
if (t.basketName)
|
|
454
|
+
return `basket:${originator}:${t.basketName}`;
|
|
455
|
+
if (t.protocol && t.securityLevel !== undefined) {
|
|
456
|
+
return `proto:${originator}:${!!t.privileged}:${t.securityLevel},${t.protocol}:${t.counterparty ?? 'self'}`;
|
|
457
|
+
}
|
|
458
|
+
if (t.certType && t.verifier && t.certFields) {
|
|
459
|
+
return `cert:${originator}:${!!t.privileged}:${t.verifier}:${t.certType}:${[...t.certFields].sort().join('|')}`;
|
|
460
|
+
}
|
|
461
|
+
if (t.authorizedAmount !== undefined)
|
|
462
|
+
return `spend:${originator}`;
|
|
463
|
+
return null;
|
|
464
|
+
}
|
|
465
|
+
function idbSignature(t) {
|
|
466
|
+
if (!t.txid.startsWith(IDB_TXID_PREFIX))
|
|
467
|
+
return null;
|
|
468
|
+
return t.txid.slice(IDB_TXID_PREFIX.length);
|
|
135
469
|
}
|
|
136
470
|
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1sat/wallet",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.44",
|
|
4
4
|
"description": "BRC-100 wallet engine for 1Sat Ordinals SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,4 +44,4 @@
|
|
|
44
44
|
"@types/chrome": "^0.1.32",
|
|
45
45
|
"typescript": "^5.9.3"
|
|
46
46
|
}
|
|
47
|
-
}
|
|
47
|
+
}
|