@serve.zone/interfaces 25.1.1 → 25.3.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 (32) hide show
  1. package/changelog.md +19 -0
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/platform/index.d.ts +3 -1
  4. package/dist_ts/platform/index.js +4 -2
  5. package/dist_ts/platform/objectstorageretention.d.ts +63 -0
  6. package/dist_ts/platform/objectstorageretention.js +255 -0
  7. package/dist_ts/platform/types.d.ts +3 -0
  8. package/dist_ts/plugins.runtime.d.ts +2 -0
  9. package/dist_ts/plugins.runtime.js +4 -0
  10. package/dist_ts/requests/config.d.ts +3 -0
  11. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.d.ts +394 -0
  12. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.d.ts +35 -0
  13. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.js +315 -0
  14. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.js +1378 -0
  15. package/dist_ts/runtime.corestore.d.ts +204 -0
  16. package/dist_ts/runtime.corestore.js +620 -0
  17. package/dist_ts/runtime.d.ts +2 -0
  18. package/dist_ts/runtime.js +3 -1
  19. package/dist_ts/runtime.workloadinit.d.ts +1 -1
  20. package/package.json +5 -1
  21. package/readme.md +54 -0
  22. package/ts/00_commitinfo_data.ts +1 -1
  23. package/ts/platform/index.ts +3 -0
  24. package/ts/platform/objectstorageretention.ts +372 -0
  25. package/ts/platform/types.ts +3 -0
  26. package/ts/plugins.runtime.ts +4 -0
  27. package/ts/requests/config.ts +3 -0
  28. package/ts/runtime.cloudlylegacydeploymentsettlement.golden.ts +421 -0
  29. package/ts/runtime.cloudlylegacydeploymentsettlement.ts +2884 -0
  30. package/ts/runtime.corestore.ts +909 -0
  31. package/ts/runtime.ts +2 -0
  32. package/ts/runtime.workloadinit.ts +1 -1
@@ -0,0 +1,421 @@
1
+ import { deepFreezeValue } from './private/canonicaljson.js';
2
+ import type {
3
+ IAuthenticatedCloudlyLegacyDeploymentSettlementApplyResultV1,
4
+ IAuthenticatedCloudlyLegacyDeploymentSettlementCheckResultV1,
5
+ IAuthenticatedCloudlyLegacyDeploymentSettlementPlanV1,
6
+ IAuthenticatedCloudlyLegacyDeploymentSettlementProductionRequestV1,
7
+ IAuthenticatedCloudlyLegacyDeploymentSettlementRehearsalBindingV1,
8
+ IAuthenticatedCloudlyLegacyDeploymentSettlementStableOutcomeV1,
9
+ ICloudlyLegacyDeploymentSettlementAuthorityMetadataV1,
10
+ ICloudlyLegacyDeploymentSettlementAuthorityReferenceV1,
11
+ ICloudlyLegacyDeploymentSettlementPlanV1,
12
+ ICloudlyLegacyDeploymentSettlementProductionRequestV1,
13
+ ICloudlyLegacyDeploymentSettlementProductionReceiptV1,
14
+ ICloudlyLegacyDeploymentSettlementRehearsalBindingV1,
15
+ ICloudlyLegacyDeploymentSettlementScratchReceiptV1,
16
+ ICloudlyLegacyDeploymentSettlementStableOutcomeV1,
17
+ TCloudlyLegacyDeploymentSettlementApplyResultV1,
18
+ TCloudlyLegacyDeploymentSettlementCheckResultV1,
19
+ } from './runtime.cloudlylegacydeploymentsettlement.js';
20
+
21
+ interface IGoldenVector<T, TAuthenticated> {
22
+ input: T;
23
+ canonicalSha256: string;
24
+ authenticatedInput: TAuthenticated;
25
+ authenticatedCanonicalSha256: string;
26
+ hmac: string;
27
+ }
28
+
29
+ interface ICloudlyLegacyDeploymentSettlementGoldenVectorsV1 {
30
+ version: 1;
31
+ authority: {
32
+ metadata: ICloudlyLegacyDeploymentSettlementAuthorityMetadataV1;
33
+ reference: ICloudlyLegacyDeploymentSettlementAuthorityReferenceV1;
34
+ metadataCanonicalSha256: string;
35
+ aadSha256: string;
36
+ };
37
+ rehearsalBinding: IGoldenVector<
38
+ ICloudlyLegacyDeploymentSettlementRehearsalBindingV1,
39
+ IAuthenticatedCloudlyLegacyDeploymentSettlementRehearsalBindingV1
40
+ >;
41
+ plan: IGoldenVector<
42
+ ICloudlyLegacyDeploymentSettlementPlanV1,
43
+ IAuthenticatedCloudlyLegacyDeploymentSettlementPlanV1
44
+ >;
45
+ productionRequest: IGoldenVector<
46
+ ICloudlyLegacyDeploymentSettlementProductionRequestV1,
47
+ IAuthenticatedCloudlyLegacyDeploymentSettlementProductionRequestV1
48
+ >;
49
+ checkResult: IGoldenVector<
50
+ TCloudlyLegacyDeploymentSettlementCheckResultV1,
51
+ IAuthenticatedCloudlyLegacyDeploymentSettlementCheckResultV1
52
+ >;
53
+ applyResult: IGoldenVector<
54
+ TCloudlyLegacyDeploymentSettlementApplyResultV1,
55
+ IAuthenticatedCloudlyLegacyDeploymentSettlementApplyResultV1
56
+ >;
57
+ stableOutcome: IGoldenVector<
58
+ ICloudlyLegacyDeploymentSettlementStableOutcomeV1,
59
+ IAuthenticatedCloudlyLegacyDeploymentSettlementStableOutcomeV1
60
+ >;
61
+ scratchReceipt: {
62
+ input: ICloudlyLegacyDeploymentSettlementScratchReceiptV1;
63
+ canonicalSha256: string;
64
+ hmac: string;
65
+ };
66
+ productionReceipt: {
67
+ input: ICloudlyLegacyDeploymentSettlementProductionReceiptV1;
68
+ canonicalSha256: string;
69
+ hmac: string;
70
+ };
71
+ }
72
+
73
+ const sha1 = '1111111111111111111111111111111111111111111111111111111111111111';
74
+ const sha2 = '2222222222222222222222222222222222222222222222222222222222222222';
75
+ const sha3 = '3333333333333333333333333333333333333333333333333333333333333333';
76
+ const sha4 = '4444444444444444444444444444444444444444444444444444444444444444';
77
+ const sha5 = '5555555555555555555555555555555555555555555555555555555555555555';
78
+ const sha6 = '6666666666666666666666666666666666666666666666666666666666666666';
79
+ const sha7 = '7777777777777777777777777777777777777777777777777777777777777777';
80
+ const sha8 = '8888888888888888888888888888888888888888888888888888888888888888';
81
+ const sha9 = '9999999999999999999999999999999999999999999999999999999999999999';
82
+ const shaa = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
83
+ const shab = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
84
+ const stateC = 'hmac-sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' as const;
85
+ const stateD = 'hmac-sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd' as const;
86
+
87
+ const authorityMetadata: ICloudlyLegacyDeploymentSettlementAuthorityMetadataV1 = {
88
+ schemaVersion: 1,
89
+ operationId: 'settle-operation-1',
90
+ authorityId: 'authority-1',
91
+ keyId: 'settlement-key-1',
92
+ keyVersion: 1,
93
+ settlementId: 'settlement-1',
94
+ issuedAt: 1_700_000_000_000,
95
+ expiresAt: 1_700_003_600_000,
96
+ maintenanceImageDigest: `sha256:${sha1}`,
97
+ sourceImageDigest: `sha256:${sha2}`,
98
+ targetImageDigest: `sha256:${sha3}`,
99
+ targetVersion: '18.2.0',
100
+ targetManifestSha256: sha4,
101
+ targetConfigSha256: sha5,
102
+ backupId: 'backup-1',
103
+ backupSnapshotIdSha256: sha6,
104
+ backupProofSha256: sha7,
105
+ runId: 'run-1',
106
+ rehearsalId: 'rehearsal-1',
107
+ scratchServiceId: 'service-cloudly-scratch',
108
+ allocationId: 'allocation-1',
109
+ allocationGeneration: 2,
110
+ allocationBindingSha256: sha8,
111
+ allocationReceiptSha256: sha9,
112
+ sourceDataSha256: shaa,
113
+ restoredDataSha256: shaa,
114
+ digestProofSha256: shab,
115
+ };
116
+
117
+ const authorityReference: ICloudlyLegacyDeploymentSettlementAuthorityReferenceV1 = {
118
+ operationId: authorityMetadata.operationId,
119
+ authorityId: authorityMetadata.authorityId,
120
+ keyId: authorityMetadata.keyId,
121
+ keyVersion: authorityMetadata.keyVersion,
122
+ authorityMetadataSha256:
123
+ 'da410b15675f0387a5266aecba70984c944cd45a9183e275438b299b42e42659',
124
+ };
125
+
126
+ const rehearsalBinding: ICloudlyLegacyDeploymentSettlementRehearsalBindingV1 = {
127
+ schemaVersion: 1,
128
+ kind: 'cloudly-legacy-deployment-settlement-rehearsal-binding',
129
+ settlementId: 'settlement-1',
130
+ runId: 'run-1',
131
+ rehearsalId: 'rehearsal-1',
132
+ scratchServiceId: 'service-cloudly-scratch',
133
+ allocationId: 'allocation-1',
134
+ allocationGeneration: 2,
135
+ allocationBindingSha256: sha8,
136
+ allocationReceiptSha256: sha9,
137
+ backupId: 'backup-1',
138
+ backupSnapshotIdSha256: sha6,
139
+ backupProofSha256: sha7,
140
+ sourceDataSha256: shaa,
141
+ restoredDataSha256: shaa,
142
+ digestProofSha256: shab,
143
+ targetImageDigest: `sha256:${sha3}`,
144
+ targetVersion: '18.2.0',
145
+ targetManifestSha256: sha4,
146
+ targetConfigSha256: sha5,
147
+ };
148
+
149
+ const classificationCounts = {
150
+ 'image-recorded-not-current': 1,
151
+ 'image-recorded-current-failed': 0,
152
+ 'rolling-out-current-failed': 0,
153
+ 'rolling-out-superseded': 0,
154
+ } as const;
155
+
156
+ const counts = {
157
+ operationCount: 1,
158
+ routeClaimsStabilized: 1,
159
+ routeClaimsRemoved: 0,
160
+ resourceClaimsRemoved: 1,
161
+ } as const;
162
+
163
+ const plan: ICloudlyLegacyDeploymentSettlementPlanV1 = {
164
+ schemaVersion: 1,
165
+ kind: 'cloudly-legacy-deployment-settlement-plan',
166
+ authority: authorityReference,
167
+ settlementId: 'settlement-1',
168
+ effectiveAt: 1_700_000_100_000,
169
+ sourceStateHmac: stateC,
170
+ finalStateHmac: stateD,
171
+ sourceCensus: {
172
+ operations: 3,
173
+ services: 2,
174
+ images: 2,
175
+ releases: 2,
176
+ rolloutOperations: 1,
177
+ routeClaims: 1,
178
+ resourceClaims: 1,
179
+ },
180
+ entries: [{
181
+ operationId: 'deployment-operation-1',
182
+ serviceId: 'service-1',
183
+ sourceRevision: 4,
184
+ sourceState: 'image-recorded',
185
+ classification: 'image-recorded-not-current',
186
+ finalRevision: 7,
187
+ sourceDocumentHmac:
188
+ 'hmac-sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
189
+ finalDocumentHmac:
190
+ 'hmac-sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
191
+ routeClaimsStabilized: 1,
192
+ routeClaimsRemoved: 0,
193
+ resourceClaimsRemoved: 1,
194
+ }],
195
+ classificationCounts,
196
+ operationCount: 1,
197
+ };
198
+
199
+ const planSha256 = 'e2a1b29678884c9a8629ba3e5887f4c0115c3ef49aed533695b2aa871505037e';
200
+ const productionRequest: ICloudlyLegacyDeploymentSettlementProductionRequestV1 = {
201
+ schemaVersion: 1,
202
+ kind: 'cloudly-legacy-deployment-settlement-production-request',
203
+ authority: authorityReference,
204
+ plan,
205
+ planSha256,
206
+ rehearsalBinding,
207
+ rehearsalBindingSha256:
208
+ '98749a1fb41e2f802a0bbeeeb8925de50a15f52b8f2865d1c977c9fbcbcb8dfe',
209
+ requestedAt: 1_700_000_150_000,
210
+ };
211
+ const productionRequestSha256 =
212
+ 'c91e4bd00f508eeaaf13587d842be76987845d3771d08fbcc30da97012cc9226';
213
+ const checkResult: TCloudlyLegacyDeploymentSettlementCheckResultV1 = {
214
+ schemaVersion: 1,
215
+ kind: 'cloudly-legacy-deployment-settlement-check-result',
216
+ status: 'ready',
217
+ requestSha256: productionRequestSha256,
218
+ planSha256,
219
+ settlementId: 'settlement-1',
220
+ sourceStateHmac: stateC,
221
+ finalStateHmac: stateD,
222
+ transactionSupported: true,
223
+ disposition: 'unapplied',
224
+ counts,
225
+ classificationCounts,
226
+ checkedAt: 1_700_000_200_000,
227
+ };
228
+
229
+ const applyResult: TCloudlyLegacyDeploymentSettlementApplyResultV1 = {
230
+ schemaVersion: 1,
231
+ kind: 'cloudly-legacy-deployment-settlement-apply-result',
232
+ status: 'completed',
233
+ requestSha256: productionRequestSha256,
234
+ planSha256,
235
+ settlementId: 'settlement-1',
236
+ sourceStateHmac: stateC,
237
+ finalStateHmac: stateD,
238
+ transactionSupported: true,
239
+ disposition: 'applied',
240
+ counts,
241
+ classificationCounts,
242
+ completedAt: 1_700_000_300_000,
243
+ };
244
+
245
+ const stableOutcome: ICloudlyLegacyDeploymentSettlementStableOutcomeV1 = {
246
+ schemaVersion: 1,
247
+ kind: 'cloudly-legacy-deployment-settlement-stable-outcome',
248
+ settlementId: 'settlement-1',
249
+ runId: 'run-1',
250
+ rehearsalBindingSha256:
251
+ '98749a1fb41e2f802a0bbeeeb8925de50a15f52b8f2865d1c977c9fbcbcb8dfe',
252
+ effectiveAt: 1_700_000_100_000,
253
+ planSha256,
254
+ sourceStateHmac: stateC,
255
+ finalStateHmac: stateD,
256
+ settlements: [{
257
+ operationId: plan.entries[0].operationId,
258
+ finalRevision: plan.entries[0].finalRevision,
259
+ finalDocumentHmac: plan.entries[0].finalDocumentHmac,
260
+ }],
261
+ counts,
262
+ classificationCounts,
263
+ };
264
+
265
+ const scratchReceipt: ICloudlyLegacyDeploymentSettlementScratchReceiptV1 = {
266
+ schemaVersion: 1,
267
+ kind: 'cloudly-legacy-deployment-settlement-scratch-receipt',
268
+ authority: authorityReference,
269
+ requestSha256: productionRequestSha256,
270
+ stableOutcome,
271
+ stableOutcomeSha256:
272
+ 'ee9f3c7a270ee9bd72778e86376c40407ab47b599552e15c60838f3ab100c818',
273
+ transactionCommitted: true,
274
+ disposition: 'applied',
275
+ completedAt: 1_700_000_400_000,
276
+ payloadSha256:
277
+ '6d28df2da5250974d2b658199c82a2b8b9e1e243cf7db3b9f4eeb28c3d2ed688',
278
+ mac: 'uFe5SRsh-5Xp3mM1-2qPZ7ntkbtxNfEe0SVEd77wGrk',
279
+ };
280
+
281
+ const productionReceipt: ICloudlyLegacyDeploymentSettlementProductionReceiptV1 = {
282
+ schemaVersion: 1,
283
+ kind: 'cloudly-legacy-deployment-settlement-production-receipt',
284
+ authority: authorityReference,
285
+ requestSha256: productionRequestSha256,
286
+ scratchReceipt,
287
+ scratchReceiptSha256:
288
+ '83a9b1ea56ed3042dee608c853dd896a692934cc4d816ed816f42af7a5902b11',
289
+ stableOutcome,
290
+ stableOutcomeSha256: scratchReceipt.stableOutcomeSha256,
291
+ transactionCommitted: true,
292
+ disposition: 'applied',
293
+ completedAt: 1_700_000_500_000,
294
+ payloadSha256:
295
+ '62cd50e10baa7afacf4ac741b20d2757cee1ece7f2d11eef8066c0f92951958c',
296
+ mac: 'YuIpApcgi4olohdEtXKVzn-QoZTFNFZ06yaulxiy3JU',
297
+ };
298
+
299
+ const authenticatedRehearsalBinding:
300
+ IAuthenticatedCloudlyLegacyDeploymentSettlementRehearsalBindingV1 = {
301
+ schemaVersion: 1,
302
+ kind: 'authenticated-cloudly-legacy-deployment-settlement-rehearsal-binding',
303
+ authority: authorityReference,
304
+ payload: rehearsalBinding,
305
+ payloadSha256: '98749a1fb41e2f802a0bbeeeb8925de50a15f52b8f2865d1c977c9fbcbcb8dfe',
306
+ mac: 'fKbvRIW0hawgxzkhqCfnVOUJZVNXA5oLyqbFvb_djsI',
307
+ };
308
+ const authenticatedPlan: IAuthenticatedCloudlyLegacyDeploymentSettlementPlanV1 = {
309
+ schemaVersion: 1,
310
+ kind: 'authenticated-cloudly-legacy-deployment-settlement-plan',
311
+ authority: authorityReference,
312
+ payload: plan,
313
+ payloadSha256: planSha256,
314
+ mac: '6_EzTk_wtq89TA6SN3aGQR0FjF3Pm0D20ZNP505REcA',
315
+ };
316
+ const authenticatedProductionRequest:
317
+ IAuthenticatedCloudlyLegacyDeploymentSettlementProductionRequestV1 = {
318
+ schemaVersion: 1,
319
+ kind: 'authenticated-cloudly-legacy-deployment-settlement-production-request',
320
+ authority: authorityReference,
321
+ payload: productionRequest,
322
+ payloadSha256: productionRequestSha256,
323
+ mac: 'pSqhl4omrgIR51jiVc3kuj396cSR-HQE1GOE6wrY--0',
324
+ };
325
+ const authenticatedCheckResult:
326
+ IAuthenticatedCloudlyLegacyDeploymentSettlementCheckResultV1 = {
327
+ schemaVersion: 1,
328
+ kind: 'authenticated-cloudly-legacy-deployment-settlement-check-result',
329
+ authority: authorityReference,
330
+ payload: checkResult,
331
+ payloadSha256: '0ef262687d1a67299072f4adc3115340119311df671f3222309e8007373739cf',
332
+ mac: 'XGMYSDcMy3eLrAI44h966_c5uHb1PW8mooPytgNvF0k',
333
+ };
334
+ const authenticatedApplyResult:
335
+ IAuthenticatedCloudlyLegacyDeploymentSettlementApplyResultV1 = {
336
+ schemaVersion: 1,
337
+ kind: 'authenticated-cloudly-legacy-deployment-settlement-apply-result',
338
+ authority: authorityReference,
339
+ payload: applyResult,
340
+ payloadSha256: 'e2c0c1e9f8cf7892b077580a41658c95e09b6a190266b5b8e75a46244f32fe6d',
341
+ mac: 'UvGiM-WXOlH5S3_eDMfobJfN9XggFf8L_34xYCBNo0k',
342
+ };
343
+ const authenticatedStableOutcome:
344
+ IAuthenticatedCloudlyLegacyDeploymentSettlementStableOutcomeV1 = {
345
+ schemaVersion: 1,
346
+ kind: 'authenticated-cloudly-legacy-deployment-settlement-stable-outcome',
347
+ authority: authorityReference,
348
+ payload: stableOutcome,
349
+ payloadSha256: 'ee9f3c7a270ee9bd72778e86376c40407ab47b599552e15c60838f3ab100c818',
350
+ mac: 'fFbr-sSnZLBzpv1FEAfVBsNVxAcFqyzClX8UcPeUD30',
351
+ };
352
+
353
+ export const cloudlyLegacyDeploymentSettlementGoldenVectors:
354
+ Readonly<ICloudlyLegacyDeploymentSettlementGoldenVectorsV1> = deepFreezeValue({
355
+ version: 1 as const,
356
+ authority: {
357
+ metadata: authorityMetadata,
358
+ reference: authorityReference,
359
+ metadataCanonicalSha256:
360
+ 'da410b15675f0387a5266aecba70984c944cd45a9183e275438b299b42e42659',
361
+ aadSha256: 'c161a176588e3f247ac791e6d17c1b0b585fb43e74a5b993875a3dc571265313',
362
+ },
363
+ rehearsalBinding: {
364
+ input: rehearsalBinding,
365
+ canonicalSha256: '98749a1fb41e2f802a0bbeeeb8925de50a15f52b8f2865d1c977c9fbcbcb8dfe',
366
+ authenticatedInput: authenticatedRehearsalBinding,
367
+ authenticatedCanonicalSha256:
368
+ '25e157858eb6e8fa0991f9c0912db93809fe7b9393653ab3da1ca0cd19767221',
369
+ hmac: authenticatedRehearsalBinding.mac,
370
+ },
371
+ plan: {
372
+ input: plan,
373
+ canonicalSha256: planSha256,
374
+ authenticatedInput: authenticatedPlan,
375
+ authenticatedCanonicalSha256:
376
+ 'cb49cc46c65ff2ad5ca9441b714d3deab51ea91ab30ce8c703a16e1cbe326995',
377
+ hmac: authenticatedPlan.mac,
378
+ },
379
+ productionRequest: {
380
+ input: productionRequest,
381
+ canonicalSha256: productionRequestSha256,
382
+ authenticatedInput: authenticatedProductionRequest,
383
+ authenticatedCanonicalSha256:
384
+ 'fe97347b4ccd6734fe84f6ef9bf3371acb8d3cb86f2264be73793120019fc892',
385
+ hmac: authenticatedProductionRequest.mac,
386
+ },
387
+ checkResult: {
388
+ input: checkResult,
389
+ canonicalSha256: '0ef262687d1a67299072f4adc3115340119311df671f3222309e8007373739cf',
390
+ authenticatedInput: authenticatedCheckResult,
391
+ authenticatedCanonicalSha256:
392
+ 'b1a7a0b4db36113084ff984508ff409b4f2964b4974a2ed50ece41f2b525e62d',
393
+ hmac: authenticatedCheckResult.mac,
394
+ },
395
+ applyResult: {
396
+ input: applyResult,
397
+ canonicalSha256: 'e2c0c1e9f8cf7892b077580a41658c95e09b6a190266b5b8e75a46244f32fe6d',
398
+ authenticatedInput: authenticatedApplyResult,
399
+ authenticatedCanonicalSha256:
400
+ 'dcf178cbcb59805517bee0f15ea95abec36bdae5508ead497c99acaccd2d314d',
401
+ hmac: authenticatedApplyResult.mac,
402
+ },
403
+ stableOutcome: {
404
+ input: stableOutcome,
405
+ canonicalSha256: 'ee9f3c7a270ee9bd72778e86376c40407ab47b599552e15c60838f3ab100c818',
406
+ authenticatedInput: authenticatedStableOutcome,
407
+ authenticatedCanonicalSha256:
408
+ '985df2f46389cb4afa7b37c1f005a15869faae8ee6e010a249d47edf39819ee9',
409
+ hmac: authenticatedStableOutcome.mac,
410
+ },
411
+ scratchReceipt: {
412
+ input: scratchReceipt,
413
+ canonicalSha256: '83a9b1ea56ed3042dee608c853dd896a692934cc4d816ed816f42af7a5902b11',
414
+ hmac: scratchReceipt.mac,
415
+ },
416
+ productionReceipt: {
417
+ input: productionReceipt,
418
+ canonicalSha256: '9b4221bfd6335ad6f0095151f778933567a916e0691fc56c40893f2cb44f1a50',
419
+ hmac: productionReceipt.mac,
420
+ },
421
+ });