@magicblock-console/core 0.1.0

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.
Files changed (57) hide show
  1. package/dist/client.d.ts +98 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +96 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/config.d.ts +41 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +94 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/connection.d.ts +42 -0
  10. package/dist/connection.d.ts.map +1 -0
  11. package/dist/connection.js +82 -0
  12. package/dist/connection.js.map +1 -0
  13. package/dist/cranks.d.ts +14 -0
  14. package/dist/cranks.d.ts.map +1 -0
  15. package/dist/cranks.js +128 -0
  16. package/dist/cranks.js.map +1 -0
  17. package/dist/er.d.ts +17 -0
  18. package/dist/er.d.ts.map +1 -0
  19. package/dist/er.js +314 -0
  20. package/dist/er.js.map +1 -0
  21. package/dist/index.d.ts +17 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +14 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/monitor.d.ts +21 -0
  26. package/dist/monitor.d.ts.map +1 -0
  27. package/dist/monitor.js +170 -0
  28. package/dist/monitor.js.map +1 -0
  29. package/dist/oracle.d.ts +13 -0
  30. package/dist/oracle.d.ts.map +1 -0
  31. package/dist/oracle.js +215 -0
  32. package/dist/oracle.js.map +1 -0
  33. package/dist/privacy.d.ts +14 -0
  34. package/dist/privacy.d.ts.map +1 -0
  35. package/dist/privacy.js +177 -0
  36. package/dist/privacy.js.map +1 -0
  37. package/dist/projects.d.ts +9 -0
  38. package/dist/projects.d.ts.map +1 -0
  39. package/dist/projects.js +94 -0
  40. package/dist/projects.js.map +1 -0
  41. package/dist/storage.d.ts +37 -0
  42. package/dist/storage.d.ts.map +1 -0
  43. package/dist/storage.js +150 -0
  44. package/dist/storage.js.map +1 -0
  45. package/dist/types.d.ts +180 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +5 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/utils.d.ts +18 -0
  50. package/dist/utils.d.ts.map +1 -0
  51. package/dist/utils.js +43 -0
  52. package/dist/utils.js.map +1 -0
  53. package/dist/vrf.d.ts +42 -0
  54. package/dist/vrf.d.ts.map +1 -0
  55. package/dist/vrf.js +117 -0
  56. package/dist/vrf.js.map +1 -0
  57. package/package.json +30 -0
package/dist/er.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import type { Storage } from './storage.js';
2
+ import type { Network, Region } from './types.js';
3
+ import type { ErNamespace } from './client.js';
4
+ import type { BlockchainConnection } from './connection.js';
5
+ /**
6
+ * Create a fully-functional `ErNamespace` backed by the given Storage.
7
+ *
8
+ * When a `getConnection` callback is provided and returns a valid
9
+ * `BlockchainConnection`, real on-chain transactions are built and sent
10
+ * via the MagicBlock SDK. Otherwise, operations fall back to simulated
11
+ * behavior with locally-generated signatures.
12
+ *
13
+ * Storage metadata is maintained in both modes so that monitor/accounts
14
+ * remain consistent regardless of connection state.
15
+ */
16
+ export declare function createErNamespace(storage: Storage, network: Network, resolveProjectRegion: (project: string) => Promise<Region>, getConnection?: () => BlockchainConnection | undefined): ErNamespace;
17
+ //# sourceMappingURL=er.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"er.d.ts","sourceRoot":"","sources":["../src/er.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAOV,OAAO,EACP,MAAM,EAGP,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAqC5D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC1D,aAAa,CAAC,EAAE,MAAM,oBAAoB,GAAG,SAAS,GACrD,WAAW,CA4Zb"}
package/dist/er.js ADDED
@@ -0,0 +1,314 @@
1
+ import { VALIDATORS, REGIONS, PROGRAM_IDS } from './config.js';
2
+ import { generateSignature } from './utils.js';
3
+ // ---------------------------------------------------------------------------
4
+ // Key helpers
5
+ // ---------------------------------------------------------------------------
6
+ const DELEGATION_PREFIX = 'delegation:';
7
+ const ACCOUNT_INDEX_PREFIX = 'account-index:';
8
+ function delegationKey(account) {
9
+ return `${DELEGATION_PREFIX}${account}`;
10
+ }
11
+ /** Account index: stores a JSON array of delegated account addresses per project. */
12
+ function accountIndexKey(project) {
13
+ return `${ACCOUNT_INDEX_PREFIX}${project}`;
14
+ }
15
+ // ---------------------------------------------------------------------------
16
+ // Factory
17
+ // ---------------------------------------------------------------------------
18
+ /**
19
+ * Create a fully-functional `ErNamespace` backed by the given Storage.
20
+ *
21
+ * When a `getConnection` callback is provided and returns a valid
22
+ * `BlockchainConnection`, real on-chain transactions are built and sent
23
+ * via the MagicBlock SDK. Otherwise, operations fall back to simulated
24
+ * behavior with locally-generated signatures.
25
+ *
26
+ * Storage metadata is maintained in both modes so that monitor/accounts
27
+ * remain consistent regardless of connection state.
28
+ */
29
+ export function createErNamespace(storage, network, resolveProjectRegion, getConnection) {
30
+ // Helper: read the account index for a project
31
+ async function getAccountIndex(project) {
32
+ const data = await storage.get(accountIndexKey(project));
33
+ return data ? JSON.parse(data) : [];
34
+ }
35
+ // Helper: write the account index for a project
36
+ async function setAccountIndex(project, accounts) {
37
+ await storage.set(accountIndexKey(project), JSON.stringify(accounts));
38
+ }
39
+ // Helper: read and validate a delegation record
40
+ async function getDelegationRecord(account, project) {
41
+ const data = await storage.get(delegationKey(account));
42
+ if (!data) {
43
+ throw new Error(`Account ${account} is not delegated`);
44
+ }
45
+ const record = JSON.parse(data);
46
+ if (project && record.project !== project) {
47
+ throw new Error(`Account ${account} is delegated to project "${record.project}", not "${project}"`);
48
+ }
49
+ return record;
50
+ }
51
+ // Helper: persist delegation metadata in storage
52
+ async function persistDelegation(account, project, validator, validatorPubkey, now) {
53
+ const record = {
54
+ account,
55
+ project,
56
+ validator,
57
+ validatorPubkey,
58
+ delegatedAt: now.toISOString(),
59
+ };
60
+ await storage.set(delegationKey(account), JSON.stringify(record));
61
+ const index = await getAccountIndex(project);
62
+ if (!index.includes(account)) {
63
+ index.push(account);
64
+ await setAccountIndex(project, index);
65
+ }
66
+ }
67
+ // Helper: remove delegation metadata from storage
68
+ async function removeDelegation(account, project) {
69
+ await storage.delete(delegationKey(account));
70
+ const index = await getAccountIndex(project);
71
+ const filtered = index.filter((a) => a !== account);
72
+ await setAccountIndex(project, filtered);
73
+ }
74
+ return {
75
+ async delegate(options) {
76
+ // Prevent double-delegation
77
+ const existing = await storage.get(delegationKey(options.account));
78
+ if (existing) {
79
+ throw new Error(`Account ${options.account} is already delegated`);
80
+ }
81
+ // Resolve project region to determine target validator
82
+ const region = await resolveProjectRegion(options.project);
83
+ const validatorPubkey = VALIDATORS[network][region];
84
+ const validator = REGIONS[region][network].http;
85
+ const conn = getConnection?.();
86
+ // When a signer is available, ownerProgram is required for real delegation
87
+ if (conn?.signer && !options.ownerProgram) {
88
+ throw new Error('ownerProgram is required for real blockchain delegation. ' +
89
+ 'Pass --owner-program <pubkey> or set ownerProgram in options.');
90
+ }
91
+ // Real blockchain path
92
+ if (conn?.signer && options.ownerProgram) {
93
+ try {
94
+ const { PublicKey, Transaction } = await import('@solana/web3.js');
95
+ const { createDelegateInstruction } = await import('@magicblock-labs/ephemeral-rollups-sdk');
96
+ const accountPk = new PublicKey(options.account);
97
+ const ownerProgramPk = new PublicKey(options.ownerProgram);
98
+ const validatorPk = new PublicKey(validatorPubkey);
99
+ const ix = createDelegateInstruction({
100
+ payer: conn.signer.publicKey,
101
+ delegatedAccount: accountPk,
102
+ ownerProgram: ownerProgramPk,
103
+ validator: validatorPk,
104
+ }, { commitFrequencyMs: 30_000, validator: validatorPk });
105
+ const tx = new Transaction().add(ix);
106
+ tx.feePayer = conn.signer.publicKey;
107
+ // Delegation is a base chain operation
108
+ tx.recentBlockhash = (await conn.baseConnection.getLatestBlockhash()).blockhash;
109
+ const signed = await conn.signer.signTransaction(tx);
110
+ const signature = await conn.baseConnection.sendRawTransaction(signed.serialize());
111
+ const now = new Date();
112
+ await persistDelegation(options.account, options.project, validator, validatorPubkey, now);
113
+ return { signature, validator, delegatedAt: now, simulated: false };
114
+ }
115
+ catch (err) {
116
+ // Fall through to simulated on network error
117
+ console.warn(`[mb-console] Real delegation failed, using simulated mode: ${err instanceof Error ? err.message : String(err)}`);
118
+ }
119
+ }
120
+ // Simulated fallback
121
+ const now = new Date();
122
+ await persistDelegation(options.account, options.project, validator, validatorPubkey, now);
123
+ return {
124
+ signature: generateSignature(),
125
+ validator,
126
+ delegatedAt: now,
127
+ simulated: true,
128
+ };
129
+ },
130
+ async undelegate(options) {
131
+ const record = await getDelegationRecord(options.account, options.project);
132
+ const conn = getConnection?.();
133
+ // Real blockchain: commit + undelegate
134
+ if (conn?.signer) {
135
+ try {
136
+ const { PublicKey, Transaction } = await import('@solana/web3.js');
137
+ const { createCommitAndUndelegateInstruction } = await import('@magicblock-labs/ephemeral-rollups-sdk');
138
+ const accountPk = new PublicKey(options.account);
139
+ // Determine which ER connection to use for the commit+undelegate
140
+ const region = await resolveProjectRegion(options.project);
141
+ const erConn = conn.erConnections[region] ?? conn.routerConnection;
142
+ const ix = createCommitAndUndelegateInstruction(conn.signer.publicKey, [accountPk]);
143
+ const tx = new Transaction().add(ix);
144
+ tx.feePayer = conn.signer.publicKey;
145
+ tx.recentBlockhash = (await erConn.getLatestBlockhash()).blockhash;
146
+ const signed = await conn.signer.signTransaction(tx);
147
+ const signature = await erConn.sendRawTransaction(signed.serialize());
148
+ await removeDelegation(options.account, options.project);
149
+ return {
150
+ signature,
151
+ validator: record.validator,
152
+ delegatedAt: new Date(record.delegatedAt),
153
+ simulated: false,
154
+ };
155
+ }
156
+ catch (err) {
157
+ console.warn(`[mb-console] Real undelegation failed, using simulated mode: ${err instanceof Error ? err.message : String(err)}`);
158
+ }
159
+ }
160
+ // Simulated fallback
161
+ await removeDelegation(options.account, options.project);
162
+ return {
163
+ signature: generateSignature(),
164
+ validator: record.validator,
165
+ delegatedAt: new Date(record.delegatedAt),
166
+ simulated: true,
167
+ };
168
+ },
169
+ async commit(options) {
170
+ // Validate the account is delegated to this project
171
+ await getDelegationRecord(options.account, options.project);
172
+ const conn = getConnection?.();
173
+ // Real blockchain: schedule commit on the ER
174
+ if (conn?.signer) {
175
+ try {
176
+ const { PublicKey, Transaction } = await import('@solana/web3.js');
177
+ const { createCommitInstruction } = await import('@magicblock-labs/ephemeral-rollups-sdk');
178
+ const accountPk = new PublicKey(options.account);
179
+ const region = await resolveProjectRegion(options.project);
180
+ const erConn = conn.erConnections[region] ?? conn.routerConnection;
181
+ const ix = createCommitInstruction(conn.signer.publicKey, [accountPk]);
182
+ const tx = new Transaction().add(ix);
183
+ tx.feePayer = conn.signer.publicKey;
184
+ tx.recentBlockhash = (await erConn.getLatestBlockhash()).blockhash;
185
+ const signed = await conn.signer.signTransaction(tx);
186
+ const signature = await erConn.sendRawTransaction(signed.serialize());
187
+ const slot = (await erConn.getSlot()) ?? Math.floor(Date.now() / 400);
188
+ return { signature, slot, simulated: false };
189
+ }
190
+ catch (err) {
191
+ console.warn(`[mb-console] Real commit failed, using simulated mode: ${err instanceof Error ? err.message : String(err)}`);
192
+ }
193
+ }
194
+ // Simulated fallback
195
+ return {
196
+ signature: generateSignature(),
197
+ slot: Math.floor(Date.now() / 400),
198
+ simulated: true,
199
+ };
200
+ },
201
+ async status(account) {
202
+ const conn = getConnection?.();
203
+ // Real blockchain: check if the account is owned by the Delegation Program
204
+ if (conn) {
205
+ try {
206
+ const { PublicKey } = await import('@solana/web3.js');
207
+ const accountPk = new PublicKey(account);
208
+ const accountInfo = await conn.baseConnection.getAccountInfo(accountPk);
209
+ if (accountInfo) {
210
+ const delegationProgramId = new PublicKey(PROGRAM_IDS.delegation);
211
+ if (accountInfo.owner.equals(delegationProgramId)) {
212
+ // Account is delegated — enrich with local storage data
213
+ const data = await storage.get(delegationKey(account));
214
+ if (data) {
215
+ const record = JSON.parse(data);
216
+ return {
217
+ isDelegated: true,
218
+ validator: record.validator,
219
+ validatorPubkey: record.validatorPubkey,
220
+ delegatedAt: new Date(record.delegatedAt),
221
+ };
222
+ }
223
+ return { isDelegated: true };
224
+ }
225
+ }
226
+ return { isDelegated: false };
227
+ }
228
+ catch (err) {
229
+ console.warn(`[mb-console] Real status check failed, using local storage: ${err instanceof Error ? err.message : String(err)}`);
230
+ }
231
+ }
232
+ // Simulated fallback: check local storage
233
+ const data = await storage.get(delegationKey(account));
234
+ if (!data) {
235
+ return { isDelegated: false };
236
+ }
237
+ const record = JSON.parse(data);
238
+ return {
239
+ isDelegated: true,
240
+ validator: record.validator,
241
+ validatorPubkey: record.validatorPubkey,
242
+ delegatedAt: new Date(record.delegatedAt),
243
+ };
244
+ },
245
+ async accounts(project) {
246
+ const index = await getAccountIndex(project);
247
+ const result = [];
248
+ for (const account of index) {
249
+ const data = await storage.get(delegationKey(account));
250
+ if (data) {
251
+ const record = JSON.parse(data);
252
+ result.push({
253
+ address: record.account,
254
+ validator: record.validator,
255
+ delegatedAt: new Date(record.delegatedAt),
256
+ });
257
+ }
258
+ }
259
+ return result;
260
+ },
261
+ async diff(account) {
262
+ const conn = getConnection?.();
263
+ // Real blockchain: compare base layer vs ER account data
264
+ if (conn) {
265
+ try {
266
+ const { PublicKey } = await import('@solana/web3.js');
267
+ // Check local storage for delegation record to know which ER to query
268
+ const data = await storage.get(delegationKey(account));
269
+ const accountPk = new PublicKey(account);
270
+ const baseInfo = await conn.baseConnection.getAccountInfo(accountPk);
271
+ const baseData = baseInfo?.data
272
+ ? Buffer.from(baseInfo.data).toString('base64')
273
+ : '<not found>';
274
+ let erData = '<not delegated>';
275
+ let erLamports;
276
+ if (data) {
277
+ const record = JSON.parse(data);
278
+ // Find the matching ER connection
279
+ const regionKey = Object.entries(REGIONS).find(([, config]) => config[network].http === record.validator)?.[0];
280
+ const erConn = regionKey
281
+ ? conn.erConnections[regionKey]
282
+ : conn.routerConnection;
283
+ const erInfo = await erConn.getAccountInfo(accountPk);
284
+ erData = erInfo?.data
285
+ ? Buffer.from(erInfo.data).toString('base64')
286
+ : '<not found on ER>';
287
+ erLamports = erInfo?.lamports;
288
+ }
289
+ return {
290
+ account,
291
+ baseLayerData: baseData,
292
+ erData,
293
+ isDifferent: baseData !== erData,
294
+ baseLayerLamports: baseInfo?.lamports,
295
+ erLamports,
296
+ owner: baseInfo?.owner?.toBase58(),
297
+ };
298
+ }
299
+ catch (err) {
300
+ console.warn(`[mb-console] Real diff failed, using simulated mode: ${err instanceof Error ? err.message : String(err)}`);
301
+ }
302
+ }
303
+ // Simulated fallback: validate delegation exists in local storage
304
+ await getDelegationRecord(account);
305
+ return {
306
+ account,
307
+ baseLayerData: '<base layer data>',
308
+ erData: '<ephemeral rollup data>',
309
+ isDifferent: true,
310
+ };
311
+ },
312
+ };
313
+ }
314
+ //# sourceMappingURL=er.js.map
package/dist/er.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"er.js","sourceRoot":"","sources":["../src/er.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const VERSION = "0.1.0";
2
+ export { createClient, ConsoleClient } from './client.js';
3
+ export type { ProjectsNamespace, ErNamespace, VrfNamespace, PrivacyNamespace, CranksNamespace, OracleNamespace, MonitorNamespace, NamespaceOverrides, } from './client.js';
4
+ export * from './types.js';
5
+ export * from './config.js';
6
+ export { MemoryStorage, FileStorage, BrowserStorage } from './storage.js';
7
+ export type { Storage } from './storage.js';
8
+ export type { BlockchainConnection, SolanaSignerAdapter, } from './connection.js';
9
+ export { createProjectsNamespace } from './projects.js';
10
+ export { createErNamespace } from './er.js';
11
+ export { createVrfNamespace, vrf } from './vrf.js';
12
+ export { createPrivacyNamespace } from './privacy.js';
13
+ export { createCranksNamespace } from './cranks.js';
14
+ export { createOracleNamespace } from './oracle.js';
15
+ export { createMonitorNamespace, appendLog } from './monitor.js';
16
+ export { generateSignature, generateBase58, isValidPubkey, assertPubkey } from './utils.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAK5C,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ export const VERSION = '0.1.0';
2
+ export { createClient, ConsoleClient } from './client.js';
3
+ export * from './types.js';
4
+ export * from './config.js';
5
+ export { MemoryStorage, FileStorage, BrowserStorage } from './storage.js';
6
+ export { createProjectsNamespace } from './projects.js';
7
+ export { createErNamespace } from './er.js';
8
+ export { createVrfNamespace, vrf } from './vrf.js';
9
+ export { createPrivacyNamespace } from './privacy.js';
10
+ export { createCranksNamespace } from './cranks.js';
11
+ export { createOracleNamespace } from './oracle.js';
12
+ export { createMonitorNamespace, appendLog } from './monitor.js';
13
+ export { generateSignature, generateBase58, isValidPubkey, assertPubkey } from './utils.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAY1D,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAW1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Storage } from './storage.js';
2
+ import type { LogEntry, Network } from './types.js';
3
+ import type { MonitorNamespace } from './client.js';
4
+ /**
5
+ * Append a log entry for a project.
6
+ *
7
+ * Keeps at most {@link MAX_LOG_ENTRIES} entries (oldest are pruned).
8
+ * This utility is exported so other namespaces can record events.
9
+ */
10
+ export declare function appendLog(storage: Storage, project: string, entry: Omit<LogEntry, 'timestamp'>): Promise<void>;
11
+ /**
12
+ * Create a fully-functional `MonitorNamespace` backed by the given Storage.
13
+ *
14
+ * The monitor aggregates data that other namespaces (projects, er) have
15
+ * persisted: project records, delegation indexes, and log entries.
16
+ *
17
+ * NOTE: Cost calculations and uptime are simulated for hackathon purposes.
18
+ * The structure is ready for real telemetry data to be plugged in.
19
+ */
20
+ export declare function createMonitorNamespace(storage: Storage, _network: Network): MonitorNamespace;
21
+ //# sourceMappingURL=monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAGV,QAAQ,EACR,OAAO,EAGR,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuEpD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAChB,gBAAgB,CAsHlB"}
@@ -0,0 +1,170 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Key helpers
3
+ // ---------------------------------------------------------------------------
4
+ const PROJECT_PREFIX = 'project:';
5
+ const ACCOUNT_INDEX_PREFIX = 'account-index:';
6
+ const DELEGATION_PREFIX = 'delegation:';
7
+ const LOGS_PREFIX = 'logs:';
8
+ const MAX_LOG_ENTRIES = 1000;
9
+ const DEFAULT_LOG_LIMIT = 50;
10
+ function projectKey(name) {
11
+ return `${PROJECT_PREFIX}${name}`;
12
+ }
13
+ function accountIndexKey(project) {
14
+ return `${ACCOUNT_INDEX_PREFIX}${project}`;
15
+ }
16
+ function delegationKey(account) {
17
+ return `${DELEGATION_PREFIX}${account}`;
18
+ }
19
+ function logsKey(project) {
20
+ return `${LOGS_PREFIX}${project}`;
21
+ }
22
+ // ---------------------------------------------------------------------------
23
+ // Serialization helpers
24
+ // ---------------------------------------------------------------------------
25
+ function deserializeProject(json) {
26
+ const raw = JSON.parse(json);
27
+ return { ...raw, createdAt: new Date(raw.createdAt) };
28
+ }
29
+ function deserializeLogEntry(raw) {
30
+ return {
31
+ timestamp: new Date(raw.timestamp),
32
+ type: raw.type,
33
+ message: raw.message,
34
+ ...(raw.data !== undefined ? { data: raw.data } : {}),
35
+ };
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // Log append utility
39
+ // ---------------------------------------------------------------------------
40
+ /**
41
+ * Append a log entry for a project.
42
+ *
43
+ * Keeps at most {@link MAX_LOG_ENTRIES} entries (oldest are pruned).
44
+ * This utility is exported so other namespaces can record events.
45
+ */
46
+ export async function appendLog(storage, project, entry) {
47
+ const key = logsKey(project);
48
+ const data = await storage.get(key);
49
+ const logs = data
50
+ ? JSON.parse(data)
51
+ : [];
52
+ logs.push({
53
+ timestamp: new Date().toISOString(),
54
+ type: entry.type,
55
+ message: entry.message,
56
+ ...(entry.data !== undefined ? { data: entry.data } : {}),
57
+ });
58
+ // Prune oldest entries when exceeding the cap
59
+ if (logs.length > MAX_LOG_ENTRIES) {
60
+ logs.splice(0, logs.length - MAX_LOG_ENTRIES);
61
+ }
62
+ await storage.set(key, JSON.stringify(logs));
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Factory
66
+ // ---------------------------------------------------------------------------
67
+ /**
68
+ * Create a fully-functional `MonitorNamespace` backed by the given Storage.
69
+ *
70
+ * The monitor aggregates data that other namespaces (projects, er) have
71
+ * persisted: project records, delegation indexes, and log entries.
72
+ *
73
+ * NOTE: Cost calculations and uptime are simulated for hackathon purposes.
74
+ * The structure is ready for real telemetry data to be plugged in.
75
+ */
76
+ export function createMonitorNamespace(storage, _network) {
77
+ // -----------------------------------------------------------------------
78
+ // Shared helpers
79
+ // -----------------------------------------------------------------------
80
+ /** Read and validate that a project exists, returning its data. */
81
+ async function getProject(name) {
82
+ const data = await storage.get(projectKey(name));
83
+ if (!data) {
84
+ throw new Error(`Project "${name}" not found`);
85
+ }
86
+ return deserializeProject(data);
87
+ }
88
+ /** Read the account index for a project (may be empty). */
89
+ async function getAccountIndex(project) {
90
+ const data = await storage.get(accountIndexKey(project));
91
+ return data ? JSON.parse(data) : [];
92
+ }
93
+ /** Resolve delegation records for all indexed accounts. */
94
+ async function getDelegatedAccounts(project) {
95
+ const index = await getAccountIndex(project);
96
+ const accounts = [];
97
+ for (const account of index) {
98
+ const data = await storage.get(delegationKey(account));
99
+ if (data) {
100
+ const record = JSON.parse(data);
101
+ accounts.push({
102
+ address: record.account,
103
+ validator: record.validator,
104
+ delegatedAt: new Date(record.delegatedAt),
105
+ });
106
+ }
107
+ }
108
+ return accounts;
109
+ }
110
+ /** Read all log entries for a project (already serialized). */
111
+ async function readLogs(project) {
112
+ const data = await storage.get(logsKey(project));
113
+ return data ? JSON.parse(data) : [];
114
+ }
115
+ // -----------------------------------------------------------------------
116
+ // Namespace methods
117
+ // -----------------------------------------------------------------------
118
+ return {
119
+ async status(project) {
120
+ const projectData = await getProject(project);
121
+ const accounts = await getDelegatedAccounts(project);
122
+ const logs = await readLogs(project);
123
+ // Count transaction-type log entries for the transaction counter
124
+ const transactionCount = logs.filter((l) => l.type === 'transaction' || l.type === 'delegation' || l.type === 'commit').length || logs.length;
125
+ return {
126
+ project: projectData.name,
127
+ region: projectData.region,
128
+ features: projectData.features,
129
+ accounts,
130
+ uptime: 99.9, // simulated
131
+ transactionCount,
132
+ };
133
+ },
134
+ async costs(project, period) {
135
+ // Validate project exists
136
+ await getProject(project);
137
+ const accounts = await getDelegatedAccounts(project);
138
+ const logs = await readLogs(project);
139
+ // Count logged events by type for cost calculation
140
+ const txCount = logs.filter((l) => l.type === 'transaction').length ||
141
+ accounts.length * 12;
142
+ const commitCount = logs.filter((l) => l.type === 'commit').length ||
143
+ accounts.length * 3;
144
+ const sessionCount = logs.filter((l) => l.type === 'session').length ||
145
+ Math.max(accounts.length, 1);
146
+ const txCost = txCount * 0.000005;
147
+ const commitCost = commitCount * 0.0001;
148
+ const sessionCost = sessionCount * 0.0003;
149
+ return {
150
+ transactions: { count: txCount, cost: txCost },
151
+ commits: { count: commitCount, cost: commitCost },
152
+ sessions: { count: sessionCount, cost: sessionCost },
153
+ total: txCost + commitCost + sessionCost,
154
+ period: period ?? '30d',
155
+ };
156
+ },
157
+ async logs(project, limit) {
158
+ // Validate project exists
159
+ await getProject(project);
160
+ const logs = await readLogs(project);
161
+ const effectiveLimit = limit ?? DEFAULT_LOG_LIMIT;
162
+ // Return last N entries, newest first
163
+ return logs
164
+ .slice(-effectiveLimit)
165
+ .reverse()
166
+ .map(deserializeLogEntry);
167
+ },
168
+ };
169
+ }
170
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"AAWA,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAC9C,MAAM,iBAAiB,GAAG,aAAa,CAAC;AACxC,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,GAAG,cAAc,GAAG,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,GAAG,oBAAoB,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,GAAG,iBAAiB,GAAG,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,GAAG,WAAW,GAAG,OAAO,EAAE,CAAC;AACpC,CAAC;AAsBD,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAuB;IAClD,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QAClC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAgB,EAChB,OAAe,EACf,KAAkC;IAElC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAyB,IAAI;QACrC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B;QAC5C,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,CAAC,IAAI,CAAC;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,QAAiB;IAEjB,0EAA0E;IAC1E,iBAAiB;IACjB,0EAA0E;IAE1E,mEAAmE;IACnE,KAAK,UAAU,UAAU,CAAC,IAAY;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,2DAA2D;IAC3D,KAAK,UAAU,eAAe,CAAC,OAAe;QAC5C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,2DAA2D;IAC3D,KAAK,UAAU,oBAAoB,CACjC,OAAe;QAEf,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QAExC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,KAAK,UAAU,QAAQ,CAAC,OAAe;QACrC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,0EAA0E;IAC1E,oBAAoB;IACpB,0EAA0E;IAE1E,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,OAAe;YAC1B,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErC,iEAAiE;YACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAClF,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;YAExB,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,IAAI;gBACzB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,QAAQ;gBACR,MAAM,EAAE,IAAI,EAAE,YAAY;gBAC1B,gBAAgB;aACjB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,MAAe;YAC1C,0BAA0B;YAC1B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAE1B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErC,mDAAmD;YACnD,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM;gBACnD,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;YACvB,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM;gBAC9C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,MAAM,YAAY,GAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM;gBAC/C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAE/B,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;YAClC,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;YACxC,MAAM,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;YAE1C,OAAO;gBACL,YAAY,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;gBACjD,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE;gBACpD,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW;gBACxC,MAAM,EAAE,MAAM,IAAI,KAAK;aACxB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,KAAc;YACxC,0BAA0B;YAC1B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAE1B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,cAAc,GAAG,KAAK,IAAI,iBAAiB,CAAC;YAElD,sCAAsC;YACtC,OAAO,IAAI;iBACR,KAAK,CAAC,CAAC,cAAc,CAAC;iBACtB,OAAO,EAAE;iBACT,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Storage } from './storage.js';
2
+ import type { Network } from './types.js';
3
+ import type { OracleNamespace } from './client.js';
4
+ import type { BlockchainConnection } from './connection.js';
5
+ /**
6
+ * Create a fully-functional `OracleNamespace` backed by the given Storage.
7
+ *
8
+ * When a `getConnection` callback returns a valid `BlockchainConnection`,
9
+ * attempts to read real Pyth Lazer price data from on-chain PDAs.
10
+ * Falls back to simulated prices on any error or missing connection.
11
+ */
12
+ export declare function createOracleNamespace(storage: Storage, _network: Network, getConnection?: () => BlockchainConnection | undefined): OracleNamespace;
13
+ //# sourceMappingURL=oracle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,OAAO,EAIR,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAyI5D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,MAAM,oBAAoB,GAAG,SAAS,GACrD,eAAe,CA2GjB"}