@claw-network/protocol 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 (169) hide show
  1. package/dist/contracts/events.d.ts +238 -0
  2. package/dist/contracts/events.d.ts.map +1 -0
  3. package/dist/contracts/events.js +499 -0
  4. package/dist/contracts/events.js.map +1 -0
  5. package/dist/contracts/index.d.ts +5 -0
  6. package/dist/contracts/index.d.ts.map +1 -0
  7. package/dist/contracts/index.js +5 -0
  8. package/dist/contracts/index.js.map +1 -0
  9. package/dist/contracts/state.d.ts +16 -0
  10. package/dist/contracts/state.d.ts.map +1 -0
  11. package/dist/contracts/state.js +399 -0
  12. package/dist/contracts/state.js.map +1 -0
  13. package/dist/contracts/store.d.ts +19 -0
  14. package/dist/contracts/store.d.ts.map +1 -0
  15. package/dist/contracts/store.js +22 -0
  16. package/dist/contracts/store.js.map +1 -0
  17. package/dist/contracts/types.d.ts +81 -0
  18. package/dist/contracts/types.d.ts.map +1 -0
  19. package/dist/contracts/types.js +2 -0
  20. package/dist/contracts/types.js.map +1 -0
  21. package/dist/dao/events.d.ts +191 -0
  22. package/dist/dao/events.d.ts.map +1 -0
  23. package/dist/dao/events.js +294 -0
  24. package/dist/dao/events.js.map +1 -0
  25. package/dist/dao/index.d.ts +6 -0
  26. package/dist/dao/index.d.ts.map +1 -0
  27. package/dist/dao/index.js +6 -0
  28. package/dist/dao/index.js.map +1 -0
  29. package/dist/dao/state.d.ts +44 -0
  30. package/dist/dao/state.d.ts.map +1 -0
  31. package/dist/dao/state.js +373 -0
  32. package/dist/dao/state.js.map +1 -0
  33. package/dist/dao/store.d.ts +47 -0
  34. package/dist/dao/store.d.ts.map +1 -0
  35. package/dist/dao/store.js +52 -0
  36. package/dist/dao/store.js.map +1 -0
  37. package/dist/dao/types.d.ts +149 -0
  38. package/dist/dao/types.d.ts.map +1 -0
  39. package/dist/dao/types.js +95 -0
  40. package/dist/dao/types.js.map +1 -0
  41. package/dist/dao/voting.d.ts +56 -0
  42. package/dist/dao/voting.d.ts.map +1 -0
  43. package/dist/dao/voting.js +129 -0
  44. package/dist/dao/voting.js.map +1 -0
  45. package/dist/identity/document.d.ts +35 -0
  46. package/dist/identity/document.d.ts.map +1 -0
  47. package/dist/identity/document.js +84 -0
  48. package/dist/identity/document.js.map +1 -0
  49. package/dist/identity/events.d.ts +96 -0
  50. package/dist/identity/events.d.ts.map +1 -0
  51. package/dist/identity/events.js +165 -0
  52. package/dist/identity/events.js.map +1 -0
  53. package/dist/identity/index.d.ts +4 -0
  54. package/dist/identity/index.d.ts.map +1 -0
  55. package/dist/identity/index.js +4 -0
  56. package/dist/identity/index.js.map +1 -0
  57. package/dist/identity/resolver.d.ts +10 -0
  58. package/dist/identity/resolver.d.ts.map +1 -0
  59. package/dist/identity/resolver.js +10 -0
  60. package/dist/identity/resolver.js.map +1 -0
  61. package/dist/index.d.ts +8 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +8 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/markets/broadcast.d.ts +5 -0
  66. package/dist/markets/broadcast.d.ts.map +1 -0
  67. package/dist/markets/broadcast.js +9 -0
  68. package/dist/markets/broadcast.js.map +1 -0
  69. package/dist/markets/capability.d.ts +129 -0
  70. package/dist/markets/capability.d.ts.map +1 -0
  71. package/dist/markets/capability.js +262 -0
  72. package/dist/markets/capability.js.map +1 -0
  73. package/dist/markets/events.d.ts +448 -0
  74. package/dist/markets/events.d.ts.map +1 -0
  75. package/dist/markets/events.js +1074 -0
  76. package/dist/markets/events.js.map +1 -0
  77. package/dist/markets/index.d.ts +12 -0
  78. package/dist/markets/index.d.ts.map +1 -0
  79. package/dist/markets/index.js +12 -0
  80. package/dist/markets/index.js.map +1 -0
  81. package/dist/markets/info-flow.d.ts +144 -0
  82. package/dist/markets/info-flow.d.ts.map +1 -0
  83. package/dist/markets/info-flow.js +257 -0
  84. package/dist/markets/info-flow.js.map +1 -0
  85. package/dist/markets/info-store.d.ts +80 -0
  86. package/dist/markets/info-store.d.ts.map +1 -0
  87. package/dist/markets/info-store.js +384 -0
  88. package/dist/markets/info-store.js.map +1 -0
  89. package/dist/markets/info.d.ts +118 -0
  90. package/dist/markets/info.d.ts.map +1 -0
  91. package/dist/markets/info.js +123 -0
  92. package/dist/markets/info.js.map +1 -0
  93. package/dist/markets/search.d.ts +70 -0
  94. package/dist/markets/search.d.ts.map +1 -0
  95. package/dist/markets/search.js +659 -0
  96. package/dist/markets/search.js.map +1 -0
  97. package/dist/markets/state.d.ts +30 -0
  98. package/dist/markets/state.d.ts.map +1 -0
  99. package/dist/markets/state.js +610 -0
  100. package/dist/markets/state.js.map +1 -0
  101. package/dist/markets/store.d.ts +43 -0
  102. package/dist/markets/store.d.ts.map +1 -0
  103. package/dist/markets/store.js +460 -0
  104. package/dist/markets/store.js.map +1 -0
  105. package/dist/markets/task.d.ts +96 -0
  106. package/dist/markets/task.d.ts.map +1 -0
  107. package/dist/markets/task.js +286 -0
  108. package/dist/markets/task.js.map +1 -0
  109. package/dist/markets/types.d.ts +340 -0
  110. package/dist/markets/types.d.ts.map +1 -0
  111. package/dist/markets/types.js +88 -0
  112. package/dist/markets/types.js.map +1 -0
  113. package/dist/p2p/codec.d.ts +42 -0
  114. package/dist/p2p/codec.d.ts.map +1 -0
  115. package/dist/p2p/codec.js +187 -0
  116. package/dist/p2p/codec.js.map +1 -0
  117. package/dist/p2p/flatbuffers.d.ts +57 -0
  118. package/dist/p2p/flatbuffers.d.ts.map +1 -0
  119. package/dist/p2p/flatbuffers.js +418 -0
  120. package/dist/p2p/flatbuffers.js.map +1 -0
  121. package/dist/p2p/index.d.ts +3 -0
  122. package/dist/p2p/index.d.ts.map +1 -0
  123. package/dist/p2p/index.js +3 -0
  124. package/dist/p2p/index.js.map +1 -0
  125. package/dist/p2p/types.d.ts +79 -0
  126. package/dist/p2p/types.d.ts.map +1 -0
  127. package/dist/p2p/types.js +15 -0
  128. package/dist/p2p/types.js.map +1 -0
  129. package/dist/reputation/anti-cheat.d.ts +24 -0
  130. package/dist/reputation/anti-cheat.d.ts.map +1 -0
  131. package/dist/reputation/anti-cheat.js +109 -0
  132. package/dist/reputation/anti-cheat.js.map +1 -0
  133. package/dist/reputation/events.d.ts +29 -0
  134. package/dist/reputation/events.d.ts.map +1 -0
  135. package/dist/reputation/events.js +122 -0
  136. package/dist/reputation/events.js.map +1 -0
  137. package/dist/reputation/index.d.ts +6 -0
  138. package/dist/reputation/index.d.ts.map +1 -0
  139. package/dist/reputation/index.js +6 -0
  140. package/dist/reputation/index.js.map +1 -0
  141. package/dist/reputation/scoring.d.ts +40 -0
  142. package/dist/reputation/scoring.d.ts.map +1 -0
  143. package/dist/reputation/scoring.js +114 -0
  144. package/dist/reputation/scoring.js.map +1 -0
  145. package/dist/reputation/state.d.ts +48 -0
  146. package/dist/reputation/state.d.ts.map +1 -0
  147. package/dist/reputation/state.js +135 -0
  148. package/dist/reputation/state.js.map +1 -0
  149. package/dist/reputation/store.d.ts +23 -0
  150. package/dist/reputation/store.d.ts.map +1 -0
  151. package/dist/reputation/store.js +33 -0
  152. package/dist/reputation/store.js.map +1 -0
  153. package/dist/wallet/events.d.ts +121 -0
  154. package/dist/wallet/events.d.ts.map +1 -0
  155. package/dist/wallet/events.js +175 -0
  156. package/dist/wallet/events.js.map +1 -0
  157. package/dist/wallet/finality.d.ts +4 -0
  158. package/dist/wallet/finality.d.ts.map +1 -0
  159. package/dist/wallet/finality.js +32 -0
  160. package/dist/wallet/finality.js.map +1 -0
  161. package/dist/wallet/index.d.ts +4 -0
  162. package/dist/wallet/index.d.ts.map +1 -0
  163. package/dist/wallet/index.js +4 -0
  164. package/dist/wallet/index.js.map +1 -0
  165. package/dist/wallet/state.d.ts +32 -0
  166. package/dist/wallet/state.d.ts.map +1 -0
  167. package/dist/wallet/state.js +170 -0
  168. package/dist/wallet/state.js.map +1 -0
  169. package/package.json +42 -0
@@ -0,0 +1,384 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { blake3Hex, bytesToHex, bytesToUtf8, decryptAes256Gcm, hexToBytes, hkdfSha256, utf8ToBytes, x25519SharedSecret, generateX25519Keypair, encryptAes256Gcm, } from '@claw-network/core';
3
+ import { parseMarketListingPublishPayload, parseMarketOrderUpdatePayload, } from './events.js';
4
+ import { parseInfoMarketData } from './info.js';
5
+ const PREFIX_CONTENT = 'ix:info:content:';
6
+ const PREFIX_LISTING = 'ix:info:listing:';
7
+ const PREFIX_DELIVERY = 'ix:info:delivery:';
8
+ const PREFIX_ORDER = 'ix:info:order:';
9
+ const PREFIX_META = 'ix:info:meta:';
10
+ const KEY_LAST_EVENT = `${PREFIX_META}last_event`;
11
+ const KEY_VERSION = `${PREFIX_META}version`;
12
+ const STORE_VERSION = 1;
13
+ const INFO_KEY_INFO = utf8ToBytes('clawnet:info:content-key');
14
+ function encodeJson(value) {
15
+ return utf8ToBytes(JSON.stringify(value));
16
+ }
17
+ function decodeJson(value, fallback) {
18
+ if (!value) {
19
+ return fallback;
20
+ }
21
+ return JSON.parse(bytesToUtf8(value));
22
+ }
23
+ export function generateInfoContentKey() {
24
+ return randomBytes(32);
25
+ }
26
+ export function encryptInfoContent(plaintext, key, createdAt = Date.now()) {
27
+ const encrypted = encryptAes256Gcm(key, plaintext);
28
+ const hash = blake3Hex(plaintext).toLowerCase();
29
+ return {
30
+ hash,
31
+ size: plaintext.length,
32
+ nonceHex: encrypted.nonceHex,
33
+ ciphertextHex: encrypted.ciphertextHex,
34
+ tagHex: encrypted.tagHex,
35
+ createdAt,
36
+ };
37
+ }
38
+ export function decryptInfoContent(encrypted, key) {
39
+ return decryptAes256Gcm(key, {
40
+ nonceHex: encrypted.nonceHex,
41
+ ciphertextHex: encrypted.ciphertextHex,
42
+ tagHex: encrypted.tagHex,
43
+ });
44
+ }
45
+ export function sealInfoContentKey(contentKey, recipientPublicKey) {
46
+ const sender = generateX25519Keypair();
47
+ const shared = x25519SharedSecret(sender.privateKey, recipientPublicKey);
48
+ const derived = hkdfSha256(shared, undefined, INFO_KEY_INFO, 32);
49
+ const encrypted = encryptAes256Gcm(derived, contentKey);
50
+ return {
51
+ algorithm: 'x25519-aes-256-gcm',
52
+ senderPublicKeyHex: bytesToHex(sender.publicKey),
53
+ nonceHex: encrypted.nonceHex,
54
+ ciphertextHex: encrypted.ciphertextHex,
55
+ tagHex: encrypted.tagHex,
56
+ };
57
+ }
58
+ export function openInfoContentKey(envelope, recipientPrivateKey) {
59
+ if (envelope.algorithm !== 'x25519-aes-256-gcm') {
60
+ throw new Error('unsupported key envelope');
61
+ }
62
+ const senderPublicKey = hexToBytes(envelope.senderPublicKeyHex);
63
+ const shared = x25519SharedSecret(recipientPrivateKey, senderPublicKey);
64
+ const derived = hkdfSha256(shared, undefined, INFO_KEY_INFO, 32);
65
+ return decryptAes256Gcm(derived, {
66
+ nonceHex: envelope.nonceHex,
67
+ ciphertextHex: envelope.ciphertextHex,
68
+ tagHex: envelope.tagHex,
69
+ });
70
+ }
71
+ export class InfoContentStore {
72
+ store;
73
+ content = new Map();
74
+ listingLinks = new Map();
75
+ deliveryRecords = new Map();
76
+ orderLinks = new Map();
77
+ lastEvent = null;
78
+ loaded = false;
79
+ constructor(store) {
80
+ this.store = store;
81
+ }
82
+ async loadFromStore() {
83
+ if (this.loaded) {
84
+ return;
85
+ }
86
+ this.loaded = true;
87
+ const version = decodeJson(await this.store.get(KEY_VERSION), null);
88
+ if (version !== null && version !== STORE_VERSION) {
89
+ await this.clearStore();
90
+ this.content.clear();
91
+ this.listingLinks.clear();
92
+ this.deliveryRecords.clear();
93
+ this.orderLinks.clear();
94
+ this.lastEvent = null;
95
+ }
96
+ const lastEvent = await this.store.get(KEY_LAST_EVENT);
97
+ this.lastEvent = lastEvent ? bytesToUtf8(lastEvent) : null;
98
+ for await (const { value } of this.store.iterator(PREFIX_CONTENT)) {
99
+ const record = decodeJson(value, null);
100
+ if (!record || !record.hash) {
101
+ continue;
102
+ }
103
+ this.content.set(record.hash, record);
104
+ }
105
+ for await (const { value } of this.store.iterator(PREFIX_LISTING)) {
106
+ const record = decodeJson(value, null);
107
+ if (!record || !record.listingId || !record.contentHash) {
108
+ continue;
109
+ }
110
+ this.listingLinks.set(record.listingId, record);
111
+ }
112
+ for await (const { value } of this.store.iterator(PREFIX_DELIVERY)) {
113
+ const record = decodeJson(value, null);
114
+ if (!record || !record.deliveryId) {
115
+ continue;
116
+ }
117
+ this.deliveryRecords.set(record.deliveryId, record);
118
+ }
119
+ for await (const { value } of this.store.iterator(PREFIX_ORDER)) {
120
+ const record = decodeJson(value, null);
121
+ if (!record || !record.orderId || !record.deliveryId) {
122
+ continue;
123
+ }
124
+ this.orderLinks.set(record.orderId, record);
125
+ }
126
+ await this.store.put(KEY_VERSION, encodeJson(STORE_VERSION));
127
+ }
128
+ async rebuildFromEventLog(eventStore) {
129
+ await this.clearStore();
130
+ this.content.clear();
131
+ this.listingLinks.clear();
132
+ this.deliveryRecords.clear();
133
+ this.orderLinks.clear();
134
+ this.lastEvent = null;
135
+ this.loaded = true;
136
+ await this.store.put(KEY_VERSION, encodeJson(STORE_VERSION));
137
+ return this.syncFromEventLog(eventStore, { from: null });
138
+ }
139
+ async syncFromEventLog(eventStore, options = {}) {
140
+ if (!this.loaded) {
141
+ await this.loadFromStore();
142
+ }
143
+ let cursor = options.from ?? this.lastEvent ?? null;
144
+ const batchSize = options.batchSize ?? 200;
145
+ let applied = 0;
146
+ let lastSeen = cursor;
147
+ while (true) {
148
+ const { events, cursor: next } = await eventStore.getEventLogRange(cursor, batchSize);
149
+ if (!events.length) {
150
+ break;
151
+ }
152
+ for (const bytes of events) {
153
+ const envelope = this.parseEvent(bytes);
154
+ if (!envelope) {
155
+ continue;
156
+ }
157
+ const hash = typeof envelope.hash === 'string' && envelope.hash.length ? envelope.hash : null;
158
+ if (hash) {
159
+ lastSeen = hash;
160
+ }
161
+ try {
162
+ const didApply = await this.applyEvent(envelope, {
163
+ persist: true,
164
+ updateCursor: false,
165
+ });
166
+ if (didApply) {
167
+ applied += 1;
168
+ }
169
+ }
170
+ catch {
171
+ continue;
172
+ }
173
+ }
174
+ if (!next) {
175
+ break;
176
+ }
177
+ cursor = next;
178
+ lastSeen = next;
179
+ }
180
+ if (lastSeen !== this.lastEvent) {
181
+ this.lastEvent = lastSeen;
182
+ await this.persistLastEvent();
183
+ }
184
+ return applied;
185
+ }
186
+ async applyEvent(envelope, options = {}) {
187
+ const type = typeof envelope.type === 'string' ? envelope.type : '';
188
+ if (!type.startsWith('market.')) {
189
+ return false;
190
+ }
191
+ const hash = typeof envelope.hash === 'string' && envelope.hash.length ? envelope.hash : null;
192
+ if (!hash) {
193
+ throw new Error('market event missing hash');
194
+ }
195
+ const ts = typeof envelope.ts === 'number' ? envelope.ts : Date.now();
196
+ const persist = options.persist !== false;
197
+ let applied = false;
198
+ switch (type) {
199
+ case 'market.listing.publish': {
200
+ const payload = parseMarketListingPublishPayload((envelope.payload ?? {}));
201
+ applied = await this.applyListingPublish(payload, ts, persist);
202
+ break;
203
+ }
204
+ case 'market.listing.remove': {
205
+ const payload = this.parseListingRemovePayload(envelope.payload);
206
+ applied = await this.applyListingRemove(payload, persist);
207
+ break;
208
+ }
209
+ case 'market.order.update': {
210
+ const payload = parseMarketOrderUpdatePayload((envelope.payload ?? {}));
211
+ applied = await this.applyOrderUpdate(payload, ts, persist);
212
+ break;
213
+ }
214
+ default: {
215
+ return false;
216
+ }
217
+ }
218
+ if (options.updateCursor !== false) {
219
+ this.lastEvent = hash;
220
+ if (persist) {
221
+ await this.persistLastEvent();
222
+ }
223
+ }
224
+ return applied;
225
+ }
226
+ async storeEncryptedContent(listingId, plaintext, key, createdAt = Date.now()) {
227
+ if (!this.loaded) {
228
+ await this.loadFromStore();
229
+ }
230
+ const encrypted = encryptInfoContent(plaintext, key, createdAt);
231
+ const record = {
232
+ ...encrypted,
233
+ listingId,
234
+ };
235
+ this.content.set(record.hash, record);
236
+ await this.store.put(`${PREFIX_CONTENT}${record.hash}`, encodeJson(record));
237
+ await this.linkListingContent(listingId, record.hash, createdAt, true);
238
+ return record;
239
+ }
240
+ async linkListingContent(listingId, contentHash, updatedAt = Date.now(), persist = true) {
241
+ if (!this.loaded) {
242
+ await this.loadFromStore();
243
+ }
244
+ const record = { listingId, contentHash, updatedAt };
245
+ this.listingLinks.set(listingId, record);
246
+ if (persist) {
247
+ await this.store.put(`${PREFIX_LISTING}${listingId}`, encodeJson(record));
248
+ }
249
+ }
250
+ async removeListingContent(listingId, persist = true) {
251
+ if (!this.loaded) {
252
+ await this.loadFromStore();
253
+ }
254
+ this.listingLinks.delete(listingId);
255
+ if (persist) {
256
+ await this.store.del(`${PREFIX_LISTING}${listingId}`);
257
+ }
258
+ }
259
+ async getListingContentHash(listingId) {
260
+ if (!this.loaded) {
261
+ await this.loadFromStore();
262
+ }
263
+ return this.listingLinks.get(listingId)?.contentHash ?? null;
264
+ }
265
+ async getEncryptedContent(hash) {
266
+ if (!this.loaded) {
267
+ await this.loadFromStore();
268
+ }
269
+ return this.content.get(hash) ?? null;
270
+ }
271
+ async getEncryptedContentForListing(listingId) {
272
+ const hash = await this.getListingContentHash(listingId);
273
+ if (!hash) {
274
+ return null;
275
+ }
276
+ return this.getEncryptedContent(hash);
277
+ }
278
+ async storeDeliveryRecord(record) {
279
+ if (!this.loaded) {
280
+ await this.loadFromStore();
281
+ }
282
+ this.deliveryRecords.set(record.deliveryId, record);
283
+ await this.store.put(`${PREFIX_DELIVERY}${record.deliveryId}`, encodeJson(record));
284
+ await this.linkOrderDelivery(record.orderId, record.deliveryId, record.createdAt, true);
285
+ }
286
+ async getDeliveryRecord(deliveryId) {
287
+ if (!this.loaded) {
288
+ await this.loadFromStore();
289
+ }
290
+ return this.deliveryRecords.get(deliveryId) ?? null;
291
+ }
292
+ async getDeliveryForOrder(orderId) {
293
+ if (!this.loaded) {
294
+ await this.loadFromStore();
295
+ }
296
+ const link = this.orderLinks.get(orderId);
297
+ if (!link) {
298
+ return null;
299
+ }
300
+ return this.deliveryRecords.get(link.deliveryId) ?? null;
301
+ }
302
+ async linkOrderDelivery(orderId, deliveryId, updatedAt, persist) {
303
+ const record = { orderId, deliveryId, updatedAt };
304
+ this.orderLinks.set(orderId, record);
305
+ if (persist) {
306
+ await this.store.put(`${PREFIX_ORDER}${orderId}`, encodeJson(record));
307
+ }
308
+ }
309
+ async applyListingPublish(payload, ts, persist) {
310
+ if (payload.marketType !== 'info') {
311
+ return false;
312
+ }
313
+ const infoData = parseInfoMarketData(payload.marketData);
314
+ const contentHash = infoData.content?.hash;
315
+ if (!contentHash) {
316
+ return false;
317
+ }
318
+ await this.linkListingContent(payload.listingId, contentHash, ts, persist);
319
+ return true;
320
+ }
321
+ async applyListingRemove(payload, persist) {
322
+ if (!this.listingLinks.has(payload.listingId)) {
323
+ return false;
324
+ }
325
+ await this.removeListingContent(payload.listingId, persist);
326
+ return true;
327
+ }
328
+ async applyOrderUpdate(payload, ts, persist) {
329
+ const tracking = payload.delivery?.tracking;
330
+ const deliveryId = tracking && typeof tracking.deliveryId === 'string' ? tracking.deliveryId : null;
331
+ if (!deliveryId) {
332
+ return false;
333
+ }
334
+ await this.linkOrderDelivery(payload.orderId, deliveryId, ts, persist);
335
+ return true;
336
+ }
337
+ parseListingRemovePayload(payload) {
338
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
339
+ throw new Error('listing remove payload must be an object');
340
+ }
341
+ const record = payload;
342
+ const listingId = String(record.listingId ?? '');
343
+ const resourcePrev = String(record.resourcePrev ?? '');
344
+ if (!listingId.trim()) {
345
+ throw new Error('listingId is required');
346
+ }
347
+ if (!resourcePrev.trim()) {
348
+ throw new Error('resourcePrev is required');
349
+ }
350
+ return { listingId, resourcePrev };
351
+ }
352
+ async persistLastEvent() {
353
+ if (!this.lastEvent) {
354
+ await this.store.del(KEY_LAST_EVENT);
355
+ return;
356
+ }
357
+ await this.store.put(KEY_LAST_EVENT, utf8ToBytes(this.lastEvent));
358
+ }
359
+ async clearStore() {
360
+ for await (const { key } of this.store.iterator(PREFIX_CONTENT)) {
361
+ await this.store.del(key);
362
+ }
363
+ for await (const { key } of this.store.iterator(PREFIX_LISTING)) {
364
+ await this.store.del(key);
365
+ }
366
+ for await (const { key } of this.store.iterator(PREFIX_DELIVERY)) {
367
+ await this.store.del(key);
368
+ }
369
+ for await (const { key } of this.store.iterator(PREFIX_ORDER)) {
370
+ await this.store.del(key);
371
+ }
372
+ await this.store.del(KEY_LAST_EVENT);
373
+ await this.store.del(KEY_VERSION);
374
+ }
375
+ parseEvent(bytes) {
376
+ try {
377
+ return JSON.parse(bytesToUtf8(bytes));
378
+ }
379
+ catch {
380
+ return null;
381
+ }
382
+ }
383
+ }
384
+ //# sourceMappingURL=info-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-store.js","sourceRoot":"","sources":["../../src/markets/info-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { EventEnvelope } from '@claw-network/core/protocol';
2
+ import { MarketListingPublishEventParams } from './events.js';
3
+ import { MarketListing } from './types.js';
4
+ export declare const INFO_TYPES: readonly ["knowledge", "experience", "model", "template", "dataset", "api", "stream", "snapshot", "intelligence", "signal", "prediction", "alert", "analysis", "research", "insight", "consultation"];
5
+ export type InfoType = (typeof INFO_TYPES)[number];
6
+ export declare function isInfoType(value: string): value is InfoType;
7
+ export declare const CONTENT_FORMATS: readonly ["text", "json", "csv", "parquet", "binary", "image", "video", "audio", "mixed"];
8
+ export type ContentFormat = (typeof CONTENT_FORMATS)[number];
9
+ export declare function isContentFormat(value: string): value is ContentFormat;
10
+ export declare const ACCESS_METHOD_TYPES: readonly ["download", "api", "stream", "query"];
11
+ export type AccessMethodType = (typeof ACCESS_METHOD_TYPES)[number];
12
+ export declare function isAccessMethodType(value: string): value is AccessMethodType;
13
+ export interface InfoPreview {
14
+ type: 'summary' | 'sample' | 'schema' | 'stats';
15
+ content: string;
16
+ truncated: boolean;
17
+ }
18
+ export interface InfoSample {
19
+ description: string;
20
+ data: string;
21
+ percentage?: number;
22
+ }
23
+ export interface ContentSchema {
24
+ name?: string;
25
+ format?: string;
26
+ version?: string;
27
+ }
28
+ export interface AccessMethod {
29
+ type: AccessMethodType;
30
+ download?: {
31
+ formats: string[];
32
+ maxDownloads?: number;
33
+ expiresIn?: number;
34
+ };
35
+ api?: {
36
+ endpoint: string;
37
+ authentication: 'token' | 'signature';
38
+ rateLimit?: {
39
+ requests: number;
40
+ period: number;
41
+ };
42
+ documentation?: string;
43
+ };
44
+ stream?: {
45
+ protocol: 'websocket' | 'sse' | 'grpc';
46
+ endpoint: string;
47
+ frequency?: number;
48
+ };
49
+ query?: {
50
+ language: 'sql' | 'graphql' | 'natural';
51
+ endpoint: string;
52
+ schema?: string;
53
+ };
54
+ }
55
+ export type LicenseType = 'exclusive' | 'non_exclusive' | 'limited' | 'perpetual' | 'subscription' | 'custom';
56
+ export interface InfoLicense {
57
+ type: LicenseType;
58
+ permissions: {
59
+ use: boolean;
60
+ modify: boolean;
61
+ distribute: boolean;
62
+ commercialize: boolean;
63
+ sublicense: boolean;
64
+ };
65
+ restrictions: {
66
+ attribution: boolean;
67
+ shareAlike: boolean;
68
+ nonCompete: boolean;
69
+ confidential: boolean;
70
+ termLimit?: number;
71
+ };
72
+ customTerms?: string;
73
+ }
74
+ export interface InfoQuality {
75
+ accuracy?: number;
76
+ freshness?: number;
77
+ completeness?: number;
78
+ source?: string;
79
+ verifiedBy?: string[];
80
+ lastUpdated?: number;
81
+ }
82
+ export interface UsageRestrictions {
83
+ maxUses?: number;
84
+ validityPeriod?: number;
85
+ maxConcurrent?: number;
86
+ derivativeWorks: boolean;
87
+ resale: boolean;
88
+ allowedPurposes?: string[];
89
+ prohibitedPurposes?: string[];
90
+ }
91
+ export interface InfoContent {
92
+ [key: string]: unknown;
93
+ format: ContentFormat;
94
+ size?: number;
95
+ hash?: string;
96
+ preview?: InfoPreview;
97
+ sample?: InfoSample;
98
+ schema?: ContentSchema;
99
+ }
100
+ export interface InfoMarketData {
101
+ [key: string]: unknown;
102
+ infoType: InfoType;
103
+ content: InfoContent;
104
+ quality?: InfoQuality;
105
+ accessMethod: AccessMethod;
106
+ license: InfoLicense;
107
+ usageRestrictions?: UsageRestrictions;
108
+ }
109
+ export interface InfoListing extends MarketListing {
110
+ marketType: 'info';
111
+ marketData: InfoMarketData;
112
+ }
113
+ export type InfoListingPublishEventParams = Omit<MarketListingPublishEventParams, 'marketType' | 'marketData'> & {
114
+ marketData: InfoMarketData;
115
+ };
116
+ export declare function parseInfoMarketData(value: unknown): InfoMarketData;
117
+ export declare function createInfoListingPublishEnvelope(params: InfoListingPublishEventParams): Promise<EventEnvelope>;
118
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/markets/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { createMarketListingPublishEnvelope, } from './events.js';
2
+ export const INFO_TYPES = [
3
+ 'knowledge',
4
+ 'experience',
5
+ 'model',
6
+ 'template',
7
+ 'dataset',
8
+ 'api',
9
+ 'stream',
10
+ 'snapshot',
11
+ 'intelligence',
12
+ 'signal',
13
+ 'prediction',
14
+ 'alert',
15
+ 'analysis',
16
+ 'research',
17
+ 'insight',
18
+ 'consultation',
19
+ ];
20
+ export function isInfoType(value) {
21
+ return INFO_TYPES.includes(value);
22
+ }
23
+ export const CONTENT_FORMATS = [
24
+ 'text',
25
+ 'json',
26
+ 'csv',
27
+ 'parquet',
28
+ 'binary',
29
+ 'image',
30
+ 'video',
31
+ 'audio',
32
+ 'mixed',
33
+ ];
34
+ export function isContentFormat(value) {
35
+ return CONTENT_FORMATS.includes(value);
36
+ }
37
+ export const ACCESS_METHOD_TYPES = ['download', 'api', 'stream', 'query'];
38
+ export function isAccessMethodType(value) {
39
+ return ACCESS_METHOD_TYPES.includes(value);
40
+ }
41
+ export function parseInfoMarketData(value) {
42
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
43
+ throw new Error('marketData must be an object');
44
+ }
45
+ const record = value;
46
+ const infoTypeValue = String(record.infoType ?? '');
47
+ if (!isInfoType(infoTypeValue)) {
48
+ throw new Error('infoType is invalid');
49
+ }
50
+ const content = record.content;
51
+ if (!content || typeof content !== 'object' || Array.isArray(content)) {
52
+ throw new Error('content is required');
53
+ }
54
+ const contentRecord = content;
55
+ const formatValue = String(contentRecord.format ?? '');
56
+ if (!isContentFormat(formatValue)) {
57
+ throw new Error('content.format is invalid');
58
+ }
59
+ if (contentRecord.hash !== undefined) {
60
+ const hashValue = String(contentRecord.hash ?? '');
61
+ if (!/^[0-9a-f]{64}$/i.test(hashValue)) {
62
+ throw new Error('content.hash is invalid');
63
+ }
64
+ }
65
+ const accessMethod = record.accessMethod;
66
+ if (!accessMethod || typeof accessMethod !== 'object' || Array.isArray(accessMethod)) {
67
+ throw new Error('accessMethod is required');
68
+ }
69
+ const accessType = String(accessMethod.type ?? '');
70
+ if (!accessType || !isAccessMethodType(accessType)) {
71
+ throw new Error('accessMethod.type is invalid');
72
+ }
73
+ const license = record.license;
74
+ if (!license || typeof license !== 'object' || Array.isArray(license)) {
75
+ throw new Error('license is required');
76
+ }
77
+ const licenseType = String(license.type ?? '');
78
+ if (!licenseType || !['exclusive', 'non_exclusive', 'limited', 'perpetual', 'subscription', 'custom'].includes(licenseType)) {
79
+ throw new Error('license.type is invalid');
80
+ }
81
+ const permissions = license.permissions;
82
+ const restrictions = license.restrictions;
83
+ if (!permissions || typeof permissions !== 'object' || Array.isArray(permissions)) {
84
+ throw new Error('license.permissions is required');
85
+ }
86
+ if (!restrictions || typeof restrictions !== 'object' || Array.isArray(restrictions)) {
87
+ throw new Error('license.restrictions is required');
88
+ }
89
+ const permissionRecord = permissions;
90
+ const restrictionRecord = restrictions;
91
+ const permissionFields = ['use', 'modify', 'distribute', 'commercialize', 'sublicense'];
92
+ for (const field of permissionFields) {
93
+ if (typeof permissionRecord[field] !== 'boolean') {
94
+ throw new Error(`license.permissions.${field} must be a boolean`);
95
+ }
96
+ }
97
+ const restrictionFields = ['attribution', 'shareAlike', 'nonCompete', 'confidential'];
98
+ for (const field of restrictionFields) {
99
+ if (typeof restrictionRecord[field] !== 'boolean') {
100
+ throw new Error(`license.restrictions.${field} must be a boolean`);
101
+ }
102
+ }
103
+ return {
104
+ infoType: infoTypeValue,
105
+ content: {
106
+ ...contentRecord,
107
+ format: formatValue,
108
+ },
109
+ quality: record.quality,
110
+ accessMethod: accessMethod,
111
+ license: license,
112
+ usageRestrictions: record.usageRestrictions,
113
+ };
114
+ }
115
+ export async function createInfoListingPublishEnvelope(params) {
116
+ const marketData = parseInfoMarketData(params.marketData);
117
+ return createMarketListingPublishEnvelope({
118
+ ...params,
119
+ marketType: 'info',
120
+ marketData,
121
+ });
122
+ }
123
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/markets/info.ts"],"names":[],"mappings":"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"}