@decentrl/sdk 0.0.15 → 0.0.17
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/client.d.ts.map +1 -1
- package/dist/client.js +16 -2
- package/dist/contract-manager.d.ts +1 -0
- package/dist/contract-manager.d.ts.map +1 -1
- package/dist/contract-manager.js +3 -0
- package/dist/direct-transport.d.ts +2 -0
- package/dist/direct-transport.d.ts.map +1 -1
- package/dist/direct-transport.js +9 -0
- package/dist/persistence.d.ts +2 -0
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +29 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/client.ts +20 -1
- package/src/contract-manager.ts +4 -0
- package/src/direct-transport.ts +12 -0
- package/src/persistence.ts +35 -0
- package/src/types.ts +2 -1
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -3,7 +3,7 @@ import { DirectTransport } from './direct-transport.js';
|
|
|
3
3
|
import { DecentrlSDKError } from './errors.js';
|
|
4
4
|
import { EventProcessor } from './event-processor.js';
|
|
5
5
|
import { IdentityManager } from './identity-manager.js';
|
|
6
|
-
import { clearPersisted, loadPersistedIdentity, loadPersistedState, persistIdentity, persistState, } from './persistence.js';
|
|
6
|
+
import { clearPersisted, loadPersistedContracts, loadPersistedIdentity, loadPersistedState, persistContracts, persistIdentity, persistState, } from './persistence.js';
|
|
7
7
|
import { PublicChannelReader } from './public-channel-reader.js';
|
|
8
8
|
import { StateStore } from './state-store.js';
|
|
9
9
|
import { SyncManager } from './sync-manager.js';
|
|
@@ -56,7 +56,7 @@ export class DecentrlClient {
|
|
|
56
56
|
this.eventProcessor = new EventProcessor(appConfig.events, appConfig.state, this.stateStore, appConfig.publicEvents, appConfig.channels);
|
|
57
57
|
this.publicChannelReader = new PublicChannelReader(this.transport, this.eventProcessor, appConfig.channels);
|
|
58
58
|
this.syncManager = new SyncManager(this.eventProcessor, this.contracts, this.identity, this.transport);
|
|
59
|
-
// Restore persisted identity
|
|
59
|
+
// Restore persisted identity + contract rootSecrets
|
|
60
60
|
if (persistOpts) {
|
|
61
61
|
const savedIdentity = loadPersistedIdentity(persistOpts);
|
|
62
62
|
if (savedIdentity) {
|
|
@@ -67,6 +67,13 @@ export class DecentrlClient {
|
|
|
67
67
|
persistIdentity(persistOpts, null);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
// Restore contract rootSecrets (DirectTransport only)
|
|
71
|
+
if (this.transport instanceof DirectTransport) {
|
|
72
|
+
const savedSecrets = loadPersistedContracts(persistOpts);
|
|
73
|
+
if (savedSecrets) {
|
|
74
|
+
this.transport.loadRootSecrets(savedSecrets);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
70
77
|
this.setupPersistence();
|
|
71
78
|
}
|
|
72
79
|
}
|
|
@@ -90,6 +97,13 @@ export class DecentrlClient {
|
|
|
90
97
|
}
|
|
91
98
|
persistTimeout = setTimeout(() => persistState(persistOpts, state), 100);
|
|
92
99
|
});
|
|
100
|
+
// Persist contract rootSecrets when contracts change (DirectTransport only)
|
|
101
|
+
if (this.transport instanceof DirectTransport) {
|
|
102
|
+
const transport = this.transport;
|
|
103
|
+
this.contracts.onChange(() => {
|
|
104
|
+
persistContracts(persistOpts, transport.getRootSecrets());
|
|
105
|
+
});
|
|
106
|
+
}
|
|
93
107
|
}
|
|
94
108
|
// --- Private Events ---
|
|
95
109
|
async publish(eventType, data, options) {
|
|
@@ -14,6 +14,7 @@ export declare class ContractManager {
|
|
|
14
14
|
accept(pendingId: string, encryptedPayload: string, requestorEphemeralPublicKey: string): Promise<void>;
|
|
15
15
|
refresh(): Promise<void>;
|
|
16
16
|
getActiveContracts(): StoredSignedContract[];
|
|
17
|
+
getExpiredContracts(): StoredSignedContract[];
|
|
17
18
|
getContractByDid(did: string): StoredSignedContract | undefined;
|
|
18
19
|
processAutoRenewals(threshold?: number): Promise<void>;
|
|
19
20
|
processContractCleanup(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-manager.d.ts","sourceRoot":"","sources":["../src/contract-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/E,KAAK,sBAAsB,GAAG,MAAM,IAAI,CAAC;AAEzC,qBAAa,eAAe;IAC3B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,SAAS,CAAkC;IAEnD,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAQtD,OAAO,CAAC,MAAM;IAUR,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,UAAU,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAQ/C,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,2BAA2B,EAAE,MAAM,GACjC,OAAO,CAAC,IAAI,CAAC;IASV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,kBAAkB,IAAI,oBAAoB,EAAE;IAI5C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAyBzD,mBAAmB,CAAC,SAAS,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7C,KAAK,IAAI,IAAI;CAIb"}
|
|
1
|
+
{"version":3,"file":"contract-manager.d.ts","sourceRoot":"","sources":["../src/contract-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/E,KAAK,sBAAsB,GAAG,MAAM,IAAI,CAAC;AAEzC,qBAAa,eAAe;IAC3B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,SAAS,CAAkC;IAEnD,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAQtD,OAAO,CAAC,MAAM;IAUR,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,UAAU,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAQ/C,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,2BAA2B,EAAE,MAAM,GACjC,OAAO,CAAC,IAAI,CAAC;IASV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,kBAAkB,IAAI,oBAAoB,EAAE;IAI5C,mBAAmB,IAAI,oBAAoB,EAAE;IAI7C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAyBzD,mBAAmB,CAAC,SAAS,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7C,KAAK,IAAI,IAAI;CAIb"}
|
package/dist/contract-manager.js
CHANGED
|
@@ -52,6 +52,9 @@ export class ContractManager {
|
|
|
52
52
|
getActiveContracts() {
|
|
53
53
|
return this.cachedActiveContracts;
|
|
54
54
|
}
|
|
55
|
+
getExpiredContracts() {
|
|
56
|
+
return Array.from(this.contracts.values()).filter((c) => c.status === 'expired');
|
|
57
|
+
}
|
|
55
58
|
getContractByDid(did) {
|
|
56
59
|
let best;
|
|
57
60
|
for (const contract of this.contracts.values()) {
|
|
@@ -22,6 +22,8 @@ export declare class DirectTransport implements DecentrlTransport {
|
|
|
22
22
|
private confirmedNewContracts;
|
|
23
23
|
private purgedContractIds;
|
|
24
24
|
constructor(options?: DirectTransportOptions);
|
|
25
|
+
getRootSecrets(): Record<string, string>;
|
|
26
|
+
loadRootSecrets(secrets: Record<string, string>): void;
|
|
25
27
|
createIdentity(options: {
|
|
26
28
|
alias: string;
|
|
27
29
|
mediatorDid: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-transport.d.ts","sourceRoot":"","sources":["../src/direct-transport.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACX,gBAAgB,EAChB,aAAa,EAEb,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,OAAO,EAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAM1B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChF;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,sBAAsB,CAAC,CAAyD;IAExF,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,qBAAqB,CAAqB;IAGlD,OAAO,CAAC,iBAAiB,CAAqB;gBAElC,OAAO,CAAC,EAAE,sBAAsB;
|
|
1
|
+
{"version":3,"file":"direct-transport.d.ts","sourceRoot":"","sources":["../src/direct-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/direct-transport.js
CHANGED
|
@@ -31,6 +31,15 @@ export class DirectTransport {
|
|
|
31
31
|
((url, data, opts) => axios.post(url, data, { timeout: opts?.timeout ?? DEFAULT_TIMEOUT_MS }));
|
|
32
32
|
this.onEphemeralKeysChanged = options?.onEphemeralKeysChanged;
|
|
33
33
|
}
|
|
34
|
+
// --- Root Secret Persistence ---
|
|
35
|
+
getRootSecrets() {
|
|
36
|
+
return Object.fromEntries(this.knownRootSecrets);
|
|
37
|
+
}
|
|
38
|
+
loadRootSecrets(secrets) {
|
|
39
|
+
for (const [id, secret] of Object.entries(secrets)) {
|
|
40
|
+
this.knownRootSecrets.set(id, secret);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
34
43
|
// --- Identity ---
|
|
35
44
|
async createIdentity(options) {
|
|
36
45
|
const { alias, mediatorDid } = options;
|
package/dist/persistence.d.ts
CHANGED
|
@@ -7,5 +7,7 @@ export declare function loadPersistedIdentity(opts: PersistOptions): SerializedI
|
|
|
7
7
|
export declare function persistIdentity(opts: PersistOptions, identity: SerializedIdentity | null): void;
|
|
8
8
|
export declare function loadPersistedState<T extends Record<string, unknown>>(opts: PersistOptions): T | null;
|
|
9
9
|
export declare function persistState(opts: PersistOptions, state: Record<string, unknown>): void;
|
|
10
|
+
export declare function loadPersistedContracts(opts: PersistOptions): Record<string, string> | null;
|
|
11
|
+
export declare function persistContracts(opts: PersistOptions, secrets: Record<string, string>): void;
|
|
10
12
|
export declare function clearPersisted(opts: PersistOptions): void;
|
|
11
13
|
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,cAAc;IAC9B,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;CACZ;AAUD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAkBrF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAgB/F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,IAAI,EAAE,cAAc,GAClB,CAAC,GAAG,IAAI,CAkBV;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYvF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,cAAc;IAC9B,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;CACZ;AAUD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAkBrF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAgB/F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,IAAI,EAAE,cAAc,GAClB,CAAC,GAAG,IAAI,CAkBV;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYvF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAkB1F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAY5F;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAczD"}
|
package/dist/persistence.js
CHANGED
|
@@ -67,6 +67,34 @@ export function persistState(opts, state) {
|
|
|
67
67
|
// Silently fail
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
export function loadPersistedContracts(opts) {
|
|
71
|
+
const storage = getStorage();
|
|
72
|
+
if (!storage) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const raw = storage.getItem(`${opts.key}:contracts`);
|
|
77
|
+
if (!raw) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return JSON.parse(raw);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export function persistContracts(opts, secrets) {
|
|
87
|
+
const storage = getStorage();
|
|
88
|
+
if (!storage) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
storage.setItem(`${opts.key}:contracts`, JSON.stringify(secrets));
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Silently fail
|
|
96
|
+
}
|
|
97
|
+
}
|
|
70
98
|
export function clearPersisted(opts) {
|
|
71
99
|
const storage = getStorage();
|
|
72
100
|
if (!storage) {
|
|
@@ -75,6 +103,7 @@ export function clearPersisted(opts) {
|
|
|
75
103
|
try {
|
|
76
104
|
storage.removeItem(`${opts.key}:identity`);
|
|
77
105
|
storage.removeItem(`${opts.key}:state`);
|
|
106
|
+
storage.removeItem(`${opts.key}:contracts`);
|
|
78
107
|
}
|
|
79
108
|
catch {
|
|
80
109
|
// Silently fail
|
package/dist/types.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export interface StateSliceDefinition<TSlice = unknown, TEvents extends EventDef
|
|
|
68
68
|
initial: TSlice;
|
|
69
69
|
reduce: PrivateReducers<TSlice, TEvents> & PublicReducers<TSlice, TPublicEvents> & ChannelReducers<TSlice, TChannels>;
|
|
70
70
|
}
|
|
71
|
-
export type StateDefinitions<TEvents extends EventDefinitions = EventDefinitions, TPublicEvents extends PublicEventDefinitions = PublicEventDefinitions, TChannels extends ChannelDefinitions = ChannelDefinitions> = Record<string, StateSliceDefinition<
|
|
71
|
+
export type StateDefinitions<TEvents extends EventDefinitions = EventDefinitions, TPublicEvents extends PublicEventDefinitions = PublicEventDefinitions, TChannels extends ChannelDefinitions = ChannelDefinitions> = Record<string, StateSliceDefinition<any, TEvents, TPublicEvents, TChannels>>;
|
|
72
72
|
export type InferState<TState extends StateDefinitions> = {
|
|
73
73
|
[K in keyof TState]: TState[K]['initial'];
|
|
74
74
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decentrl/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"description": "Declarative SDK for building Decentrl protocol applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"zod": "^4.0.10",
|
|
10
10
|
"axios": "1.11.0",
|
|
11
|
-
"@decentrl/crypto": "0.0.
|
|
12
|
-
"@decentrl/
|
|
13
|
-
"@decentrl/
|
|
11
|
+
"@decentrl/crypto": "0.0.17",
|
|
12
|
+
"@decentrl/identity": "0.0.17",
|
|
13
|
+
"@decentrl/event-store": "0.0.17"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"typescript": "^5.8.3",
|
package/src/client.ts
CHANGED
|
@@ -5,8 +5,10 @@ import { EventProcessor } from './event-processor.js';
|
|
|
5
5
|
import { IdentityManager } from './identity-manager.js';
|
|
6
6
|
import {
|
|
7
7
|
clearPersisted,
|
|
8
|
+
loadPersistedContracts,
|
|
8
9
|
loadPersistedIdentity,
|
|
9
10
|
loadPersistedState,
|
|
11
|
+
persistContracts,
|
|
10
12
|
persistIdentity,
|
|
11
13
|
persistState,
|
|
12
14
|
} from './persistence.js';
|
|
@@ -122,7 +124,7 @@ export class DecentrlClient<
|
|
|
122
124
|
this.transport,
|
|
123
125
|
);
|
|
124
126
|
|
|
125
|
-
// Restore persisted identity
|
|
127
|
+
// Restore persisted identity + contract rootSecrets
|
|
126
128
|
if (persistOpts) {
|
|
127
129
|
const savedIdentity = loadPersistedIdentity(persistOpts);
|
|
128
130
|
|
|
@@ -134,6 +136,15 @@ export class DecentrlClient<
|
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
|
|
139
|
+
// Restore contract rootSecrets (DirectTransport only)
|
|
140
|
+
if (this.transport instanceof DirectTransport) {
|
|
141
|
+
const savedSecrets = loadPersistedContracts(persistOpts);
|
|
142
|
+
|
|
143
|
+
if (savedSecrets) {
|
|
144
|
+
this.transport.loadRootSecrets(savedSecrets);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
137
148
|
this.setupPersistence();
|
|
138
149
|
}
|
|
139
150
|
}
|
|
@@ -161,6 +172,14 @@ export class DecentrlClient<
|
|
|
161
172
|
|
|
162
173
|
persistTimeout = setTimeout(() => persistState(persistOpts, state), 100);
|
|
163
174
|
});
|
|
175
|
+
|
|
176
|
+
// Persist contract rootSecrets when contracts change (DirectTransport only)
|
|
177
|
+
if (this.transport instanceof DirectTransport) {
|
|
178
|
+
const transport = this.transport;
|
|
179
|
+
this.contracts.onChange(() => {
|
|
180
|
+
persistContracts(persistOpts, transport.getRootSecrets());
|
|
181
|
+
});
|
|
182
|
+
}
|
|
164
183
|
}
|
|
165
184
|
|
|
166
185
|
// --- Private Events ---
|
package/src/contract-manager.ts
CHANGED
|
@@ -80,6 +80,10 @@ export class ContractManager {
|
|
|
80
80
|
return this.cachedActiveContracts;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
getExpiredContracts(): StoredSignedContract[] {
|
|
84
|
+
return Array.from(this.contracts.values()).filter((c) => c.status === 'expired');
|
|
85
|
+
}
|
|
86
|
+
|
|
83
87
|
getContractByDid(did: string): StoredSignedContract | undefined {
|
|
84
88
|
let best: StoredSignedContract | undefined;
|
|
85
89
|
|
package/src/direct-transport.ts
CHANGED
|
@@ -75,6 +75,18 @@ export class DirectTransport implements DecentrlTransport {
|
|
|
75
75
|
this.onEphemeralKeysChanged = options?.onEphemeralKeysChanged;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
// --- Root Secret Persistence ---
|
|
79
|
+
|
|
80
|
+
getRootSecrets(): Record<string, string> {
|
|
81
|
+
return Object.fromEntries(this.knownRootSecrets);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
loadRootSecrets(secrets: Record<string, string>): void {
|
|
85
|
+
for (const [id, secret] of Object.entries(secrets)) {
|
|
86
|
+
this.knownRootSecrets.set(id, secret);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
78
90
|
// --- Identity ---
|
|
79
91
|
|
|
80
92
|
async createIdentity(options: {
|
package/src/persistence.ts
CHANGED
|
@@ -87,6 +87,40 @@ export function persistState(opts: PersistOptions, state: Record<string, unknown
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
export function loadPersistedContracts(opts: PersistOptions): Record<string, string> | null {
|
|
91
|
+
const storage = getStorage();
|
|
92
|
+
|
|
93
|
+
if (!storage) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
try {
|
|
98
|
+
const raw = storage.getItem(`${opts.key}:contracts`);
|
|
99
|
+
|
|
100
|
+
if (!raw) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return JSON.parse(raw) as Record<string, string>;
|
|
105
|
+
} catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export function persistContracts(opts: PersistOptions, secrets: Record<string, string>): void {
|
|
111
|
+
const storage = getStorage();
|
|
112
|
+
|
|
113
|
+
if (!storage) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
try {
|
|
118
|
+
storage.setItem(`${opts.key}:contracts`, JSON.stringify(secrets));
|
|
119
|
+
} catch {
|
|
120
|
+
// Silently fail
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
90
124
|
export function clearPersisted(opts: PersistOptions): void {
|
|
91
125
|
const storage = getStorage();
|
|
92
126
|
|
|
@@ -97,6 +131,7 @@ export function clearPersisted(opts: PersistOptions): void {
|
|
|
97
131
|
try {
|
|
98
132
|
storage.removeItem(`${opts.key}:identity`);
|
|
99
133
|
storage.removeItem(`${opts.key}:state`);
|
|
134
|
+
storage.removeItem(`${opts.key}:contracts`);
|
|
100
135
|
} catch {
|
|
101
136
|
// Silently fail
|
|
102
137
|
}
|
package/src/types.ts
CHANGED
|
@@ -130,7 +130,8 @@ export type StateDefinitions<
|
|
|
130
130
|
TEvents extends EventDefinitions = EventDefinitions,
|
|
131
131
|
TPublicEvents extends PublicEventDefinitions = PublicEventDefinitions,
|
|
132
132
|
TChannels extends ChannelDefinitions = ChannelDefinitions,
|
|
133
|
-
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
134
|
+
> = Record<string, StateSliceDefinition<any, TEvents, TPublicEvents, TChannels>>;
|
|
134
135
|
|
|
135
136
|
// --- Inferred State ---
|
|
136
137
|
|