@xyo-network/chain-validation 1.1.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/index.mjs +107 -97
- 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 +1 -1
- package/dist/types/transaction/validateTransaction.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionElevation.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionElevation.d.ts.map +1 -1
- 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 +1 -1
- package/dist/types/transaction/validators/TransactionJsonSchema.d.ts.map +1 -1
- package/dist/types/transaction/validators/TransactionProtocol.d.ts +1 -1
- package/dist/types/transaction/validators/TransactionProtocol.d.ts.map +1 -1
- package/dist/types/transaction/validators/index.d.ts +1 -0
- package/dist/types/transaction/validators/index.d.ts.map +1 -1
- package/package.json +16 -16
- package/src/block/index.ts +0 -1
- package/src/block/validateBlock.ts +1 -2
- package/src/block/validators/AllowedPayloadSchemas.ts +1 -3
- 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 +10 -37
- package/src/hydratedBlockState/validateHydratedBlockState.ts +4 -4
- package/src/hydratedBlockState/validators/RequiredBalance.ts +2 -2
- package/src/transaction/validateTransaction.ts +5 -4
- package/src/transaction/validators/TransactionElevation.ts +2 -17
- package/src/transaction/validators/TransactionFromValidator.ts +16 -0
- package/src/transaction/validators/TransactionJsonSchema.ts +2 -2
- package/src/transaction/validators/TransactionProtocol.ts +5 -7
- package/src/transaction/validators/index.ts +1 -0
- 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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessReferences.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessReferences.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAEV,MAAM,EAEP,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessReferences.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessReferences.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAEV,MAAM,EAEP,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAA;AAMpF,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 '
|
|
1
|
+
import type { BoundWitnessValidationFunction } from '@xyo-network/xl1-model';
|
|
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":"
|
|
1
|
+
{"version":3,"file":"BoundWitnessSignatures.d.ts","sourceRoot":"","sources":["../../../../src/boundwitness/validators/BoundWitnessSignatures.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AAE5E,eAAO,MAAM,+BAA+B,EAAE,8BAgB7C,CAAA"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './validateChainStakeIntentInBlock.ts';
|
|
3
|
-
export * from './validateElevatedInBlock.ts';
|
|
4
|
-
export * from './validateElevatedInTransaction.ts';
|
|
5
|
-
export * from './validateSchemaInBlock.ts';
|
|
6
|
-
export * from './validateTransactionInBlock.ts';
|
|
7
|
-
export * from './validateTransferInBlock.ts';
|
|
1
|
+
export * from './validatePayloadInBlock.ts';
|
|
8
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elevatedPayload/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elevatedPayload/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './isElevatedFromBlock.ts';
|
|
2
|
+
export * from './validateElevatedFromBlock.ts';
|
|
3
|
+
export * from './validateElevatedFromTransaction.ts';
|
|
4
|
+
export * from './validateIncludedInBlock.ts';
|
|
5
|
+
export * from './validateTransactionInBlock.ts';
|
|
6
|
+
export * from './validateTypedPayloadInBlock.ts';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sCAAsC,CAAA;AACpD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
+
import { type HydratedBlock } from '@xyo-network/xl1-model';
|
|
3
|
+
export declare const isElevatedFromBlock: (payload: WithStorageMeta<Payload>, [, payloads]: HydratedBlock) => boolean;
|
|
4
|
+
//# sourceMappingURL=isElevatedFromBlock.d.ts.map
|
|
@@ -0,0 +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,wBAAwB,CAAA;AAEtF,eAAO,MAAM,mBAAmB,GAAI,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,aAAa,KAAG,OAQpG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateElevatedFromBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateElevatedFromBlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAE7F,eAAO,MAAM,yBAAyB,EAAE,gCAUvC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateElevatedFromTransaction.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateElevatedFromTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAE7F,eAAO,MAAM,+BAA+B,EAAE,gCAe7C,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
+
import type { BlockBoundWitness } from '@xyo-network/xl1-model';
|
|
3
|
+
export declare const validateIncludedInBlock: (payload: WithStorageMeta<Payload>, block: BlockBoundWitness) => Error[];
|
|
4
|
+
//# sourceMappingURL=validateIncludedInBlock.d.ts.map
|
|
@@ -0,0 +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,wBAAwB,CAAA;AAE/D,eAAO,MAAM,uBAAuB,GAAI,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,iBAAiB,KAAG,KAAK,EAM1G,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateTransactionInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/lib/validateTransactionInBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAK7F,eAAO,MAAM,0BAA0B,EAAE,gCAWxC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IdentityFunction } from '@xyo-network/chain-protocol';
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
import type { HydratedBlock } from '@xyo-network/xl1-model';
|
|
4
|
+
export declare const validateTypedPayloadInBlock: <T extends Payload>(payload: Payload, block: HydratedBlock, identityFunction: IdentityFunction<T>) => Promise<Error[]>;
|
|
5
|
+
//# sourceMappingURL=validateTypedPayloadInBlock.d.ts.map
|
|
@@ -0,0 +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,wBAAwB,CAAA;AAM3D,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAA;AACpD,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateChainStakeIntentInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateChainStakeIntentInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAK7F,eAAO,MAAM,+BAA+B,EAAE,gCAO7C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateHashInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateHashInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAK7F,eAAO,MAAM,mBAAmB,EAAE,gCAOjC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateSchemaInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateSchemaInBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAI7F,eAAO,MAAM,qBAAqB,EAAE,gCAOnC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateTransferInBlock.d.ts","sourceRoot":"","sources":["../../../../src/elevatedPayload/payloads/validateTransferInBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EACe,KAAK,gCAAgC,EAC1D,MAAM,wBAAwB,CAAA;AAI/B,eAAO,MAAM,uBAAuB,EAAE,gCAOrC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatePayloadInBlock.d.ts","sourceRoot":"","sources":["../../../src/elevatedPayload/validatePayloadInBlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,gCAAgC,EACjC,MAAM,wBAAwB,CAAA;AAkB/B,eAAO,MAAM,sBAAsB,EAAE,gCAYpC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlock/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlock/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedBlockValidatorFunction } from '
|
|
1
|
+
import type { HydratedBlockValidatorFunction } from '@xyo-network/xl1-model';
|
|
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":"
|
|
1
|
+
{"version":3,"file":"validateHydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlock/validateHydratedBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AAM3F,eAAO,MAAM,qBAAqB,EAAE,8BAYnC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedBlockValidatorFunction } from '
|
|
1
|
+
import type { HydratedBlockValidatorFunction } from '@xyo-network/xl1-model';
|
|
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":"
|
|
1
|
+
{"version":3,"file":"Payloads.d.ts","sourceRoot":"","sources":["../../../../src/hydratedBlock/validators/Payloads.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,wBAAwB,CAAA;AAI/B,eAAO,MAAM,wBAAwB,EAAE,8BA2BtC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const validateHydratedBlockState:
|
|
1
|
+
import type { HydratedBlockStateValidationFunction } from '@xyo-network/xl1-model';
|
|
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,
|
|
1
|
+
{"version":3,"file":"validateHydratedBlockState.d.ts","sourceRoot":"","sources":["../../../src/hydratedBlockState/validateHydratedBlockState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,oCAAoC,EAAE,MAAM,wBAAwB,CAAA;AAKjG,eAAO,MAAM,0BAA0B,EAAE,oCASxC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const RequiredBalanceBlockStateValidator:
|
|
1
|
+
import type { HydratedBlockStateValidationFunction } from '@xyo-network/xl1-model';
|
|
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":"
|
|
1
|
+
{"version":3,"file":"RequiredBalance.d.ts","sourceRoot":"","sources":["../../../../src/hydratedBlockState/validators/RequiredBalance.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,oCAAoC,EAAE,MAAM,wBAAwB,CAAA;AAEjG,eAAO,MAAM,kCAAkC,EAAE,oCAgChD,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { ChainIdentification, HydratedTransactionValidatorFunction, HydratedTransactionWithStorageMeta } from '@xyo-network/
|
|
1
|
+
import type { ChainIdentification, HydratedTransactionValidatorFunction, HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-model';
|
|
2
2
|
export declare function validateTransaction(tx: HydratedTransactionWithStorageMeta, chainIdentification: ChainIdentification, additionalValidators?: HydratedTransactionValidatorFunction[]): Promise<Error[]>;
|
|
3
3
|
//# 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,EACV,mBAAmB,EAAE,oCAAoC,EACzD,kCAAkC,EACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"validateTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/validateTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAAE,oCAAoC,EACzD,kCAAkC,EACnC,MAAM,wBAAwB,CAAA;AAQ/B,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,kCAAkC,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,oBAAoB,GAAE,oCAAoC,EAAO,GAChE,OAAO,CAAC,KAAK,EAAE,CAAC,CAclB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-model';
|
|
2
2
|
export declare const TransactionElevationValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionElevation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionElevation.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionElevation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EAAsC,uBAAuB,EAClG,MAAM,
|
|
1
|
+
{"version":3,"file":"TransactionElevation.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionElevation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EAAsC,uBAAuB,EAClG,MAAM,wBAAwB,CAAA;AAE/B,eAAO,MAAM,6BAA6B,EAAE,oCAAoC,CAAC,uBAAuB,CAMvG,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-model';
|
|
2
|
+
export declare const TransactionFromValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
|
+
//# sourceMappingURL=TransactionFromValidator.d.ts.map
|
|
@@ -0,0 +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,wBAAwB,CAAA;AAE/B,eAAO,MAAM,wBAAwB,EAAE,oCAAoC,CAAC,uBAAuB,CASlG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-model';
|
|
2
2
|
export declare const TransactionJsonSchemaValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionJsonSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionJsonSchema.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionJsonSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TransactionJsonSchema.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionJsonSchema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,wBAAwB,CAAA;AAG/B,eAAO,MAAM,8BAA8B,EAAE,oCAAoC,CAAC,uBAAuB,CAiBxG,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/
|
|
1
|
+
import type { HydratedTransactionValidatorFunction, TransactionBoundWitness } from '@xyo-network/xl1-model';
|
|
2
2
|
export declare const TransactionProtocolValidator: HydratedTransactionValidatorFunction<TransactionBoundWitness>;
|
|
3
3
|
//# sourceMappingURL=TransactionProtocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionProtocol.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionProtocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TransactionProtocol.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/TransactionProtocol.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACW,oCAAoC,EAAE,uBAAuB,EACnF,MAAM,wBAAwB,CAAA;AAE/B,eAAO,MAAM,4BAA4B,EAAE,oCAAoC,CAAC,uBAAuB,CAgBtG,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transaction/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,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.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"description": "XYO Layer One SDK Validation",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -34,21 +34,21 @@
|
|
|
34
34
|
"deploy3": "echo Deploy3 not allowed!"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@xylabs/arraybuffer": "^4.8.
|
|
38
|
-
"@xylabs/assert": "^4.8.
|
|
39
|
-
"@xylabs/exists": "^4.8.
|
|
40
|
-
"@xylabs/hex": "^4.8.
|
|
41
|
-
"@xylabs/promise": "^4.8.
|
|
42
|
-
"@xyo-network/archivist-model": "^3.12.
|
|
43
|
-
"@xyo-network/boundwitness-builder": "^3.12.
|
|
44
|
-
"@xyo-network/boundwitness-model": "^3.12.
|
|
45
|
-
"@xyo-network/boundwitness-validator": "^3.12.
|
|
46
|
-
"@xyo-network/boundwitness-wrapper": "^3.12.
|
|
47
|
-
"@xyo-network/chain-
|
|
48
|
-
"@xyo-network/chain-
|
|
49
|
-
"@xyo-network/
|
|
50
|
-
"@xyo-network/payload-
|
|
51
|
-
"@xyo-network/
|
|
37
|
+
"@xylabs/arraybuffer": "^4.8.4",
|
|
38
|
+
"@xylabs/assert": "^4.8.4",
|
|
39
|
+
"@xylabs/exists": "^4.8.4",
|
|
40
|
+
"@xylabs/hex": "^4.8.4",
|
|
41
|
+
"@xylabs/promise": "^4.8.4",
|
|
42
|
+
"@xyo-network/archivist-model": "^3.12.2",
|
|
43
|
+
"@xyo-network/boundwitness-builder": "^3.12.2",
|
|
44
|
+
"@xyo-network/boundwitness-model": "^3.12.2",
|
|
45
|
+
"@xyo-network/boundwitness-validator": "^3.12.2",
|
|
46
|
+
"@xyo-network/boundwitness-wrapper": "^3.12.2",
|
|
47
|
+
"@xyo-network/chain-protocol": "^1.2.0",
|
|
48
|
+
"@xyo-network/chain-schema": "^1.2.0",
|
|
49
|
+
"@xyo-network/payload-model": "^3.12.2",
|
|
50
|
+
"@xyo-network/schema-payload-plugin": "^3.12.2",
|
|
51
|
+
"@xyo-network/xl1-model": "^1.2.0",
|
|
52
52
|
"ajv": "^8.17.1"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
package/src/block/index.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { BlockBoundWitness } from '@xyo-network/
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'
|
|
3
3
|
|
|
4
4
|
import { BoundWitnessSignaturesValidator } from '../boundwitness/index.ts'
|
|
5
|
-
import type { BlockValidatorFunction } from './BlockValidationFunction.ts'
|
|
6
5
|
import {
|
|
7
6
|
BlockAllowedPayloadSchemasValidator,
|
|
8
7
|
BlockFieldsValidator, BlockJsonSchemaValidator, BlockPreviousHashValidator,
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { BlockBoundWitness } from '@xyo-network/chain-model'
|
|
2
1
|
import { isAllowedBlockPayloadSchema } from '@xyo-network/chain-protocol'
|
|
3
|
-
|
|
4
|
-
import type { BlockValidatorFunction } from '../BlockValidationFunction.ts'
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'
|
|
5
3
|
|
|
6
4
|
export const BlockAllowedPayloadSchemasValidator: BlockValidatorFunction = (
|
|
7
5
|
block: BlockBoundWitness,
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
-
import type { BlockBoundWitness } from '@xyo-network/
|
|
3
|
-
|
|
4
|
-
import type { BlockValidatorFunction } from '../BlockValidationFunction.ts'
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'
|
|
5
3
|
|
|
6
4
|
export const BlockFieldsValidator: BlockValidatorFunction = (
|
|
7
5
|
block: BlockBoundWitness,
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import type { BlockBoundWitness } from '@xyo-network/chain-model'
|
|
2
1
|
import { BlockBoundWitnessWithStorageMetaJsonSchema } from '@xyo-network/chain-schema'
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'
|
|
3
3
|
import type { AnySchema } from 'ajv'
|
|
4
4
|
import { Ajv } from 'ajv'
|
|
5
5
|
|
|
6
|
-
import type { BlockValidatorFunction } from '../BlockValidationFunction.ts'
|
|
7
|
-
|
|
8
6
|
export const BlockJsonSchemaValidator = (jsonSchema: AnySchema = BlockBoundWitnessWithStorageMetaJsonSchema): BlockValidatorFunction => async (
|
|
9
7
|
block: BlockBoundWitness,
|
|
10
8
|
) => {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { isHash } from '@xylabs/hex'
|
|
2
|
-
import type { BlockBoundWitness } from '@xyo-network/
|
|
3
|
-
|
|
4
|
-
import type { BlockValidatorFunction } from '../BlockValidationFunction.ts'
|
|
2
|
+
import type { BlockBoundWitness, BlockValidatorFunction } from '@xyo-network/xl1-model'
|
|
5
3
|
|
|
6
4
|
export const BlockPreviousHashValidator: BlockValidatorFunction = (
|
|
7
5
|
block: BlockBoundWitness,
|
|
@@ -8,8 +8,7 @@ import type {
|
|
|
8
8
|
WithHashStorageMeta,
|
|
9
9
|
} from '@xyo-network/payload-model'
|
|
10
10
|
import { isAnyPayload } from '@xyo-network/payload-model'
|
|
11
|
-
|
|
12
|
-
import type { HydratedBoundWitnessValidationFunction } from '../HydratedBoundWitnessValidationFunction.ts'
|
|
11
|
+
import type { HydratedBoundWitnessValidationFunction } from '@xyo-network/xl1-model'
|
|
13
12
|
|
|
14
13
|
function getPayloadsFromPayloadArray(payloads: WithHashStorageMeta<Payload>[], hashes: Hash[]): (WithHashStorageMeta<Payload> | undefined)[] {
|
|
15
14
|
return hashes.map(hash => payloads.find(payload => payload._hash === hash || payload._dataHash === hash))
|
|
@@ -3,8 +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
|
-
|
|
7
|
-
import type { BoundWitnessValidationFunction } from '../BoundWitnessValidationFunction.ts'
|
|
6
|
+
import type { BoundWitnessValidationFunction } from '@xyo-network/xl1-model'
|
|
8
7
|
|
|
9
8
|
export const BoundWitnessSignaturesValidator: BoundWitnessValidationFunction = async (
|
|
10
9
|
bw: BoundWitness,
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './validateChainStakeIntentInBlock.ts'
|
|
3
|
-
export * from './validateElevatedInBlock.ts'
|
|
4
|
-
export * from './validateElevatedInTransaction.ts'
|
|
5
|
-
export * from './validateSchemaInBlock.ts'
|
|
6
|
-
export * from './validateTransactionInBlock.ts'
|
|
7
|
-
export * from './validateTransferInBlock.ts'
|
|
1
|
+
export * from './validatePayloadInBlock.ts'
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './isElevatedFromBlock.ts'
|
|
2
|
+
export * from './validateElevatedFromBlock.ts'
|
|
3
|
+
export * from './validateElevatedFromTransaction.ts'
|
|
4
|
+
export * from './validateIncludedInBlock.ts'
|
|
5
|
+
export * from './validateTransactionInBlock.ts'
|
|
6
|
+
export * from './validateTypedPayloadInBlock.ts'
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
+
import { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-model'
|
|
3
|
+
|
|
4
|
+
export const isElevatedFromBlock = (payload: WithStorageMeta<Payload>, [, payloads]: HydratedBlock): boolean => {
|
|
5
|
+
const txs = payloads.filter(p => isTransactionBoundWitness(p))
|
|
6
|
+
for (const tx of txs) {
|
|
7
|
+
if (tx.payload_hashes.includes(payload._hash)) {
|
|
8
|
+
return false
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return true
|
|
12
|
+
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise'
|
|
2
|
-
import type { HydratedBlock } from '@xyo-network/chain-model'
|
|
3
2
|
import { transactionPayloadsFromHydratedBlock } from '@xyo-network/chain-protocol'
|
|
3
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export const validateElevatedInBlock: InBlockPayloadValidationFunction = (
|
|
5
|
+
export const validateElevatedFromBlock: InBlockPayloadValidationFunction = (
|
|
8
6
|
payload,
|
|
9
7
|
block: HydratedBlock,
|
|
10
8
|
): Promisable<Error[]> => {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
import { transactionsFromHydratedBlock } from '@xyo-network/chain-protocol'
|
|
3
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'
|
|
4
|
+
|
|
5
|
+
export const validateElevatedFromTransaction: InBlockPayloadValidationFunction = (
|
|
6
|
+
payload,
|
|
7
|
+
block: HydratedBlock,
|
|
8
|
+
): Promisable<Error[]> => {
|
|
9
|
+
const errors: Error[] = []
|
|
10
|
+
const txs = transactionsFromHydratedBlock(block)
|
|
11
|
+
if (txs.length > 0) {
|
|
12
|
+
const hashes = txs.flatMap(tx => tx.payload_hashes)
|
|
13
|
+
if (!hashes.includes(payload._hash)) {
|
|
14
|
+
errors.push(new Error('Transaction does not include payload'))
|
|
15
|
+
}
|
|
16
|
+
} else {
|
|
17
|
+
errors.push(new Error('No Transactions in block'))
|
|
18
|
+
}
|
|
19
|
+
return errors
|
|
20
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
+
import type { BlockBoundWitness } from '@xyo-network/xl1-model'
|
|
3
|
+
|
|
4
|
+
export const validateIncludedInBlock = (payload: WithStorageMeta<Payload>, block: BlockBoundWitness): Error[] => {
|
|
5
|
+
const errors: Error[] = []
|
|
6
|
+
if (!block.payload_hashes.includes(payload._hash)) {
|
|
7
|
+
errors.push(new Error('Payload not included in block'))
|
|
8
|
+
}
|
|
9
|
+
return errors
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { isStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'
|
|
3
|
+
import { isTransactionBoundWitness } from '@xyo-network/xl1-model'
|
|
4
|
+
|
|
5
|
+
import { BoundWitnessSignaturesValidator } from '../../boundwitness/index.ts'
|
|
6
|
+
|
|
7
|
+
export const validateTransactionInBlock: InBlockPayloadValidationFunction = async (
|
|
8
|
+
payload,
|
|
9
|
+
_block: HydratedBlock,
|
|
10
|
+
): Promise<Error[]> => {
|
|
11
|
+
const errors: Error[] = []
|
|
12
|
+
if (isTransactionBoundWitness(payload) && isStorageMeta(payload)) {
|
|
13
|
+
errors.push(...await BoundWitnessSignaturesValidator(payload))
|
|
14
|
+
} else {
|
|
15
|
+
errors.push(new Error('Payload failed isTransactionBoundWitness or isStorageMeta'))
|
|
16
|
+
}
|
|
17
|
+
return errors
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { IdentityFunction } from '@xyo-network/chain-protocol'
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
import { isStorageMeta } from '@xyo-network/payload-model'
|
|
4
|
+
import type { HydratedBlock } from '@xyo-network/xl1-model'
|
|
5
|
+
|
|
6
|
+
import { isElevatedFromBlock } from './isElevatedFromBlock.ts'
|
|
7
|
+
import { validateElevatedFromBlock } from './validateElevatedFromBlock.ts'
|
|
8
|
+
import { validateElevatedFromTransaction } from './validateElevatedFromTransaction.ts'
|
|
9
|
+
|
|
10
|
+
export const validateTypedPayloadInBlock = async <T extends Payload>(
|
|
11
|
+
payload: Payload,
|
|
12
|
+
block: HydratedBlock,
|
|
13
|
+
identityFunction: IdentityFunction<T>,
|
|
14
|
+
): Promise<Error[]> => {
|
|
15
|
+
const errors: Error[] = []
|
|
16
|
+
if (identityFunction(payload) && isStorageMeta(payload)) {
|
|
17
|
+
if (isElevatedFromBlock(payload, block)) {
|
|
18
|
+
errors.push(...await validateElevatedFromBlock(payload, block))
|
|
19
|
+
} else {
|
|
20
|
+
errors.push(...await validateElevatedFromTransaction(payload, block))
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
errors.push(new Error('Payload failed identityFunction or isElevated or isStorageMeta'))
|
|
24
|
+
}
|
|
25
|
+
return errors
|
|
26
|
+
}
|
|
27
|
+
//
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HydratedBlock, InBlockPayloadValidationFunction } from '@xyo-network/xl1-model'
|
|
2
|
+
import { isChainStakeIntent } from '@xyo-network/xl1-model'
|
|
3
|
+
|
|
4
|
+
import { validateTypedPayloadInBlock } from '../lib/index.ts'
|
|
5
|
+
|
|
6
|
+
export const validateChainStakeIntentInBlock: InBlockPayloadValidationFunction = async (
|
|
7
|
+
payload,
|
|
8
|
+
block: HydratedBlock,
|
|
9
|
+
): Promise<Error[]> => {
|
|
10
|
+
const errors: Error[] = []
|
|
11
|
+
errors.push(...await validateTypedPayloadInBlock(payload, block, isChainStakeIntent))
|
|
12
|
+
return errors
|
|
13
|
+
}
|