@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,499 @@
1
+ import { multibaseEncode } from '@claw-network/core/encoding';
2
+ import { publicKeyFromDid } from '@claw-network/core/identity';
3
+ import { eventHashHex, signEvent } from '@claw-network/core/protocol';
4
+ function requireNonEmpty(value, field) {
5
+ if (!value || value.trim().length === 0) {
6
+ throw new Error(`${field} is required`);
7
+ }
8
+ }
9
+ function assertRecord(value, field) {
10
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
11
+ throw new Error(`${field} must be an object`);
12
+ }
13
+ return value;
14
+ }
15
+ function assertValidDid(value, field) {
16
+ requireNonEmpty(value, field);
17
+ if (!value.startsWith('did:claw:')) {
18
+ throw new Error(`${field} must be a valid did`);
19
+ }
20
+ }
21
+ function parseParties(value) {
22
+ const record = assertRecord(value, 'parties');
23
+ const client = assertRecord(record.client, 'parties.client');
24
+ const provider = assertRecord(record.provider, 'parties.provider');
25
+ const clientDid = String(client.did ?? '');
26
+ const providerDid = String(provider.did ?? '');
27
+ assertValidDid(clientDid, 'parties.client.did');
28
+ assertValidDid(providerDid, 'parties.provider.did');
29
+ const parseOptionalParties = (entries, field) => {
30
+ if (entries === undefined) {
31
+ return undefined;
32
+ }
33
+ if (!Array.isArray(entries)) {
34
+ throw new Error(`${field} must be an array`);
35
+ }
36
+ return entries.map((entry, index) => {
37
+ const party = assertRecord(entry, `${field}[${index}]`);
38
+ const did = String(party.did ?? '');
39
+ assertValidDid(did, `${field}[${index}].did`);
40
+ return {
41
+ did,
42
+ address: typeof party.address === 'string' ? party.address : undefined,
43
+ name: typeof party.name === 'string' ? party.name : undefined,
44
+ role: typeof party.role === 'string' ? party.role : undefined,
45
+ };
46
+ });
47
+ };
48
+ return {
49
+ client: {
50
+ did: clientDid,
51
+ address: typeof client.address === 'string' ? client.address : undefined,
52
+ name: typeof client.name === 'string' ? client.name : undefined,
53
+ role: typeof client.role === 'string' ? client.role : undefined,
54
+ },
55
+ provider: {
56
+ did: providerDid,
57
+ address: typeof provider.address === 'string' ? provider.address : undefined,
58
+ name: typeof provider.name === 'string' ? provider.name : undefined,
59
+ role: typeof provider.role === 'string' ? provider.role : undefined,
60
+ },
61
+ subcontractors: parseOptionalParties(record.subcontractors, 'parties.subcontractors'),
62
+ auditors: parseOptionalParties(record.auditors, 'parties.auditors'),
63
+ arbiters: parseOptionalParties(record.arbiters, 'parties.arbiters'),
64
+ guarantors: parseOptionalParties(record.guarantors, 'parties.guarantors'),
65
+ witnesses: parseOptionalParties(record.witnesses, 'parties.witnesses'),
66
+ };
67
+ }
68
+ function parseMilestones(value) {
69
+ if (value === undefined) {
70
+ return undefined;
71
+ }
72
+ if (!Array.isArray(value)) {
73
+ throw new Error('milestones must be an array');
74
+ }
75
+ return value.map((entry, index) => {
76
+ const record = assertRecord(entry, `milestones[${index}]`);
77
+ const id = String(record.id ?? '');
78
+ requireNonEmpty(id, `milestones[${index}].id`);
79
+ return {
80
+ ...record,
81
+ id,
82
+ status: record.status ?? 'pending',
83
+ };
84
+ });
85
+ }
86
+ function buildEnvelope(type, issuer, publicKey, payload, ts, nonce, prev) {
87
+ return {
88
+ v: 1,
89
+ type,
90
+ issuer,
91
+ ts,
92
+ nonce,
93
+ payload,
94
+ prev,
95
+ sig: '',
96
+ pub: multibaseEncode(publicKey),
97
+ hash: '',
98
+ };
99
+ }
100
+ export function parseContractCreatePayload(payload) {
101
+ const contractId = String(payload.contractId ?? '');
102
+ requireNonEmpty(contractId, 'contractId');
103
+ const parties = parseParties(payload.parties);
104
+ const service = assertRecord(payload.service, 'service');
105
+ const terms = assertRecord(payload.terms, 'terms');
106
+ const payment = assertRecord(payload.payment, 'payment');
107
+ const timeline = assertRecord(payload.timeline, 'timeline');
108
+ const milestones = parseMilestones(payload.milestones);
109
+ const attachments = payload.attachments
110
+ ? (Array.isArray(payload.attachments) ? payload.attachments.map((entry, index) => {
111
+ return assertRecord(entry, `attachments[${index}]`);
112
+ }) : (() => { throw new Error('attachments must be an array'); })())
113
+ : undefined;
114
+ const metadata = payload.metadata
115
+ ? assertRecord(payload.metadata, 'metadata')
116
+ : undefined;
117
+ if (payload.resourcePrev !== undefined && payload.resourcePrev !== null) {
118
+ throw new Error('resourcePrev must be null for contract create');
119
+ }
120
+ return {
121
+ contractId,
122
+ parties,
123
+ service,
124
+ terms,
125
+ payment,
126
+ timeline,
127
+ milestones,
128
+ attachments,
129
+ metadata,
130
+ resourcePrev: undefined,
131
+ };
132
+ }
133
+ export function parseContractSignPayload(payload) {
134
+ const contractId = String(payload.contractId ?? '');
135
+ requireNonEmpty(contractId, 'contractId');
136
+ const resourcePrev = String(payload.resourcePrev ?? '');
137
+ requireNonEmpty(resourcePrev, 'resourcePrev');
138
+ const signer = String(payload.signer ?? '');
139
+ assertValidDid(signer, 'signer');
140
+ return {
141
+ contractId,
142
+ resourcePrev,
143
+ signer,
144
+ };
145
+ }
146
+ export function parseContractActivatePayload(payload) {
147
+ const contractId = String(payload.contractId ?? '');
148
+ requireNonEmpty(contractId, 'contractId');
149
+ const resourcePrev = String(payload.resourcePrev ?? '');
150
+ requireNonEmpty(resourcePrev, 'resourcePrev');
151
+ const escrowId = payload.escrowId !== undefined ? String(payload.escrowId) : undefined;
152
+ return {
153
+ contractId,
154
+ resourcePrev,
155
+ escrowId,
156
+ };
157
+ }
158
+ export function parseContractNegotiatePayload(payload) {
159
+ const contractId = String(payload.contractId ?? '');
160
+ requireNonEmpty(contractId, 'contractId');
161
+ const resourcePrev = String(payload.resourcePrev ?? '');
162
+ requireNonEmpty(resourcePrev, 'resourcePrev');
163
+ const terms = assertRecord(payload.terms, 'terms');
164
+ const notes = typeof payload.notes === 'string' ? payload.notes : undefined;
165
+ return {
166
+ contractId,
167
+ resourcePrev,
168
+ terms,
169
+ notes,
170
+ };
171
+ }
172
+ export function parseContractNegotiateAcceptPayload(payload) {
173
+ const contractId = String(payload.contractId ?? '');
174
+ requireNonEmpty(contractId, 'contractId');
175
+ const resourcePrev = String(payload.resourcePrev ?? '');
176
+ requireNonEmpty(resourcePrev, 'resourcePrev');
177
+ const notes = typeof payload.notes === 'string' ? payload.notes : undefined;
178
+ return {
179
+ contractId,
180
+ resourcePrev,
181
+ notes,
182
+ };
183
+ }
184
+ export function parseContractMilestoneSubmitPayload(payload) {
185
+ const contractId = String(payload.contractId ?? '');
186
+ requireNonEmpty(contractId, 'contractId');
187
+ const resourcePrev = String(payload.resourcePrev ?? '');
188
+ requireNonEmpty(resourcePrev, 'resourcePrev');
189
+ const milestoneId = String(payload.milestoneId ?? '');
190
+ requireNonEmpty(milestoneId, 'milestoneId');
191
+ const submissionId = String(payload.submissionId ?? '');
192
+ requireNonEmpty(submissionId, 'submissionId');
193
+ const notes = typeof payload.notes === 'string' ? payload.notes : undefined;
194
+ return {
195
+ contractId,
196
+ resourcePrev,
197
+ milestoneId,
198
+ submissionId,
199
+ notes,
200
+ };
201
+ }
202
+ export function parseContractMilestoneReviewPayload(payload) {
203
+ const contractId = String(payload.contractId ?? '');
204
+ requireNonEmpty(contractId, 'contractId');
205
+ const resourcePrev = String(payload.resourcePrev ?? '');
206
+ requireNonEmpty(resourcePrev, 'resourcePrev');
207
+ const milestoneId = String(payload.milestoneId ?? '');
208
+ requireNonEmpty(milestoneId, 'milestoneId');
209
+ const notes = typeof payload.notes === 'string' ? payload.notes : undefined;
210
+ return {
211
+ contractId,
212
+ resourcePrev,
213
+ milestoneId,
214
+ notes,
215
+ };
216
+ }
217
+ export function parseContractCompletePayload(payload) {
218
+ const contractId = String(payload.contractId ?? '');
219
+ requireNonEmpty(contractId, 'contractId');
220
+ const resourcePrev = String(payload.resourcePrev ?? '');
221
+ requireNonEmpty(resourcePrev, 'resourcePrev');
222
+ return {
223
+ contractId,
224
+ resourcePrev,
225
+ };
226
+ }
227
+ export function parseContractDisputeOpenPayload(payload) {
228
+ const contractId = String(payload.contractId ?? '');
229
+ requireNonEmpty(contractId, 'contractId');
230
+ const resourcePrev = String(payload.resourcePrev ?? '');
231
+ requireNonEmpty(resourcePrev, 'resourcePrev');
232
+ const reason = String(payload.reason ?? '').trim();
233
+ requireNonEmpty(reason, 'reason');
234
+ const description = typeof payload.description === 'string' ? payload.description : undefined;
235
+ let evidence;
236
+ if (payload.evidence !== undefined) {
237
+ if (!Array.isArray(payload.evidence)) {
238
+ throw new Error('evidence must be an array');
239
+ }
240
+ evidence = payload.evidence.map((entry, index) => assertRecord(entry, `evidence[${index}]`));
241
+ }
242
+ return {
243
+ contractId,
244
+ resourcePrev,
245
+ reason,
246
+ description,
247
+ evidence,
248
+ };
249
+ }
250
+ export function parseContractDisputeResolvePayload(payload) {
251
+ const contractId = String(payload.contractId ?? '');
252
+ requireNonEmpty(contractId, 'contractId');
253
+ const resourcePrev = String(payload.resourcePrev ?? '');
254
+ requireNonEmpty(resourcePrev, 'resourcePrev');
255
+ const resolution = String(payload.resolution ?? '').trim();
256
+ requireNonEmpty(resolution, 'resolution');
257
+ const notes = typeof payload.notes === 'string' ? payload.notes : undefined;
258
+ return {
259
+ contractId,
260
+ resourcePrev,
261
+ resolution,
262
+ notes,
263
+ };
264
+ }
265
+ export function parseContractSettlementPayload(payload) {
266
+ const contractId = String(payload.contractId ?? '');
267
+ requireNonEmpty(contractId, 'contractId');
268
+ const resourcePrev = String(payload.resourcePrev ?? '');
269
+ requireNonEmpty(resourcePrev, 'resourcePrev');
270
+ const settlement = assertRecord(payload.settlement, 'settlement');
271
+ const notes = typeof payload.notes === 'string' ? payload.notes : undefined;
272
+ return {
273
+ contractId,
274
+ resourcePrev,
275
+ settlement,
276
+ notes,
277
+ };
278
+ }
279
+ export function parseContractTerminatePayload(payload) {
280
+ const contractId = String(payload.contractId ?? '');
281
+ requireNonEmpty(contractId, 'contractId');
282
+ const resourcePrev = String(payload.resourcePrev ?? '');
283
+ requireNonEmpty(resourcePrev, 'resourcePrev');
284
+ const reason = String(payload.reason ?? '').trim();
285
+ requireNonEmpty(reason, 'reason');
286
+ return {
287
+ contractId,
288
+ resourcePrev,
289
+ reason,
290
+ };
291
+ }
292
+ export async function createContractCreateEnvelope(params) {
293
+ assertValidDid(params.issuer, 'issuer');
294
+ if (params.parties.client.did !== params.issuer) {
295
+ throw new Error('issuer must match parties.client.did');
296
+ }
297
+ const payload = parseContractCreatePayload({
298
+ contractId: params.contractId,
299
+ parties: params.parties,
300
+ service: params.service,
301
+ terms: params.terms,
302
+ payment: params.payment,
303
+ timeline: params.timeline,
304
+ milestones: params.milestones,
305
+ attachments: params.attachments,
306
+ metadata: params.metadata,
307
+ resourcePrev: params.resourcePrev,
308
+ });
309
+ const publicKey = publicKeyFromDid(params.issuer);
310
+ const baseEnvelope = buildEnvelope('contract.create', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
311
+ const hash = eventHashHex(baseEnvelope);
312
+ const sig = await signEvent(baseEnvelope, params.privateKey);
313
+ return { ...baseEnvelope, hash, sig };
314
+ }
315
+ export async function createContractSignEnvelope(params) {
316
+ assertValidDid(params.issuer, 'issuer');
317
+ if (params.signer !== params.issuer) {
318
+ throw new Error('issuer must match signer');
319
+ }
320
+ const payload = parseContractSignPayload({
321
+ contractId: params.contractId,
322
+ resourcePrev: params.resourcePrev,
323
+ signer: params.signer,
324
+ });
325
+ const publicKey = publicKeyFromDid(params.issuer);
326
+ const baseEnvelope = buildEnvelope('contract.sign', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
327
+ const hash = eventHashHex(baseEnvelope);
328
+ const sig = await signEvent(baseEnvelope, params.privateKey);
329
+ return { ...baseEnvelope, hash, sig };
330
+ }
331
+ export async function createContractActivateEnvelope(params) {
332
+ assertValidDid(params.issuer, 'issuer');
333
+ const payload = parseContractActivatePayload({
334
+ contractId: params.contractId,
335
+ resourcePrev: params.resourcePrev,
336
+ escrowId: params.escrowId,
337
+ });
338
+ const publicKey = publicKeyFromDid(params.issuer);
339
+ const baseEnvelope = buildEnvelope('contract.activate', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
340
+ const hash = eventHashHex(baseEnvelope);
341
+ const sig = await signEvent(baseEnvelope, params.privateKey);
342
+ return { ...baseEnvelope, hash, sig };
343
+ }
344
+ export async function createContractNegotiateOfferEnvelope(params) {
345
+ assertValidDid(params.issuer, 'issuer');
346
+ const payload = parseContractNegotiatePayload({
347
+ contractId: params.contractId,
348
+ resourcePrev: params.resourcePrev,
349
+ terms: params.terms,
350
+ notes: params.notes,
351
+ });
352
+ const publicKey = publicKeyFromDid(params.issuer);
353
+ const baseEnvelope = buildEnvelope('contract.negotiate.offer', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
354
+ const hash = eventHashHex(baseEnvelope);
355
+ const sig = await signEvent(baseEnvelope, params.privateKey);
356
+ return { ...baseEnvelope, hash, sig };
357
+ }
358
+ export async function createContractNegotiateCounterEnvelope(params) {
359
+ assertValidDid(params.issuer, 'issuer');
360
+ const payload = parseContractNegotiatePayload({
361
+ contractId: params.contractId,
362
+ resourcePrev: params.resourcePrev,
363
+ terms: params.terms,
364
+ notes: params.notes,
365
+ });
366
+ const publicKey = publicKeyFromDid(params.issuer);
367
+ const baseEnvelope = buildEnvelope('contract.negotiate.counter', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
368
+ const hash = eventHashHex(baseEnvelope);
369
+ const sig = await signEvent(baseEnvelope, params.privateKey);
370
+ return { ...baseEnvelope, hash, sig };
371
+ }
372
+ export async function createContractNegotiateAcceptEnvelope(params) {
373
+ assertValidDid(params.issuer, 'issuer');
374
+ const payload = parseContractNegotiateAcceptPayload({
375
+ contractId: params.contractId,
376
+ resourcePrev: params.resourcePrev,
377
+ notes: params.notes,
378
+ });
379
+ const publicKey = publicKeyFromDid(params.issuer);
380
+ const baseEnvelope = buildEnvelope('contract.negotiate.accept', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
381
+ const hash = eventHashHex(baseEnvelope);
382
+ const sig = await signEvent(baseEnvelope, params.privateKey);
383
+ return { ...baseEnvelope, hash, sig };
384
+ }
385
+ export async function createContractMilestoneSubmitEnvelope(params) {
386
+ assertValidDid(params.issuer, 'issuer');
387
+ const payload = parseContractMilestoneSubmitPayload({
388
+ contractId: params.contractId,
389
+ resourcePrev: params.resourcePrev,
390
+ milestoneId: params.milestoneId,
391
+ submissionId: params.submissionId,
392
+ notes: params.notes,
393
+ });
394
+ const publicKey = publicKeyFromDid(params.issuer);
395
+ const baseEnvelope = buildEnvelope('contract.milestone.submit', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
396
+ const hash = eventHashHex(baseEnvelope);
397
+ const sig = await signEvent(baseEnvelope, params.privateKey);
398
+ return { ...baseEnvelope, hash, sig };
399
+ }
400
+ export async function createContractMilestoneApproveEnvelope(params) {
401
+ assertValidDid(params.issuer, 'issuer');
402
+ const payload = parseContractMilestoneReviewPayload({
403
+ contractId: params.contractId,
404
+ resourcePrev: params.resourcePrev,
405
+ milestoneId: params.milestoneId,
406
+ notes: params.notes,
407
+ });
408
+ const publicKey = publicKeyFromDid(params.issuer);
409
+ const baseEnvelope = buildEnvelope('contract.milestone.approve', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
410
+ const hash = eventHashHex(baseEnvelope);
411
+ const sig = await signEvent(baseEnvelope, params.privateKey);
412
+ return { ...baseEnvelope, hash, sig };
413
+ }
414
+ export async function createContractMilestoneRejectEnvelope(params) {
415
+ assertValidDid(params.issuer, 'issuer');
416
+ const payload = parseContractMilestoneReviewPayload({
417
+ contractId: params.contractId,
418
+ resourcePrev: params.resourcePrev,
419
+ milestoneId: params.milestoneId,
420
+ notes: params.notes,
421
+ });
422
+ const publicKey = publicKeyFromDid(params.issuer);
423
+ const baseEnvelope = buildEnvelope('contract.milestone.reject', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
424
+ const hash = eventHashHex(baseEnvelope);
425
+ const sig = await signEvent(baseEnvelope, params.privateKey);
426
+ return { ...baseEnvelope, hash, sig };
427
+ }
428
+ export async function createContractCompleteEnvelope(params) {
429
+ assertValidDid(params.issuer, 'issuer');
430
+ const payload = parseContractCompletePayload({
431
+ contractId: params.contractId,
432
+ resourcePrev: params.resourcePrev,
433
+ });
434
+ const publicKey = publicKeyFromDid(params.issuer);
435
+ const baseEnvelope = buildEnvelope('contract.complete', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
436
+ const hash = eventHashHex(baseEnvelope);
437
+ const sig = await signEvent(baseEnvelope, params.privateKey);
438
+ return { ...baseEnvelope, hash, sig };
439
+ }
440
+ export async function createContractDisputeOpenEnvelope(params) {
441
+ assertValidDid(params.issuer, 'issuer');
442
+ const payload = parseContractDisputeOpenPayload({
443
+ contractId: params.contractId,
444
+ resourcePrev: params.resourcePrev,
445
+ reason: params.reason,
446
+ description: params.description,
447
+ evidence: params.evidence,
448
+ });
449
+ const publicKey = publicKeyFromDid(params.issuer);
450
+ const baseEnvelope = buildEnvelope('contract.dispute.open', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
451
+ const hash = eventHashHex(baseEnvelope);
452
+ const sig = await signEvent(baseEnvelope, params.privateKey);
453
+ return { ...baseEnvelope, hash, sig };
454
+ }
455
+ export async function createContractDisputeResolveEnvelope(params) {
456
+ assertValidDid(params.issuer, 'issuer');
457
+ const payload = parseContractDisputeResolvePayload({
458
+ contractId: params.contractId,
459
+ resourcePrev: params.resourcePrev,
460
+ resolution: params.resolution,
461
+ notes: params.notes,
462
+ });
463
+ const publicKey = publicKeyFromDid(params.issuer);
464
+ const baseEnvelope = buildEnvelope('contract.dispute.resolve', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
465
+ const hash = eventHashHex(baseEnvelope);
466
+ const sig = await signEvent(baseEnvelope, params.privateKey);
467
+ return { ...baseEnvelope, hash, sig };
468
+ }
469
+ export async function createContractSettlementExecuteEnvelope(params) {
470
+ assertValidDid(params.issuer, 'issuer');
471
+ const payload = parseContractSettlementPayload({
472
+ contractId: params.contractId,
473
+ resourcePrev: params.resourcePrev,
474
+ settlement: params.settlement,
475
+ notes: params.notes,
476
+ });
477
+ const publicKey = publicKeyFromDid(params.issuer);
478
+ const baseEnvelope = buildEnvelope('contract.settlement.execute', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
479
+ const hash = eventHashHex(baseEnvelope);
480
+ const sig = await signEvent(baseEnvelope, params.privateKey);
481
+ return { ...baseEnvelope, hash, sig };
482
+ }
483
+ export async function createContractTerminateEnvelope(params) {
484
+ assertValidDid(params.issuer, 'issuer');
485
+ const payload = parseContractTerminatePayload({
486
+ contractId: params.contractId,
487
+ resourcePrev: params.resourcePrev,
488
+ reason: params.reason,
489
+ });
490
+ const publicKey = publicKeyFromDid(params.issuer);
491
+ const baseEnvelope = buildEnvelope('contract.terminate', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
492
+ const hash = eventHashHex(baseEnvelope);
493
+ const sig = await signEvent(baseEnvelope, params.privateKey);
494
+ return { ...baseEnvelope, hash, sig };
495
+ }
496
+ export function buildContractSnapshot(contract) {
497
+ return JSON.parse(JSON.stringify(contract));
498
+ }
499
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/contracts/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './events.js';
3
+ export * from './state.js';
4
+ export * from './store.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './events.js';
3
+ export * from './state.js';
4
+ export * from './store.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { EventEnvelope } from '@claw-network/core/protocol';
2
+ import { ServiceContract } from './types.js';
3
+ export interface ContractHistoryEntry {
4
+ hash: string;
5
+ type: string;
6
+ ts: number;
7
+ payload: Record<string, unknown>;
8
+ }
9
+ export interface ContractState {
10
+ contracts: Record<string, ServiceContract>;
11
+ contractEvents: Record<string, string>;
12
+ history: ContractHistoryEntry[];
13
+ }
14
+ export declare function createContractState(): ContractState;
15
+ export declare function applyContractEvent(state: ContractState, envelope: EventEnvelope): ContractState;
16
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/contracts/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAQL,eAAe,EAChB,MAAM,YAAY,CAAC;AA4BpB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAMnD;AAmXD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CAiH/F"}