@no-witness-labs/midday-sdk 0.2.0 → 0.2.1
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/README.md +145 -78
- package/dist/Client.d.ts +464 -72
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +526 -143
- package/dist/Client.js.map +1 -1
- package/dist/Config.d.ts +83 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +72 -15
- package/dist/Config.js.map +1 -1
- package/dist/Providers.d.ts +99 -9
- package/dist/Providers.d.ts.map +1 -1
- package/dist/Providers.js +142 -39
- package/dist/Providers.js.map +1 -1
- package/dist/Wallet.d.ts +88 -1
- package/dist/Wallet.d.ts.map +1 -1
- package/dist/Wallet.js +162 -51
- package/dist/Wallet.js.map +1 -1
- package/dist/index.d.ts +63 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -4
- package/dist/index.js.map +1 -1
- package/dist/providers/HttpZkConfigProvider.d.ts +229 -0
- package/dist/providers/HttpZkConfigProvider.d.ts.map +1 -0
- package/dist/providers/HttpZkConfigProvider.js +275 -0
- package/dist/providers/HttpZkConfigProvider.js.map +1 -0
- package/dist/providers/IndexedDBPrivateStateProvider.d.ts +270 -0
- package/dist/providers/IndexedDBPrivateStateProvider.d.ts.map +1 -0
- package/dist/providers/IndexedDBPrivateStateProvider.js +513 -0
- package/dist/providers/IndexedDBPrivateStateProvider.js.map +1 -0
- package/dist/providers/errors.d.ts +50 -0
- package/dist/providers/errors.d.ts.map +1 -0
- package/dist/providers/errors.js +32 -0
- package/dist/providers/errors.js.map +1 -0
- package/dist/sdk/Type.d.ts +91 -0
- package/dist/sdk/Type.d.ts.map +1 -0
- package/dist/sdk/Type.js +8 -0
- package/dist/sdk/Type.js.map +1 -0
- package/dist/utils/address.d.ts +56 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/address.js +135 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/coin.d.ts +55 -0
- package/dist/utils/coin.d.ts.map +1 -0
- package/dist/utils/coin.js +84 -0
- package/dist/utils/coin.js.map +1 -0
- package/dist/utils/effect-runtime.d.ts +66 -0
- package/dist/utils/effect-runtime.d.ts.map +1 -0
- package/dist/utils/effect-runtime.js +147 -0
- package/dist/utils/effect-runtime.js.map +1 -0
- package/dist/utils/hex.d.ts +62 -0
- package/dist/utils/hex.d.ts.map +1 -0
- package/dist/utils/hex.js +93 -0
- package/dist/utils/hex.js.map +1 -0
- package/dist/wallet/connector.d.ts +191 -0
- package/dist/wallet/connector.d.ts.map +1 -0
- package/dist/wallet/connector.js +183 -0
- package/dist/wallet/connector.js.map +1 -0
- package/dist/wallet/errors.d.ts +22 -0
- package/dist/wallet/errors.d.ts.map +1 -0
- package/dist/wallet/errors.js +16 -0
- package/dist/wallet/errors.js.map +1 -0
- package/dist/wallet/provider.d.ts +102 -0
- package/dist/wallet/provider.d.ts.map +1 -0
- package/dist/wallet/provider.js +139 -0
- package/dist/wallet/provider.js.map +1 -0
- package/package.json +10 -5
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndexedDB-based private state provider for browser environments.
|
|
3
|
+
*
|
|
4
|
+
* ## API Design
|
|
5
|
+
*
|
|
6
|
+
* This module uses a **module-function pattern**:
|
|
7
|
+
*
|
|
8
|
+
* - **Stateless**: Functions operate on PrivateStateProvider data
|
|
9
|
+
* - **Module functions**: `PrivateState.get(provider, id)`, `PrivateState.set(provider, id, state)`
|
|
10
|
+
* - **Data-oriented**: Provider is plain data, not an instance with methods
|
|
11
|
+
*
|
|
12
|
+
* ### Usage Patterns
|
|
13
|
+
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Promise user
|
|
16
|
+
* const provider = PrivateState.makeIndexedDB({ privateStateStoreName: 'my-app' });
|
|
17
|
+
* const state = await PrivateState.get(provider, 'myContract');
|
|
18
|
+
* await PrivateState.set(provider, 'myContract', { count: 0 });
|
|
19
|
+
*
|
|
20
|
+
* // Effect user
|
|
21
|
+
* const provider = PrivateState.makeIndexedDB({ privateStateStoreName: 'my-app' });
|
|
22
|
+
* const state = yield* PrivateState.effect.get(provider, 'myContract');
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @since 0.2.0
|
|
26
|
+
* @module
|
|
27
|
+
*/
|
|
28
|
+
import { Context, Effect, Layer } from 'effect';
|
|
29
|
+
import { BrowserLevel } from 'browser-level';
|
|
30
|
+
import type { PrivateStateProvider } from '@midnight-ntwrk/midnight-js-types';
|
|
31
|
+
import { PrivateStateError } from './errors.js';
|
|
32
|
+
type ContractAddress = string;
|
|
33
|
+
type SigningKey = unknown;
|
|
34
|
+
/**
|
|
35
|
+
* Configuration for IndexedDB private state storage.
|
|
36
|
+
*
|
|
37
|
+
* @since 0.2.0
|
|
38
|
+
* @category model
|
|
39
|
+
*/
|
|
40
|
+
export interface IndexedDBPrivateStateConfig {
|
|
41
|
+
/** Name of the IndexedDB store */
|
|
42
|
+
privateStateStoreName: string;
|
|
43
|
+
/** Password for encryption (optional, uses default if not provided) */
|
|
44
|
+
password?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Represents a private state provider.
|
|
48
|
+
*
|
|
49
|
+
* This is plain data - use module functions to operate on it.
|
|
50
|
+
*
|
|
51
|
+
* @since 0.2.0
|
|
52
|
+
* @category model
|
|
53
|
+
*/
|
|
54
|
+
export interface PrivateStateProviderData {
|
|
55
|
+
/** State database */
|
|
56
|
+
readonly stateDb: BrowserLevel<string, Uint8Array> | Map<string, unknown>;
|
|
57
|
+
/** Signing key database */
|
|
58
|
+
readonly signingKeyDb: BrowserLevel<string, Uint8Array> | Map<string, SigningKey>;
|
|
59
|
+
/** Encryption function */
|
|
60
|
+
readonly encrypt: (data: Uint8Array) => Uint8Array;
|
|
61
|
+
/** Decryption function */
|
|
62
|
+
readonly decrypt: (data: Uint8Array) => Uint8Array;
|
|
63
|
+
/** Type indicator */
|
|
64
|
+
readonly type: 'indexeddb' | 'memory';
|
|
65
|
+
}
|
|
66
|
+
declare function getEffect(provider: PrivateStateProviderData, privateStateId: string): Effect.Effect<unknown | null, PrivateStateError>;
|
|
67
|
+
declare function setEffect(provider: PrivateStateProviderData, privateStateId: string, state: unknown): Effect.Effect<void, PrivateStateError>;
|
|
68
|
+
declare function removeEffect(provider: PrivateStateProviderData, privateStateId: string): Effect.Effect<void, PrivateStateError>;
|
|
69
|
+
declare function clearEffect(provider: PrivateStateProviderData): Effect.Effect<void, PrivateStateError>;
|
|
70
|
+
declare function setSigningKeyEffect(provider: PrivateStateProviderData, address: ContractAddress, signingKey: SigningKey): Effect.Effect<void, PrivateStateError>;
|
|
71
|
+
declare function getSigningKeyEffect(provider: PrivateStateProviderData, address: ContractAddress): Effect.Effect<SigningKey | null, PrivateStateError>;
|
|
72
|
+
declare function removeSigningKeyEffect(provider: PrivateStateProviderData, address: ContractAddress): Effect.Effect<void, PrivateStateError>;
|
|
73
|
+
declare function clearSigningKeysEffect(provider: PrivateStateProviderData): Effect.Effect<void, PrivateStateError>;
|
|
74
|
+
/**
|
|
75
|
+
* Create an IndexedDB-based private state provider.
|
|
76
|
+
*
|
|
77
|
+
* @param config - Configuration options
|
|
78
|
+
* @returns PrivateStateProviderData
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const provider = makeIndexedDB({
|
|
83
|
+
* privateStateStoreName: 'my-dapp-state',
|
|
84
|
+
* password: 'user-password',
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @since 0.2.0
|
|
89
|
+
* @category constructors
|
|
90
|
+
*/
|
|
91
|
+
export declare function makeIndexedDB(config: IndexedDBPrivateStateConfig): PrivateStateProviderData;
|
|
92
|
+
/**
|
|
93
|
+
* Create an in-memory private state provider (no persistence).
|
|
94
|
+
*
|
|
95
|
+
* @returns PrivateStateProviderData
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const provider = makeInMemory();
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* @since 0.2.0
|
|
103
|
+
* @category constructors
|
|
104
|
+
*/
|
|
105
|
+
export declare function makeInMemory(): PrivateStateProviderData;
|
|
106
|
+
/**
|
|
107
|
+
* Get private state.
|
|
108
|
+
*
|
|
109
|
+
* @since 0.2.0
|
|
110
|
+
* @category operations
|
|
111
|
+
*/
|
|
112
|
+
export declare function get(provider: PrivateStateProviderData, privateStateId: string): Promise<unknown | null>;
|
|
113
|
+
/**
|
|
114
|
+
* Set private state.
|
|
115
|
+
*
|
|
116
|
+
* @since 0.2.0
|
|
117
|
+
* @category operations
|
|
118
|
+
*/
|
|
119
|
+
export declare function set(provider: PrivateStateProviderData, privateStateId: string, state: unknown): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Remove private state.
|
|
122
|
+
*
|
|
123
|
+
* @since 0.2.0
|
|
124
|
+
* @category operations
|
|
125
|
+
*/
|
|
126
|
+
export declare function remove(provider: PrivateStateProviderData, privateStateId: string): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Clear all private state.
|
|
129
|
+
*
|
|
130
|
+
* @since 0.2.0
|
|
131
|
+
* @category operations
|
|
132
|
+
*/
|
|
133
|
+
export declare function clear(provider: PrivateStateProviderData): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Set signing key.
|
|
136
|
+
*
|
|
137
|
+
* @since 0.2.0
|
|
138
|
+
* @category operations
|
|
139
|
+
*/
|
|
140
|
+
export declare function setSigningKey(provider: PrivateStateProviderData, address: ContractAddress, signingKey: SigningKey): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Get signing key.
|
|
143
|
+
*
|
|
144
|
+
* @since 0.2.0
|
|
145
|
+
* @category operations
|
|
146
|
+
*/
|
|
147
|
+
export declare function getSigningKey(provider: PrivateStateProviderData, address: ContractAddress): Promise<SigningKey | null>;
|
|
148
|
+
/**
|
|
149
|
+
* Remove signing key.
|
|
150
|
+
*
|
|
151
|
+
* @since 0.2.0
|
|
152
|
+
* @category operations
|
|
153
|
+
*/
|
|
154
|
+
export declare function removeSigningKey(provider: PrivateStateProviderData, address: ContractAddress): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Clear all signing keys.
|
|
157
|
+
*
|
|
158
|
+
* @since 0.2.0
|
|
159
|
+
* @category operations
|
|
160
|
+
*/
|
|
161
|
+
export declare function clearSigningKeys(provider: PrivateStateProviderData): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Raw Effect APIs for advanced users.
|
|
164
|
+
*
|
|
165
|
+
* @since 0.2.0
|
|
166
|
+
* @category effect
|
|
167
|
+
*/
|
|
168
|
+
export declare const effect: {
|
|
169
|
+
get: typeof getEffect;
|
|
170
|
+
set: typeof setEffect;
|
|
171
|
+
remove: typeof removeEffect;
|
|
172
|
+
clear: typeof clearEffect;
|
|
173
|
+
setSigningKey: typeof setSigningKeyEffect;
|
|
174
|
+
getSigningKey: typeof getSigningKeyEffect;
|
|
175
|
+
removeSigningKey: typeof removeSigningKeyEffect;
|
|
176
|
+
clearSigningKeys: typeof clearSigningKeysEffect;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Create a browser-compatible private state provider using IndexedDB.
|
|
180
|
+
*
|
|
181
|
+
* This function returns a PrivateStateProvider compatible with midnight-js.
|
|
182
|
+
*
|
|
183
|
+
* @param config - Configuration options
|
|
184
|
+
* @returns PrivateStateProvider compatible with midnight-js
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* const provider = indexedDBPrivateStateProvider({
|
|
189
|
+
* privateStateStoreName: 'my-dapp-state',
|
|
190
|
+
* password: 'user-password',
|
|
191
|
+
* });
|
|
192
|
+
*
|
|
193
|
+
* // Use with Client.create()
|
|
194
|
+
* const client = await Client.create({
|
|
195
|
+
* privateStateProvider: provider,
|
|
196
|
+
* // ...
|
|
197
|
+
* });
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @since 0.2.0
|
|
201
|
+
* @category constructors
|
|
202
|
+
*/
|
|
203
|
+
export declare function indexedDBPrivateStateProvider(config: IndexedDBPrivateStateConfig): PrivateStateProvider<string, unknown>;
|
|
204
|
+
/**
|
|
205
|
+
* Create an in-memory private state provider (no persistence).
|
|
206
|
+
*
|
|
207
|
+
* This function returns a PrivateStateProvider compatible with midnight-js.
|
|
208
|
+
*
|
|
209
|
+
* @returns PrivateStateProvider that stores state in memory
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* const provider = inMemoryPrivateStateProvider();
|
|
214
|
+
*
|
|
215
|
+
* // Use with Client.create()
|
|
216
|
+
* const client = await Client.create({
|
|
217
|
+
* privateStateProvider: provider,
|
|
218
|
+
* // ...
|
|
219
|
+
* });
|
|
220
|
+
* ```
|
|
221
|
+
*
|
|
222
|
+
* @since 0.2.0
|
|
223
|
+
* @category constructors
|
|
224
|
+
*/
|
|
225
|
+
export declare function inMemoryPrivateStateProvider(): PrivateStateProvider<string, unknown>;
|
|
226
|
+
/**
|
|
227
|
+
* Service interface for PrivateState operations.
|
|
228
|
+
*
|
|
229
|
+
* @since 0.2.0
|
|
230
|
+
* @category service
|
|
231
|
+
*/
|
|
232
|
+
export interface PrivateStateServiceImpl {
|
|
233
|
+
readonly get: (provider: PrivateStateProviderData, privateStateId: string) => Effect.Effect<unknown | null, PrivateStateError>;
|
|
234
|
+
readonly set: (provider: PrivateStateProviderData, privateStateId: string, state: unknown) => Effect.Effect<void, PrivateStateError>;
|
|
235
|
+
readonly remove: (provider: PrivateStateProviderData, privateStateId: string) => Effect.Effect<void, PrivateStateError>;
|
|
236
|
+
readonly clear: (provider: PrivateStateProviderData) => Effect.Effect<void, PrivateStateError>;
|
|
237
|
+
readonly setSigningKey: (provider: PrivateStateProviderData, address: string, signingKey: unknown) => Effect.Effect<void, PrivateStateError>;
|
|
238
|
+
readonly getSigningKey: (provider: PrivateStateProviderData, address: string) => Effect.Effect<unknown | null, PrivateStateError>;
|
|
239
|
+
readonly removeSigningKey: (provider: PrivateStateProviderData, address: string) => Effect.Effect<void, PrivateStateError>;
|
|
240
|
+
readonly clearSigningKeys: (provider: PrivateStateProviderData) => Effect.Effect<void, PrivateStateError>;
|
|
241
|
+
}
|
|
242
|
+
declare const PrivateStateService_base: Context.TagClass<PrivateStateService, "PrivateStateService", PrivateStateServiceImpl>;
|
|
243
|
+
/**
|
|
244
|
+
* Context.Tag for PrivateStateService dependency injection.
|
|
245
|
+
*
|
|
246
|
+
* @since 0.2.0
|
|
247
|
+
* @category service
|
|
248
|
+
*/
|
|
249
|
+
export declare class PrivateStateService extends PrivateStateService_base {
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Live Layer for PrivateStateService.
|
|
253
|
+
*
|
|
254
|
+
* @since 0.2.0
|
|
255
|
+
* @category layer
|
|
256
|
+
*/
|
|
257
|
+
export declare const PrivateStateLive: Layer.Layer<PrivateStateService>;
|
|
258
|
+
declare const PrivateStateProviderService_base: Context.TagClass<PrivateStateProviderService, "PrivateStateProviderService", PrivateStateProvider<string, any>>;
|
|
259
|
+
/**
|
|
260
|
+
* Private state provider service for dependency injection.
|
|
261
|
+
*
|
|
262
|
+
* This tag allows injecting a PrivateStateProvider instance.
|
|
263
|
+
*
|
|
264
|
+
* @since 0.3.0
|
|
265
|
+
* @category services
|
|
266
|
+
*/
|
|
267
|
+
export declare class PrivateStateProviderService extends PrivateStateProviderService_base {
|
|
268
|
+
}
|
|
269
|
+
export {};
|
|
270
|
+
//# sourceMappingURL=IndexedDBPrivateStateProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDBPrivateStateProvider.d.ts","sourceRoot":"","sources":["../../src/providers/IndexedDBPrivateStateProvider.ts"],"names":[],"mappings":"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"}
|