@xyo-network/chain-validation 1.1.7 → 1.2.1
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 +116 -105
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/block/index.d.ts +0 -1
- package/dist/types/block/index.d.ts.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/index.d.ts +0 -2
- package/dist/types/boundwitness/index.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/index.d.ts +1 -7
- package/dist/types/elevatedPayload/index.d.ts.map +1 -1
- package/dist/types/elevatedPayload/lib/index.d.ts +7 -0
- package/dist/types/elevatedPayload/lib/index.d.ts.map +1 -0
- package/dist/types/elevatedPayload/lib/isElevatedFromBlock.d.ts +4 -0
- package/dist/types/elevatedPayload/lib/isElevatedFromBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/lib/validateElevatedFromBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/lib/validateElevatedFromBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/lib/validateElevatedFromTransaction.d.ts +3 -0
- package/dist/types/elevatedPayload/lib/validateElevatedFromTransaction.d.ts.map +1 -0
- package/dist/types/elevatedPayload/lib/validateIncludedInBlock.d.ts +4 -0
- package/dist/types/elevatedPayload/lib/validateIncludedInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/lib/validateTransactionInBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/lib/validateTransactionInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/lib/validateTypedPayloadInBlock.d.ts +5 -0
- package/dist/types/elevatedPayload/lib/validateTypedPayloadInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/payloads/index.d.ts +5 -0
- package/dist/types/elevatedPayload/payloads/index.d.ts.map +1 -0
- package/dist/types/elevatedPayload/payloads/validateChainStakeIntentInBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/payloads/validateChainStakeIntentInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/payloads/validateHashInBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/payloads/validateHashInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/payloads/validateSchemaInBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/payloads/validateSchemaInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/payloads/validateTransferInBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/payloads/validateTransferInBlock.d.ts.map +1 -0
- package/dist/types/elevatedPayload/validatePayloadInBlock.d.ts +3 -0
- package/dist/types/elevatedPayload/validatePayloadInBlock.d.ts.map +1 -0
- package/dist/types/hydratedBlock/index.d.ts +0 -1
- package/dist/types/hydratedBlock/index.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 +2 -2
- package/dist/types/hydratedBlockState/validateHydratedBlockState.d.ts.map +1 -1
- package/dist/types/hydratedBlockState/validators/RequiredBalance.d.ts +2 -2
- package/dist/types/hydratedBlockState/validators/RequiredBalance.d.ts.map +1 -1
- package/dist/types/transaction/validateTransaction.d.ts +3 -2
- package/dist/types/transaction/validateTransaction.d.ts.map +1 -1
- package/dist/types/transaction/validators/{TransactionElevation.d.ts → TransactionElevationValidator.d.ts} +1 -1
- package/dist/types/transaction/validators/TransactionElevationValidator.d.ts.map +1 -0
- package/dist/types/transaction/validators/TransactionFromValidator.d.ts +3 -0
- package/dist/types/transaction/validators/TransactionFromValidator.d.ts.map +1 -0
- package/dist/types/transaction/validators/{TransactionJsonSchema.d.ts → TransactionJsonSchemaValidator.d.ts} +1 -1
- package/dist/types/transaction/validators/TransactionJsonSchemaValidator.d.ts.map +1 -0
- package/dist/types/transaction/validators/{TransactionProtocol.d.ts → TransactionProtocolValidator.d.ts} +1 -1
- package/dist/types/transaction/validators/TransactionProtocolValidator.d.ts.map +1 -0
- package/dist/types/transaction/validators/index.d.ts +4 -3
- package/dist/types/transaction/validators/index.d.ts.map +1 -1
- package/package.json +16 -17
- package/src/block/index.ts +0 -1
- package/src/block/validateBlock.ts +1 -2
- package/src/block/validators/AllowedPayloadSchemas.ts +3 -4
- package/src/block/validators/Fields.ts +1 -3
- package/src/block/validators/JsonSchema.ts +1 -3
- package/src/block/validators/PreviousHash.ts +1 -3
- package/src/boundwitness/index.ts +0 -2
- package/src/boundwitness/validators/BoundWitnessReferences.ts +1 -2
- package/src/boundwitness/validators/BoundWitnessSignatures.ts +1 -2
- package/src/elevatedPayload/index.ts +1 -7
- package/src/elevatedPayload/lib/index.ts +6 -0
- package/src/elevatedPayload/lib/isElevatedFromBlock.ts +12 -0
- package/src/elevatedPayload/{validateElevatedInBlock.ts → lib/validateElevatedFromBlock.ts} +2 -4
- package/src/elevatedPayload/lib/validateElevatedFromTransaction.ts +20 -0
- package/src/elevatedPayload/lib/validateIncludedInBlock.ts +10 -0
- package/src/elevatedPayload/lib/validateTransactionInBlock.ts +18 -0
- package/src/elevatedPayload/lib/validateTypedPayloadInBlock.ts +27 -0
- package/src/elevatedPayload/payloads/index.ts +4 -0
- package/src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts +13 -0
- package/src/elevatedPayload/payloads/validateHashInBlock.ts +13 -0
- package/src/elevatedPayload/payloads/validateSchemaInBlock.ts +13 -0
- package/src/elevatedPayload/payloads/validateTransferInBlock.ts +14 -0
- package/src/elevatedPayload/validatePayloadInBlock.ts +37 -0
- package/src/hydratedBlock/index.ts +0 -1
- package/src/hydratedBlock/validateHydratedBlock.ts +6 -3
- package/src/hydratedBlock/validators/Payloads.ts +9 -36
- package/src/hydratedBlockState/validateHydratedBlockState.ts +4 -4
- package/src/hydratedBlockState/validators/RequiredBalance.ts +2 -2
- package/src/transaction/validateTransaction.ts +8 -9
- package/src/transaction/validators/TransactionElevationValidator.ts +12 -0
- package/src/transaction/validators/TransactionFromValidator.ts +16 -0
- package/src/transaction/validators/{TransactionJsonSchema.ts → TransactionJsonSchemaValidator.ts} +2 -1
- package/src/transaction/validators/{TransactionProtocol.ts → TransactionProtocolValidator.ts} +4 -6
- package/src/transaction/validators/index.ts +4 -3
- package/babel.config.json +0 -6
- package/dist/types/block/BlockValidationFunction.d.ts +0 -5
- package/dist/types/block/BlockValidationFunction.d.ts.map +0 -1
- package/dist/types/boundwitness/BoundWitnessValidationFunction.d.ts +0 -4
- package/dist/types/boundwitness/BoundWitnessValidationFunction.d.ts.map +0 -1
- package/dist/types/boundwitness/HydratedBoundWitnessValidationFunction.d.ts +0 -5
- package/dist/types/boundwitness/HydratedBoundWitnessValidationFunction.d.ts.map +0 -1
- package/dist/types/elevatedPayload/InBlockPayloadValidationFunction.d.ts +0 -6
- package/dist/types/elevatedPayload/InBlockPayloadValidationFunction.d.ts.map +0 -1
- package/dist/types/elevatedPayload/validateChainStakeIntentInBlock.d.ts +0 -3
- package/dist/types/elevatedPayload/validateChainStakeIntentInBlock.d.ts.map +0 -1
- package/dist/types/elevatedPayload/validateElevatedInBlock.d.ts +0 -3
- package/dist/types/elevatedPayload/validateElevatedInBlock.d.ts.map +0 -1
- package/dist/types/elevatedPayload/validateElevatedInTransaction.d.ts +0 -3
- package/dist/types/elevatedPayload/validateElevatedInTransaction.d.ts.map +0 -1
- package/dist/types/elevatedPayload/validateSchemaInBlock.d.ts +0 -3
- package/dist/types/elevatedPayload/validateSchemaInBlock.d.ts.map +0 -1
- package/dist/types/elevatedPayload/validateTransactionInBlock.d.ts +0 -3
- package/dist/types/elevatedPayload/validateTransactionInBlock.d.ts.map +0 -1
- package/dist/types/elevatedPayload/validateTransferInBlock.d.ts +0 -3
- package/dist/types/elevatedPayload/validateTransferInBlock.d.ts.map +0 -1
- package/dist/types/hydratedBlock/HydratedBlockValidationFunction.d.ts +0 -5
- package/dist/types/hydratedBlock/HydratedBlockValidationFunction.d.ts.map +0 -1
- package/dist/types/transaction/validators/TransactionElevation.d.ts.map +0 -1
- package/dist/types/transaction/validators/TransactionJsonSchema.d.ts.map +0 -1
- package/dist/types/transaction/validators/TransactionProtocol.d.ts.map +0 -1
- package/src/block/BlockValidationFunction.ts +0 -8
- package/src/boundwitness/BoundWitnessValidationFunction.ts +0 -6
- package/src/boundwitness/HydratedBoundWitnessValidationFunction.ts +0 -7
- package/src/elevatedPayload/InBlockPayloadValidationFunction.ts +0 -8
- package/src/elevatedPayload/validateChainStakeIntentInBlock.ts +0 -29
- package/src/elevatedPayload/validateElevatedInTransaction.ts +0 -23
- package/src/elevatedPayload/validateSchemaInBlock.ts +0 -24
- package/src/elevatedPayload/validateTransactionInBlock.ts +0 -18
- package/src/elevatedPayload/validateTransferInBlock.ts +0 -24
- package/src/hydratedBlock/HydratedBlockValidationFunction.ts +0 -8
- package/src/transaction/validators/TransactionElevation.ts +0 -28
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import { isSchemaPayload } from '@xyo-network/schema-payload-plugin'
|
|
3
|
-
import type { HydratedBlock } from '@xyo-network/xl1-model'
|
|
4
|
-
|
|
5
|
-
import type { InBlockPayloadValidationFunction } from './InBlockPayloadValidationFunction.ts'
|
|
6
|
-
import { validateElevatedInBlock } from './validateElevatedInBlock.ts'
|
|
7
|
-
import { validateElevatedInTransaction } from './validateElevatedInTransaction.ts'
|
|
8
|
-
|
|
9
|
-
export const validateSchemaInBlock: InBlockPayloadValidationFunction = async (
|
|
10
|
-
payload,
|
|
11
|
-
block: HydratedBlock,
|
|
12
|
-
chainId: Address,
|
|
13
|
-
): Promise<Error[]> => {
|
|
14
|
-
const errors: Error[] = []
|
|
15
|
-
if (!isSchemaPayload(payload)) {
|
|
16
|
-
errors.push(new Error('Payload is not a schema'))
|
|
17
|
-
}
|
|
18
|
-
if (payload.from === chainId || block[0].addresses.includes(payload.from)) {
|
|
19
|
-
errors.push(...await validateElevatedInBlock(payload, block, chainId))
|
|
20
|
-
} else {
|
|
21
|
-
errors.push(...await validateElevatedInTransaction(payload, block, chainId))
|
|
22
|
-
}
|
|
23
|
-
return errors
|
|
24
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { HydratedBlock } from '@xyo-network/xl1-model'
|
|
2
|
-
import { isTransactionBoundWitness } from '@xyo-network/xl1-model'
|
|
3
|
-
|
|
4
|
-
import { BoundWitnessSignaturesValidator } from '../boundwitness/index.ts'
|
|
5
|
-
import type { InBlockPayloadValidationFunction } from './InBlockPayloadValidationFunction.ts'
|
|
6
|
-
|
|
7
|
-
export const validateTransactionInBlock: InBlockPayloadValidationFunction = async (
|
|
8
|
-
payload,
|
|
9
|
-
_block: HydratedBlock,
|
|
10
|
-
): Promise<Error[]> => {
|
|
11
|
-
const errors: Error[] = []
|
|
12
|
-
if (isTransactionBoundWitness(payload)) {
|
|
13
|
-
errors.push(...await BoundWitnessSignaturesValidator(payload))
|
|
14
|
-
} else {
|
|
15
|
-
errors.push(new Error('Payload is not a transaction'))
|
|
16
|
-
}
|
|
17
|
-
return errors
|
|
18
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { HydratedBlock } from '@xyo-network/xl1-model'
|
|
3
|
-
import { isTransfer } from '@xyo-network/xl1-model'
|
|
4
|
-
|
|
5
|
-
import type { InBlockPayloadValidationFunction } from './InBlockPayloadValidationFunction.ts'
|
|
6
|
-
import { validateElevatedInBlock } from './validateElevatedInBlock.ts'
|
|
7
|
-
import { validateElevatedInTransaction } from './validateElevatedInTransaction.ts'
|
|
8
|
-
|
|
9
|
-
export const validateTransferInBlock: InBlockPayloadValidationFunction = async (
|
|
10
|
-
payload,
|
|
11
|
-
block: HydratedBlock,
|
|
12
|
-
chainId: Address,
|
|
13
|
-
): Promise<Error[]> => {
|
|
14
|
-
const errors: Error[] = []
|
|
15
|
-
if (!isTransfer(payload)) {
|
|
16
|
-
errors.push(new Error('Payload is not a transfer'))
|
|
17
|
-
}
|
|
18
|
-
if (payload.from === chainId || block[0].addresses.includes(payload.from)) {
|
|
19
|
-
errors.push(...await validateElevatedInBlock(payload, block, chainId))
|
|
20
|
-
} else {
|
|
21
|
-
errors.push(...await validateElevatedInTransaction(payload, block, chainId))
|
|
22
|
-
}
|
|
23
|
-
return errors
|
|
24
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { Promisable } from '@xylabs/promise'
|
|
3
|
-
import type { HydratedBlock } from '@xyo-network/xl1-model'
|
|
4
|
-
|
|
5
|
-
export type HydratedBlockValidatorFunction = (
|
|
6
|
-
hydratedBlock: HydratedBlock,
|
|
7
|
-
chainId: Address,
|
|
8
|
-
) => Promisable<Error[]>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { exists } from '@xylabs/exists'
|
|
2
|
-
import type { Promisable } from '@xylabs/promise'
|
|
3
|
-
import type {
|
|
4
|
-
HydratedTransactionValidatorFunction, HydratedTransactionWithStorageMeta, TransactionBoundWitness,
|
|
5
|
-
} from '@xyo-network/xl1-model'
|
|
6
|
-
|
|
7
|
-
export const TransactionElevationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness> = (
|
|
8
|
-
[tx, txPayloads]: HydratedTransactionWithStorageMeta,
|
|
9
|
-
): Promisable<Error[]> => {
|
|
10
|
-
const errors: Error[] = []
|
|
11
|
-
try {
|
|
12
|
-
const elevatedHashes = (tx.$operations ?? [])
|
|
13
|
-
.filter(operation => operation[0] === 'elevate')
|
|
14
|
-
|
|
15
|
-
const elevatedPayloads = elevatedHashes
|
|
16
|
-
.map(([,hash]) => txPayloads.find(p => p._hash === hash)).filter(exists)
|
|
17
|
-
|
|
18
|
-
if (elevatedPayloads.length < elevatedHashes.length) {
|
|
19
|
-
errors.push(new Error('missing elevated payload'))
|
|
20
|
-
}
|
|
21
|
-
if (elevatedPayloads.length > elevatedHashes.length) {
|
|
22
|
-
errors.push(new Error('extra elevated payload'))
|
|
23
|
-
}
|
|
24
|
-
} catch (ex) {
|
|
25
|
-
errors.push(new Error('validation excepted'), ex as Error)
|
|
26
|
-
}
|
|
27
|
-
return errors
|
|
28
|
-
}
|