@xyo-network/chain-validation 1.3.8 → 1.3.9
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/neutral/index.mjs +8 -8
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/block/validateBlock.d.ts +1 -1
- package/dist/types/block/validateBlock.d.ts.map +1 -1
- package/dist/types/block/validators/AllowedPayloadSchemas.d.ts +1 -1
- package/dist/types/block/validators/AllowedPayloadSchemas.d.ts.map +1 -1
- package/dist/types/block/validators/Fields.d.ts +1 -1
- package/dist/types/block/validators/Fields.d.ts.map +1 -1
- package/dist/types/block/validators/JsonSchema.d.ts +1 -1
- package/dist/types/block/validators/JsonSchema.d.ts.map +1 -1
- package/dist/types/block/validators/PreviousHash.d.ts +1 -1
- package/dist/types/block/validators/PreviousHash.d.ts.map +1 -1
- package/dist/types/boundwitness/validators/BoundWitnessReferences.d.ts +1 -1
- package/dist/types/boundwitness/validators/BoundWitnessReferences.d.ts.map +1 -1
- package/dist/types/boundwitness/validators/BoundWitnessSignatures.d.ts +1 -1
- package/dist/types/boundwitness/validators/BoundWitnessSignatures.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/isElevatedFromBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/lib/isElevatedFromBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/validateElevatedFromBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/lib/validateElevatedFromBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/validateElevatedFromTransaction.d.ts +1 -1
- package/dist/types/elevatedPayload/lib/validateElevatedFromTransaction.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/validateIncludedInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/lib/validateIncludedInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/validateTransactionInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/lib/validateTransactionInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/validateTypedPayloadInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/lib/validateTypedPayloadInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/payloads/validateChainStakeIntentInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/payloads/validateChainStakeIntentInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/payloads/validateHashInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/payloads/validateHashInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/payloads/validateSchemaInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/payloads/validateSchemaInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/payloads/validateTransferInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/payloads/validateTransferInBlock.d.ts.map +1 -1
- package/dist/types/elevatedPayload/validatePayloadInBlock.d.ts +1 -1
- package/dist/types/elevatedPayload/validatePayloadInBlock.d.ts.map +1 -1
- package/dist/types/hydratedBlock/validateHydratedBlock.d.ts +1 -1
- package/dist/types/hydratedBlock/validateHydratedBlock.d.ts.map +1 -1
- package/dist/types/hydratedBlock/validators/Payloads.d.ts +1 -1
- package/dist/types/hydratedBlock/validators/Payloads.d.ts.map +1 -1
- package/dist/types/hydratedBlockState/validateHydratedBlockState.d.ts +1 -1
- package/dist/types/hydratedBlockState/validateHydratedBlockState.d.ts.map +1 -1
- package/dist/types/hydratedBlockState/validators/RequiredBalance.d.ts +1 -1
- package/dist/types/hydratedBlockState/validators/RequiredBalance.d.ts.map +1 -1
- package/dist/types/transaction/validateTransaction.d.ts +1 -1
- package/dist/types/transaction/validateTransaction.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionDurationValidator.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionDurationValidator.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionElevationValidator.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionElevationValidator.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionFromValidator.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionFromValidator.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionGasValidator.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionGasValidator.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionJsonSchemaValidator.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionJsonSchemaValidator.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionProtocolValidator.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionProtocolValidator.d.ts.map +1 -1
- package/package.json +19 -20
- package/src/block/validateBlock.ts +1 -1
- package/src/block/validators/AllowedPayloadSchemas.ts +1 -1
- package/src/block/validators/Fields.ts +1 -1
- package/src/block/validators/JsonSchema.ts +1 -1
- package/src/block/validators/PreviousHash.ts +1 -1
- package/src/boundwitness/validators/BoundWitnessReferences.ts +1 -1
- package/src/boundwitness/validators/BoundWitnessSignatures.ts +1 -1
- package/src/elevatedPayload/lib/isElevatedFromBlock.ts +1 -1
- package/src/elevatedPayload/lib/validateElevatedFromBlock.ts +1 -1
- package/src/elevatedPayload/lib/validateElevatedFromTransaction.ts +1 -1
- package/src/elevatedPayload/lib/validateIncludedInBlock.ts +1 -1
- package/src/elevatedPayload/lib/validateTransactionInBlock.ts +2 -2
- package/src/elevatedPayload/lib/validateTypedPayloadInBlock.ts +1 -1
- package/src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts +2 -2
- package/src/elevatedPayload/payloads/validateHashInBlock.ts +2 -2
- package/src/elevatedPayload/payloads/validateSchemaInBlock.ts +1 -1
- package/src/elevatedPayload/payloads/validateTransferInBlock.ts +1 -1
- package/src/elevatedPayload/validatePayloadInBlock.ts +2 -2
- package/src/hydratedBlock/validateHydratedBlock.ts +1 -1
- package/src/hydratedBlock/validators/Payloads.ts +1 -1
- package/src/hydratedBlockState/validateHydratedBlockState.ts +1 -1
- package/src/hydratedBlockState/validators/RequiredBalance.ts +1 -1
- package/src/transaction/validateTransaction.ts +2 -2
- package/src/transaction/validators/TransactionDurationValidator.ts +1 -1
- package/src/transaction/validators/TransactionElevationValidator.ts +1 -1
- package/src/transaction/validators/TransactionFromValidator.ts +1 -1
- package/src/transaction/validators/TransactionGasValidator.ts +1 -1
- package/src/transaction/validators/TransactionJsonSchemaValidator.ts +1 -1
- package/src/transaction/validators/TransactionProtocolValidator.ts +1 -1
package/dist/neutral/index.mjs
CHANGED
|
@@ -63,7 +63,7 @@ var BoundWitnessSignaturesValidator = /* @__PURE__ */ __name(async (bw) => {
|
|
|
63
63
|
}, "BoundWitnessSignaturesValidator");
|
|
64
64
|
|
|
65
65
|
// src/block/validators/AllowedPayloadSchemas.ts
|
|
66
|
-
import { isAllowedBlockPayloadSchema } from "@xyo-network/xl1-
|
|
66
|
+
import { isAllowedBlockPayloadSchema } from "@xyo-network/xl1-protocol";
|
|
67
67
|
var BlockAllowedPayloadSchemasValidator = /* @__PURE__ */ __name((block) => {
|
|
68
68
|
const errors = [];
|
|
69
69
|
for (const schema of block.payload_schemas) {
|
|
@@ -144,10 +144,10 @@ var validateBlock = /* @__PURE__ */ __name(async (block, chainId) => {
|
|
|
144
144
|
// src/elevatedPayload/validatePayloadInBlock.ts
|
|
145
145
|
import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
|
|
146
146
|
import { SchemaSchema } from "@xyo-network/schema-payload-plugin";
|
|
147
|
-
import { ChainStakeIntentSchema, HashSchema, TransferSchema } from "@xyo-network/xl1-
|
|
147
|
+
import { ChainStakeIntentSchema, HashSchema, TransferSchema } from "@xyo-network/xl1-protocol";
|
|
148
148
|
|
|
149
149
|
// src/elevatedPayload/lib/isElevatedFromBlock.ts
|
|
150
|
-
import { isTransactionBoundWitness } from "@xyo-network/xl1-
|
|
150
|
+
import { isTransactionBoundWitness } from "@xyo-network/xl1-protocol";
|
|
151
151
|
var isElevatedFromBlock = /* @__PURE__ */ __name((payload, [, payloads]) => {
|
|
152
152
|
const txs = payloads.filter((p) => isTransactionBoundWitness(p));
|
|
153
153
|
for (const tx of txs) {
|
|
@@ -187,7 +187,7 @@ var validateElevatedFromTransaction = /* @__PURE__ */ __name((payload, block) =>
|
|
|
187
187
|
|
|
188
188
|
// src/elevatedPayload/lib/validateTransactionInBlock.ts
|
|
189
189
|
import { isStorageMeta } from "@xyo-network/payload-model";
|
|
190
|
-
import { isTransactionBoundWitness as isTransactionBoundWitness2 } from "@xyo-network/xl1-
|
|
190
|
+
import { isTransactionBoundWitness as isTransactionBoundWitness2 } from "@xyo-network/xl1-protocol";
|
|
191
191
|
var validateTransactionInBlock = /* @__PURE__ */ __name(async (payload, _block) => {
|
|
192
192
|
const errors = [];
|
|
193
193
|
if (isTransactionBoundWitness2(payload) && isStorageMeta(payload)) {
|
|
@@ -215,7 +215,7 @@ var validateTypedPayloadInBlock = /* @__PURE__ */ __name(async (payload, block,
|
|
|
215
215
|
}, "validateTypedPayloadInBlock");
|
|
216
216
|
|
|
217
217
|
// src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts
|
|
218
|
-
import { isChainStakeIntent } from "@xyo-network/xl1-
|
|
218
|
+
import { isChainStakeIntent } from "@xyo-network/xl1-protocol";
|
|
219
219
|
var validateChainStakeIntentInBlock = /* @__PURE__ */ __name(async (payload, block) => {
|
|
220
220
|
const errors = [];
|
|
221
221
|
errors.push(...await validateTypedPayloadInBlock(payload, block, isChainStakeIntent));
|
|
@@ -223,7 +223,7 @@ var validateChainStakeIntentInBlock = /* @__PURE__ */ __name(async (payload, blo
|
|
|
223
223
|
}, "validateChainStakeIntentInBlock");
|
|
224
224
|
|
|
225
225
|
// src/elevatedPayload/payloads/validateHashInBlock.ts
|
|
226
|
-
import { isHashPayload } from "@xyo-network/xl1-
|
|
226
|
+
import { isHashPayload } from "@xyo-network/xl1-protocol";
|
|
227
227
|
var validateHashInBlock = /* @__PURE__ */ __name(async (payload, block) => {
|
|
228
228
|
const errors = [];
|
|
229
229
|
errors.push(...await validateTypedPayloadInBlock(payload, block, isHashPayload));
|
|
@@ -239,7 +239,7 @@ var validateSchemaInBlock = /* @__PURE__ */ __name(async (payload, block) => {
|
|
|
239
239
|
}, "validateSchemaInBlock");
|
|
240
240
|
|
|
241
241
|
// src/elevatedPayload/payloads/validateTransferInBlock.ts
|
|
242
|
-
import { isTransfer } from "@xyo-network/xl1-
|
|
242
|
+
import { isTransfer } from "@xyo-network/xl1-protocol";
|
|
243
243
|
var validateTransferInBlock = /* @__PURE__ */ __name(async (payload, block) => {
|
|
244
244
|
const errors = [];
|
|
245
245
|
errors.push(...await validateTypedPayloadInBlock(payload, block, isTransfer));
|
|
@@ -349,7 +349,7 @@ var validateHydratedBlockState = /* @__PURE__ */ __name(async (hydratedBlock, ch
|
|
|
349
349
|
}, "validateHydratedBlockState");
|
|
350
350
|
|
|
351
351
|
// src/transaction/validateTransaction.ts
|
|
352
|
-
import { isTransactionBoundWitness as isTransactionBoundWitness3 } from "@xyo-network/xl1-
|
|
352
|
+
import { isTransactionBoundWitness as isTransactionBoundWitness3 } from "@xyo-network/xl1-protocol";
|
|
353
353
|
|
|
354
354
|
// src/transaction/validators/TransactionDurationValidator.ts
|
|
355
355
|
var TransactionDurationValidator = /* @__PURE__ */ __name(([tx]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/boundwitness/validators/BoundWitnessReferences.ts","../../src/boundwitness/validators/BoundWitnessSignatures.ts","../../src/block/validators/AllowedPayloadSchemas.ts","../../src/block/validators/Fields.ts","../../src/block/validators/JsonSchema.ts","../../src/block/validators/PreviousHash.ts","../../src/block/validateBlock.ts","../../src/elevatedPayload/validatePayloadInBlock.ts","../../src/elevatedPayload/lib/isElevatedFromBlock.ts","../../src/elevatedPayload/lib/validateElevatedFromBlock.ts","../../src/elevatedPayload/lib/validateElevatedFromTransaction.ts","../../src/elevatedPayload/lib/validateTransactionInBlock.ts","../../src/elevatedPayload/lib/validateTypedPayloadInBlock.ts","../../src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts","../../src/elevatedPayload/payloads/validateHashInBlock.ts","../../src/elevatedPayload/payloads/validateSchemaInBlock.ts","../../src/elevatedPayload/payloads/validateTransferInBlock.ts","../../src/hydratedBlock/validators/Payloads.ts","../../src/hydratedBlock/validateHydratedBlock.ts","../../src/hydratedBlockState/validators/RequiredBalance.ts","../../src/hydratedBlockState/validateHydratedBlockState.ts","../../src/transaction/validateTransaction.ts","../../src/transaction/validators/TransactionDurationValidator.ts","../../src/transaction/validators/TransactionElevationValidator.ts","../../src/transaction/validators/TransactionFromValidator.ts","../../src/transaction/validators/TransactionGasValidator.ts","../../src/transaction/validators/TransactionJsonSchemaValidator.ts","../../src/transaction/validators/TransactionProtocolValidator.ts"],"sourcesContent":["import type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport type {\n Payload,\n Schema,\n WithHashStorageMeta,\n} from '@xyo-network/payload-model'\nimport { isAnyPayload } from '@xyo-network/payload-model'\nimport type { HydratedBoundWitnessValidationFunction, HydratedBoundWitnessWithHashStorageMeta } from '@xyo-network/xl1-model'\n\nfunction getPayloadsFromPayloadArray(payloads: WithHashStorageMeta<Payload>[], hashes: Hash[]): (WithHashStorageMeta<Payload> | undefined)[] {\n return hashes.map(hash => payloads.find(payload => payload._hash === hash || payload._dataHash === hash))\n}\n\nexport const BoundWitnessReferencesValidator\n= <T extends BoundWitness = BoundWitness>(allowedSchemas?: Schema[]): HydratedBoundWitnessValidationFunction<T> => (\n [bw, payloadSet]: HydratedBoundWitnessWithHashStorageMeta<T>,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n try {\n const payloads = getPayloadsFromPayloadArray(payloadSet, bw.payload_hashes)\n if (payloads.length !== bw.payload_hashes.length) {\n errors.push(new Error('unable to locate payloads'))\n }\n\n // check if payloads are valid and if their schemas match the declared schemas\n for (let payload of payloads) {\n if (isAnyPayload(payload)) {\n const payloadHashIndex = bw.payload_hashes.indexOf(payload._hash)\n const payloadDataHashIndex = bw.payload_hashes.indexOf(payload._dataHash)\n const payloadIndex = Math.max(payloadHashIndex, payloadDataHashIndex)\n if (payloadIndex === -1) {\n errors.push(new Error('payload hash not found'))\n }\n\n const declaredSchema = bw.payload_schemas[payloadIndex]\n if (declaredSchema !== payload.schema) {\n errors.push(new Error('mismatched schema'))\n }\n\n if (allowedSchemas && !allowedSchemas.includes(payload.schema)) {\n errors.push(new Error(`disallowed schema [${payload.schema}]`))\n }\n } else {\n errors.push(new Error('invalid payload'))\n }\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n","import { toArrayBuffer } from '@xylabs/arraybuffer'\nimport type { Address } from '@xylabs/hex'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport type { BoundWitnessValidationFunction } from '@xyo-network/xl1-model'\n\nexport const BoundWitnessSignaturesValidator: BoundWitnessValidationFunction = async (\n bw: BoundWitness,\n): Promise<Error[]> => {\n const errors: Error[] = []\n try {\n const dataHash = await BoundWitnessBuilder.dataHash(bw)\n const results: [Address, Error[]][] = await Promise.all(bw.addresses.map(async (address, index) => {\n return [address, await BoundWitnessValidator.validateSignature(toArrayBuffer(dataHash), toArrayBuffer(address), toArrayBuffer(bw.$signatures[index]))]\n }))\n for (const [, bwErrors] of results) {\n errors.push(...bwErrors)\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n","import {\n type BlockBoundWitness, type BlockValidatorFunction, isAllowedBlockPayloadSchema,\n} from '@xyo-network/xl1-model'\n\nexport const BlockAllowedPayloadSchemasValidator: BlockValidatorFunction = (\n block: BlockBoundWitness,\n) => {\n const errors: Error[] = []\n for (const schema of block.payload_schemas) {\n if (!isAllowedBlockPayloadSchema(schema)) {\n errors.push(new Error(`payload schema not allowed in block: ${schema}`))\n }\n }\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'\n\nexport const BlockFieldsValidator: BlockValidatorFunction = (\n block: BlockBoundWitness,\n chainId?: Address,\n) => {\n const errors: Error[] = []\n if (chainId && block.chain !== chainId.toLowerCase()) {\n errors.push(new Error('invalid chain id'))\n }\n return errors\n}\n","import { BlockBoundWitnessWithStorageMetaJsonSchema } from '@xyo-network/chain-schema'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'\nimport type { AnySchema } from 'ajv'\nimport { Ajv } from 'ajv'\n\nexport const BlockJsonSchemaValidator = (jsonSchema: AnySchema = BlockBoundWitnessWithStorageMetaJsonSchema): BlockValidatorFunction => async (\n block: BlockBoundWitness,\n) => {\n const errors: Error[] = []\n const ajv = new Ajv({ allErrors: true, strict: true })\n // see if you can export the super set\n const validate = ajv.compile(jsonSchema)\n await validate(block)\n if (!validate(block)) {\n const error = new Error('failed JSON schema validation')\n error.cause = validate.errors\n errors.push(error)\n }\n return errors\n}\n","import { isHash } from '@xylabs/hex'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'\n\nexport const BlockPreviousHashValidator: BlockValidatorFunction = (\n block: BlockBoundWitness,\n) => {\n const errors: Error[] = []\n const blockNumber = block.block\n if (blockNumber > 0n) {\n // if this is not the first block, validate previous hashes\n if (!isHash(block.previous)) {\n errors.push(new Error('previous hash is missing or invalid'))\n }\n } else if (blockNumber === 0) {\n // if this is the first block, validate previous hashes\n if (block.previous !== null) {\n errors.push(new Error('previous hash should not be set'))\n }\n } else {\n // we have a negative block number\n errors.push(new Error('invalid block number'))\n }\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'\n\nimport { BoundWitnessSignaturesValidator } from '../boundwitness/index.ts'\nimport {\n BlockAllowedPayloadSchemasValidator,\n BlockFieldsValidator, BlockJsonSchemaValidator, BlockPreviousHashValidator,\n} from './validators/index.ts'\n\nexport const validateBlock: BlockValidatorFunction = async (\n block: BlockBoundWitness,\n chainId?: Address,\n): Promise<Error[]> => {\n try {\n const validators: BlockValidatorFunction[] = [\n BoundWitnessSignaturesValidator,\n BlockFieldsValidator,\n BlockPreviousHashValidator,\n BlockJsonSchemaValidator(),\n BlockAllowedPayloadSchemasValidator,\n ]\n const errors = (await Promise.all(\n validators.map(validator => validator(block, chainId)),\n )).flat()\n return errors\n } catch (ex) {\n return [new Error('validation excepted'), ex as Error]\n }\n}\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { SchemaSchema } from '@xyo-network/schema-payload-plugin'\nimport type {\n HydratedBlock,\n InBlockPayloadValidationFunction,\n} from '@xyo-network/xl1-model'\nimport {\n ChainStakeIntentSchema, HashSchema, TransferSchema,\n} from '@xyo-network/xl1-model'\n\nimport { validateTransactionInBlock } from './lib/index.ts'\nimport {\n validateChainStakeIntentInBlock, validateHashInBlock, validateSchemaInBlock, validateTransferInBlock,\n} from './payloads/index.ts'\n\nconst payloadValidators: Record<Schema, InBlockPayloadValidationFunction> = {\n [HashSchema]: validateHashInBlock,\n [TransferSchema]: validateTransferInBlock,\n [SchemaSchema]: validateSchemaInBlock,\n [ChainStakeIntentSchema]: validateChainStakeIntentInBlock,\n [BoundWitnessSchema]: validateTransactionInBlock,\n}\n\nexport const validatePayloadInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n const validator = payloadValidators[payload.schema]\n if (validator) {\n errors.push(...await validator(payload, block))\n } else {\n errors.push(new Error(`Unsupported payload schema: ${payload.schema}`))\n }\n return errors\n}\n","import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-model'\n\nexport const isElevatedFromBlock = (payload: WithStorageMeta<Payload>, [, payloads]: HydratedBlock): boolean => {\n const txs = payloads.filter(p => isTransactionBoundWitness(p))\n for (const tx of txs) {\n if (tx.payload_hashes.includes(payload._hash)) {\n return false\n }\n }\n return true\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { transactionPayloadsFromHydratedBlock } from '@xyo-network/chain-protocol'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'\n\nexport const validateElevatedFromBlock: InBlockPayloadValidationFunction = (\n payload,\n block: HydratedBlock,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n const txPayloadHashes = new Set(transactionPayloadsFromHydratedBlock(block).map(tx => tx._hash))\n if (txPayloadHashes.has(payload._hash)) {\n errors.push(new Error(`Transaction may not include block payload hash [${payload.schema}]: ${payload._hash}`))\n }\n return errors\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { transactionsFromHydratedBlock } from '@xyo-network/chain-protocol'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'\n\nexport const validateElevatedFromTransaction: InBlockPayloadValidationFunction = (\n payload,\n block: HydratedBlock,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n const txs = transactionsFromHydratedBlock(block)\n if (txs.length > 0) {\n const hashes = txs.flatMap(tx => tx.payload_hashes)\n if (!hashes.includes(payload._hash)) {\n errors.push(new Error('Transaction does not include payload'))\n }\n } else {\n errors.push(new Error('No Transactions in block'))\n }\n return errors\n}\n","import { isStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-model'\n\nimport { BoundWitnessSignaturesValidator } from '../../boundwitness/index.ts'\n\nexport const validateTransactionInBlock: InBlockPayloadValidationFunction = async (\n payload,\n _block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n if (isTransactionBoundWitness(payload) && isStorageMeta(payload)) {\n errors.push(...await BoundWitnessSignaturesValidator(payload))\n } else {\n errors.push(new Error('Payload failed isTransactionBoundWitness or isStorageMeta'))\n }\n return errors\n}\n","import type { IdentityFunction } from '@xyo-network/chain-protocol'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedBlock } from '@xyo-network/xl1-model'\n\nimport { isElevatedFromBlock } from './isElevatedFromBlock.ts'\nimport { validateElevatedFromBlock } from './validateElevatedFromBlock.ts'\nimport { validateElevatedFromTransaction } from './validateElevatedFromTransaction.ts'\n\nexport const validateTypedPayloadInBlock = async <T extends Payload>(\n payload: Payload,\n block: HydratedBlock,\n identityFunction: IdentityFunction<T>,\n): Promise<Error[]> => {\n const errors: Error[] = []\n if (identityFunction(payload) && isStorageMeta(payload)) {\n if (isElevatedFromBlock(payload, block)) {\n errors.push(...await validateElevatedFromBlock(payload, block))\n } else {\n errors.push(...await validateElevatedFromTransaction(payload, block))\n }\n } else {\n errors.push(new Error('Payload failed identityFunction or isElevated or isStorageMeta'))\n }\n return errors\n}\n//\n","import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'\nimport { isChainStakeIntent } from '@xyo-network/xl1-model'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateChainStakeIntentInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isChainStakeIntent))\n return errors\n}\n","import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'\nimport { isHashPayload } from '@xyo-network/xl1-model'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateHashInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isHashPayload))\n return errors\n}\n","import { isSchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateSchemaInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isSchemaPayload))\n return errors\n}\n","import {\n type HydratedBlock, type InBlockPayloadValidationFunction, isTransfer,\n} from '@xyo-network/xl1-model'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateTransferInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isTransfer))\n return errors\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n HydratedBlock,\n HydratedBlockValidatorFunction,\n} from '@xyo-network/xl1-model'\n\nimport { validatePayloadInBlock } from '../../elevatedPayload/validatePayloadInBlock.ts'\n\nexport const PayloadsInBlockValidator: HydratedBlockValidatorFunction = async (\n [block, payloads]: HydratedBlock,\n) => {\n const errors: Error[] = []\n\n const payloadMap: Record<Hash, WithHashStorageMeta<Payload>> = {}\n for (const payload of payloads) {\n payloadMap[payload._hash] = payload\n }\n\n for (let i = 0; i < block.payload_hashes.length; i++) {\n const hash = block.payload_hashes[i]\n const schema = block.payload_schemas[i]\n const payload = payloadMap[hash]\n if (payload) {\n errors.push(...await validatePayloadInBlock(payload, [block, payloads]))\n delete payloadMap[hash]\n } else {\n errors.push(new Error(`missing payload ${hash} ${schema}`))\n }\n }\n\n if (Object.keys(payloadMap).length > 0) {\n errors.push(new Error(`extra payloads ${Object.keys(payloadMap).join(', ')}`))\n }\n\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { HydratedBlock, HydratedBlockValidatorFunction } from '@xyo-network/xl1-model'\n\nimport { validateBlock } from '../block/index.ts'\nimport { BoundWitnessReferencesValidator } from '../boundwitness/index.ts'\nimport { PayloadsInBlockValidator } from './validators/index.ts'\n\nexport const validateHydratedBlock: HydratedBlockValidatorFunction = async (\n hydratedBlock: HydratedBlock,\n chainId?: Address,\n additionalValidators: HydratedBlockValidatorFunction[] = [],\n): Promise<Error[]> => {\n const errors: Error[] = await validateBlock(hydratedBlock[0], chainId)\n const validators: HydratedBlockValidatorFunction[] = [\n BoundWitnessReferencesValidator(),\n PayloadsInBlockValidator,\n ...additionalValidators,\n ]\n return [...errors, ...(await Promise.all(validators.map(v => v(hydratedBlock, chainId)))).flat()]\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport {\n analyzeChain, BalanceAnalyzer, isChainSummaryBalances, netBalancesForPayloads,\n} from '@xyo-network/chain-protocol'\nimport type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-model'\n\nexport const RequiredBalanceBlockStateValidator: HydratedBlockStateValidationFunction = async (\n block: HydratedBlock,\n chainId: Address,\n archivist: ReadArchivist,\n) => {\n const errors: Error[] = []\n\n const netBalances = netBalancesForPayloads(block[1])\n const netBalanceAddresses = Object.keys(netBalances) as Address[]\n const requiredBalances: Record<Address, bigint> = {}\n for (const address of netBalanceAddresses) {\n if (netBalances[address] < 0n) {\n requiredBalances[address] = -netBalances[address]\n }\n }\n if (!block[0].previous) return [new Error('Insufficient funds because first block')]\n const results = await analyzeChain(\n archivist,\n [new BalanceAnalyzer(Object.keys(requiredBalances) as Address[], Object.values(requiredBalances)),\n ],\n block[0].previous,\n )\n const summaryBalances = assertEx(results.find(isChainSummaryBalances), () => new Error('missing summary balances'))\n\n for (const [address, reqBalance] of Object.entries(requiredBalances) as [Address, bigint][]) {\n const balance = BigInt(`0x${summaryBalances.balances[address] ?? '00'}`)\n if (reqBalance > balance) {\n errors.push(new Error(`insufficient balance for ${address} ${balance} < ${requiredBalances[address]}`))\n }\n }\n\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-model'\n\nimport { validateHydratedBlock } from '../hydratedBlock/index.ts'\nimport { RequiredBalanceBlockStateValidator } from './validators/index.ts'\n\nexport const validateHydratedBlockState: HydratedBlockStateValidationFunction = async (\n hydratedBlock: HydratedBlock,\n chainId: Address,\n archivist: ReadArchivist,\n additionalValidators: HydratedBlockStateValidationFunction[] = [],\n): Promise<Error[]> => {\n const errors: Error[] = await validateHydratedBlock(hydratedBlock, chainId)\n const validators: HydratedBlockStateValidationFunction[] = [RequiredBalanceBlockStateValidator, ...additionalValidators]\n return [...errors, ...(await Promise.all(validators.map(v => v(hydratedBlock, chainId, archivist)))).flat()]\n}\n","import type { Address } from '@xylabs/hex'\nimport type { HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-model'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-model'\n\nimport {\n TransactionElevationValidator, TransactionFromValidator, TransactionGasValidator, TransactionProtocolValidator,\n} from './validators/index.ts'\n\nexport async function validateTransaction(\n tx: HydratedTransactionWithHashStorageMeta,\n chainId?: Address,\n additionalValidators: HydratedTransactionValidatorFunction[] = [],\n): Promise<Error[]> {\n if (!isTransactionBoundWitness(tx[0])) {\n return [new Error('failed isTransactionBoundWitness identity check')]\n }\n\n const validators: HydratedTransactionValidatorFunction[] = [\n TransactionProtocolValidator,\n // TODO: Uncomment the following validations\n // TransactionJsonSchemaValidator,\n // TransactionDurationValidator,\n TransactionFromValidator,\n TransactionGasValidator,\n TransactionElevationValidator,\n ...additionalValidators,\n ]\n return (await Promise.all(validators.map(v => v(tx, chainId)))).flat()\n}\n","import type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-model'\n\nexport const TransactionDurationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Error[] => {\n const errors: Error[] = []\n const { exp, nbf } = tx\n if (nbf < 0) errors.push(new Error('Transaction nbf must be positive'))\n\n if (exp < 0) errors.push(new Error('Transaction exp must be positive'))\n if (exp <= nbf) errors.push(new Error('Transaction exp must greater than nbf'))\n if (exp - nbf > 10_000) errors.push(new Error('Transaction exp must not be too far in the future'))\n\n return errors\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { extractElevatedHashes } from '@xyo-network/chain-protocol'\nimport type {\n HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta, TransactionBoundWitness,\n} from '@xyo-network/xl1-model'\n\nexport const TransactionElevationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n tx: HydratedTransactionWithHashStorageMeta,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n try {\n extractElevatedHashes(tx)\n } catch {\n errors.push(new Error('Hydrated transaction does not include all script hashes'))\n }\n return errors\n}\n","import { asAddress } from '@xylabs/hex'\nimport { addressesContains } from '@xyo-network/boundwitness-validator'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-model'\n\nexport const TransactionFromValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Error[] => {\n const errors: Error[] = []\n const from = asAddress(tx.from)\n if (from === undefined)errors.push(new Error('Transaction from is not a valid address'))\n else if (!addressesContains(tx, from)) errors.push(new Error('Transaction from address must be listed in addresses'))\n return errors\n}\n","import { hexToBigInt } from '@xylabs/hex'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness, TransactionFeesBigInt, TransactionFeesHex,\n} from '@xyo-network/xl1-model'\n\nexport const TransactionGasValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Error[] => {\n const errors: Error[] = []\n if (tx?.fees === undefined) {\n errors.push(new Error('Missing fees'))\n } else {\n const {\n base, gasLimit, gasPrice, priority,\n } = parseFees(tx.fees)\n\n if (base === undefined) errors.push(new Error('fees.base must be defined and a valid number'))\n else if (base <= 0) errors.push(new Error('fees.base must be greater than 0'))\n\n if (gasLimit === undefined) errors.push(new Error('fees.gasLimit must be defined and a valid number'))\n else if (gasLimit <= 0) errors.push(new Error('fees.gasLimit must be greater than 0'))\n\n if (gasPrice === undefined) errors.push(new Error('fees.gasPrice must be defined and a valid number'))\n else if (gasPrice <= 0) errors.push(new Error('fees.gasPrice must be greater than 0'))\n\n if (priority === undefined) errors.push(new Error('fees.priority must be defined and a valid number'))\n else if (priority < 0) errors.push(new Error('fees.priority must be greater than or equal to 0'))\n }\n return errors\n}\n\nconst parseFees = (fees: TransactionFeesHex): Partial<TransactionFeesBigInt> => {\n const ret: Partial<TransactionFeesBigInt> = {}\n const {\n base, gasLimit, gasPrice, priority,\n } = fees\n if (base !== undefined) ret.base = hexToBigInt(base)\n if (gasLimit !== undefined) ret.gasLimit = hexToBigInt(gasLimit)\n if (gasPrice !== undefined) ret.gasPrice = hexToBigInt(gasPrice)\n if (priority !== undefined) ret.priority = hexToBigInt(priority)\n return ret\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { TransactionBoundWitnessJsonSchema } from '@xyo-network/chain-schema'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-model'\nimport { Ajv } from 'ajv'\n\nexport const TransactionJsonSchemaValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n try {\n const ajv = new Ajv({ allErrors: true, strict: true })\n // see if you can export the super set\n const validate = ajv.compile(TransactionBoundWitnessJsonSchema)\n if (!validate(PayloadBuilder.omitStorageMeta(tx))) {\n const error = new Error('failed JSON schema validation')\n error.cause = validate.errors\n errors.push(error)\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-model'\n\nexport const TransactionProtocolValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = async (\n [tx]: HydratedTransaction,\n chainId?: Address,\n): Promise<Error[]> => {\n const errors: Error[] = []\n try {\n if (!await BoundWitnessWrapper.parse(tx).getValid()) {\n errors.push(new Error('failed basic boundwitness parse'))\n }\n if (chainId && tx.chain !== chainId) {\n errors.push(new Error('invalid chain id'))\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n"],"mappings":"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","names":["isAnyPayload","getPayloadsFromPayloadArray","payloads","hashes","map","hash","find","payload","_hash","_dataHash","BoundWitnessReferencesValidator","allowedSchemas","bw","payloadSet","errors","payload_hashes","length","push","Error","isAnyPayload","payloadHashIndex","indexOf","payloadDataHashIndex","payloadIndex","Math","max","declaredSchema","payload_schemas","schema","includes","ex","toArrayBuffer","BoundWitnessBuilder","BoundWitnessValidator","BoundWitnessSignaturesValidator","bw","errors","dataHash","BoundWitnessBuilder","results","Promise","all","addresses","map","address","index","BoundWitnessValidator","validateSignature","toArrayBuffer","$signatures","bwErrors","push","ex","Error","isAllowedBlockPayloadSchema","BlockAllowedPayloadSchemasValidator","block","errors","schema","payload_schemas","isAllowedBlockPayloadSchema","push","Error","BlockFieldsValidator","block","chainId","errors","chain","toLowerCase","push","Error","BlockBoundWitnessWithStorageMetaJsonSchema","Ajv","BlockJsonSchemaValidator","jsonSchema","BlockBoundWitnessWithStorageMetaJsonSchema","block","errors","ajv","Ajv","allErrors","strict","validate","compile","error","Error","cause","push","isHash","BlockPreviousHashValidator","block","errors","blockNumber","isHash","previous","push","Error","validateBlock","block","chainId","validators","BoundWitnessSignaturesValidator","BlockFieldsValidator","BlockPreviousHashValidator","BlockJsonSchemaValidator","BlockAllowedPayloadSchemasValidator","errors","Promise","all","map","validator","flat","ex","Error","BoundWitnessSchema","SchemaSchema","ChainStakeIntentSchema","HashSchema","TransferSchema","isTransactionBoundWitness","isElevatedFromBlock","payload","payloads","txs","filter","p","isTransactionBoundWitness","tx","payload_hashes","includes","_hash","transactionPayloadsFromHydratedBlock","validateElevatedFromBlock","payload","block","errors","txPayloadHashes","Set","transactionPayloadsFromHydratedBlock","map","tx","_hash","has","push","Error","schema","transactionsFromHydratedBlock","validateElevatedFromTransaction","payload","block","errors","txs","transactionsFromHydratedBlock","length","hashes","flatMap","tx","payload_hashes","includes","_hash","push","Error","isStorageMeta","isTransactionBoundWitness","validateTransactionInBlock","payload","_block","errors","isTransactionBoundWitness","isStorageMeta","push","BoundWitnessSignaturesValidator","Error","isStorageMeta","validateTypedPayloadInBlock","payload","block","identityFunction","errors","isStorageMeta","isElevatedFromBlock","push","validateElevatedFromBlock","validateElevatedFromTransaction","Error","isChainStakeIntent","validateChainStakeIntentInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isChainStakeIntent","isHashPayload","validateHashInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isHashPayload","isSchemaPayload","validateSchemaInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isSchemaPayload","isTransfer","validateTransferInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isTransfer","payloadValidators","HashSchema","validateHashInBlock","TransferSchema","validateTransferInBlock","SchemaSchema","validateSchemaInBlock","ChainStakeIntentSchema","validateChainStakeIntentInBlock","BoundWitnessSchema","validateTransactionInBlock","validatePayloadInBlock","payload","block","errors","validator","schema","push","Error","PayloadsInBlockValidator","block","payloads","errors","payloadMap","payload","_hash","i","payload_hashes","length","hash","schema","payload_schemas","push","validatePayloadInBlock","Error","Object","keys","join","validateHydratedBlock","hydratedBlock","chainId","additionalValidators","errors","validateBlock","validators","BoundWitnessReferencesValidator","PayloadsInBlockValidator","Promise","all","map","v","flat","assertEx","analyzeChain","BalanceAnalyzer","isChainSummaryBalances","netBalancesForPayloads","RequiredBalanceBlockStateValidator","block","chainId","archivist","errors","netBalances","netBalancesForPayloads","netBalanceAddresses","Object","keys","requiredBalances","address","previous","Error","results","analyzeChain","BalanceAnalyzer","values","summaryBalances","assertEx","find","isChainSummaryBalances","reqBalance","entries","balance","BigInt","balances","push","validateHydratedBlockState","hydratedBlock","chainId","archivist","additionalValidators","errors","validateHydratedBlock","validators","RequiredBalanceBlockStateValidator","Promise","all","map","v","flat","isTransactionBoundWitness","TransactionDurationValidator","tx","errors","exp","nbf","push","Error","extractElevatedHashes","TransactionElevationValidator","tx","errors","extractElevatedHashes","push","Error","asAddress","addressesContains","TransactionFromValidator","tx","errors","from","asAddress","undefined","push","Error","addressesContains","hexToBigInt","TransactionGasValidator","tx","errors","fees","undefined","push","Error","base","gasLimit","gasPrice","priority","parseFees","ret","hexToBigInt","TransactionBoundWitnessJsonSchema","PayloadBuilder","Ajv","TransactionJsonSchemaValidator","tx","errors","ajv","Ajv","allErrors","strict","validate","compile","TransactionBoundWitnessJsonSchema","PayloadBuilder","omitStorageMeta","error","Error","cause","push","ex","BoundWitnessWrapper","TransactionProtocolValidator","tx","chainId","errors","BoundWitnessWrapper","parse","getValid","push","Error","chain","ex","validateTransaction","tx","chainId","additionalValidators","isTransactionBoundWitness","Error","validators","TransactionProtocolValidator","TransactionFromValidator","TransactionGasValidator","TransactionElevationValidator","Promise","all","map","v","flat"]}
|
|
1
|
+
{"version":3,"sources":["../../src/boundwitness/validators/BoundWitnessReferences.ts","../../src/boundwitness/validators/BoundWitnessSignatures.ts","../../src/block/validators/AllowedPayloadSchemas.ts","../../src/block/validators/Fields.ts","../../src/block/validators/JsonSchema.ts","../../src/block/validators/PreviousHash.ts","../../src/block/validateBlock.ts","../../src/elevatedPayload/validatePayloadInBlock.ts","../../src/elevatedPayload/lib/isElevatedFromBlock.ts","../../src/elevatedPayload/lib/validateElevatedFromBlock.ts","../../src/elevatedPayload/lib/validateElevatedFromTransaction.ts","../../src/elevatedPayload/lib/validateTransactionInBlock.ts","../../src/elevatedPayload/lib/validateTypedPayloadInBlock.ts","../../src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts","../../src/elevatedPayload/payloads/validateHashInBlock.ts","../../src/elevatedPayload/payloads/validateSchemaInBlock.ts","../../src/elevatedPayload/payloads/validateTransferInBlock.ts","../../src/hydratedBlock/validators/Payloads.ts","../../src/hydratedBlock/validateHydratedBlock.ts","../../src/hydratedBlockState/validators/RequiredBalance.ts","../../src/hydratedBlockState/validateHydratedBlockState.ts","../../src/transaction/validateTransaction.ts","../../src/transaction/validators/TransactionDurationValidator.ts","../../src/transaction/validators/TransactionElevationValidator.ts","../../src/transaction/validators/TransactionFromValidator.ts","../../src/transaction/validators/TransactionGasValidator.ts","../../src/transaction/validators/TransactionJsonSchemaValidator.ts","../../src/transaction/validators/TransactionProtocolValidator.ts"],"sourcesContent":["import type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport type {\n Payload,\n Schema,\n WithHashStorageMeta,\n} from '@xyo-network/payload-model'\nimport { isAnyPayload } from '@xyo-network/payload-model'\nimport type { HydratedBoundWitnessValidationFunction, HydratedBoundWitnessWithHashStorageMeta } from '@xyo-network/xl1-protocol'\n\nfunction getPayloadsFromPayloadArray(payloads: WithHashStorageMeta<Payload>[], hashes: Hash[]): (WithHashStorageMeta<Payload> | undefined)[] {\n return hashes.map(hash => payloads.find(payload => payload._hash === hash || payload._dataHash === hash))\n}\n\nexport const BoundWitnessReferencesValidator\n= <T extends BoundWitness = BoundWitness>(allowedSchemas?: Schema[]): HydratedBoundWitnessValidationFunction<T> => (\n [bw, payloadSet]: HydratedBoundWitnessWithHashStorageMeta<T>,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n try {\n const payloads = getPayloadsFromPayloadArray(payloadSet, bw.payload_hashes)\n if (payloads.length !== bw.payload_hashes.length) {\n errors.push(new Error('unable to locate payloads'))\n }\n\n // check if payloads are valid and if their schemas match the declared schemas\n for (let payload of payloads) {\n if (isAnyPayload(payload)) {\n const payloadHashIndex = bw.payload_hashes.indexOf(payload._hash)\n const payloadDataHashIndex = bw.payload_hashes.indexOf(payload._dataHash)\n const payloadIndex = Math.max(payloadHashIndex, payloadDataHashIndex)\n if (payloadIndex === -1) {\n errors.push(new Error('payload hash not found'))\n }\n\n const declaredSchema = bw.payload_schemas[payloadIndex]\n if (declaredSchema !== payload.schema) {\n errors.push(new Error('mismatched schema'))\n }\n\n if (allowedSchemas && !allowedSchemas.includes(payload.schema)) {\n errors.push(new Error(`disallowed schema [${payload.schema}]`))\n }\n } else {\n errors.push(new Error('invalid payload'))\n }\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n","import { toArrayBuffer } from '@xylabs/arraybuffer'\nimport type { Address } from '@xylabs/hex'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport type { BoundWitnessValidationFunction } from '@xyo-network/xl1-protocol'\n\nexport const BoundWitnessSignaturesValidator: BoundWitnessValidationFunction = async (\n bw: BoundWitness,\n): Promise<Error[]> => {\n const errors: Error[] = []\n try {\n const dataHash = await BoundWitnessBuilder.dataHash(bw)\n const results: [Address, Error[]][] = await Promise.all(bw.addresses.map(async (address, index) => {\n return [address, await BoundWitnessValidator.validateSignature(toArrayBuffer(dataHash), toArrayBuffer(address), toArrayBuffer(bw.$signatures[index]))]\n }))\n for (const [, bwErrors] of results) {\n errors.push(...bwErrors)\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n","import {\n type BlockBoundWitness, type BlockValidatorFunction, isAllowedBlockPayloadSchema,\n} from '@xyo-network/xl1-protocol'\n\nexport const BlockAllowedPayloadSchemasValidator: BlockValidatorFunction = (\n block: BlockBoundWitness,\n) => {\n const errors: Error[] = []\n for (const schema of block.payload_schemas) {\n if (!isAllowedBlockPayloadSchema(schema)) {\n errors.push(new Error(`payload schema not allowed in block: ${schema}`))\n }\n }\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'\n\nexport const BlockFieldsValidator: BlockValidatorFunction = (\n block: BlockBoundWitness,\n chainId?: Address,\n) => {\n const errors: Error[] = []\n if (chainId && block.chain !== chainId.toLowerCase()) {\n errors.push(new Error('invalid chain id'))\n }\n return errors\n}\n","import { BlockBoundWitnessWithStorageMetaJsonSchema } from '@xyo-network/chain-schema'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'\nimport type { AnySchema } from 'ajv'\nimport { Ajv } from 'ajv'\n\nexport const BlockJsonSchemaValidator = (jsonSchema: AnySchema = BlockBoundWitnessWithStorageMetaJsonSchema): BlockValidatorFunction => async (\n block: BlockBoundWitness,\n) => {\n const errors: Error[] = []\n const ajv = new Ajv({ allErrors: true, strict: true })\n // see if you can export the super set\n const validate = ajv.compile(jsonSchema)\n await validate(block)\n if (!validate(block)) {\n const error = new Error('failed JSON schema validation')\n error.cause = validate.errors\n errors.push(error)\n }\n return errors\n}\n","import { isHash } from '@xylabs/hex'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'\n\nexport const BlockPreviousHashValidator: BlockValidatorFunction = (\n block: BlockBoundWitness,\n) => {\n const errors: Error[] = []\n const blockNumber = block.block\n if (blockNumber > 0n) {\n // if this is not the first block, validate previous hashes\n if (!isHash(block.previous)) {\n errors.push(new Error('previous hash is missing or invalid'))\n }\n } else if (blockNumber === 0) {\n // if this is the first block, validate previous hashes\n if (block.previous !== null) {\n errors.push(new Error('previous hash should not be set'))\n }\n } else {\n // we have a negative block number\n errors.push(new Error('invalid block number'))\n }\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'\n\nimport { BoundWitnessSignaturesValidator } from '../boundwitness/index.ts'\nimport {\n BlockAllowedPayloadSchemasValidator,\n BlockFieldsValidator, BlockJsonSchemaValidator, BlockPreviousHashValidator,\n} from './validators/index.ts'\n\nexport const validateBlock: BlockValidatorFunction = async (\n block: BlockBoundWitness,\n chainId?: Address,\n): Promise<Error[]> => {\n try {\n const validators: BlockValidatorFunction[] = [\n BoundWitnessSignaturesValidator,\n BlockFieldsValidator,\n BlockPreviousHashValidator,\n BlockJsonSchemaValidator(),\n BlockAllowedPayloadSchemasValidator,\n ]\n const errors = (await Promise.all(\n validators.map(validator => validator(block, chainId)),\n )).flat()\n return errors\n } catch (ex) {\n return [new Error('validation excepted'), ex as Error]\n }\n}\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { SchemaSchema } from '@xyo-network/schema-payload-plugin'\nimport type {\n HydratedBlock,\n InBlockPayloadValidationFunction,\n} from '@xyo-network/xl1-protocol'\nimport {\n ChainStakeIntentSchema, HashSchema, TransferSchema,\n} from '@xyo-network/xl1-protocol'\n\nimport { validateTransactionInBlock } from './lib/index.ts'\nimport {\n validateChainStakeIntentInBlock, validateHashInBlock, validateSchemaInBlock, validateTransferInBlock,\n} from './payloads/index.ts'\n\nconst payloadValidators: Record<Schema, InBlockPayloadValidationFunction> = {\n [HashSchema]: validateHashInBlock,\n [TransferSchema]: validateTransferInBlock,\n [SchemaSchema]: validateSchemaInBlock,\n [ChainStakeIntentSchema]: validateChainStakeIntentInBlock,\n [BoundWitnessSchema]: validateTransactionInBlock,\n}\n\nexport const validatePayloadInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n const validator = payloadValidators[payload.schema]\n if (validator) {\n errors.push(...await validator(payload, block))\n } else {\n errors.push(new Error(`Unsupported payload schema: ${payload.schema}`))\n }\n return errors\n}\n","import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nexport const isElevatedFromBlock = (payload: WithStorageMeta<Payload>, [, payloads]: HydratedBlock): boolean => {\n const txs = payloads.filter(p => isTransactionBoundWitness(p))\n for (const tx of txs) {\n if (tx.payload_hashes.includes(payload._hash)) {\n return false\n }\n }\n return true\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { transactionPayloadsFromHydratedBlock } from '@xyo-network/chain-protocol'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'\n\nexport const validateElevatedFromBlock: InBlockPayloadValidationFunction = (\n payload,\n block: HydratedBlock,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n const txPayloadHashes = new Set(transactionPayloadsFromHydratedBlock(block).map(tx => tx._hash))\n if (txPayloadHashes.has(payload._hash)) {\n errors.push(new Error(`Transaction may not include block payload hash [${payload.schema}]: ${payload._hash}`))\n }\n return errors\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { transactionsFromHydratedBlock } from '@xyo-network/chain-protocol'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'\n\nexport const validateElevatedFromTransaction: InBlockPayloadValidationFunction = (\n payload,\n block: HydratedBlock,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n const txs = transactionsFromHydratedBlock(block)\n if (txs.length > 0) {\n const hashes = txs.flatMap(tx => tx.payload_hashes)\n if (!hashes.includes(payload._hash)) {\n errors.push(new Error('Transaction does not include payload'))\n }\n } else {\n errors.push(new Error('No Transactions in block'))\n }\n return errors\n}\n","import { isStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nimport { BoundWitnessSignaturesValidator } from '../../boundwitness/index.ts'\n\nexport const validateTransactionInBlock: InBlockPayloadValidationFunction = async (\n payload,\n _block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n if (isTransactionBoundWitness(payload) && isStorageMeta(payload)) {\n errors.push(...await BoundWitnessSignaturesValidator(payload))\n } else {\n errors.push(new Error('Payload failed isTransactionBoundWitness or isStorageMeta'))\n }\n return errors\n}\n","import type { IdentityFunction } from '@xyo-network/chain-protocol'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedBlock } from '@xyo-network/xl1-protocol'\n\nimport { isElevatedFromBlock } from './isElevatedFromBlock.ts'\nimport { validateElevatedFromBlock } from './validateElevatedFromBlock.ts'\nimport { validateElevatedFromTransaction } from './validateElevatedFromTransaction.ts'\n\nexport const validateTypedPayloadInBlock = async <T extends Payload>(\n payload: Payload,\n block: HydratedBlock,\n identityFunction: IdentityFunction<T>,\n): Promise<Error[]> => {\n const errors: Error[] = []\n if (identityFunction(payload) && isStorageMeta(payload)) {\n if (isElevatedFromBlock(payload, block)) {\n errors.push(...await validateElevatedFromBlock(payload, block))\n } else {\n errors.push(...await validateElevatedFromTransaction(payload, block))\n }\n } else {\n errors.push(new Error('Payload failed identityFunction or isElevated or isStorageMeta'))\n }\n return errors\n}\n//\n","import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'\nimport { isChainStakeIntent } from '@xyo-network/xl1-protocol'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateChainStakeIntentInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isChainStakeIntent))\n return errors\n}\n","import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'\nimport { isHashPayload } from '@xyo-network/xl1-protocol'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateHashInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isHashPayload))\n return errors\n}\n","import { isSchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateSchemaInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isSchemaPayload))\n return errors\n}\n","import {\n type HydratedBlock, type InBlockPayloadValidationFunction, isTransfer,\n} from '@xyo-network/xl1-protocol'\n\nimport { validateTypedPayloadInBlock } from '../lib/index.ts'\n\nexport const validateTransferInBlock: InBlockPayloadValidationFunction = async (\n payload,\n block: HydratedBlock,\n): Promise<Error[]> => {\n const errors: Error[] = []\n errors.push(...await validateTypedPayloadInBlock(payload, block, isTransfer))\n return errors\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n HydratedBlock,\n HydratedBlockValidatorFunction,\n} from '@xyo-network/xl1-protocol'\n\nimport { validatePayloadInBlock } from '../../elevatedPayload/validatePayloadInBlock.ts'\n\nexport const PayloadsInBlockValidator: HydratedBlockValidatorFunction = async (\n [block, payloads]: HydratedBlock,\n) => {\n const errors: Error[] = []\n\n const payloadMap: Record<Hash, WithHashStorageMeta<Payload>> = {}\n for (const payload of payloads) {\n payloadMap[payload._hash] = payload\n }\n\n for (let i = 0; i < block.payload_hashes.length; i++) {\n const hash = block.payload_hashes[i]\n const schema = block.payload_schemas[i]\n const payload = payloadMap[hash]\n if (payload) {\n errors.push(...await validatePayloadInBlock(payload, [block, payloads]))\n delete payloadMap[hash]\n } else {\n errors.push(new Error(`missing payload ${hash} ${schema}`))\n }\n }\n\n if (Object.keys(payloadMap).length > 0) {\n errors.push(new Error(`extra payloads ${Object.keys(payloadMap).join(', ')}`))\n }\n\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { HydratedBlock, HydratedBlockValidatorFunction } from '@xyo-network/xl1-protocol'\n\nimport { validateBlock } from '../block/index.ts'\nimport { BoundWitnessReferencesValidator } from '../boundwitness/index.ts'\nimport { PayloadsInBlockValidator } from './validators/index.ts'\n\nexport const validateHydratedBlock: HydratedBlockValidatorFunction = async (\n hydratedBlock: HydratedBlock,\n chainId?: Address,\n additionalValidators: HydratedBlockValidatorFunction[] = [],\n): Promise<Error[]> => {\n const errors: Error[] = await validateBlock(hydratedBlock[0], chainId)\n const validators: HydratedBlockValidatorFunction[] = [\n BoundWitnessReferencesValidator(),\n PayloadsInBlockValidator,\n ...additionalValidators,\n ]\n return [...errors, ...(await Promise.all(validators.map(v => v(hydratedBlock, chainId)))).flat()]\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport {\n analyzeChain, BalanceAnalyzer, isChainSummaryBalances, netBalancesForPayloads,\n} from '@xyo-network/chain-protocol'\nimport type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol'\n\nexport const RequiredBalanceBlockStateValidator: HydratedBlockStateValidationFunction = async (\n block: HydratedBlock,\n chainId: Address,\n archivist: ReadArchivist,\n) => {\n const errors: Error[] = []\n\n const netBalances = netBalancesForPayloads(block[1])\n const netBalanceAddresses = Object.keys(netBalances) as Address[]\n const requiredBalances: Record<Address, bigint> = {}\n for (const address of netBalanceAddresses) {\n if (netBalances[address] < 0n) {\n requiredBalances[address] = -netBalances[address]\n }\n }\n if (!block[0].previous) return [new Error('Insufficient funds because first block')]\n const results = await analyzeChain(\n archivist,\n [new BalanceAnalyzer(Object.keys(requiredBalances) as Address[], Object.values(requiredBalances)),\n ],\n block[0].previous,\n )\n const summaryBalances = assertEx(results.find(isChainSummaryBalances), () => new Error('missing summary balances'))\n\n for (const [address, reqBalance] of Object.entries(requiredBalances) as [Address, bigint][]) {\n const balance = BigInt(`0x${summaryBalances.balances[address] ?? '00'}`)\n if (reqBalance > balance) {\n errors.push(new Error(`insufficient balance for ${address} ${balance} < ${requiredBalances[address]}`))\n }\n }\n\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol'\n\nimport { validateHydratedBlock } from '../hydratedBlock/index.ts'\nimport { RequiredBalanceBlockStateValidator } from './validators/index.ts'\n\nexport const validateHydratedBlockState: HydratedBlockStateValidationFunction = async (\n hydratedBlock: HydratedBlock,\n chainId: Address,\n archivist: ReadArchivist,\n additionalValidators: HydratedBlockStateValidationFunction[] = [],\n): Promise<Error[]> => {\n const errors: Error[] = await validateHydratedBlock(hydratedBlock, chainId)\n const validators: HydratedBlockStateValidationFunction[] = [RequiredBalanceBlockStateValidator, ...additionalValidators]\n return [...errors, ...(await Promise.all(validators.map(v => v(hydratedBlock, chainId, archivist)))).flat()]\n}\n","import type { Address } from '@xylabs/hex'\nimport type { HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-protocol'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nimport {\n TransactionElevationValidator, TransactionFromValidator, TransactionGasValidator, TransactionProtocolValidator,\n} from './validators/index.ts'\n\nexport async function validateTransaction(\n tx: HydratedTransactionWithHashStorageMeta,\n chainId?: Address,\n additionalValidators: HydratedTransactionValidatorFunction[] = [],\n): Promise<Error[]> {\n if (!isTransactionBoundWitness(tx[0])) {\n return [new Error('failed isTransactionBoundWitness identity check')]\n }\n\n const validators: HydratedTransactionValidatorFunction[] = [\n TransactionProtocolValidator,\n // TODO: Uncomment the following validations\n // TransactionJsonSchemaValidator,\n // TransactionDurationValidator,\n TransactionFromValidator,\n TransactionGasValidator,\n TransactionElevationValidator,\n ...additionalValidators,\n ]\n return (await Promise.all(validators.map(v => v(tx, chainId)))).flat()\n}\n","import type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\n\nexport const TransactionDurationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Error[] => {\n const errors: Error[] = []\n const { exp, nbf } = tx\n if (nbf < 0) errors.push(new Error('Transaction nbf must be positive'))\n\n if (exp < 0) errors.push(new Error('Transaction exp must be positive'))\n if (exp <= nbf) errors.push(new Error('Transaction exp must greater than nbf'))\n if (exp - nbf > 10_000) errors.push(new Error('Transaction exp must not be too far in the future'))\n\n return errors\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { extractElevatedHashes } from '@xyo-network/chain-protocol'\nimport type {\n HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\n\nexport const TransactionElevationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n tx: HydratedTransactionWithHashStorageMeta,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n try {\n extractElevatedHashes(tx)\n } catch {\n errors.push(new Error('Hydrated transaction does not include all script hashes'))\n }\n return errors\n}\n","import { asAddress } from '@xylabs/hex'\nimport { addressesContains } from '@xyo-network/boundwitness-validator'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\n\nexport const TransactionFromValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Error[] => {\n const errors: Error[] = []\n const from = asAddress(tx.from)\n if (from === undefined)errors.push(new Error('Transaction from is not a valid address'))\n else if (!addressesContains(tx, from)) errors.push(new Error('Transaction from address must be listed in addresses'))\n return errors\n}\n","import { hexToBigInt } from '@xylabs/hex'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness, TransactionFeesBigInt, TransactionFeesHex,\n} from '@xyo-network/xl1-protocol'\n\nexport const TransactionGasValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Error[] => {\n const errors: Error[] = []\n if (tx?.fees === undefined) {\n errors.push(new Error('Missing fees'))\n } else {\n const {\n base, gasLimit, gasPrice, priority,\n } = parseFees(tx.fees)\n\n if (base === undefined) errors.push(new Error('fees.base must be defined and a valid number'))\n else if (base <= 0) errors.push(new Error('fees.base must be greater than 0'))\n\n if (gasLimit === undefined) errors.push(new Error('fees.gasLimit must be defined and a valid number'))\n else if (gasLimit <= 0) errors.push(new Error('fees.gasLimit must be greater than 0'))\n\n if (gasPrice === undefined) errors.push(new Error('fees.gasPrice must be defined and a valid number'))\n else if (gasPrice <= 0) errors.push(new Error('fees.gasPrice must be greater than 0'))\n\n if (priority === undefined) errors.push(new Error('fees.priority must be defined and a valid number'))\n else if (priority < 0) errors.push(new Error('fees.priority must be greater than or equal to 0'))\n }\n return errors\n}\n\nconst parseFees = (fees: TransactionFeesHex): Partial<TransactionFeesBigInt> => {\n const ret: Partial<TransactionFeesBigInt> = {}\n const {\n base, gasLimit, gasPrice, priority,\n } = fees\n if (base !== undefined) ret.base = hexToBigInt(base)\n if (gasLimit !== undefined) ret.gasLimit = hexToBigInt(gasLimit)\n if (gasPrice !== undefined) ret.gasPrice = hexToBigInt(gasPrice)\n if (priority !== undefined) ret.priority = hexToBigInt(priority)\n return ret\n}\n","import type { Promisable } from '@xylabs/promise'\nimport { TransactionBoundWitnessJsonSchema } from '@xyo-network/chain-schema'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\nimport { Ajv } from 'ajv'\n\nexport const TransactionJsonSchemaValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (\n [tx]: HydratedTransaction,\n): Promisable<Error[]> => {\n const errors: Error[] = []\n try {\n const ajv = new Ajv({ allErrors: true, strict: true })\n // see if you can export the super set\n const validate = ajv.compile(TransactionBoundWitnessJsonSchema)\n if (!validate(PayloadBuilder.omitStorageMeta(tx))) {\n const error = new Error('failed JSON schema validation')\n error.cause = validate.errors\n errors.push(error)\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n","import type { Address } from '@xylabs/hex'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type {\n HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\n\nexport const TransactionProtocolValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = async (\n [tx]: HydratedTransaction,\n chainId?: Address,\n): Promise<Error[]> => {\n const errors: Error[] = []\n try {\n if (!await BoundWitnessWrapper.parse(tx).getValid()) {\n errors.push(new Error('failed basic boundwitness parse'))\n }\n if (chainId && tx.chain !== chainId) {\n errors.push(new Error('invalid chain id'))\n }\n } catch (ex) {\n errors.push(new Error('validation excepted'), ex as Error)\n }\n return errors\n}\n"],"mappings":"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","names":["isAnyPayload","getPayloadsFromPayloadArray","payloads","hashes","map","hash","find","payload","_hash","_dataHash","BoundWitnessReferencesValidator","allowedSchemas","bw","payloadSet","errors","payload_hashes","length","push","Error","isAnyPayload","payloadHashIndex","indexOf","payloadDataHashIndex","payloadIndex","Math","max","declaredSchema","payload_schemas","schema","includes","ex","toArrayBuffer","BoundWitnessBuilder","BoundWitnessValidator","BoundWitnessSignaturesValidator","bw","errors","dataHash","BoundWitnessBuilder","results","Promise","all","addresses","map","address","index","BoundWitnessValidator","validateSignature","toArrayBuffer","$signatures","bwErrors","push","ex","Error","isAllowedBlockPayloadSchema","BlockAllowedPayloadSchemasValidator","block","errors","schema","payload_schemas","isAllowedBlockPayloadSchema","push","Error","BlockFieldsValidator","block","chainId","errors","chain","toLowerCase","push","Error","BlockBoundWitnessWithStorageMetaJsonSchema","Ajv","BlockJsonSchemaValidator","jsonSchema","BlockBoundWitnessWithStorageMetaJsonSchema","block","errors","ajv","Ajv","allErrors","strict","validate","compile","error","Error","cause","push","isHash","BlockPreviousHashValidator","block","errors","blockNumber","isHash","previous","push","Error","validateBlock","block","chainId","validators","BoundWitnessSignaturesValidator","BlockFieldsValidator","BlockPreviousHashValidator","BlockJsonSchemaValidator","BlockAllowedPayloadSchemasValidator","errors","Promise","all","map","validator","flat","ex","Error","BoundWitnessSchema","SchemaSchema","ChainStakeIntentSchema","HashSchema","TransferSchema","isTransactionBoundWitness","isElevatedFromBlock","payload","payloads","txs","filter","p","isTransactionBoundWitness","tx","payload_hashes","includes","_hash","transactionPayloadsFromHydratedBlock","validateElevatedFromBlock","payload","block","errors","txPayloadHashes","Set","transactionPayloadsFromHydratedBlock","map","tx","_hash","has","push","Error","schema","transactionsFromHydratedBlock","validateElevatedFromTransaction","payload","block","errors","txs","transactionsFromHydratedBlock","length","hashes","flatMap","tx","payload_hashes","includes","_hash","push","Error","isStorageMeta","isTransactionBoundWitness","validateTransactionInBlock","payload","_block","errors","isTransactionBoundWitness","isStorageMeta","push","BoundWitnessSignaturesValidator","Error","isStorageMeta","validateTypedPayloadInBlock","payload","block","identityFunction","errors","isStorageMeta","isElevatedFromBlock","push","validateElevatedFromBlock","validateElevatedFromTransaction","Error","isChainStakeIntent","validateChainStakeIntentInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isChainStakeIntent","isHashPayload","validateHashInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isHashPayload","isSchemaPayload","validateSchemaInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isSchemaPayload","isTransfer","validateTransferInBlock","payload","block","errors","push","validateTypedPayloadInBlock","isTransfer","payloadValidators","HashSchema","validateHashInBlock","TransferSchema","validateTransferInBlock","SchemaSchema","validateSchemaInBlock","ChainStakeIntentSchema","validateChainStakeIntentInBlock","BoundWitnessSchema","validateTransactionInBlock","validatePayloadInBlock","payload","block","errors","validator","schema","push","Error","PayloadsInBlockValidator","block","payloads","errors","payloadMap","payload","_hash","i","payload_hashes","length","hash","schema","payload_schemas","push","validatePayloadInBlock","Error","Object","keys","join","validateHydratedBlock","hydratedBlock","chainId","additionalValidators","errors","validateBlock","validators","BoundWitnessReferencesValidator","PayloadsInBlockValidator","Promise","all","map","v","flat","assertEx","analyzeChain","BalanceAnalyzer","isChainSummaryBalances","netBalancesForPayloads","RequiredBalanceBlockStateValidator","block","chainId","archivist","errors","netBalances","netBalancesForPayloads","netBalanceAddresses","Object","keys","requiredBalances","address","previous","Error","results","analyzeChain","BalanceAnalyzer","values","summaryBalances","assertEx","find","isChainSummaryBalances","reqBalance","entries","balance","BigInt","balances","push","validateHydratedBlockState","hydratedBlock","chainId","archivist","additionalValidators","errors","validateHydratedBlock","validators","RequiredBalanceBlockStateValidator","Promise","all","map","v","flat","isTransactionBoundWitness","TransactionDurationValidator","tx","errors","exp","nbf","push","Error","extractElevatedHashes","TransactionElevationValidator","tx","errors","extractElevatedHashes","push","Error","asAddress","addressesContains","TransactionFromValidator","tx","errors","from","asAddress","undefined","push","Error","addressesContains","hexToBigInt","TransactionGasValidator","tx","errors","fees","undefined","push","Error","base","gasLimit","gasPrice","priority","parseFees","ret","hexToBigInt","TransactionBoundWitnessJsonSchema","PayloadBuilder","Ajv","TransactionJsonSchemaValidator","tx","errors","ajv","Ajv","allErrors","strict","validate","compile","TransactionBoundWitnessJsonSchema","PayloadBuilder","omitStorageMeta","error","Error","cause","push","ex","BoundWitnessWrapper","TransactionProtocolValidator","tx","chainId","errors","BoundWitnessWrapper","parse","getValid","push","Error","chain","ex","validateTransaction","tx","chainId","additionalValidators","isTransactionBoundWitness","Error","validators","TransactionProtocolValidator","TransactionFromValidator","TransactionGasValidator","TransactionElevationValidator","Promise","all","map","v","flat"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateBlock.d.ts","sourceRoot":"","sources":["../../../src/block/validateBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateBlock.d.ts","sourceRoot":"","sources":["../../../src/block/validateBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAQ1F,eAAO,MAAM,aAAa,EAAE,sBAmB3B,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type BlockValidatorFunction } from '@xyo-network/xl1-
|
|
1
|
+
import { type BlockValidatorFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const BlockAllowedPayloadSchemasValidator: BlockValidatorFunction;
|
|
3
3
|
//# sourceMappingURL=AllowedPayloadSchemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllowedPayloadSchemas.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/AllowedPayloadSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACmB,KAAK,sBAAsB,EACpD,MAAM,
|
|
1
|
+
{"version":3,"file":"AllowedPayloadSchemas.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/AllowedPayloadSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACmB,KAAK,sBAAsB,EACpD,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,mCAAmC,EAAE,sBAUjD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/Fields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/Fields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAE1F,eAAO,MAAM,oBAAoB,EAAE,sBASlC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlockValidatorFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { BlockValidatorFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
import type { AnySchema } from 'ajv';
|
|
3
3
|
export declare const BlockJsonSchemaValidator: (jsonSchema?: AnySchema) => BlockValidatorFunction;
|
|
4
4
|
//# sourceMappingURL=JsonSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/JsonSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/JsonSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAGpC,eAAO,MAAM,wBAAwB,GAAI,aAAY,SAAsD,KAAG,sBAc7G,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviousHash.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/PreviousHash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PreviousHash.d.ts","sourceRoot":"","sources":["../../../../src/block/validators/PreviousHash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAE1F,eAAO,MAAM,0BAA0B,EAAE,sBAoBxC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
2
|
import type { Schema } from '@xyo-network/payload-model';
|
|
3
|
-
import type { HydratedBoundWitnessValidationFunction } from '@xyo-network/xl1-
|
|
3
|
+
import type { HydratedBoundWitnessValidationFunction } from '@xyo-network/xl1-protocol';
|
|
4
4
|
export declare const BoundWitnessReferencesValidator: <T extends BoundWitness = BoundWitness>(allowedSchemas?: Schema[]) => HydratedBoundWitnessValidationFunction<T>;
|
|
5
5
|
//# sourceMappingURL=BoundWitnessReferences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessReferences.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessReferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAEV,MAAM,EAEP,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,sCAAsC,EAA2C,MAAM,
|
|
1
|
+
{"version":3,"file":"BoundWitnessReferences.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessReferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAEV,MAAM,EAEP,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,sCAAsC,EAA2C,MAAM,2BAA2B,CAAA;AAMhI,eAAO,MAAM,+BAA+B,GACzC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,iBAAiB,MAAM,EAAE,KAAG,sCAAsC,CAAC,CAAC,CAoC7G,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { BoundWitnessValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { BoundWitnessValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const BoundWitnessSignaturesValidator: BoundWitnessValidationFunction;
|
|
3
3
|
//# sourceMappingURL=BoundWitnessSignatures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessSignatures.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessSignatures.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"BoundWitnessSignatures.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessSignatures.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAE/E,eAAO,MAAM,+BAA+B,EAAE,8BAgB7C,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
-
import { type HydratedBlock } from '@xyo-network/xl1-
|
|
2
|
+
import { type HydratedBlock } from '@xyo-network/xl1-protocol';
|
|
3
3
|
export declare const isElevatedFromBlock: (payload: WithStorageMeta<Payload>, [, payloads]: HydratedBlock) => boolean;
|
|
4
4
|
//# sourceMappingURL=isElevatedFromBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isElevatedFromBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/isElevatedFromBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,
|
|
1
|
+
{"version":3,"file":"isElevatedFromBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/isElevatedFromBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,2BAA2B,CAAA;AAEzF,eAAO,MAAM,mBAAmB,GAAI,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,aAAa,KAAG,OAQpG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateElevatedFromBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateElevatedFromBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateElevatedFromBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateElevatedFromBlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateElevatedFromBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateElevatedFromBlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAEhG,eAAO,MAAM,yBAAyB,EAAE,gCAUvC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateElevatedFromTransaction: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateElevatedFromTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateElevatedFromTransaction.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateElevatedFromTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateElevatedFromTransaction.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateElevatedFromTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAEhG,eAAO,MAAM,+BAA+B,EAAE,gCAe7C,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
-
import type { BlockBoundWitness } from '@xyo-network/xl1-
|
|
2
|
+
import type { BlockBoundWitness } from '@xyo-network/xl1-protocol';
|
|
3
3
|
export declare const validateIncludedInBlock: (payload: WithStorageMeta<Payload>, block: BlockBoundWitness) => Error[];
|
|
4
4
|
//# sourceMappingURL=validateIncludedInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateIncludedInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateIncludedInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateIncludedInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateIncludedInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,eAAO,MAAM,uBAAuB,GAAI,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,iBAAiB,KAAG,KAAK,EAM1G,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateTransactionInBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateTransactionInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateTransactionInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateTransactionInBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateTransactionInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateTransactionInBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAKhG,eAAO,MAAM,0BAA0B,EAAE,gCAWxC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IdentityFunction } from '@xyo-network/chain-protocol';
|
|
2
2
|
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
-
import type { HydratedBlock } from '@xyo-network/xl1-
|
|
3
|
+
import type { HydratedBlock } from '@xyo-network/xl1-protocol';
|
|
4
4
|
export declare const validateTypedPayloadInBlock: <T extends Payload>(payload: Payload, block: HydratedBlock, identityFunction: IdentityFunction<T>) => Promise<Error[]>;
|
|
5
5
|
//# sourceMappingURL=validateTypedPayloadInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateTypedPayloadInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateTypedPayloadInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateTypedPayloadInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateTypedPayloadInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAM9D,eAAO,MAAM,2BAA2B,GAAU,CAAC,SAAS,OAAO,EACjE,SAAS,OAAO,EAChB,OAAO,aAAa,EACpB,kBAAkB,gBAAgB,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,KAAK,EAAE,CAYjB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateChainStakeIntentInBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateChainStakeIntentInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateChainStakeIntentInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateChainStakeIntentInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAKhG,eAAO,MAAM,+BAA+B,EAAE,gCAO7C,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateHashInBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateHashInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateHashInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateHashInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateHashInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateHashInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAKhG,eAAO,MAAM,mBAAmB,EAAE,gCAOjC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateSchemaInBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateSchemaInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateSchemaInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateSchemaInBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateSchemaInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateSchemaInBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAIhG,eAAO,MAAM,qBAAqB,EAAE,gCAOnC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import { type InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateTransferInBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateTransferInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateTransferInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateTransferInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EACe,KAAK,gCAAgC,EAC1D,MAAM,
|
|
1
|
+
{"version":3,"file":"validateTransferInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateTransferInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EACe,KAAK,gCAAgC,EAC1D,MAAM,2BAA2B,CAAA;AAIlC,eAAO,MAAM,uBAAuB,EAAE,gCAOrC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validatePayloadInBlock: InBlockPayloadValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validatePayloadInBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatePayloadInBlock.d.ts","sourceRoot":"","sources":["../../../src/elevatedPayload/validatePayloadInBlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gCAAgC,EACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"validatePayloadInBlock.d.ts","sourceRoot":"","sources":["../../../src/elevatedPayload/validatePayloadInBlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gCAAgC,EACjC,MAAM,2BAA2B,CAAA;AAkBlC,eAAO,MAAM,sBAAsB,EAAE,gCAYpC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedBlockValidatorFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedBlockValidatorFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateHydratedBlock: HydratedBlockValidatorFunction;
|
|
3
3
|
//# sourceMappingURL=validateHydratedBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateHydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlock/validateHydratedBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,8BAA8B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateHydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlock/validateHydratedBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAM9F,eAAO,MAAM,qBAAqB,EAAE,8BAYnC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedBlockValidatorFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedBlockValidatorFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const PayloadsInBlockValidator: HydratedBlockValidatorFunction;
|
|
3
3
|
//# sourceMappingURL=Payloads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payloads.d.ts","sourceRoot":"","sources":["../../../../src/hydratedBlock/validators/Payloads.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,
|
|
1
|
+
{"version":3,"file":"Payloads.d.ts","sourceRoot":"","sources":["../../../../src/hydratedBlock/validators/Payloads.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,2BAA2B,CAAA;AAIlC,eAAO,MAAM,wBAAwB,EAAE,8BA2BtC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedBlockStateValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const validateHydratedBlockState: HydratedBlockStateValidationFunction;
|
|
3
3
|
//# sourceMappingURL=validateHydratedBlockState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateHydratedBlockState.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlockState/validateHydratedBlockState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,oCAAoC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateHydratedBlockState.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlockState/validateHydratedBlockState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,oCAAoC,EAAE,MAAM,2BAA2B,CAAA;AAKpG,eAAO,MAAM,0BAA0B,EAAE,oCASxC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedBlockStateValidationFunction } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const RequiredBalanceBlockStateValidator: HydratedBlockStateValidationFunction;
|
|
3
3
|
//# sourceMappingURL=RequiredBalance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequiredBalance.d.ts","sourceRoot":"","sources":["../../../../src/hydratedBlockState/validators/RequiredBalance.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,oCAAoC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RequiredBalance.d.ts","sourceRoot":"","sources":["../../../../src/hydratedBlockState/validators/RequiredBalance.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,oCAAoC,EAAE,MAAM,2BAA2B,CAAA;AAEpG,eAAO,MAAM,kCAAkC,EAAE,oCAgChD,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
|
-
import type { HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-
|
|
2
|
+
import type { HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-protocol';
|
|
3
3
|
export declare function validateTransaction(tx: HydratedTransactionWithHashStorageMeta, chainId?: Address, additionalValidators?: HydratedTransactionValidatorFunction[]): Promise<Error[]>;
|
|
4
4
|
//# sourceMappingURL=validateTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/validateTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,oCAAoC,EAAE,sCAAsC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validateTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/validateTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,oCAAoC,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAA;AAO7H,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,sCAAsC,EAC1C,OAAO,CAAC,EAAE,OAAO,EACjB,oBAAoB,GAAE,oCAAoC,EAAO,GAChE,OAAO,CAAC,KAAK,EAAE,CAAC,CAgBlB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const TransactionDurationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionDurationValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionDurationValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionDurationValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionDurationValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionDurationValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,4BAA4B,EAAE,oCAAoC,CAAC,uBAAuB,CAYtG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const TransactionElevationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionElevationValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionElevationValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionElevationValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EAA0C,uBAAuB,EACtG,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionElevationValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionElevationValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EAA0C,uBAAuB,EACtG,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,6BAA6B,EAAE,oCAAoC,CAAC,uBAAuB,CAUvG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const TransactionFromValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionFromValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionFromValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionFromValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionFromValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionFromValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,wBAAwB,EAAE,oCAAoC,CAAC,uBAAuB,CAQlG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const TransactionGasValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionGasValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionGasValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionGasValidator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionGasValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionGasValidator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,uBAAuB,EAAE,oCAAoC,CAAC,uBAAuB,CAwBjG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const TransactionJsonSchemaValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionJsonSchemaValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionJsonSchemaValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionJsonSchemaValidator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionJsonSchemaValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionJsonSchemaValidator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,2BAA2B,CAAA;AAGlC,eAAO,MAAM,8BAA8B,EAAE,oCAAoC,CAAC,uBAAuB,CAiBxG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
2
2
|
export declare const TransactionProtocolValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionProtocolValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionProtocolValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionProtocolValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionProtocolValidator.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionProtocolValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,4BAA4B,EAAE,oCAAoC,CAAC,uBAAuB,CAgBtG,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/chain-validation",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.9",
|
|
5
5
|
"description": "XYO Layer One SDK Validation",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -34,29 +34,28 @@
|
|
|
34
34
|
"deploy3": "echo Deploy3 not allowed!"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@xylabs/arraybuffer": "^4.8.
|
|
38
|
-
"@xylabs/assert": "^4.8.
|
|
39
|
-
"@xylabs/hex": "^4.8.
|
|
40
|
-
"@xylabs/promise": "^4.8.
|
|
41
|
-
"@xyo-network/archivist-model": "^3.14.
|
|
42
|
-
"@xyo-network/boundwitness-builder": "^3.14.
|
|
43
|
-
"@xyo-network/boundwitness-model": "^3.14.
|
|
44
|
-
"@xyo-network/boundwitness-validator": "^3.14.
|
|
45
|
-
"@xyo-network/boundwitness-wrapper": "^3.14.
|
|
46
|
-
"@xyo-network/chain-protocol": "^1.3.
|
|
47
|
-
"@xyo-network/chain-schema": "^1.3.
|
|
48
|
-
"@xyo-network/payload-builder": "^3.14.
|
|
49
|
-
"@xyo-network/payload-model": "^3.14.
|
|
50
|
-
"@xyo-network/schema-payload-plugin": "^3.14.
|
|
51
|
-
"@xyo-network/xl1-
|
|
52
|
-
"@xyo-network/xl1-protocol": "^1.3.8",
|
|
37
|
+
"@xylabs/arraybuffer": "^4.8.9",
|
|
38
|
+
"@xylabs/assert": "^4.8.9",
|
|
39
|
+
"@xylabs/hex": "^4.8.9",
|
|
40
|
+
"@xylabs/promise": "^4.8.9",
|
|
41
|
+
"@xyo-network/archivist-model": "^3.14.15",
|
|
42
|
+
"@xyo-network/boundwitness-builder": "^3.14.15",
|
|
43
|
+
"@xyo-network/boundwitness-model": "^3.14.15",
|
|
44
|
+
"@xyo-network/boundwitness-validator": "^3.14.15",
|
|
45
|
+
"@xyo-network/boundwitness-wrapper": "^3.14.15",
|
|
46
|
+
"@xyo-network/chain-protocol": "^1.3.9",
|
|
47
|
+
"@xyo-network/chain-schema": "^1.3.9",
|
|
48
|
+
"@xyo-network/payload-builder": "^3.14.15",
|
|
49
|
+
"@xyo-network/payload-model": "^3.14.15",
|
|
50
|
+
"@xyo-network/schema-payload-plugin": "^3.14.15",
|
|
51
|
+
"@xyo-network/xl1-protocol": "^1.3.9",
|
|
53
52
|
"ajv": "^8.17.1"
|
|
54
53
|
},
|
|
55
54
|
"devDependencies": {
|
|
56
55
|
"@types/node": "^22.15.3",
|
|
57
|
-
"@xylabs/ts-scripts-yarn3": "^6.
|
|
58
|
-
"@xylabs/tsconfig": "^6.
|
|
59
|
-
"knip": "^5.
|
|
56
|
+
"@xylabs/ts-scripts-yarn3": "^6.4.6",
|
|
57
|
+
"@xylabs/tsconfig": "^6.4.6",
|
|
58
|
+
"knip": "^5.51.0",
|
|
60
59
|
"typescript": "^5.8.3"
|
|
61
60
|
},
|
|
62
61
|
"engines": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
import { BoundWitnessSignaturesValidator } from '../boundwitness/index.ts'
|
|
5
5
|
import {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type BlockBoundWitness, type BlockValidatorFunction, isAllowedBlockPayloadSchema,
|
|
3
|
-
} from '@xyo-network/xl1-
|
|
3
|
+
} from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
export const BlockAllowedPayloadSchemasValidator: BlockValidatorFunction = (
|
|
6
6
|
block: BlockBoundWitness,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
export const BlockFieldsValidator: BlockValidatorFunction = (
|
|
5
5
|
block: BlockBoundWitness,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockBoundWitnessWithStorageMetaJsonSchema } from '@xyo-network/chain-schema'
|
|
2
|
-
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'
|
|
3
3
|
import type { AnySchema } from 'ajv'
|
|
4
4
|
import { Ajv } from 'ajv'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isHash } from '@xylabs/hex'
|
|
2
|
-
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
export const BlockPreviousHashValidator: BlockValidatorFunction = (
|
|
5
5
|
block: BlockBoundWitness,
|
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
WithHashStorageMeta,
|
|
8
8
|
} from '@xyo-network/payload-model'
|
|
9
9
|
import { isAnyPayload } from '@xyo-network/payload-model'
|
|
10
|
-
import type { HydratedBoundWitnessValidationFunction, HydratedBoundWitnessWithHashStorageMeta } from '@xyo-network/xl1-
|
|
10
|
+
import type { HydratedBoundWitnessValidationFunction, HydratedBoundWitnessWithHashStorageMeta } from '@xyo-network/xl1-protocol'
|
|
11
11
|
|
|
12
12
|
function getPayloadsFromPayloadArray(payloads: WithHashStorageMeta<Payload>[], hashes: Hash[]): (WithHashStorageMeta<Payload> | undefined)[] {
|
|
13
13
|
return hashes.map(hash => payloads.find(payload => payload._hash === hash || payload._dataHash === hash))
|
|
@@ -3,7 +3,7 @@ import type { Address } from '@xylabs/hex'
|
|
|
3
3
|
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
|
|
4
4
|
import type { BoundWitness } from '@xyo-network/boundwitness-model'
|
|
5
5
|
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
|
|
6
|
-
import type { BoundWitnessValidationFunction } from '@xyo-network/xl1-
|
|
6
|
+
import type { BoundWitnessValidationFunction } from '@xyo-network/xl1-protocol'
|
|
7
7
|
|
|
8
8
|
export const BoundWitnessSignaturesValidator: BoundWitnessValidationFunction = async (
|
|
9
9
|
bw: BoundWitness,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
-
import { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-
|
|
2
|
+
import { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
export const isElevatedFromBlock = (payload: WithStorageMeta<Payload>, [, payloads]: HydratedBlock): boolean => {
|
|
5
5
|
const txs = payloads.filter(p => isTransactionBoundWitness(p))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise'
|
|
2
2
|
import { transactionPayloadsFromHydratedBlock } from '@xyo-network/chain-protocol'
|
|
3
|
-
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
3
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
export const validateElevatedFromBlock: InBlockPayloadValidationFunction = (
|
|
6
6
|
payload,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise'
|
|
2
2
|
import { transactionsFromHydratedBlock } from '@xyo-network/chain-protocol'
|
|
3
|
-
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
3
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
export const validateElevatedFromTransaction: InBlockPayloadValidationFunction = (
|
|
6
6
|
payload,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
-
import type { BlockBoundWitness } from '@xyo-network/xl1-
|
|
2
|
+
import type { BlockBoundWitness } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
export const validateIncludedInBlock = (payload: WithStorageMeta<Payload>, block: BlockBoundWitness): Error[] => {
|
|
5
5
|
const errors: Error[] = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
-
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
3
|
-
import { isTransactionBoundWitness } from '@xyo-network/xl1-
|
|
2
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'
|
|
3
|
+
import { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
import { BoundWitnessSignaturesValidator } from '../../boundwitness/index.ts'
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IdentityFunction } from '@xyo-network/chain-protocol'
|
|
2
2
|
import type { Payload } from '@xyo-network/payload-model'
|
|
3
3
|
import { isStorageMeta } from '@xyo-network/payload-model'
|
|
4
|
-
import type { HydratedBlock } from '@xyo-network/xl1-
|
|
4
|
+
import type { HydratedBlock } from '@xyo-network/xl1-protocol'
|
|
5
5
|
|
|
6
6
|
import { isElevatedFromBlock } from './isElevatedFromBlock.ts'
|
|
7
7
|
import { validateElevatedFromBlock } from './validateElevatedFromBlock.ts'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
2
|
-
import { isChainStakeIntent } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'
|
|
2
|
+
import { isChainStakeIntent } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
import { validateTypedPayloadInBlock } from '../lib/index.ts'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
2
|
-
import { isHashPayload } from '@xyo-network/xl1-
|
|
1
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'
|
|
2
|
+
import { isHashPayload } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
import { validateTypedPayloadInBlock } from '../lib/index.ts'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isSchemaPayload } from '@xyo-network/schema-payload-plugin'
|
|
2
|
-
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-
|
|
2
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
import { validateTypedPayloadInBlock } from '../lib/index.ts'
|
|
5
5
|
|
|
@@ -4,10 +4,10 @@ import { SchemaSchema } from '@xyo-network/schema-payload-plugin'
|
|
|
4
4
|
import type {
|
|
5
5
|
HydratedBlock,
|
|
6
6
|
InBlockPayloadValidationFunction,
|
|
7
|
-
} from '@xyo-network/xl1-
|
|
7
|
+
} from '@xyo-network/xl1-protocol'
|
|
8
8
|
import {
|
|
9
9
|
ChainStakeIntentSchema, HashSchema, TransferSchema,
|
|
10
|
-
} from '@xyo-network/xl1-
|
|
10
|
+
} from '@xyo-network/xl1-protocol'
|
|
11
11
|
|
|
12
12
|
import { validateTransactionInBlock } from './lib/index.ts'
|
|
13
13
|
import {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { HydratedBlock, HydratedBlockValidatorFunction } from '@xyo-network/xl1-
|
|
2
|
+
import type { HydratedBlock, HydratedBlockValidatorFunction } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
import { validateBlock } from '../block/index.ts'
|
|
5
5
|
import { BoundWitnessReferencesValidator } from '../boundwitness/index.ts'
|
|
@@ -3,7 +3,7 @@ import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
|
3
3
|
import type {
|
|
4
4
|
HydratedBlock,
|
|
5
5
|
HydratedBlockValidatorFunction,
|
|
6
|
-
} from '@xyo-network/xl1-
|
|
6
|
+
} from '@xyo-network/xl1-protocol'
|
|
7
7
|
|
|
8
8
|
import { validatePayloadInBlock } from '../../elevatedPayload/validatePayloadInBlock.ts'
|
|
9
9
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
2
|
import type { ReadArchivist } from '@xyo-network/archivist-model'
|
|
3
|
-
import type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-
|
|
3
|
+
import type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
import { validateHydratedBlock } from '../hydratedBlock/index.ts'
|
|
6
6
|
import { RequiredBalanceBlockStateValidator } from './validators/index.ts'
|
|
@@ -4,7 +4,7 @@ import type { ReadArchivist } from '@xyo-network/archivist-model'
|
|
|
4
4
|
import {
|
|
5
5
|
analyzeChain, BalanceAnalyzer, isChainSummaryBalances, netBalancesForPayloads,
|
|
6
6
|
} from '@xyo-network/chain-protocol'
|
|
7
|
-
import type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-
|
|
7
|
+
import type { HydratedBlock, HydratedBlockStateValidationFunction } from '@xyo-network/xl1-protocol'
|
|
8
8
|
|
|
9
9
|
export const RequiredBalanceBlockStateValidator: HydratedBlockStateValidationFunction = async (
|
|
10
10
|
block: HydratedBlock,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-
|
|
3
|
-
import { isTransactionBoundWitness } from '@xyo-network/xl1-
|
|
2
|
+
import type { HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-protocol'
|
|
3
|
+
import { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
6
|
TransactionElevationValidator, TransactionFromValidator, TransactionGasValidator, TransactionProtocolValidator,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,
|
|
3
|
-
} from '@xyo-network/xl1-
|
|
3
|
+
} from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
export const TransactionDurationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (
|
|
6
6
|
[tx]: HydratedTransaction,
|
|
@@ -2,7 +2,7 @@ import type { Promisable } from '@xylabs/promise'
|
|
|
2
2
|
import { extractElevatedHashes } from '@xyo-network/chain-protocol'
|
|
3
3
|
import type {
|
|
4
4
|
HydratedTransactionValidatorFunction, HydratedTransactionWithHashStorageMeta, TransactionBoundWitness,
|
|
5
|
-
} from '@xyo-network/xl1-
|
|
5
|
+
} from '@xyo-network/xl1-protocol'
|
|
6
6
|
|
|
7
7
|
export const TransactionElevationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (
|
|
8
8
|
tx: HydratedTransactionWithHashStorageMeta,
|
|
@@ -2,7 +2,7 @@ import { asAddress } from '@xylabs/hex'
|
|
|
2
2
|
import { addressesContains } from '@xyo-network/boundwitness-validator'
|
|
3
3
|
import type {
|
|
4
4
|
HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,
|
|
5
|
-
} from '@xyo-network/xl1-
|
|
5
|
+
} from '@xyo-network/xl1-protocol'
|
|
6
6
|
|
|
7
7
|
export const TransactionFromValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (
|
|
8
8
|
[tx]: HydratedTransaction,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { hexToBigInt } from '@xylabs/hex'
|
|
2
2
|
import type {
|
|
3
3
|
HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness, TransactionFeesBigInt, TransactionFeesHex,
|
|
4
|
-
} from '@xyo-network/xl1-
|
|
4
|
+
} from '@xyo-network/xl1-protocol'
|
|
5
5
|
|
|
6
6
|
export const TransactionGasValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (
|
|
7
7
|
[tx]: HydratedTransaction,
|
|
@@ -3,7 +3,7 @@ import { TransactionBoundWitnessJsonSchema } from '@xyo-network/chain-schema'
|
|
|
3
3
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
4
4
|
import type {
|
|
5
5
|
HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,
|
|
6
|
-
} from '@xyo-network/xl1-
|
|
6
|
+
} from '@xyo-network/xl1-protocol'
|
|
7
7
|
import { Ajv } from 'ajv'
|
|
8
8
|
|
|
9
9
|
export const TransactionJsonSchemaValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (
|
|
@@ -2,7 +2,7 @@ import type { Address } from '@xylabs/hex'
|
|
|
2
2
|
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
3
3
|
import type {
|
|
4
4
|
HydratedTransaction, HydratedTransactionValidatorFunction, TransactionBoundWitness,
|
|
5
|
-
} from '@xyo-network/xl1-
|
|
5
|
+
} from '@xyo-network/xl1-protocol'
|
|
6
6
|
|
|
7
7
|
export const TransactionProtocolValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = async (
|
|
8
8
|
[tx]: HydratedTransaction,
|