@xyo-network/chain-sdk 5.3.0 → 5.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/modules/analyze/ChainHeadSelector.d.ts +47 -8
- package/dist/browser/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/browser/modules/analyze/blockTime.d.ts +92 -0
- package/dist/browser/modules/analyze/blockTime.d.ts.map +1 -0
- package/dist/browser/modules/analyze/index.d.ts +1 -0
- package/dist/browser/modules/analyze/index.d.ts.map +1 -1
- package/dist/browser/modules/modules/diviners/index.d.ts +0 -1
- package/dist/browser/modules/modules/diviners/index.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts +15 -2
- package/dist/browser/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map +1 -1
- package/dist/browser/modules/services/implementation/processPendingBlocks.d.ts +10 -3
- package/dist/browser/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +22 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/browser/modules/validation/block/validators/index.d.ts +0 -1
- package/dist/browser/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map +1 -1
- package/dist/browser/modules/wrappers/block/HydratedBlock.d.ts.map +1 -1
- package/dist/neutral/analyze.mjs +166 -10
- package/dist/neutral/analyze.mjs.map +3 -3
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts +47 -8
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/neutral/modules/analyze/blockTime.d.ts +92 -0
- package/dist/neutral/modules/analyze/blockTime.d.ts.map +1 -0
- package/dist/neutral/modules/analyze/index.d.ts +1 -0
- package/dist/neutral/modules/analyze/index.d.ts.map +1 -1
- package/dist/neutral/modules/modules/diviners/index.d.ts +0 -1
- package/dist/neutral/modules/modules/diviners/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts +15 -2
- package/dist/neutral/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map +1 -1
- package/dist/neutral/modules/services/implementation/processPendingBlocks.d.ts +10 -3
- package/dist/neutral/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +22 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/neutral/modules/validation/block/validators/index.d.ts +0 -1
- package/dist/neutral/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map +1 -1
- package/dist/neutral/modules/wrappers/block/HydratedBlock.d.ts.map +1 -1
- package/dist/neutral/modules.mjs +25 -100
- package/dist/neutral/modules.mjs.map +4 -4
- package/dist/neutral/protocol.mjs +1 -1
- package/dist/neutral/protocol.mjs.map +2 -2
- package/dist/neutral/services.mjs +40 -9
- package/dist/neutral/services.mjs.map +2 -2
- package/dist/neutral/validation.mjs +84 -106
- package/dist/neutral/validation.mjs.map +4 -4
- package/dist/neutral/wrappers.mjs +2 -1
- package/dist/neutral/wrappers.mjs.map +2 -2
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts +47 -8
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/node/modules/analyze/blockTime.d.ts +92 -0
- package/dist/node/modules/analyze/blockTime.d.ts.map +1 -0
- package/dist/node/modules/analyze/index.d.ts +1 -0
- package/dist/node/modules/analyze/index.d.ts.map +1 -1
- package/dist/node/modules/modules/diviners/index.d.ts +0 -1
- package/dist/node/modules/modules/diviners/index.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts +15 -2
- package/dist/node/modules/protocol/block/createProducerChainStakeIntentTransaction.d.ts.map +1 -1
- package/dist/node/modules/services/implementation/processPendingBlocks.d.ts +10 -3
- package/dist/node/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +22 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/node/modules/validation/block/validators/index.d.ts +0 -1
- package/dist/node/modules/validation/block/validators/index.d.ts.map +1 -1
- package/dist/node/modules/validation/elevatedPayload/payloads/validateClaimInBlock.d.ts.map +1 -1
- package/dist/node/modules/wrappers/block/HydratedBlock.d.ts.map +1 -1
- package/package.json +24 -25
- package/dist/browser/modules/modules/diviners/BlockValidationDiviner.d.ts +0 -38
- package/dist/browser/modules/modules/diviners/BlockValidationDiviner.d.ts.map +0 -1
- package/dist/browser/modules/validation/block/validators/JsonSchema.d.ts +0 -4
- package/dist/browser/modules/validation/block/validators/JsonSchema.d.ts.map +0 -1
- package/dist/neutral/modules/modules/diviners/BlockValidationDiviner.d.ts +0 -38
- package/dist/neutral/modules/modules/diviners/BlockValidationDiviner.d.ts.map +0 -1
- package/dist/neutral/modules/validation/block/validators/JsonSchema.d.ts +0 -4
- package/dist/neutral/modules/validation/block/validators/JsonSchema.d.ts.map +0 -1
- package/dist/node/modules/modules/diviners/BlockValidationDiviner.d.ts +0 -38
- package/dist/node/modules/modules/diviners/BlockValidationDiviner.d.ts.map +0 -1
- package/dist/node/modules/validation/block/validators/JsonSchema.d.ts +0 -4
- package/dist/node/modules/validation/block/validators/JsonSchema.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/modules/validation/block/validateBlock.ts
|
|
2
|
-
import { ZERO_HASH as
|
|
3
|
-
import { BlockValidationError as
|
|
2
|
+
import { ZERO_HASH as ZERO_HASH5 } from "@ariestools/sdk";
|
|
3
|
+
import { BlockValidationError as BlockValidationError5 } from "@xyo-network/xl1-sdk";
|
|
4
4
|
|
|
5
5
|
// src/modules/validation/block/validators/AllowedPayloadSchemas.ts
|
|
6
6
|
import { ZERO_HASH } from "@ariestools/sdk";
|
|
@@ -90,60 +90,27 @@ var BlockFieldsValidator = (context, block, chainId) => {
|
|
|
90
90
|
return errors;
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
// src/modules/validation/block/validators/JsonSchema.ts
|
|
94
|
-
import { ZERO_HASH as ZERO_HASH4 } from "@ariestools/sdk";
|
|
95
|
-
import { BlockBoundWitnessWithStorageMetaJsonSchema, BlockValidationError as BlockValidationError4 } from "@xyo-network/xl1-sdk";
|
|
96
|
-
import { Ajv } from "ajv";
|
|
97
|
-
var BlockJsonSchemaValidator = (jsonSchema = BlockBoundWitnessWithStorageMetaJsonSchema) => {
|
|
98
|
-
const ajv2 = new Ajv({ allErrors: true, strict: true });
|
|
99
|
-
const validate = ajv2.compile(jsonSchema);
|
|
100
|
-
return async (context, block) => {
|
|
101
|
-
const errors = [];
|
|
102
|
-
try {
|
|
103
|
-
await validate(block);
|
|
104
|
-
if ((validate.errors ?? []).length > 0) {
|
|
105
|
-
const error2 = new BlockValidationError4(
|
|
106
|
-
block?._hash ?? ZERO_HASH4,
|
|
107
|
-
block,
|
|
108
|
-
`failed JSON schema validation: ${ajv2.errorsText(validate.errors, { separator: "\n" })}`
|
|
109
|
-
);
|
|
110
|
-
error2.cause = validate.errors;
|
|
111
|
-
errors.push(error2);
|
|
112
|
-
}
|
|
113
|
-
} catch (ex) {
|
|
114
|
-
const error2 = new BlockValidationError4(
|
|
115
|
-
block?._hash ?? ZERO_HASH4,
|
|
116
|
-
block,
|
|
117
|
-
`validation excepted: ${String(ex)}`
|
|
118
|
-
);
|
|
119
|
-
error2.cause = ex;
|
|
120
|
-
errors.push(error2);
|
|
121
|
-
}
|
|
122
|
-
return errors;
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
|
|
126
93
|
// src/modules/validation/block/validators/PreviousHash.ts
|
|
127
|
-
import { isHash, ZERO_HASH as
|
|
128
|
-
import { BlockValidationError as
|
|
94
|
+
import { isHash, ZERO_HASH as ZERO_HASH4 } from "@ariestools/sdk";
|
|
95
|
+
import { BlockValidationError as BlockValidationError4 } from "@xyo-network/xl1-sdk";
|
|
129
96
|
var BlockPreviousHashValidator = (context, block) => {
|
|
130
97
|
const errors = [];
|
|
131
98
|
try {
|
|
132
99
|
const blockNumber = block.block;
|
|
133
100
|
if (blockNumber > 0n) {
|
|
134
101
|
if (!isHash(block.previous)) {
|
|
135
|
-
errors.push(new
|
|
102
|
+
errors.push(new BlockValidationError4(block?._hash ?? ZERO_HASH4, block, "previous hash is missing or invalid"));
|
|
136
103
|
}
|
|
137
104
|
} else if (blockNumber === 0) {
|
|
138
105
|
if (block.previous !== null) {
|
|
139
|
-
errors.push(new
|
|
106
|
+
errors.push(new BlockValidationError4(block?._hash ?? ZERO_HASH4, block, "previous hash should not be set"));
|
|
140
107
|
}
|
|
141
108
|
} else {
|
|
142
|
-
errors.push(new
|
|
109
|
+
errors.push(new BlockValidationError4(block?._hash ?? ZERO_HASH4, block, "invalid block number"));
|
|
143
110
|
}
|
|
144
111
|
} catch (ex) {
|
|
145
|
-
const error2 = new
|
|
146
|
-
block?._hash ??
|
|
112
|
+
const error2 = new BlockValidationError4(
|
|
113
|
+
block?._hash ?? ZERO_HASH4,
|
|
147
114
|
block,
|
|
148
115
|
`Failed BlockPreviousHashValidator: ${String(ex)}`
|
|
149
116
|
);
|
|
@@ -168,21 +135,21 @@ var validateBlock = async (context, block, chainId, additionalValidators = []) =
|
|
|
168
135
|
errors.push(...await Promise.resolve(validator(context, block, chainId)));
|
|
169
136
|
}
|
|
170
137
|
} catch (ex) {
|
|
171
|
-
errors.push(new
|
|
138
|
+
errors.push(new BlockValidationError5(block?._hash ?? ZERO_HASH5, block, "validation excepted", ex));
|
|
172
139
|
}
|
|
173
140
|
return errors;
|
|
174
141
|
};
|
|
175
142
|
|
|
176
143
|
// src/modules/validation/hydratedBlock/validateHydratedBlock.ts
|
|
177
|
-
import { ZERO_HASH as
|
|
144
|
+
import { ZERO_HASH as ZERO_HASH24 } from "@ariestools/sdk";
|
|
178
145
|
import { BoundWitnessReferencesValidator, HydratedBlockValidationError as HydratedBlockValidationError3 } from "@xyo-network/xl1-sdk";
|
|
179
146
|
|
|
180
147
|
// src/modules/validation/hydratedBlock/validators/Payloads.ts
|
|
181
|
-
import { ZERO_HASH as
|
|
148
|
+
import { ZERO_HASH as ZERO_HASH22 } from "@ariestools/sdk";
|
|
182
149
|
import { HydratedBlockValidationError } from "@xyo-network/xl1-sdk";
|
|
183
150
|
|
|
184
151
|
// src/modules/validation/elevatedPayload/validatePayloadInBlock.ts
|
|
185
|
-
import { ZERO_HASH as
|
|
152
|
+
import { ZERO_HASH as ZERO_HASH21 } from "@ariestools/sdk";
|
|
186
153
|
import { BoundWitnessSchema as BoundWitnessSchema2, SchemaSchema } from "@xyo-network/sdk";
|
|
187
154
|
import {
|
|
188
155
|
BridgeDestinationObservationSchema,
|
|
@@ -293,7 +260,7 @@ async function validateSlashPayloadInBlock(context, payload, block, identityFunc
|
|
|
293
260
|
}
|
|
294
261
|
|
|
295
262
|
// src/modules/validation/elevatedPayload/lib/validateTransactionInBlock.ts
|
|
296
|
-
import { ZERO_HASH as
|
|
263
|
+
import { ZERO_HASH as ZERO_HASH6 } from "@ariestools/sdk";
|
|
297
264
|
import { isHashMeta as isHashMeta2 } from "@xyo-network/sdk";
|
|
298
265
|
import {
|
|
299
266
|
BoundWitnessSignaturesValidator,
|
|
@@ -333,7 +300,7 @@ var validateTransactionInBlock = async (context, payload, block) => {
|
|
|
333
300
|
errors.push(new InBlockPayloadValidationError3(payload._hash, block, payload, "Payload failed isTransactionBoundWitness or isHashMeta"));
|
|
334
301
|
}
|
|
335
302
|
} catch (ex) {
|
|
336
|
-
errors.push(new InBlockPayloadValidationError3(payload._hash ??
|
|
303
|
+
errors.push(new InBlockPayloadValidationError3(payload._hash ?? ZERO_HASH6, block, payload, `validation excepted: ${String(ex)}`, ex));
|
|
337
304
|
}
|
|
338
305
|
return errors;
|
|
339
306
|
};
|
|
@@ -359,7 +326,7 @@ var validateTypedPayloadInBlock = async (context, payload, block, identityFuncti
|
|
|
359
326
|
};
|
|
360
327
|
|
|
361
328
|
// src/modules/validation/elevatedPayload/payloads/validateBridgeDestinationObservationInBlock.ts
|
|
362
|
-
import { ZERO_HASH as
|
|
329
|
+
import { ZERO_HASH as ZERO_HASH7 } from "@ariestools/sdk";
|
|
363
330
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError4, isBridgeDestinationObservation } from "@xyo-network/xl1-sdk";
|
|
364
331
|
var validateBridgeDestinationObservationInBlock = async (context, payload, block) => {
|
|
365
332
|
const errors = [];
|
|
@@ -370,7 +337,7 @@ var validateBridgeDestinationObservationInBlock = async (context, payload, block
|
|
|
370
337
|
}
|
|
371
338
|
} catch (ex) {
|
|
372
339
|
errors.push(new InBlockPayloadValidationError4(
|
|
373
|
-
block?.[0]?._hash ??
|
|
340
|
+
block?.[0]?._hash ?? ZERO_HASH7,
|
|
374
341
|
block,
|
|
375
342
|
payload,
|
|
376
343
|
`Failed validateBridgeObservationInBlock: ${String(ex)}`,
|
|
@@ -381,7 +348,7 @@ var validateBridgeDestinationObservationInBlock = async (context, payload, block
|
|
|
381
348
|
};
|
|
382
349
|
|
|
383
350
|
// src/modules/validation/elevatedPayload/payloads/validateBridgeIntentInBlock.ts
|
|
384
|
-
import { ZERO_HASH as
|
|
351
|
+
import { ZERO_HASH as ZERO_HASH8 } from "@ariestools/sdk";
|
|
385
352
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError5, isBridgeIntent } from "@xyo-network/xl1-sdk";
|
|
386
353
|
var validateBridgeIntentInBlock = async (context, payload, block) => {
|
|
387
354
|
const errors = [];
|
|
@@ -392,7 +359,7 @@ var validateBridgeIntentInBlock = async (context, payload, block) => {
|
|
|
392
359
|
}
|
|
393
360
|
} catch (ex) {
|
|
394
361
|
errors.push(new InBlockPayloadValidationError5(
|
|
395
|
-
block?.[0]?._hash ??
|
|
362
|
+
block?.[0]?._hash ?? ZERO_HASH8,
|
|
396
363
|
block,
|
|
397
364
|
payload,
|
|
398
365
|
`Failed validateBridgeIntentInBlock: ${String(ex)}`,
|
|
@@ -403,7 +370,7 @@ var validateBridgeIntentInBlock = async (context, payload, block) => {
|
|
|
403
370
|
};
|
|
404
371
|
|
|
405
372
|
// src/modules/validation/elevatedPayload/payloads/validateBridgeSourceObservationInBlock.ts
|
|
406
|
-
import { ZERO_HASH as
|
|
373
|
+
import { ZERO_HASH as ZERO_HASH9 } from "@ariestools/sdk";
|
|
407
374
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError6, isBridgeSourceObservation } from "@xyo-network/xl1-sdk";
|
|
408
375
|
var validateBridgeSourceObservationInBlock = async (context, payload, block) => {
|
|
409
376
|
const errors = [];
|
|
@@ -414,7 +381,7 @@ var validateBridgeSourceObservationInBlock = async (context, payload, block) =>
|
|
|
414
381
|
}
|
|
415
382
|
} catch (ex) {
|
|
416
383
|
errors.push(new InBlockPayloadValidationError6(
|
|
417
|
-
block?.[0]?._hash ??
|
|
384
|
+
block?.[0]?._hash ?? ZERO_HASH9,
|
|
418
385
|
block,
|
|
419
386
|
payload,
|
|
420
387
|
`Failed validateBridgeObservationInBlock: ${String(ex)}`,
|
|
@@ -425,7 +392,7 @@ var validateBridgeSourceObservationInBlock = async (context, payload, block) =>
|
|
|
425
392
|
};
|
|
426
393
|
|
|
427
394
|
// src/modules/validation/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts
|
|
428
|
-
import { ZERO_HASH as
|
|
395
|
+
import { ZERO_HASH as ZERO_HASH10 } from "@ariestools/sdk";
|
|
429
396
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError7, isChainStakeIntent } from "@xyo-network/xl1-sdk";
|
|
430
397
|
var validateChainStakeIntentInBlock = async (context, payload, block) => {
|
|
431
398
|
const errors = [];
|
|
@@ -436,7 +403,7 @@ var validateChainStakeIntentInBlock = async (context, payload, block) => {
|
|
|
436
403
|
}
|
|
437
404
|
} catch (ex) {
|
|
438
405
|
errors.push(new InBlockPayloadValidationError7(
|
|
439
|
-
block[0]?._hash ??
|
|
406
|
+
block[0]?._hash ?? ZERO_HASH10,
|
|
440
407
|
block,
|
|
441
408
|
payload,
|
|
442
409
|
`validation excepted: ${String(ex)}`,
|
|
@@ -447,22 +414,35 @@ var validateChainStakeIntentInBlock = async (context, payload, block) => {
|
|
|
447
414
|
};
|
|
448
415
|
|
|
449
416
|
// src/modules/validation/elevatedPayload/payloads/validateClaimInBlock.ts
|
|
450
|
-
import { ZERO_HASH as
|
|
417
|
+
import { HashRegEx, ZERO_HASH as ZERO_HASH11 } from "@ariestools/sdk";
|
|
451
418
|
import { PayloadBuilder } from "@xyo-network/sdk";
|
|
452
419
|
import {
|
|
453
|
-
ClaimPayloadJsonSchema,
|
|
454
420
|
ClaimSchema,
|
|
455
421
|
ELEVATE_OPCODE as ELEVATE_OPCODE2,
|
|
456
422
|
InBlockPayloadValidationError as InBlockPayloadValidationError8,
|
|
457
423
|
isClaimPayload,
|
|
458
424
|
isTransactionBoundWitnessWithHashMeta as isTransactionBoundWitnessWithHashMeta2
|
|
459
425
|
} from "@xyo-network/xl1-sdk";
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
426
|
+
var CLAIM_FIELDS = /* @__PURE__ */ new Set(["schema", "hashes", "source", "subject", "$version", "$sources"]);
|
|
427
|
+
function validateStrictClaimFields(claim) {
|
|
428
|
+
const errors = Object.keys(claim).filter((field) => !CLAIM_FIELDS.has(field)).map((field) => `Unknown Claim field ${field}`);
|
|
429
|
+
const sources = "$sources" in claim ? claim.$sources : void 0;
|
|
430
|
+
if (sources !== void 0) {
|
|
431
|
+
if (Array.isArray(sources)) {
|
|
432
|
+
for (const [index, source] of sources.entries()) {
|
|
433
|
+
if (typeof source !== "string" || !HashRegEx.test(source)) {
|
|
434
|
+
errors.push(`Claim $sources/${index} must be a hash`);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
} else {
|
|
438
|
+
errors.push("Claim $sources must be an array of hashes");
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return errors;
|
|
442
|
+
}
|
|
463
443
|
function claimError(payload, block, message, cause) {
|
|
464
444
|
return new InBlockPayloadValidationError8(
|
|
465
|
-
payload._hash ?? block[0]?._hash ??
|
|
445
|
+
payload._hash ?? block[0]?._hash ?? ZERO_HASH11,
|
|
466
446
|
block,
|
|
467
447
|
payload,
|
|
468
448
|
message,
|
|
@@ -542,10 +522,9 @@ var validateClaimInBlock = async (_context, payload, block) => {
|
|
|
542
522
|
if (canonicalPayload.schema !== ClaimSchema || !isClaimPayload(canonicalPayload)) {
|
|
543
523
|
return [claimError(payload, block, "Claim failed its complete payload identity check")];
|
|
544
524
|
}
|
|
545
|
-
const
|
|
546
|
-
if (
|
|
547
|
-
|
|
548
|
-
return [claimError(payload, block, `Claim failed strict JSON schema validation: ${details}`, validateClaimJsonSchema.errors)];
|
|
525
|
+
const strictErrors = validateStrictClaimFields(canonicalPayload);
|
|
526
|
+
if (strictErrors.length > 0) {
|
|
527
|
+
return [claimError(payload, block, `Claim failed strict payload validation: ${strictErrors.join("; ")}`, strictErrors)];
|
|
549
528
|
}
|
|
550
529
|
const canonicalHash = await PayloadBuilder.hash(canonicalPayload);
|
|
551
530
|
if (canonicalHash !== payload._hash) {
|
|
@@ -567,7 +546,7 @@ var validateClaimInBlock = async (_context, payload, block) => {
|
|
|
567
546
|
};
|
|
568
547
|
|
|
569
548
|
// src/modules/validation/elevatedPayload/payloads/validateHashInBlock.ts
|
|
570
|
-
import { ZERO_HASH as
|
|
549
|
+
import { ZERO_HASH as ZERO_HASH12 } from "@ariestools/sdk";
|
|
571
550
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError9, isHashPayload } from "@xyo-network/xl1-sdk";
|
|
572
551
|
var validateHashInBlock = async (context, payload, block) => {
|
|
573
552
|
const errors = [];
|
|
@@ -578,7 +557,7 @@ var validateHashInBlock = async (context, payload, block) => {
|
|
|
578
557
|
}
|
|
579
558
|
} catch (ex) {
|
|
580
559
|
errors.push(new InBlockPayloadValidationError9(
|
|
581
|
-
block?.[0]?._hash ??
|
|
560
|
+
block?.[0]?._hash ?? ZERO_HASH12,
|
|
582
561
|
block,
|
|
583
562
|
payload,
|
|
584
563
|
`validation excepted: ${String(ex)}`,
|
|
@@ -589,7 +568,7 @@ var validateHashInBlock = async (context, payload, block) => {
|
|
|
589
568
|
};
|
|
590
569
|
|
|
591
570
|
// src/modules/validation/elevatedPayload/payloads/validateSchemaInBlock.ts
|
|
592
|
-
import { ZERO_HASH as
|
|
571
|
+
import { ZERO_HASH as ZERO_HASH13 } from "@ariestools/sdk";
|
|
593
572
|
import { isSchemaPayload } from "@xyo-network/sdk";
|
|
594
573
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError10 } from "@xyo-network/xl1-sdk";
|
|
595
574
|
var validateSchemaInBlock = async (context, payload, block) => {
|
|
@@ -601,7 +580,7 @@ var validateSchemaInBlock = async (context, payload, block) => {
|
|
|
601
580
|
}
|
|
602
581
|
} catch (ex) {
|
|
603
582
|
errors.push(new InBlockPayloadValidationError10(
|
|
604
|
-
block?.[0]?._hash ??
|
|
583
|
+
block?.[0]?._hash ?? ZERO_HASH13,
|
|
605
584
|
block,
|
|
606
585
|
payload,
|
|
607
586
|
`Failed validateSchemaInBlock: ${String(ex)}`,
|
|
@@ -612,7 +591,7 @@ var validateSchemaInBlock = async (context, payload, block) => {
|
|
|
612
591
|
};
|
|
613
592
|
|
|
614
593
|
// src/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.ts
|
|
615
|
-
import { ZERO_HASH as
|
|
594
|
+
import { ZERO_HASH as ZERO_HASH14 } from "@ariestools/sdk";
|
|
616
595
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError11, isSlashAdjudication } from "@xyo-network/xl1-sdk";
|
|
617
596
|
var validateSlashAdjudicationInBlock = async (context, payload, block) => {
|
|
618
597
|
const errors = [];
|
|
@@ -626,7 +605,7 @@ var validateSlashAdjudicationInBlock = async (context, payload, block) => {
|
|
|
626
605
|
}
|
|
627
606
|
} catch (ex) {
|
|
628
607
|
errors.push(new InBlockPayloadValidationError11(
|
|
629
|
-
block[0]?._hash ??
|
|
608
|
+
block[0]?._hash ?? ZERO_HASH14,
|
|
630
609
|
block,
|
|
631
610
|
payload,
|
|
632
611
|
`validation excepted: ${String(ex)}`,
|
|
@@ -637,7 +616,7 @@ var validateSlashAdjudicationInBlock = async (context, payload, block) => {
|
|
|
637
616
|
};
|
|
638
617
|
|
|
639
618
|
// src/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.ts
|
|
640
|
-
import { ZERO_HASH as
|
|
619
|
+
import { ZERO_HASH as ZERO_HASH15 } from "@ariestools/sdk";
|
|
641
620
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError12, isSlashChallenge } from "@xyo-network/xl1-sdk";
|
|
642
621
|
var validateSlashChallengeInBlock = async (context, payload, block) => {
|
|
643
622
|
const errors = [];
|
|
@@ -648,7 +627,7 @@ var validateSlashChallengeInBlock = async (context, payload, block) => {
|
|
|
648
627
|
}
|
|
649
628
|
} catch (ex) {
|
|
650
629
|
errors.push(new InBlockPayloadValidationError12(
|
|
651
|
-
block[0]?._hash ??
|
|
630
|
+
block[0]?._hash ?? ZERO_HASH15,
|
|
652
631
|
block,
|
|
653
632
|
payload,
|
|
654
633
|
`validation excepted: ${String(ex)}`,
|
|
@@ -659,7 +638,7 @@ var validateSlashChallengeInBlock = async (context, payload, block) => {
|
|
|
659
638
|
};
|
|
660
639
|
|
|
661
640
|
// src/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.ts
|
|
662
|
-
import { ZERO_HASH as
|
|
641
|
+
import { ZERO_HASH as ZERO_HASH16 } from "@ariestools/sdk";
|
|
663
642
|
import {
|
|
664
643
|
derivedReceiveAddress,
|
|
665
644
|
InBlockPayloadValidationError as InBlockPayloadValidationError13,
|
|
@@ -707,7 +686,7 @@ var validateSlashCommitInBlock = async (context, payload, block) => {
|
|
|
707
686
|
}
|
|
708
687
|
} catch (ex) {
|
|
709
688
|
errors.push(new InBlockPayloadValidationError13(
|
|
710
|
-
block[0]?._hash ??
|
|
689
|
+
block[0]?._hash ?? ZERO_HASH16,
|
|
711
690
|
block,
|
|
712
691
|
payload,
|
|
713
692
|
`validation excepted: ${String(ex)}`,
|
|
@@ -718,7 +697,7 @@ var validateSlashCommitInBlock = async (context, payload, block) => {
|
|
|
718
697
|
};
|
|
719
698
|
|
|
720
699
|
// src/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.ts
|
|
721
|
-
import { ZERO_HASH as
|
|
700
|
+
import { ZERO_HASH as ZERO_HASH17 } from "@ariestools/sdk";
|
|
722
701
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError14, isSlashEvidence } from "@xyo-network/xl1-sdk";
|
|
723
702
|
var validateSlashEvidenceInBlock = async (context, payload, block) => {
|
|
724
703
|
const errors = [];
|
|
@@ -729,7 +708,7 @@ var validateSlashEvidenceInBlock = async (context, payload, block) => {
|
|
|
729
708
|
}
|
|
730
709
|
} catch (ex) {
|
|
731
710
|
errors.push(new InBlockPayloadValidationError14(
|
|
732
|
-
block[0]?._hash ??
|
|
711
|
+
block[0]?._hash ?? ZERO_HASH17,
|
|
733
712
|
block,
|
|
734
713
|
payload,
|
|
735
714
|
`validation excepted: ${String(ex)}`,
|
|
@@ -740,7 +719,7 @@ var validateSlashEvidenceInBlock = async (context, payload, block) => {
|
|
|
740
719
|
};
|
|
741
720
|
|
|
742
721
|
// src/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.ts
|
|
743
|
-
import { ZERO_HASH as
|
|
722
|
+
import { ZERO_HASH as ZERO_HASH18 } from "@ariestools/sdk";
|
|
744
723
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk";
|
|
745
724
|
import {
|
|
746
725
|
InBlockPayloadValidationError as InBlockPayloadValidationError15,
|
|
@@ -791,7 +770,7 @@ var validateSlashRequestInBlock = async (context, payload, block) => {
|
|
|
791
770
|
}
|
|
792
771
|
} catch (ex) {
|
|
793
772
|
errors.push(new InBlockPayloadValidationError15(
|
|
794
|
-
block[0]?._hash ??
|
|
773
|
+
block[0]?._hash ?? ZERO_HASH18,
|
|
795
774
|
block,
|
|
796
775
|
payload,
|
|
797
776
|
`validation excepted: ${String(ex)}`,
|
|
@@ -802,7 +781,7 @@ var validateSlashRequestInBlock = async (context, payload, block) => {
|
|
|
802
781
|
};
|
|
803
782
|
|
|
804
783
|
// src/modules/validation/elevatedPayload/payloads/validateTimeInBlock.ts
|
|
805
|
-
import { ZERO_HASH as
|
|
784
|
+
import { ZERO_HASH as ZERO_HASH19 } from "@ariestools/sdk";
|
|
806
785
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError16, isTimePayload } from "@xyo-network/xl1-sdk";
|
|
807
786
|
var validateTimeInBlock = async (context, payload, block) => {
|
|
808
787
|
const errors = [];
|
|
@@ -813,7 +792,7 @@ var validateTimeInBlock = async (context, payload, block) => {
|
|
|
813
792
|
}
|
|
814
793
|
} catch (ex) {
|
|
815
794
|
errors.push(new InBlockPayloadValidationError16(
|
|
816
|
-
block?.[0]?._hash ??
|
|
795
|
+
block?.[0]?._hash ?? ZERO_HASH19,
|
|
817
796
|
block,
|
|
818
797
|
payload,
|
|
819
798
|
`Failed validateTimeInBlock: ${String(ex)}`,
|
|
@@ -824,7 +803,7 @@ var validateTimeInBlock = async (context, payload, block) => {
|
|
|
824
803
|
};
|
|
825
804
|
|
|
826
805
|
// src/modules/validation/elevatedPayload/payloads/validateTransferInBlock.ts
|
|
827
|
-
import { ZERO_HASH as
|
|
806
|
+
import { ZERO_HASH as ZERO_HASH20 } from "@ariestools/sdk";
|
|
828
807
|
import { InBlockPayloadValidationError as InBlockPayloadValidationError17, isTransferPayload as isTransferPayload2 } from "@xyo-network/xl1-sdk";
|
|
829
808
|
var validateTransferInBlock = async (context, payload, block) => {
|
|
830
809
|
const errors = [];
|
|
@@ -835,7 +814,7 @@ var validateTransferInBlock = async (context, payload, block) => {
|
|
|
835
814
|
}
|
|
836
815
|
} catch (ex) {
|
|
837
816
|
errors.push(new InBlockPayloadValidationError17(
|
|
838
|
-
block?.[0]?._hash ??
|
|
817
|
+
block?.[0]?._hash ?? ZERO_HASH20,
|
|
839
818
|
block,
|
|
840
819
|
payload,
|
|
841
820
|
`Failed validateTransferInBlock: ${String(ex)}`,
|
|
@@ -870,11 +849,11 @@ var validatePayloadInBlock = async (context, payload, block) => {
|
|
|
870
849
|
if (validator) {
|
|
871
850
|
errors.push(...await validator(context, payload, block));
|
|
872
851
|
} else {
|
|
873
|
-
errors.push(new InBlockPayloadValidationError18(block?.[0]?._hash ??
|
|
852
|
+
errors.push(new InBlockPayloadValidationError18(block?.[0]?._hash ?? ZERO_HASH21, block, payload, `Unsupported payload schema: ${payload.schema}`));
|
|
874
853
|
}
|
|
875
854
|
} catch (ex) {
|
|
876
855
|
const error2 = new InBlockPayloadValidationError18(
|
|
877
|
-
block?.[0]?._hash ??
|
|
856
|
+
block?.[0]?._hash ?? ZERO_HASH21,
|
|
878
857
|
block,
|
|
879
858
|
payload,
|
|
880
859
|
`validation excepted: ${String(ex)}`,
|
|
@@ -903,7 +882,7 @@ var PayloadsInBlockValidator = async (context, [block, payloads]) => {
|
|
|
903
882
|
const payloadInBlockErrors = await validatePayloadInBlock(context, payload, [block, payloads]);
|
|
904
883
|
for (const payloadInBlockError of payloadInBlockErrors) {
|
|
905
884
|
errors.push(new HydratedBlockValidationError(
|
|
906
|
-
block?._hash ??
|
|
885
|
+
block?._hash ?? ZERO_HASH22,
|
|
907
886
|
[block, payloads],
|
|
908
887
|
`validatePayloadInBlock error: ${payloadInBlockError}`,
|
|
909
888
|
payloadInBlockError
|
|
@@ -911,15 +890,15 @@ var PayloadsInBlockValidator = async (context, [block, payloads]) => {
|
|
|
911
890
|
}
|
|
912
891
|
delete remainingPayloads[propertyKey];
|
|
913
892
|
} else {
|
|
914
|
-
errors.push(new HydratedBlockValidationError(block?._hash ??
|
|
893
|
+
errors.push(new HydratedBlockValidationError(block?._hash ?? ZERO_HASH22, [block, payloads], `missing payload ${propertyKey} ${schema}`));
|
|
915
894
|
}
|
|
916
895
|
}
|
|
917
896
|
if (Object.keys(remainingPayloads).length > 0) {
|
|
918
|
-
errors.push(new HydratedBlockValidationError(block?._hash ??
|
|
897
|
+
errors.push(new HydratedBlockValidationError(block?._hash ?? ZERO_HASH22, [block, payloads], `extra payloads ${Object.keys(payloadMap).join(", ")}`));
|
|
919
898
|
}
|
|
920
899
|
} catch (ex) {
|
|
921
900
|
errors.push(new HydratedBlockValidationError(
|
|
922
|
-
block?._hash ??
|
|
901
|
+
block?._hash ?? ZERO_HASH22,
|
|
923
902
|
[block, payloads],
|
|
924
903
|
`Failed PayloadsInBlockValidator: ${String(ex)}`,
|
|
925
904
|
ex
|
|
@@ -929,7 +908,7 @@ var PayloadsInBlockValidator = async (context, [block, payloads]) => {
|
|
|
929
908
|
};
|
|
930
909
|
|
|
931
910
|
// src/modules/validation/hydratedBlock/validators/TransactionTransfersInBlock.ts
|
|
932
|
-
import { ZERO_HASH as
|
|
911
|
+
import { ZERO_HASH as ZERO_HASH23 } from "@ariestools/sdk";
|
|
933
912
|
import { isHashMeta as isHashMeta4 } from "@xyo-network/sdk";
|
|
934
913
|
import { HydratedBlockValidationError as HydratedBlockValidationError2, isTransactionBoundWitness as isTransactionBoundWitness3 } from "@xyo-network/xl1-sdk";
|
|
935
914
|
function TransactionTransfersInBlockValidatorFactory(transfersValidator) {
|
|
@@ -947,7 +926,7 @@ function TransactionTransfersInBlockValidatorFactory(transfersValidator) {
|
|
|
947
926
|
}
|
|
948
927
|
} catch (ex) {
|
|
949
928
|
errors.push(new HydratedBlockValidationError2(
|
|
950
|
-
block?._hash ??
|
|
929
|
+
block?._hash ?? ZERO_HASH23,
|
|
951
930
|
hydratedBlock,
|
|
952
931
|
`Failed TransactionTransfersInBlockValidator: ${String(ex)}`,
|
|
953
932
|
ex
|
|
@@ -983,7 +962,7 @@ var validateHydratedBlock = async (context, hydratedBlock, chainIdAtBlockNumber,
|
|
|
983
962
|
}
|
|
984
963
|
} catch (ex) {
|
|
985
964
|
errors.push(new HydratedBlockValidationError3(
|
|
986
|
-
hydratedBlock?.[0]?._hash ??
|
|
965
|
+
hydratedBlock?.[0]?._hash ?? ZERO_HASH24,
|
|
987
966
|
hydratedBlock,
|
|
988
967
|
`Failed validateHydratedBlock: ${String(ex)}`,
|
|
989
968
|
ex
|
|
@@ -993,11 +972,11 @@ var validateHydratedBlock = async (context, hydratedBlock, chainIdAtBlockNumber,
|
|
|
993
972
|
};
|
|
994
973
|
|
|
995
974
|
// src/modules/validation/hydratedBlockState/validateHydratedBlockState.ts
|
|
996
|
-
import { spanRootAsync as spanRootAsync2, ZERO_HASH as
|
|
975
|
+
import { spanRootAsync as spanRootAsync2, ZERO_HASH as ZERO_HASH26 } from "@ariestools/sdk";
|
|
997
976
|
import { HydratedBlockStateValidationError as HydratedBlockStateValidationError2 } from "@xyo-network/xl1-sdk";
|
|
998
977
|
|
|
999
978
|
// src/modules/validation/hydratedBlockState/validators/RequiredBalance.ts
|
|
1000
|
-
import { spanRootAsync, ZERO_HASH as
|
|
979
|
+
import { spanRootAsync, ZERO_HASH as ZERO_HASH25 } from "@ariestools/sdk";
|
|
1001
980
|
import {
|
|
1002
981
|
AttoXL1,
|
|
1003
982
|
HydratedBlockStateValidationError,
|
|
@@ -1031,7 +1010,7 @@ var RequiredBalanceBlockStateValidator = async (context, block) => {
|
|
|
1031
1010
|
}
|
|
1032
1011
|
const previous = block[0].previous;
|
|
1033
1012
|
if (previous === null) return [new HydratedBlockStateValidationError(
|
|
1034
|
-
block?.[0]?._hash ??
|
|
1013
|
+
block?.[0]?._hash ?? ZERO_HASH25,
|
|
1035
1014
|
"00",
|
|
1036
1015
|
block,
|
|
1037
1016
|
"Insufficient funds because first block"
|
|
@@ -1045,7 +1024,7 @@ var RequiredBalanceBlockStateValidator = async (context, block) => {
|
|
|
1045
1024
|
if (address !== XYO_ZERO_ADDRESS && reqBalance > balance) {
|
|
1046
1025
|
const offendingTransactionHashes = offendingTransactionHashesForAddress(block, address);
|
|
1047
1026
|
errors.push(new HydratedBlockStateValidationError(
|
|
1048
|
-
block?.[0]?._hash ??
|
|
1027
|
+
block?.[0]?._hash ?? ZERO_HASH25,
|
|
1049
1028
|
chainId,
|
|
1050
1029
|
block,
|
|
1051
1030
|
`insufficient balance for ${address} ${balance} < ${reqBalance}`,
|
|
@@ -1057,7 +1036,7 @@ var RequiredBalanceBlockStateValidator = async (context, block) => {
|
|
|
1057
1036
|
}, context);
|
|
1058
1037
|
} catch (ex) {
|
|
1059
1038
|
errors.push(new HydratedBlockStateValidationError(
|
|
1060
|
-
block?.[0]?._hash ??
|
|
1039
|
+
block?.[0]?._hash ?? ZERO_HASH25,
|
|
1061
1040
|
chainId,
|
|
1062
1041
|
block,
|
|
1063
1042
|
`Failed RequiredBalanceBlockStateValidator: ${String(ex)}`,
|
|
@@ -1094,7 +1073,7 @@ var validateHydratedBlockState = async (context, hydratedBlock, additionalValida
|
|
|
1094
1073
|
}
|
|
1095
1074
|
} catch (ex) {
|
|
1096
1075
|
errors.push(new HydratedBlockStateValidationError2(
|
|
1097
|
-
hydratedBlock?.[0]?._hash ??
|
|
1076
|
+
hydratedBlock?.[0]?._hash ?? ZERO_HASH26,
|
|
1098
1077
|
chainId ?? "00",
|
|
1099
1078
|
hydratedBlock,
|
|
1100
1079
|
`Failed validateHydratedBlockState: ${String(ex)}`,
|
|
@@ -1106,11 +1085,11 @@ var validateHydratedBlockState = async (context, hydratedBlock, additionalValida
|
|
|
1106
1085
|
};
|
|
1107
1086
|
|
|
1108
1087
|
// src/modules/validation/hydratedTransactionState/validateHydratedTransactionState.ts
|
|
1109
|
-
import { spanRootAsync as spanRootAsync4, ZERO_HASH as
|
|
1088
|
+
import { spanRootAsync as spanRootAsync4, ZERO_HASH as ZERO_HASH28 } from "@ariestools/sdk";
|
|
1110
1089
|
import { HydratedTransactionValidationError as HydratedTransactionValidationError2 } from "@xyo-network/xl1-sdk";
|
|
1111
1090
|
|
|
1112
1091
|
// src/modules/validation/hydratedTransactionState/validators/RequiredBalance.ts
|
|
1113
|
-
import { spanRootAsync as spanRootAsync3, ZERO_HASH as
|
|
1092
|
+
import { spanRootAsync as spanRootAsync3, ZERO_HASH as ZERO_HASH27 } from "@ariestools/sdk";
|
|
1114
1093
|
import {
|
|
1115
1094
|
AttoXL1 as AttoXL12,
|
|
1116
1095
|
HydratedTransactionValidationError,
|
|
@@ -1135,7 +1114,7 @@ async function balanceShortfallErrors(context, tx, requiredBalances) {
|
|
|
1135
1114
|
const balance = balancesByKey[propertyKey] ?? AttoXL12(0n);
|
|
1136
1115
|
if (address !== XYO_ZERO_ADDRESS2 && reqBalance > balance) {
|
|
1137
1116
|
errors.push(new HydratedTransactionValidationError(
|
|
1138
|
-
tx?.[0]?._hash ??
|
|
1117
|
+
tx?.[0]?._hash ?? ZERO_HASH27,
|
|
1139
1118
|
tx,
|
|
1140
1119
|
`insufficient balance for ${address} ${balance} < ${reqBalance}`
|
|
1141
1120
|
));
|
|
@@ -1153,7 +1132,7 @@ var RequiredBalanceTransactionStateValidator = async (context, tx) => {
|
|
|
1153
1132
|
const gasRequired = transactionRequiredGas(tx);
|
|
1154
1133
|
if (wrapper.fees.gasLimit < gasRequired) {
|
|
1155
1134
|
errors.push(new HydratedTransactionValidationError(
|
|
1156
|
-
tx?.[0]?._hash ??
|
|
1135
|
+
tx?.[0]?._hash ?? ZERO_HASH27,
|
|
1157
1136
|
tx,
|
|
1158
1137
|
`fees.gasLimit ${wrapper.fees.gasLimit} < required gas ${gasRequired}`
|
|
1159
1138
|
));
|
|
@@ -1171,7 +1150,7 @@ var RequiredBalanceTransactionStateValidator = async (context, tx) => {
|
|
|
1171
1150
|
errors.push(...await balanceShortfallErrors(context, tx, requiredBalances));
|
|
1172
1151
|
} catch (ex) {
|
|
1173
1152
|
errors.push(new HydratedTransactionValidationError(
|
|
1174
|
-
tx?.[0]?._hash ??
|
|
1153
|
+
tx?.[0]?._hash ?? ZERO_HASH27,
|
|
1175
1154
|
tx,
|
|
1176
1155
|
`Failed RequiredBalanceTransactionStateValidator: ${String(ex)}`,
|
|
1177
1156
|
ex
|
|
@@ -1194,7 +1173,7 @@ var validateHydratedTransactionState = async (context, tx) => {
|
|
|
1194
1173
|
}
|
|
1195
1174
|
} catch (ex) {
|
|
1196
1175
|
errors.push(new HydratedTransactionValidationError2(
|
|
1197
|
-
tx?.[0]?._hash ??
|
|
1176
|
+
tx?.[0]?._hash ?? ZERO_HASH28,
|
|
1198
1177
|
tx,
|
|
1199
1178
|
`Failed validateHydratedTransactionState: ${String(ex)}`,
|
|
1200
1179
|
ex
|
|
@@ -1207,7 +1186,6 @@ export {
|
|
|
1207
1186
|
BlockAllowedPayloadSchemasValidator,
|
|
1208
1187
|
BlockBoundWitnessValidator,
|
|
1209
1188
|
BlockFieldsValidator,
|
|
1210
|
-
BlockJsonSchemaValidator,
|
|
1211
1189
|
BlockPreviousHashValidator,
|
|
1212
1190
|
PayloadsInBlockValidator,
|
|
1213
1191
|
RequiredBalanceBlockStateValidator,
|