@xyo-network/chain-sdk 5.0.3 → 5.1.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/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.mjs +1 -0
- package/dist/browser/index.mjs.map +2 -2
- package/dist/browser/modules/analyze/ChainHeadSelector.d.ts +40 -0
- package/dist/browser/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/browser/modules/analyze/admission.d.ts +65 -0
- package/dist/browser/modules/analyze/admission.d.ts.map +1 -0
- package/dist/browser/modules/analyze/index.d.ts +1 -0
- package/dist/browser/modules/analyze/index.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/BuildBlockOptions.d.ts +8 -0
- package/dist/browser/modules/protocol/block/BuildBlockOptions.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/browser/modules/protocol/block/buildNextBlock.d.ts +2 -1
- package/dist/browser/modules/protocol/block/buildNextBlock.d.ts.map +1 -1
- package/dist/browser/modules/services/implementation/processPendingBlocks.d.ts +9 -1
- package/dist/browser/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +34 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/browser/modules/services/simple/block/runner/index.d.ts +1 -0
- package/dist/browser/modules/services/simple/block/runner/index.d.ts.map +1 -1
- package/dist/browser/modules/services/simple/block/runner/selectSupersededCandidate.d.ts +22 -0
- package/dist/browser/modules/services/simple/block/runner/selectSupersededCandidate.d.ts.map +1 -0
- package/dist/browser/modules/slashing/detect/DetectedOffense.d.ts +27 -0
- package/dist/browser/modules/slashing/detect/DetectedOffense.d.ts.map +1 -0
- package/dist/browser/modules/slashing/detect/candidatePairs.d.ts +44 -0
- package/dist/browser/modules/slashing/detect/candidatePairs.d.ts.map +1 -0
- package/dist/browser/modules/slashing/detect/index.d.ts +5 -0
- package/dist/browser/modules/slashing/detect/index.d.ts.map +1 -0
- package/dist/browser/modules/slashing/detect/offenseGate.d.ts +18 -0
- package/dist/browser/modules/slashing/detect/offenseGate.d.ts.map +1 -0
- package/dist/browser/modules/slashing/detect/suppression.d.ts +23 -0
- package/dist/browser/modules/slashing/detect/suppression.d.ts.map +1 -0
- package/dist/browser/modules/slashing/eligibility/evaluateProducerEligibility.d.ts +71 -0
- package/dist/browser/modules/slashing/eligibility/evaluateProducerEligibility.d.ts.map +1 -0
- package/dist/browser/modules/slashing/eligibility/index.d.ts +2 -0
- package/dist/browser/modules/slashing/eligibility/index.d.ts.map +1 -0
- package/dist/browser/modules/slashing/index/SlashIndexStore.d.ts +22 -0
- package/dist/browser/modules/slashing/index/SlashIndexStore.d.ts.map +1 -0
- package/dist/browser/modules/slashing/index/foldSlashIndex.d.ts +56 -0
- package/dist/browser/modules/slashing/index/foldSlashIndex.d.ts.map +1 -0
- package/dist/browser/modules/slashing/index/index.d.ts +3 -0
- package/dist/browser/modules/slashing/index/index.d.ts.map +1 -0
- package/dist/browser/modules/slashing/index.d.ts +6 -0
- package/dist/browser/modules/slashing/index.d.ts.map +1 -0
- package/dist/browser/modules/slashing/model/OffenseProcedure.d.ts +28 -0
- package/dist/browser/modules/slashing/model/OffenseProcedure.d.ts.map +1 -0
- package/dist/browser/modules/slashing/model/OffenseVerificationContext.d.ts +88 -0
- package/dist/browser/modules/slashing/model/OffenseVerificationContext.d.ts.map +1 -0
- package/dist/browser/modules/slashing/model/SlashHistoryReader.d.ts +34 -0
- package/dist/browser/modules/slashing/model/SlashHistoryReader.d.ts.map +1 -0
- package/dist/browser/modules/slashing/model/VerificationOutcome.d.ts +39 -0
- package/dist/browser/modules/slashing/model/VerificationOutcome.d.ts.map +1 -0
- package/dist/browser/modules/slashing/model/index.d.ts +6 -0
- package/dist/browser/modules/slashing/model/index.d.ts.map +1 -0
- package/dist/browser/modules/slashing/model/offenseKey.d.ts +42 -0
- package/dist/browser/modules/slashing/model/offenseKey.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/index.d.ts +10 -0
- package/dist/browser/modules/slashing/verify/index.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/preamble.d.ts +63 -0
- package/dist/browser/modules/slashing/verify/preamble.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyEquivocation.d.ts +19 -0
- package/dist/browser/modules/slashing/verify/verifyEquivocation.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyFalseAnchor.d.ts +15 -0
- package/dist/browser/modules/slashing/verify/verifyFalseAnchor.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyFalseAttestation.d.ts +22 -0
- package/dist/browser/modules/slashing/verify/verifyFalseAttestation.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyIneligibleProduction.d.ts +18 -0
- package/dist/browser/modules/slashing/verify/verifyIneligibleProduction.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyInvalidBlock.d.ts +18 -0
- package/dist/browser/modules/slashing/verify/verifyInvalidBlock.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyInvalidSlashRequest.d.ts +11 -0
- package/dist/browser/modules/slashing/verify/verifyInvalidSlashRequest.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyOffense.d.ts +29 -0
- package/dist/browser/modules/slashing/verify/verifyOffense.d.ts.map +1 -0
- package/dist/browser/modules/slashing/verify/verifyRewardOvermint.d.ts +23 -0
- package/dist/browser/modules/slashing/verify/verifyRewardOvermint.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/lib/findElevatingTransaction.d.ts +14 -0
- package/dist/browser/modules/validation/elevatedPayload/lib/findElevatingTransaction.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/lib/index.d.ts +2 -0
- package/dist/browser/modules/validation/elevatedPayload/lib/index.d.ts.map +1 -1
- package/dist/browser/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.d.ts +33 -0
- package/dist/browser/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/index.d.ts +5 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/index.d.ts.map +1 -1
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.d.ts +14 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.d.ts +10 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.d.ts +10 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.d.ts +10 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.d.ts +14 -0
- package/dist/browser/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.d.ts.map +1 -0
- package/dist/browser/modules/validation/elevatedPayload/validatePayloadInBlock.d.ts.map +1 -1
- package/dist/browser/slashing.d.ts +2 -0
- package/dist/browser/slashing.d.ts.map +1 -0
- package/dist/neutral/analyze.mjs +85 -3
- package/dist/neutral/analyze.mjs.map +3 -3
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +1 -0
- package/dist/neutral/index.mjs.map +2 -2
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts +40 -0
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/neutral/modules/analyze/admission.d.ts +65 -0
- package/dist/neutral/modules/analyze/admission.d.ts.map +1 -0
- package/dist/neutral/modules/analyze/index.d.ts +1 -0
- package/dist/neutral/modules/analyze/index.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/BuildBlockOptions.d.ts +8 -0
- package/dist/neutral/modules/protocol/block/BuildBlockOptions.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/neutral/modules/protocol/block/buildNextBlock.d.ts +2 -1
- package/dist/neutral/modules/protocol/block/buildNextBlock.d.ts.map +1 -1
- package/dist/neutral/modules/services/implementation/processPendingBlocks.d.ts +9 -1
- package/dist/neutral/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +34 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/neutral/modules/services/simple/block/runner/index.d.ts +1 -0
- package/dist/neutral/modules/services/simple/block/runner/index.d.ts.map +1 -1
- package/dist/neutral/modules/services/simple/block/runner/selectSupersededCandidate.d.ts +22 -0
- package/dist/neutral/modules/services/simple/block/runner/selectSupersededCandidate.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/detect/DetectedOffense.d.ts +27 -0
- package/dist/neutral/modules/slashing/detect/DetectedOffense.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/detect/candidatePairs.d.ts +44 -0
- package/dist/neutral/modules/slashing/detect/candidatePairs.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/detect/index.d.ts +5 -0
- package/dist/neutral/modules/slashing/detect/index.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/detect/offenseGate.d.ts +18 -0
- package/dist/neutral/modules/slashing/detect/offenseGate.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/detect/suppression.d.ts +23 -0
- package/dist/neutral/modules/slashing/detect/suppression.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/eligibility/evaluateProducerEligibility.d.ts +71 -0
- package/dist/neutral/modules/slashing/eligibility/evaluateProducerEligibility.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/eligibility/index.d.ts +2 -0
- package/dist/neutral/modules/slashing/eligibility/index.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/index/SlashIndexStore.d.ts +22 -0
- package/dist/neutral/modules/slashing/index/SlashIndexStore.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/index/foldSlashIndex.d.ts +56 -0
- package/dist/neutral/modules/slashing/index/foldSlashIndex.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/index/index.d.ts +3 -0
- package/dist/neutral/modules/slashing/index/index.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/index.d.ts +6 -0
- package/dist/neutral/modules/slashing/index.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/model/OffenseProcedure.d.ts +28 -0
- package/dist/neutral/modules/slashing/model/OffenseProcedure.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/model/OffenseVerificationContext.d.ts +88 -0
- package/dist/neutral/modules/slashing/model/OffenseVerificationContext.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/model/SlashHistoryReader.d.ts +34 -0
- package/dist/neutral/modules/slashing/model/SlashHistoryReader.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/model/VerificationOutcome.d.ts +39 -0
- package/dist/neutral/modules/slashing/model/VerificationOutcome.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/model/index.d.ts +6 -0
- package/dist/neutral/modules/slashing/model/index.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/model/offenseKey.d.ts +42 -0
- package/dist/neutral/modules/slashing/model/offenseKey.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/index.d.ts +10 -0
- package/dist/neutral/modules/slashing/verify/index.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/preamble.d.ts +63 -0
- package/dist/neutral/modules/slashing/verify/preamble.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyEquivocation.d.ts +19 -0
- package/dist/neutral/modules/slashing/verify/verifyEquivocation.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyFalseAnchor.d.ts +15 -0
- package/dist/neutral/modules/slashing/verify/verifyFalseAnchor.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyFalseAttestation.d.ts +22 -0
- package/dist/neutral/modules/slashing/verify/verifyFalseAttestation.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyIneligibleProduction.d.ts +18 -0
- package/dist/neutral/modules/slashing/verify/verifyIneligibleProduction.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyInvalidBlock.d.ts +18 -0
- package/dist/neutral/modules/slashing/verify/verifyInvalidBlock.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyInvalidSlashRequest.d.ts +11 -0
- package/dist/neutral/modules/slashing/verify/verifyInvalidSlashRequest.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyOffense.d.ts +29 -0
- package/dist/neutral/modules/slashing/verify/verifyOffense.d.ts.map +1 -0
- package/dist/neutral/modules/slashing/verify/verifyRewardOvermint.d.ts +23 -0
- package/dist/neutral/modules/slashing/verify/verifyRewardOvermint.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/lib/findElevatingTransaction.d.ts +14 -0
- package/dist/neutral/modules/validation/elevatedPayload/lib/findElevatingTransaction.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/lib/index.d.ts +2 -0
- package/dist/neutral/modules/validation/elevatedPayload/lib/index.d.ts.map +1 -1
- package/dist/neutral/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.d.ts +33 -0
- package/dist/neutral/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/index.d.ts +5 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/index.d.ts.map +1 -1
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.d.ts +14 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.d.ts +10 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.d.ts +10 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.d.ts +10 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.d.ts +14 -0
- package/dist/neutral/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.d.ts.map +1 -0
- package/dist/neutral/modules/validation/elevatedPayload/validatePayloadInBlock.d.ts.map +1 -1
- package/dist/neutral/protocol.mjs +8 -3
- package/dist/neutral/protocol.mjs.map +2 -2
- package/dist/neutral/services.mjs +77 -7
- package/dist/neutral/services.mjs.map +4 -4
- package/dist/neutral/slashing.d.ts +2 -0
- package/dist/neutral/slashing.d.ts.map +1 -0
- package/dist/neutral/slashing.mjs +824 -0
- package/dist/neutral/slashing.mjs.map +7 -0
- package/dist/neutral/validation.mjs +274 -43
- package/dist/neutral/validation.mjs.map +4 -4
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +1 -0
- package/dist/node/index.mjs.map +2 -2
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts +40 -0
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/node/modules/analyze/admission.d.ts +65 -0
- package/dist/node/modules/analyze/admission.d.ts.map +1 -0
- package/dist/node/modules/analyze/index.d.ts +1 -0
- package/dist/node/modules/analyze/index.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/BuildBlockOptions.d.ts +8 -0
- package/dist/node/modules/protocol/block/BuildBlockOptions.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/buildBlock.d.ts.map +1 -1
- package/dist/node/modules/protocol/block/buildNextBlock.d.ts +2 -1
- package/dist/node/modules/protocol/block/buildNextBlock.d.ts.map +1 -1
- package/dist/node/modules/services/implementation/processPendingBlocks.d.ts +9 -1
- package/dist/node/modules/services/implementation/processPendingBlocks.d.ts.map +1 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +34 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/node/modules/services/simple/block/runner/index.d.ts +1 -0
- package/dist/node/modules/services/simple/block/runner/index.d.ts.map +1 -1
- package/dist/node/modules/services/simple/block/runner/selectSupersededCandidate.d.ts +22 -0
- package/dist/node/modules/services/simple/block/runner/selectSupersededCandidate.d.ts.map +1 -0
- package/dist/node/modules/slashing/detect/DetectedOffense.d.ts +27 -0
- package/dist/node/modules/slashing/detect/DetectedOffense.d.ts.map +1 -0
- package/dist/node/modules/slashing/detect/candidatePairs.d.ts +44 -0
- package/dist/node/modules/slashing/detect/candidatePairs.d.ts.map +1 -0
- package/dist/node/modules/slashing/detect/index.d.ts +5 -0
- package/dist/node/modules/slashing/detect/index.d.ts.map +1 -0
- package/dist/node/modules/slashing/detect/offenseGate.d.ts +18 -0
- package/dist/node/modules/slashing/detect/offenseGate.d.ts.map +1 -0
- package/dist/node/modules/slashing/detect/suppression.d.ts +23 -0
- package/dist/node/modules/slashing/detect/suppression.d.ts.map +1 -0
- package/dist/node/modules/slashing/eligibility/evaluateProducerEligibility.d.ts +71 -0
- package/dist/node/modules/slashing/eligibility/evaluateProducerEligibility.d.ts.map +1 -0
- package/dist/node/modules/slashing/eligibility/index.d.ts +2 -0
- package/dist/node/modules/slashing/eligibility/index.d.ts.map +1 -0
- package/dist/node/modules/slashing/index/SlashIndexStore.d.ts +22 -0
- package/dist/node/modules/slashing/index/SlashIndexStore.d.ts.map +1 -0
- package/dist/node/modules/slashing/index/foldSlashIndex.d.ts +56 -0
- package/dist/node/modules/slashing/index/foldSlashIndex.d.ts.map +1 -0
- package/dist/node/modules/slashing/index/index.d.ts +3 -0
- package/dist/node/modules/slashing/index/index.d.ts.map +1 -0
- package/dist/node/modules/slashing/index.d.ts +6 -0
- package/dist/node/modules/slashing/index.d.ts.map +1 -0
- package/dist/node/modules/slashing/model/OffenseProcedure.d.ts +28 -0
- package/dist/node/modules/slashing/model/OffenseProcedure.d.ts.map +1 -0
- package/dist/node/modules/slashing/model/OffenseVerificationContext.d.ts +88 -0
- package/dist/node/modules/slashing/model/OffenseVerificationContext.d.ts.map +1 -0
- package/dist/node/modules/slashing/model/SlashHistoryReader.d.ts +34 -0
- package/dist/node/modules/slashing/model/SlashHistoryReader.d.ts.map +1 -0
- package/dist/node/modules/slashing/model/VerificationOutcome.d.ts +39 -0
- package/dist/node/modules/slashing/model/VerificationOutcome.d.ts.map +1 -0
- package/dist/node/modules/slashing/model/index.d.ts +6 -0
- package/dist/node/modules/slashing/model/index.d.ts.map +1 -0
- package/dist/node/modules/slashing/model/offenseKey.d.ts +42 -0
- package/dist/node/modules/slashing/model/offenseKey.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/index.d.ts +10 -0
- package/dist/node/modules/slashing/verify/index.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/preamble.d.ts +63 -0
- package/dist/node/modules/slashing/verify/preamble.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyEquivocation.d.ts +19 -0
- package/dist/node/modules/slashing/verify/verifyEquivocation.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyFalseAnchor.d.ts +15 -0
- package/dist/node/modules/slashing/verify/verifyFalseAnchor.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyFalseAttestation.d.ts +22 -0
- package/dist/node/modules/slashing/verify/verifyFalseAttestation.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyIneligibleProduction.d.ts +18 -0
- package/dist/node/modules/slashing/verify/verifyIneligibleProduction.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyInvalidBlock.d.ts +18 -0
- package/dist/node/modules/slashing/verify/verifyInvalidBlock.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyInvalidSlashRequest.d.ts +11 -0
- package/dist/node/modules/slashing/verify/verifyInvalidSlashRequest.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyOffense.d.ts +29 -0
- package/dist/node/modules/slashing/verify/verifyOffense.d.ts.map +1 -0
- package/dist/node/modules/slashing/verify/verifyRewardOvermint.d.ts +23 -0
- package/dist/node/modules/slashing/verify/verifyRewardOvermint.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/lib/findElevatingTransaction.d.ts +14 -0
- package/dist/node/modules/validation/elevatedPayload/lib/findElevatingTransaction.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/lib/index.d.ts +2 -0
- package/dist/node/modules/validation/elevatedPayload/lib/index.d.ts.map +1 -1
- package/dist/node/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.d.ts +33 -0
- package/dist/node/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/index.d.ts +5 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/index.d.ts.map +1 -1
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.d.ts +14 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.d.ts +10 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.d.ts +10 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.d.ts +10 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.d.ts +14 -0
- package/dist/node/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.d.ts.map +1 -0
- package/dist/node/modules/validation/elevatedPayload/validatePayloadInBlock.d.ts.map +1 -1
- package/dist/node/slashing.d.ts +2 -0
- package/dist/node/slashing.d.ts.map +1 -0
- package/package.json +14 -8
|
@@ -174,15 +174,15 @@ var validateBlock = async (context, block, chainId, additionalValidators = []) =
|
|
|
174
174
|
};
|
|
175
175
|
|
|
176
176
|
// src/modules/validation/hydratedBlock/validateHydratedBlock.ts
|
|
177
|
-
import { ZERO_HASH as
|
|
177
|
+
import { ZERO_HASH as ZERO_HASH24 } from "@ariestools/sdk";
|
|
178
178
|
import { BoundWitnessReferencesValidator, HydratedBlockValidationError as HydratedBlockValidationError3 } from "@xyo-network/xl1-sdk";
|
|
179
179
|
|
|
180
180
|
// src/modules/validation/hydratedBlock/validators/Payloads.ts
|
|
181
|
-
import { ZERO_HASH as
|
|
181
|
+
import { ZERO_HASH as ZERO_HASH22 } from "@ariestools/sdk";
|
|
182
182
|
import { HydratedBlockValidationError } from "@xyo-network/xl1-sdk";
|
|
183
183
|
|
|
184
184
|
// src/modules/validation/elevatedPayload/validatePayloadInBlock.ts
|
|
185
|
-
import { ZERO_HASH as
|
|
185
|
+
import { ZERO_HASH as ZERO_HASH21 } from "@ariestools/sdk";
|
|
186
186
|
import { BoundWitnessSchema as BoundWitnessSchema2, SchemaSchema } from "@xyo-network/sdk";
|
|
187
187
|
import {
|
|
188
188
|
BridgeDestinationObservationSchema,
|
|
@@ -190,11 +190,22 @@ import {
|
|
|
190
190
|
BridgeSourceObservationSchema,
|
|
191
191
|
ChainStakeIntentSchema,
|
|
192
192
|
HashSchema,
|
|
193
|
-
InBlockPayloadValidationError as
|
|
193
|
+
InBlockPayloadValidationError as InBlockPayloadValidationError17,
|
|
194
|
+
SlashAdjudicationSchema,
|
|
195
|
+
SlashChallengeSchema,
|
|
196
|
+
SlashCommitSchema,
|
|
197
|
+
SlashEvidenceSchema,
|
|
198
|
+
SlashRequestSchema,
|
|
194
199
|
TimeSchema,
|
|
195
200
|
TransferSchema
|
|
196
201
|
} from "@xyo-network/xl1-sdk";
|
|
197
202
|
|
|
203
|
+
// src/modules/validation/elevatedPayload/lib/findElevatingTransaction.ts
|
|
204
|
+
import { isTransactionBoundWitnessWithHashMeta } from "@xyo-network/xl1-sdk";
|
|
205
|
+
function findElevatingTransaction(payload, [, payloads]) {
|
|
206
|
+
return payloads.filter((candidate) => isTransactionBoundWitnessWithHashMeta(candidate)).find((tx) => tx.payload_hashes.includes(payload._hash));
|
|
207
|
+
}
|
|
208
|
+
|
|
198
209
|
// src/modules/validation/elevatedPayload/lib/isElevatedFromBlock.ts
|
|
199
210
|
import { isTransactionBoundWitness } from "@xyo-network/xl1-sdk";
|
|
200
211
|
var isElevatedFromBlock = (payload, [, payloads]) => {
|
|
@@ -254,9 +265,34 @@ var validateElevatedFromTransaction = (context, payload, block) => {
|
|
|
254
265
|
return errors;
|
|
255
266
|
};
|
|
256
267
|
|
|
268
|
+
// src/modules/validation/elevatedPayload/lib/validateSlashPayloadInBlock.ts
|
|
269
|
+
import { isHashMeta } from "@xyo-network/sdk";
|
|
270
|
+
import { requireRuleActive, resolveRuleParams } from "@xyo-network/xl1-sdk";
|
|
271
|
+
async function validateSlashPayloadInBlock(context, payload, block, identityFunction, fromOf, subject) {
|
|
272
|
+
const height = block[0].block;
|
|
273
|
+
const params = await resolveRuleParams(context, height);
|
|
274
|
+
const gateError = requireRuleActive(params, "slash-payloads", height, subject);
|
|
275
|
+
if (gateError !== void 0) return { errors: [new Error(gateError)], params };
|
|
276
|
+
if (!identityFunction(payload) || !isHashMeta(payload)) {
|
|
277
|
+
return { errors: [new Error(`${subject} failed its identity check`)], params };
|
|
278
|
+
}
|
|
279
|
+
const transaction = findElevatingTransaction(payload, block);
|
|
280
|
+
if (transaction === void 0) {
|
|
281
|
+
return { errors: [new Error(`${subject} must be elevated from a transaction`)], params };
|
|
282
|
+
}
|
|
283
|
+
if (fromOf(payload) !== transaction.from) {
|
|
284
|
+
return { errors: [new Error(`${subject} from must equal elevating transaction from`)], params };
|
|
285
|
+
}
|
|
286
|
+
return {
|
|
287
|
+
errors: [],
|
|
288
|
+
params,
|
|
289
|
+
transaction
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
|
|
257
293
|
// src/modules/validation/elevatedPayload/lib/validateTransactionInBlock.ts
|
|
258
294
|
import { ZERO_HASH as ZERO_HASH7 } from "@ariestools/sdk";
|
|
259
|
-
import { isHashMeta } from "@xyo-network/sdk";
|
|
295
|
+
import { isHashMeta as isHashMeta2 } from "@xyo-network/sdk";
|
|
260
296
|
import {
|
|
261
297
|
BoundWitnessSignaturesValidator,
|
|
262
298
|
InBlockPayloadValidationError as InBlockPayloadValidationError3,
|
|
@@ -266,7 +302,7 @@ import {
|
|
|
266
302
|
var validateTransactionInBlock = async (context, payload, block) => {
|
|
267
303
|
const errors = [];
|
|
268
304
|
try {
|
|
269
|
-
if (isTransactionBoundWitness2(payload) &&
|
|
305
|
+
if (isTransactionBoundWitness2(payload) && isHashMeta2(payload)) {
|
|
270
306
|
const txErrors = await validateTransaction({ ...context, chainId: block[0].chain }, [payload, block[1]]);
|
|
271
307
|
for (const txError of txErrors) {
|
|
272
308
|
errors.push(new InBlockPayloadValidationError3(
|
|
@@ -297,11 +333,11 @@ var validateTransactionInBlock = async (context, payload, block) => {
|
|
|
297
333
|
};
|
|
298
334
|
|
|
299
335
|
// src/modules/validation/elevatedPayload/lib/validateTypedPayloadInBlock.ts
|
|
300
|
-
import { isHashMeta as
|
|
336
|
+
import { isHashMeta as isHashMeta3 } from "@xyo-network/sdk";
|
|
301
337
|
var validateTypedPayloadInBlock = async (context, payload, block, identityFunction) => {
|
|
302
338
|
const errors = [];
|
|
303
339
|
try {
|
|
304
|
-
if (identityFunction(payload) &&
|
|
340
|
+
if (identityFunction(payload) && isHashMeta3(payload)) {
|
|
305
341
|
if (isElevatedFromBlock(payload, block)) {
|
|
306
342
|
errors.push(...await validateElevatedFromBlock(context, payload, block));
|
|
307
343
|
} else {
|
|
@@ -449,19 +485,209 @@ var validateSchemaInBlock = async (context, payload, block) => {
|
|
|
449
485
|
return errors;
|
|
450
486
|
};
|
|
451
487
|
|
|
452
|
-
// src/modules/validation/elevatedPayload/payloads/
|
|
488
|
+
// src/modules/validation/elevatedPayload/payloads/validateSlashAdjudicationInBlock.ts
|
|
453
489
|
import { ZERO_HASH as ZERO_HASH14 } from "@ariestools/sdk";
|
|
454
|
-
import { InBlockPayloadValidationError as InBlockPayloadValidationError10,
|
|
490
|
+
import { InBlockPayloadValidationError as InBlockPayloadValidationError10, isSlashAdjudication } from "@xyo-network/xl1-sdk";
|
|
491
|
+
var validateSlashAdjudicationInBlock = async (context, payload, block) => {
|
|
492
|
+
const errors = [];
|
|
493
|
+
try {
|
|
494
|
+
const { errors: sharedErrors, params } = await validateSlashPayloadInBlock(context, payload, block, isSlashAdjudication, (adjudication) => adjudication.from, "slash adjudication");
|
|
495
|
+
for (const sharedError of sharedErrors) {
|
|
496
|
+
errors.push(new InBlockPayloadValidationError10(payload._hash, block, payload, sharedError.message, sharedError));
|
|
497
|
+
}
|
|
498
|
+
if (sharedErrors.length === 0 && isSlashAdjudication(payload) && (params?.arbiter === void 0 || payload.from !== params.arbiter)) {
|
|
499
|
+
errors.push(new InBlockPayloadValidationError10(payload._hash, block, payload, "slash adjudication from must equal the register arbiter"));
|
|
500
|
+
}
|
|
501
|
+
} catch (ex) {
|
|
502
|
+
errors.push(new InBlockPayloadValidationError10(
|
|
503
|
+
block[0]?._hash ?? ZERO_HASH14,
|
|
504
|
+
block,
|
|
505
|
+
payload,
|
|
506
|
+
`validation excepted: ${String(ex)}`,
|
|
507
|
+
ex
|
|
508
|
+
));
|
|
509
|
+
}
|
|
510
|
+
return errors;
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
// src/modules/validation/elevatedPayload/payloads/validateSlashChallengeInBlock.ts
|
|
514
|
+
import { ZERO_HASH as ZERO_HASH15 } from "@ariestools/sdk";
|
|
515
|
+
import { InBlockPayloadValidationError as InBlockPayloadValidationError11, isSlashChallenge } from "@xyo-network/xl1-sdk";
|
|
516
|
+
var validateSlashChallengeInBlock = async (context, payload, block) => {
|
|
517
|
+
const errors = [];
|
|
518
|
+
try {
|
|
519
|
+
const { errors: sharedErrors } = await validateSlashPayloadInBlock(context, payload, block, isSlashChallenge, (subject) => subject.from, "slash challenge");
|
|
520
|
+
for (const sharedError of sharedErrors) {
|
|
521
|
+
errors.push(new InBlockPayloadValidationError11(payload._hash, block, payload, sharedError.message, sharedError));
|
|
522
|
+
}
|
|
523
|
+
} catch (ex) {
|
|
524
|
+
errors.push(new InBlockPayloadValidationError11(
|
|
525
|
+
block[0]?._hash ?? ZERO_HASH15,
|
|
526
|
+
block,
|
|
527
|
+
payload,
|
|
528
|
+
`validation excepted: ${String(ex)}`,
|
|
529
|
+
ex
|
|
530
|
+
));
|
|
531
|
+
}
|
|
532
|
+
return errors;
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
// src/modules/validation/elevatedPayload/payloads/validateSlashCommitInBlock.ts
|
|
536
|
+
import { ZERO_HASH as ZERO_HASH16 } from "@ariestools/sdk";
|
|
537
|
+
import {
|
|
538
|
+
derivedReceiveAddress,
|
|
539
|
+
InBlockPayloadValidationError as InBlockPayloadValidationError12,
|
|
540
|
+
isRuleActiveAt,
|
|
541
|
+
isSlashCommit,
|
|
542
|
+
isTransferPayload
|
|
543
|
+
} from "@xyo-network/xl1-sdk";
|
|
544
|
+
function toAmount(value) {
|
|
545
|
+
return BigInt(value.startsWith("0x") ? value : `0x${value}`);
|
|
546
|
+
}
|
|
547
|
+
function isDepositRequired(params, height) {
|
|
548
|
+
return isRuleActiveAt(params, "eligibility-admission", height) && !isRuleActiveAt(params, "invalid-slash-request.adjudicable", height);
|
|
549
|
+
}
|
|
550
|
+
function depositedInTransaction(commit, transaction, payloads) {
|
|
551
|
+
const target = derivedReceiveAddress(commit.from, "slash-deposit");
|
|
552
|
+
const inTransaction = new Set(transaction.payload_hashes);
|
|
553
|
+
return payloads.filter((candidate) => inTransaction.has(candidate._hash)).filter((candidate) => isTransferPayload(candidate)).reduce((total, transfer) => total + toAmount(transfer.transfers[target] ?? "0x0"), 0n);
|
|
554
|
+
}
|
|
555
|
+
var validateSlashCommitInBlock = async (context, payload, block) => {
|
|
556
|
+
const errors = [];
|
|
557
|
+
try {
|
|
558
|
+
const {
|
|
559
|
+
errors: sharedErrors,
|
|
560
|
+
params,
|
|
561
|
+
transaction
|
|
562
|
+
} = await validateSlashPayloadInBlock(context, payload, block, isSlashCommit, (commit) => commit.from, "slash commit");
|
|
563
|
+
for (const sharedError of sharedErrors) {
|
|
564
|
+
errors.push(new InBlockPayloadValidationError12(payload._hash, block, payload, sharedError.message, sharedError));
|
|
565
|
+
}
|
|
566
|
+
if (sharedErrors.length > 0 || params === void 0 || transaction === void 0 || !isSlashCommit(payload)) {
|
|
567
|
+
return errors;
|
|
568
|
+
}
|
|
569
|
+
const height = block[0].block;
|
|
570
|
+
if (isDepositRequired(params, height)) {
|
|
571
|
+
const required = toAmount(params.reporterDepositAtto ?? "0x0");
|
|
572
|
+
const deposited = depositedInTransaction(payload, transaction, block[1]);
|
|
573
|
+
if (deposited < required) {
|
|
574
|
+
errors.push(new InBlockPayloadValidationError12(
|
|
575
|
+
payload._hash,
|
|
576
|
+
block,
|
|
577
|
+
payload,
|
|
578
|
+
`slash commit escrows ${deposited} but the register requires ${required}`
|
|
579
|
+
));
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
} catch (ex) {
|
|
583
|
+
errors.push(new InBlockPayloadValidationError12(
|
|
584
|
+
block[0]?._hash ?? ZERO_HASH16,
|
|
585
|
+
block,
|
|
586
|
+
payload,
|
|
587
|
+
`validation excepted: ${String(ex)}`,
|
|
588
|
+
ex
|
|
589
|
+
));
|
|
590
|
+
}
|
|
591
|
+
return errors;
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
// src/modules/validation/elevatedPayload/payloads/validateSlashEvidenceInBlock.ts
|
|
595
|
+
import { ZERO_HASH as ZERO_HASH17 } from "@ariestools/sdk";
|
|
596
|
+
import { InBlockPayloadValidationError as InBlockPayloadValidationError13, isSlashEvidence } from "@xyo-network/xl1-sdk";
|
|
597
|
+
var validateSlashEvidenceInBlock = async (context, payload, block) => {
|
|
598
|
+
const errors = [];
|
|
599
|
+
try {
|
|
600
|
+
const { errors: sharedErrors } = await validateSlashPayloadInBlock(context, payload, block, isSlashEvidence, (subject) => subject.from, "slash evidence");
|
|
601
|
+
for (const sharedError of sharedErrors) {
|
|
602
|
+
errors.push(new InBlockPayloadValidationError13(payload._hash, block, payload, sharedError.message, sharedError));
|
|
603
|
+
}
|
|
604
|
+
} catch (ex) {
|
|
605
|
+
errors.push(new InBlockPayloadValidationError13(
|
|
606
|
+
block[0]?._hash ?? ZERO_HASH17,
|
|
607
|
+
block,
|
|
608
|
+
payload,
|
|
609
|
+
`validation excepted: ${String(ex)}`,
|
|
610
|
+
ex
|
|
611
|
+
));
|
|
612
|
+
}
|
|
613
|
+
return errors;
|
|
614
|
+
};
|
|
615
|
+
|
|
616
|
+
// src/modules/validation/elevatedPayload/payloads/validateSlashRequestInBlock.ts
|
|
617
|
+
import { ZERO_HASH as ZERO_HASH18 } from "@ariestools/sdk";
|
|
618
|
+
import { PayloadBuilder } from "@xyo-network/sdk";
|
|
619
|
+
import {
|
|
620
|
+
InBlockPayloadValidationError as InBlockPayloadValidationError14,
|
|
621
|
+
isRuleObservedAt,
|
|
622
|
+
isSlashEvidence as isSlashEvidence2,
|
|
623
|
+
isSlashRequest,
|
|
624
|
+
reportableRuleId
|
|
625
|
+
} from "@xyo-network/xl1-sdk";
|
|
626
|
+
async function carriedArtifactHashes(transaction, payloads) {
|
|
627
|
+
const inTransaction = new Set(transaction.payload_hashes);
|
|
628
|
+
const artifacts = payloads.filter((candidate) => inTransaction.has(candidate._hash)).filter((candidate) => isSlashEvidence2(candidate)).flatMap((container) => container.artifacts);
|
|
629
|
+
return new Set(await Promise.all(artifacts.map((artifact) => PayloadBuilder.dataHash(artifact))));
|
|
630
|
+
}
|
|
631
|
+
async function evidenceResolutionErrors(context, request, carried, height) {
|
|
632
|
+
const missing = request.evidence.filter((hash) => !carried.has(hash));
|
|
633
|
+
if (missing.length === 0) return [];
|
|
634
|
+
const resolver = context.hasFinalizedEvidenceArtifact;
|
|
635
|
+
if (resolver === void 0) {
|
|
636
|
+
return ["evidence resolver unavailable: cannot certify a block whose evidence it cannot check"];
|
|
637
|
+
}
|
|
638
|
+
const resolved = await Promise.all(missing.map(async (hash) => ({ found: await resolver(hash, height), hash })));
|
|
639
|
+
return resolved.filter(({ found }) => !found).map(({ hash }) => `unresolvable evidence artifact ${hash}`);
|
|
640
|
+
}
|
|
641
|
+
function isOffenseReportable(params, request) {
|
|
642
|
+
return isRuleObservedAt(params, reportableRuleId(request.offense), request.block);
|
|
643
|
+
}
|
|
644
|
+
var validateSlashRequestInBlock = async (context, payload, block) => {
|
|
645
|
+
const errors = [];
|
|
646
|
+
const fail = (message) => errors.push(new InBlockPayloadValidationError14(payload._hash, block, payload, message));
|
|
647
|
+
try {
|
|
648
|
+
const {
|
|
649
|
+
errors: sharedErrors,
|
|
650
|
+
params,
|
|
651
|
+
transaction
|
|
652
|
+
} = await validateSlashPayloadInBlock(context, payload, block, isSlashRequest, (request) => request.from, "slash request");
|
|
653
|
+
for (const sharedError of sharedErrors) {
|
|
654
|
+
errors.push(new InBlockPayloadValidationError14(payload._hash, block, payload, sharedError.message, sharedError));
|
|
655
|
+
}
|
|
656
|
+
if (sharedErrors.length > 0 || params === void 0 || transaction === void 0 || !isSlashRequest(payload)) {
|
|
657
|
+
return errors;
|
|
658
|
+
}
|
|
659
|
+
if (!isOffenseReportable(params, payload)) {
|
|
660
|
+
fail(`offense '${payload.offense}' was not reportable at block ${payload.block}`);
|
|
661
|
+
}
|
|
662
|
+
const carried = await carriedArtifactHashes(transaction, block[1]);
|
|
663
|
+
for (const problem of await evidenceResolutionErrors(context, payload, carried, block[0].block)) {
|
|
664
|
+
fail(problem);
|
|
665
|
+
}
|
|
666
|
+
} catch (ex) {
|
|
667
|
+
errors.push(new InBlockPayloadValidationError14(
|
|
668
|
+
block[0]?._hash ?? ZERO_HASH18,
|
|
669
|
+
block,
|
|
670
|
+
payload,
|
|
671
|
+
`validation excepted: ${String(ex)}`,
|
|
672
|
+
ex
|
|
673
|
+
));
|
|
674
|
+
}
|
|
675
|
+
return errors;
|
|
676
|
+
};
|
|
677
|
+
|
|
678
|
+
// src/modules/validation/elevatedPayload/payloads/validateTimeInBlock.ts
|
|
679
|
+
import { ZERO_HASH as ZERO_HASH19 } from "@ariestools/sdk";
|
|
680
|
+
import { InBlockPayloadValidationError as InBlockPayloadValidationError15, isTimePayload } from "@xyo-network/xl1-sdk";
|
|
455
681
|
var validateTimeInBlock = async (context, payload, block) => {
|
|
456
682
|
const errors = [];
|
|
457
683
|
try {
|
|
458
684
|
const typedErrors = await validateTypedPayloadInBlock(context, payload, block, isTimePayload);
|
|
459
685
|
for (const typedError of typedErrors) {
|
|
460
|
-
errors.push(new
|
|
686
|
+
errors.push(new InBlockPayloadValidationError15(payload._hash, block, payload, `validateTypedPayloadInBlock error: ${typedError}`, typedError));
|
|
461
687
|
}
|
|
462
688
|
} catch (ex) {
|
|
463
|
-
errors.push(new
|
|
464
|
-
block?.[0]?._hash ??
|
|
689
|
+
errors.push(new InBlockPayloadValidationError15(
|
|
690
|
+
block?.[0]?._hash ?? ZERO_HASH19,
|
|
465
691
|
block,
|
|
466
692
|
payload,
|
|
467
693
|
`Failed validateTimeInBlock: ${String(ex)}`,
|
|
@@ -472,18 +698,18 @@ var validateTimeInBlock = async (context, payload, block) => {
|
|
|
472
698
|
};
|
|
473
699
|
|
|
474
700
|
// src/modules/validation/elevatedPayload/payloads/validateTransferInBlock.ts
|
|
475
|
-
import { ZERO_HASH as
|
|
476
|
-
import { InBlockPayloadValidationError as
|
|
701
|
+
import { ZERO_HASH as ZERO_HASH20 } from "@ariestools/sdk";
|
|
702
|
+
import { InBlockPayloadValidationError as InBlockPayloadValidationError16, isTransferPayload as isTransferPayload2 } from "@xyo-network/xl1-sdk";
|
|
477
703
|
var validateTransferInBlock = async (context, payload, block) => {
|
|
478
704
|
const errors = [];
|
|
479
705
|
try {
|
|
480
|
-
const typedErrors = await validateTypedPayloadInBlock(context, payload, block,
|
|
706
|
+
const typedErrors = await validateTypedPayloadInBlock(context, payload, block, isTransferPayload2);
|
|
481
707
|
for (const typedError of typedErrors) {
|
|
482
|
-
errors.push(new
|
|
708
|
+
errors.push(new InBlockPayloadValidationError16(payload._hash, block, payload, `validateTypedPayloadInBlock error: ${typedError}`, typedError));
|
|
483
709
|
}
|
|
484
710
|
} catch (ex) {
|
|
485
|
-
errors.push(new
|
|
486
|
-
block?.[0]?._hash ??
|
|
711
|
+
errors.push(new InBlockPayloadValidationError16(
|
|
712
|
+
block?.[0]?._hash ?? ZERO_HASH20,
|
|
487
713
|
block,
|
|
488
714
|
payload,
|
|
489
715
|
`Failed validateTransferInBlock: ${String(ex)}`,
|
|
@@ -502,6 +728,11 @@ var payloadValidators = {
|
|
|
502
728
|
[ChainStakeIntentSchema]: validateChainStakeIntentInBlock,
|
|
503
729
|
[HashSchema]: validateHashInBlock,
|
|
504
730
|
[SchemaSchema]: validateSchemaInBlock,
|
|
731
|
+
[SlashAdjudicationSchema]: validateSlashAdjudicationInBlock,
|
|
732
|
+
[SlashChallengeSchema]: validateSlashChallengeInBlock,
|
|
733
|
+
[SlashCommitSchema]: validateSlashCommitInBlock,
|
|
734
|
+
[SlashEvidenceSchema]: validateSlashEvidenceInBlock,
|
|
735
|
+
[SlashRequestSchema]: validateSlashRequestInBlock,
|
|
505
736
|
[TimeSchema]: validateTimeInBlock,
|
|
506
737
|
[TransferSchema]: validateTransferInBlock
|
|
507
738
|
};
|
|
@@ -512,11 +743,11 @@ var validatePayloadInBlock = async (context, payload, block) => {
|
|
|
512
743
|
if (validator) {
|
|
513
744
|
errors.push(...await validator(context, payload, block));
|
|
514
745
|
} else {
|
|
515
|
-
errors.push(new
|
|
746
|
+
errors.push(new InBlockPayloadValidationError17(block?.[0]?._hash ?? ZERO_HASH21, block, payload, `Unsupported payload schema: ${payload.schema}`));
|
|
516
747
|
}
|
|
517
748
|
} catch (ex) {
|
|
518
|
-
const error2 = new
|
|
519
|
-
block?.[0]?._hash ??
|
|
749
|
+
const error2 = new InBlockPayloadValidationError17(
|
|
750
|
+
block?.[0]?._hash ?? ZERO_HASH21,
|
|
520
751
|
block,
|
|
521
752
|
payload,
|
|
522
753
|
`validation excepted: ${String(ex)}`,
|
|
@@ -545,7 +776,7 @@ var PayloadsInBlockValidator = async (context, [block, payloads]) => {
|
|
|
545
776
|
const payloadInBlockErrors = await validatePayloadInBlock(context, payload, [block, payloads]);
|
|
546
777
|
for (const payloadInBlockError of payloadInBlockErrors) {
|
|
547
778
|
errors.push(new HydratedBlockValidationError(
|
|
548
|
-
block?._hash ??
|
|
779
|
+
block?._hash ?? ZERO_HASH22,
|
|
549
780
|
[block, payloads],
|
|
550
781
|
`validatePayloadInBlock error: ${payloadInBlockError}`,
|
|
551
782
|
payloadInBlockError
|
|
@@ -553,15 +784,15 @@ var PayloadsInBlockValidator = async (context, [block, payloads]) => {
|
|
|
553
784
|
}
|
|
554
785
|
delete remainingPayloads[propertyKey];
|
|
555
786
|
} else {
|
|
556
|
-
errors.push(new HydratedBlockValidationError(block?._hash ??
|
|
787
|
+
errors.push(new HydratedBlockValidationError(block?._hash ?? ZERO_HASH22, [block, payloads], `missing payload ${propertyKey} ${schema}`));
|
|
557
788
|
}
|
|
558
789
|
}
|
|
559
790
|
if (Object.keys(remainingPayloads).length > 0) {
|
|
560
|
-
errors.push(new HydratedBlockValidationError(block?._hash ??
|
|
791
|
+
errors.push(new HydratedBlockValidationError(block?._hash ?? ZERO_HASH22, [block, payloads], `extra payloads ${Object.keys(payloadMap).join(", ")}`));
|
|
561
792
|
}
|
|
562
793
|
} catch (ex) {
|
|
563
794
|
errors.push(new HydratedBlockValidationError(
|
|
564
|
-
block?._hash ??
|
|
795
|
+
block?._hash ?? ZERO_HASH22,
|
|
565
796
|
[block, payloads],
|
|
566
797
|
`Failed PayloadsInBlockValidator: ${String(ex)}`,
|
|
567
798
|
ex
|
|
@@ -571,8 +802,8 @@ var PayloadsInBlockValidator = async (context, [block, payloads]) => {
|
|
|
571
802
|
};
|
|
572
803
|
|
|
573
804
|
// src/modules/validation/hydratedBlock/validators/TransactionTransfersInBlock.ts
|
|
574
|
-
import { ZERO_HASH as
|
|
575
|
-
import { isHashMeta as
|
|
805
|
+
import { ZERO_HASH as ZERO_HASH23 } from "@ariestools/sdk";
|
|
806
|
+
import { isHashMeta as isHashMeta4 } from "@xyo-network/sdk";
|
|
576
807
|
import { HydratedBlockValidationError as HydratedBlockValidationError2, isTransactionBoundWitness as isTransactionBoundWitness3 } from "@xyo-network/xl1-sdk";
|
|
577
808
|
function TransactionTransfersInBlockValidatorFactory(transfersValidator) {
|
|
578
809
|
return async (context, hydratedBlock) => {
|
|
@@ -580,7 +811,7 @@ function TransactionTransfersInBlockValidatorFactory(transfersValidator) {
|
|
|
580
811
|
const errors = [];
|
|
581
812
|
try {
|
|
582
813
|
for (const payload of payloads) {
|
|
583
|
-
if (isTransactionBoundWitness3(payload) &&
|
|
814
|
+
if (isTransactionBoundWitness3(payload) && isHashMeta4(payload)) {
|
|
584
815
|
const txErrors = await transfersValidator({ ...context, chainId: block.chain }, [payload, payloads]);
|
|
585
816
|
for (const txError of txErrors) {
|
|
586
817
|
errors.push(new HydratedBlockValidationError2(payload._hash, hydratedBlock, `transfer authorization error: ${txError}`, txError));
|
|
@@ -589,7 +820,7 @@ function TransactionTransfersInBlockValidatorFactory(transfersValidator) {
|
|
|
589
820
|
}
|
|
590
821
|
} catch (ex) {
|
|
591
822
|
errors.push(new HydratedBlockValidationError2(
|
|
592
|
-
block?._hash ??
|
|
823
|
+
block?._hash ?? ZERO_HASH23,
|
|
593
824
|
hydratedBlock,
|
|
594
825
|
`Failed TransactionTransfersInBlockValidator: ${String(ex)}`,
|
|
595
826
|
ex
|
|
@@ -625,7 +856,7 @@ var validateHydratedBlock = async (context, hydratedBlock, chainIdAtBlockNumber,
|
|
|
625
856
|
}
|
|
626
857
|
} catch (ex) {
|
|
627
858
|
errors.push(new HydratedBlockValidationError3(
|
|
628
|
-
hydratedBlock?.[0]?._hash ??
|
|
859
|
+
hydratedBlock?.[0]?._hash ?? ZERO_HASH24,
|
|
629
860
|
hydratedBlock,
|
|
630
861
|
`Failed validateHydratedBlock: ${String(ex)}`,
|
|
631
862
|
ex
|
|
@@ -635,11 +866,11 @@ var validateHydratedBlock = async (context, hydratedBlock, chainIdAtBlockNumber,
|
|
|
635
866
|
};
|
|
636
867
|
|
|
637
868
|
// src/modules/validation/hydratedBlockState/validateHydratedBlockState.ts
|
|
638
|
-
import { spanRootAsync as spanRootAsync2, ZERO_HASH as
|
|
869
|
+
import { spanRootAsync as spanRootAsync2, ZERO_HASH as ZERO_HASH26 } from "@ariestools/sdk";
|
|
639
870
|
import { HydratedBlockStateValidationError as HydratedBlockStateValidationError2 } from "@xyo-network/xl1-sdk";
|
|
640
871
|
|
|
641
872
|
// src/modules/validation/hydratedBlockState/validators/RequiredBalance.ts
|
|
642
|
-
import { spanRootAsync, ZERO_HASH as
|
|
873
|
+
import { spanRootAsync, ZERO_HASH as ZERO_HASH25 } from "@ariestools/sdk";
|
|
643
874
|
import {
|
|
644
875
|
AttoXL1,
|
|
645
876
|
HydratedBlockStateValidationError,
|
|
@@ -673,7 +904,7 @@ var RequiredBalanceBlockStateValidator = async (context, block) => {
|
|
|
673
904
|
}
|
|
674
905
|
const previous = block[0].previous;
|
|
675
906
|
if (previous === null) return [new HydratedBlockStateValidationError(
|
|
676
|
-
block?.[0]?._hash ??
|
|
907
|
+
block?.[0]?._hash ?? ZERO_HASH25,
|
|
677
908
|
"00",
|
|
678
909
|
block,
|
|
679
910
|
"Insufficient funds because first block"
|
|
@@ -687,7 +918,7 @@ var RequiredBalanceBlockStateValidator = async (context, block) => {
|
|
|
687
918
|
if (address !== XYO_ZERO_ADDRESS && reqBalance > balance) {
|
|
688
919
|
const offendingTransactionHashes = offendingTransactionHashesForAddress(block, address);
|
|
689
920
|
errors.push(new HydratedBlockStateValidationError(
|
|
690
|
-
block?.[0]?._hash ??
|
|
921
|
+
block?.[0]?._hash ?? ZERO_HASH25,
|
|
691
922
|
chainId,
|
|
692
923
|
block,
|
|
693
924
|
`insufficient balance for ${address} ${balance} < ${reqBalance}`,
|
|
@@ -699,7 +930,7 @@ var RequiredBalanceBlockStateValidator = async (context, block) => {
|
|
|
699
930
|
}, context);
|
|
700
931
|
} catch (ex) {
|
|
701
932
|
errors.push(new HydratedBlockStateValidationError(
|
|
702
|
-
block?.[0]?._hash ??
|
|
933
|
+
block?.[0]?._hash ?? ZERO_HASH25,
|
|
703
934
|
chainId,
|
|
704
935
|
block,
|
|
705
936
|
`Failed RequiredBalanceBlockStateValidator: ${String(ex)}`,
|
|
@@ -736,7 +967,7 @@ var validateHydratedBlockState = async (context, hydratedBlock, additionalValida
|
|
|
736
967
|
}
|
|
737
968
|
} catch (ex) {
|
|
738
969
|
errors.push(new HydratedBlockStateValidationError2(
|
|
739
|
-
hydratedBlock?.[0]?._hash ??
|
|
970
|
+
hydratedBlock?.[0]?._hash ?? ZERO_HASH26,
|
|
740
971
|
chainId ?? "00",
|
|
741
972
|
hydratedBlock,
|
|
742
973
|
`Failed validateHydratedBlockState: ${String(ex)}`,
|
|
@@ -748,11 +979,11 @@ var validateHydratedBlockState = async (context, hydratedBlock, additionalValida
|
|
|
748
979
|
};
|
|
749
980
|
|
|
750
981
|
// src/modules/validation/hydratedTransactionState/validateHydratedTransactionState.ts
|
|
751
|
-
import { spanRootAsync as spanRootAsync4, ZERO_HASH as
|
|
982
|
+
import { spanRootAsync as spanRootAsync4, ZERO_HASH as ZERO_HASH28 } from "@ariestools/sdk";
|
|
752
983
|
import { HydratedTransactionValidationError as HydratedTransactionValidationError2 } from "@xyo-network/xl1-sdk";
|
|
753
984
|
|
|
754
985
|
// src/modules/validation/hydratedTransactionState/validators/RequiredBalance.ts
|
|
755
|
-
import { spanRootAsync as spanRootAsync3, ZERO_HASH as
|
|
986
|
+
import { spanRootAsync as spanRootAsync3, ZERO_HASH as ZERO_HASH27 } from "@ariestools/sdk";
|
|
756
987
|
import {
|
|
757
988
|
AttoXL1 as AttoXL12,
|
|
758
989
|
HydratedTransactionValidationError,
|
|
@@ -777,7 +1008,7 @@ async function balanceShortfallErrors(context, tx, requiredBalances) {
|
|
|
777
1008
|
const balance = balancesByKey[propertyKey] ?? AttoXL12(0n);
|
|
778
1009
|
if (address !== XYO_ZERO_ADDRESS2 && reqBalance > balance) {
|
|
779
1010
|
errors.push(new HydratedTransactionValidationError(
|
|
780
|
-
tx?.[0]?._hash ??
|
|
1011
|
+
tx?.[0]?._hash ?? ZERO_HASH27,
|
|
781
1012
|
tx,
|
|
782
1013
|
`insufficient balance for ${address} ${balance} < ${reqBalance}`
|
|
783
1014
|
));
|
|
@@ -795,7 +1026,7 @@ var RequiredBalanceTransactionStateValidator = async (context, tx) => {
|
|
|
795
1026
|
const gasRequired = transactionRequiredGas(tx);
|
|
796
1027
|
if (wrapper.fees.gasLimit < gasRequired) {
|
|
797
1028
|
errors.push(new HydratedTransactionValidationError(
|
|
798
|
-
tx?.[0]?._hash ??
|
|
1029
|
+
tx?.[0]?._hash ?? ZERO_HASH27,
|
|
799
1030
|
tx,
|
|
800
1031
|
`fees.gasLimit ${wrapper.fees.gasLimit} < required gas ${gasRequired}`
|
|
801
1032
|
));
|
|
@@ -813,7 +1044,7 @@ var RequiredBalanceTransactionStateValidator = async (context, tx) => {
|
|
|
813
1044
|
errors.push(...await balanceShortfallErrors(context, tx, requiredBalances));
|
|
814
1045
|
} catch (ex) {
|
|
815
1046
|
errors.push(new HydratedTransactionValidationError(
|
|
816
|
-
tx?.[0]?._hash ??
|
|
1047
|
+
tx?.[0]?._hash ?? ZERO_HASH27,
|
|
817
1048
|
tx,
|
|
818
1049
|
`Failed RequiredBalanceTransactionStateValidator: ${String(ex)}`,
|
|
819
1050
|
ex
|
|
@@ -836,7 +1067,7 @@ var validateHydratedTransactionState = async (context, tx) => {
|
|
|
836
1067
|
}
|
|
837
1068
|
} catch (ex) {
|
|
838
1069
|
errors.push(new HydratedTransactionValidationError2(
|
|
839
|
-
tx?.[0]?._hash ??
|
|
1070
|
+
tx?.[0]?._hash ?? ZERO_HASH28,
|
|
840
1071
|
tx,
|
|
841
1072
|
`Failed validateHydratedTransactionState: ${String(ex)}`,
|
|
842
1073
|
ex
|