@aztec/stdlib 5.0.0-nightly.20260707 → 5.0.0-nightly.20260708
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/dest/block/attestation_info.d.ts +1 -1
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -4
- package/dest/block/l2_block_source.d.ts +13 -2
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +5 -0
- package/dest/block/proposal/attestations_and_signers.d.ts +19 -1
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +37 -1
- package/dest/block/validate_block_result.d.ts +16 -1
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -3
- package/dest/config/network-consensus-config.d.ts +1 -1
- package/dest/config/network-consensus-config.d.ts.map +1 -1
- package/dest/config/network-consensus-config.js +2 -10
- package/dest/database-version/version_manager.d.ts +18 -4
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +76 -6
- package/dest/ha-signing/config.d.ts +19 -5
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +9 -3
- package/dest/ha-signing/local_config.d.ts +10 -2
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +8 -2
- package/dest/interfaces/aztec-node-admin.d.ts +5 -2
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +4 -1
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -0
- package/dest/interfaces/validator.d.ts +7 -3
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/world_state.d.ts +14 -1
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret.d.ts +6 -1
- package/dest/logs/app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret.js +6 -0
- package/dest/logs/shared_secret_derivation.d.ts +9 -3
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +13 -6
- package/dest/p2p/signature_utils.d.ts +10 -1
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +9 -1
- package/package.json +8 -8
- package/src/block/attestation_info.ts +7 -2
- package/src/block/l2_block_source.ts +13 -2
- package/src/block/proposal/attestations_and_signers.ts +43 -1
- package/src/block/validate_block_result.ts +48 -2
- package/src/config/network-consensus-config.ts +2 -13
- package/src/database-version/version_manager.ts +96 -6
- package/src/ha-signing/config.ts +23 -5
- package/src/ha-signing/local_config.ts +20 -1
- package/src/interfaces/configs.ts +3 -0
- package/src/interfaces/world_state.ts +14 -0
- package/src/logs/app_tagging_secret.ts +12 -0
- package/src/logs/shared_secret_derivation.ts +17 -8
- package/src/p2p/signature_utils.ts +9 -0
|
@@ -30,4 +30,4 @@ export declare function getAttestationInfoFromPublishedCheckpoint(block: {
|
|
|
30
30
|
checkpoint: Checkpoint;
|
|
31
31
|
}, signatureContext: CoordinationSignatureContext): AttestationInfo[];
|
|
32
32
|
export declare function getAttestationInfoFromPayload(payload: ConsensusPayload, attestations: CommitteeAttestation[]): AttestationInfo[];
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25faW5mby5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jsb2NrL2F0dGVzdGF0aW9uX2luZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLDRCQUE0QixFQUFzQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFaEY7O0dBRUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLEdBQUcscUJBQXFCLEdBQUcsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBRW5IOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGVBQWUsR0FDdkI7SUFDRSwrRUFBK0U7SUFDL0UsT0FBTyxDQUFDLEVBQUUsU0FBUyxDQUFDO0lBQ3BCLGlEQUFpRDtJQUNqRCxNQUFNLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxDQUFDO0NBQ25FLEdBQ0Q7SUFDRSw4QkFBOEI7SUFDOUIsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNwQixpREFBaUQ7SUFDakQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsR0FBRywwQkFBMEIsQ0FBQyxDQUFDO0NBQ3hGLENBQUM7QUFFTjs7O0dBR0c7QUFDSCx3QkFBZ0IseUNBQXlDLENBQ3ZELEtBQUssRUFBRTtJQUNMLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEIsRUFDRCxnQkFBZ0IsRUFBRSw0QkFBNEIsR0FDN0MsZUFBZSxFQUFFLENBR25CO0FBRUQsd0JBQWdCLDZCQUE2QixDQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQ3pCLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUNuQyxlQUFlLEVBQUUsQ0E0Qm5CIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestation_info.d.ts","sourceRoot":"","sources":["../../src/block/attestation_info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,4BAA4B,EAAsC,MAAM,2BAA2B,CAAC;AAClH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,OAAO,CAAC;AAEnH;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC;CACnE,GACD;IACE,8BAA8B;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,CAAC;CACxF,CAAC;AAEN;;;GAGG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE;IACL,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,UAAU,EAAE,UAAU,CAAC;CACxB,EACD,gBAAgB,EAAE,4BAA4B,GAC7C,eAAe,EAAE,CAGnB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,oBAAoB,EAAE,GACnC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"attestation_info.d.ts","sourceRoot":"","sources":["../../src/block/attestation_info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,4BAA4B,EAAsC,MAAM,2BAA2B,CAAC;AAClH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,OAAO,CAAC;AAEnH;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC;CACnE,GACD;IACE,8BAA8B;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,0BAA0B,CAAC,CAAC;CACxF,CAAC;AAEN;;;GAGG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE;IACL,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,UAAU,EAAE,UAAU,CAAC;CACxB,EACD,gBAAgB,EAAE,4BAA4B,GAC7C,eAAe,EAAE,CAGnB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,oBAAoB,EAAE,GACnC,eAAe,EAAE,CA4BnB"}
|
|
@@ -25,11 +25,14 @@ export function getAttestationInfoFromPayload(payload, attestations) {
|
|
|
25
25
|
status: 'provided-as-address'
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
// Try to recover address from signature
|
|
28
|
+
// Try to recover address from signature. Recover with default opts (no allowYParityAsV): a slot
|
|
29
|
+
// whose recovery byte is in yParity form (v ∈ {0, 1}) is judged invalid here, matching L1 proving
|
|
30
|
+
// (ValidatorSelectionLib.verifyAttestations → ECDSA.recover only accepts v ∈ {27, 28}). A malicious
|
|
31
|
+
// proposer that lands such a slot cannot have it silently treated as valid off-chain; it is routed to
|
|
32
|
+
// invalid-attestation and invalidated. The gossip receipt path (recoverCoordinationSigner) stays
|
|
33
|
+
// lenient with allowYParityAsV; A-1351 normalizes on pool ingress and before the L1 bundle.
|
|
29
34
|
try {
|
|
30
|
-
const recoveredAddress = recoverAddress(hashedPayload, attestation.signature
|
|
31
|
-
allowYParityAsV: true
|
|
32
|
-
});
|
|
35
|
+
const recoveredAddress = recoverAddress(hashedPayload, attestation.signature);
|
|
33
36
|
return {
|
|
34
37
|
address: recoveredAddress,
|
|
35
38
|
status: 'recovered-from-signature'
|
|
@@ -42,10 +42,21 @@ export type CheckpointQuery = {
|
|
|
42
42
|
} | {
|
|
43
43
|
tag: 'checkpointed' | 'proven' | 'finalized';
|
|
44
44
|
};
|
|
45
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Query a range of confirmed checkpoints by start/limit, by slot anchor, or by epoch.
|
|
47
|
+
*
|
|
48
|
+
* The `fromSlot` variant walks the slot index: it returns up to `limit` checkpoints anchored at
|
|
49
|
+
* `fromSlot`, ordered nearest-first. With `reverse` it takes the checkpoints at or before the slot
|
|
50
|
+
* (descending); otherwise the checkpoints at or after it (ascending). Use `limit: 1, reverse: true`
|
|
51
|
+
* to find the latest checkpoint at or before a slot in a single range scan.
|
|
52
|
+
*/
|
|
46
53
|
export type CheckpointsQuery = {
|
|
47
54
|
from: CheckpointNumber;
|
|
48
55
|
limit: number;
|
|
56
|
+
} | {
|
|
57
|
+
fromSlot: SlotNumber;
|
|
58
|
+
limit: number;
|
|
59
|
+
reverse?: boolean;
|
|
49
60
|
} | {
|
|
50
61
|
epoch: EpochNumber;
|
|
51
62
|
};
|
|
@@ -422,4 +433,4 @@ export type DescendentOfInvalidAttestationsCheckpointEvent = {
|
|
|
422
433
|
/** Checkpoint number of the rejected ancestor. */
|
|
423
434
|
ancestorCheckpointNumber: CheckpointNumber;
|
|
424
435
|
};
|
|
425
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc291cmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBRVgsZ0JBQWdCLEVBRWhCLEtBQUssV0FBVyxFQUVoQixLQUFLLFVBQVUsRUFFaEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBK0IsS0FBSyx3QkFBd0IsRUFBRSxNQUFN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
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc291cmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBRVgsZ0JBQWdCLEVBRWhCLEtBQUssV0FBVyxFQUVoQixLQUFLLFVBQVUsRUFFaEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBK0IsS0FBSyx3QkFBd0IsRUFBRSxNQUFN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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_block_source.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEhB,KAAK,WAAW,EAEhB,KAAK,UAAU,EAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACxH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAEnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA+B,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE7G,mFAAmF;AACnF,MAAM,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAChE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAK1D,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAK5D,CAAC;AAEH,yFAAyF;AACzF,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,GAAG,EAAE,cAAc,GAAG,QAAQ,GAAG,WAAW,CAAA;CAAE,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"l2_block_source.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,11 @@ export const CheckpointsQuerySchema = z.union([
|
|
|
49
49
|
from: CheckpointNumberSchema,
|
|
50
50
|
limit: z.number().int().min(1)
|
|
51
51
|
}).strict(),
|
|
52
|
+
z.object({
|
|
53
|
+
fromSlot: SlotNumberSchema,
|
|
54
|
+
limit: z.number().int().min(1),
|
|
55
|
+
reverse: z.boolean().optional()
|
|
56
|
+
}).strict(),
|
|
52
57
|
z.object({
|
|
53
58
|
epoch: EpochNumberSchema
|
|
54
59
|
}).strict()
|
|
@@ -45,4 +45,22 @@ export declare class MaliciousCommitteeAttestationsAndSigners extends CommitteeA
|
|
|
45
45
|
constructor(attestations: CommitteeAttestation[], signers: EthAddress[], signatureContext: CoordinationSignatureContext);
|
|
46
46
|
getSigners(): EthAddress[];
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Malicious extension of CommitteeAttestationsAndSigners that rewrites every non-proposer signature slot's
|
|
50
|
+
* recovery byte to yParity form (v ∈ {0, 1}) in the packed output, after the honest `packAttestations` has
|
|
51
|
+
* already canonicalized it to v ∈ {27, 28}. Models a malicious selected proposer that hand-crafts
|
|
52
|
+
* `propose()` calldata L1 accepts but no honest node can byte-replay: each rewritten signature still
|
|
53
|
+
* recovers to the same member (r, s and the recovery parity are preserved), the bitmap bits stay set, and
|
|
54
|
+
* `getSigners()` stays consistent, so `propose()` does not revert `SignersSizeMismatch` -- yet the
|
|
55
|
+
* checkpoint can never be proven (`ECDSA.recover` rejects v ∉ {27, 28}). The proposer's own slot is left
|
|
56
|
+
* canonical so L1 `verifyProposer` (which recovers that slot) still accepts the checkpoint. For testing only.
|
|
57
|
+
*/
|
|
58
|
+
export declare class MaliciousYParityCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
|
|
59
|
+
/** Committee index of the proposer's own slot, left canonical so `propose()` passes `verifyProposer`. */
|
|
60
|
+
private proposerIndex;
|
|
61
|
+
constructor(attestations: CommitteeAttestation[],
|
|
62
|
+
/** Committee index of the proposer's own slot, left canonical so `propose()` passes `verifyProposer`. */
|
|
63
|
+
proposerIndex: number, signatureContext: CoordinationSignatureContext);
|
|
64
|
+
getPackedAttestations(): ViemCommitteeAttestations;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25zX2FuZF9zaWduZXJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svcHJvcG9zYWwvYXR0ZXN0YXRpb25zX2FuZF9zaWduZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJM0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQ0wsS0FBSyw0QkFBNEIsRUFDakMsS0FBSyx5QkFBeUIsRUFDOUIsS0FBSyxRQUFRLEVBRWQsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUscUJBQWEsK0JBQWdDLFlBQVcsUUFBUTtJQUlyRCxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7YUFDM0IsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBSmhFLFFBQVEsQ0FBQyxXQUFXLEVBQUUseUJBQXlCLENBQTRCO0lBRTNFLFlBQ1MsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEVBQzNCLGdCQUFnQixFQUFFLDRCQUE0QixFQUM1RDtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7UUFPaEI7SUFFRCxnQkFBZ0IsSUFBSSxNQUFNLENBV3pCO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsR0FBRywrQkFBK0IsQ0FFNUY7SUFFRCxRQUFRLFNBRVA7SUFFRCxVQUFVLGlCQUVUO0lBRUQscUJBQXFCLDJCQUVwQjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLHlCQUF5QixDQW1FdkY7SUFFRCxxQkFBcUIsSUFBSSx5QkFBeUIsQ0FFakQ7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsd0NBQXlDLFNBQVEsK0JBQStCO0lBR3pGLE9BQU8sQ0FBQyxPQUFPO0lBRmpCLFlBQ0UsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEVBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDN0IsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBRy9DO0lBRVEsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUVsQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsK0NBQWdELFNBQVEsK0JBQStCO0lBR2hHLHlHQUF5RztJQUN6RyxPQUFPLENBQUMsYUFBYTtJQUh2QixZQUNFLFlBQVksRUFBRSxvQkFBb0IsRUFBRTtJQUNwQyx5R0FBeUc7SUFDakcsYUFBYSxFQUFFLE1BQU0sRUFDN0IsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBRy9DO0lBRVEscUJBQXFCLElBQUkseUJBQXlCLENBbUIxRDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestations_and_signers.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/attestations_and_signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAI3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBAAa,+BAAgC,YAAW,QAAQ;IAIrD,YAAY,EAAE,oBAAoB,EAAE;aAC3B,gBAAgB,EAAE,4BAA4B;IAJhE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAA4B;IAE3E,YACS,YAAY,EAAE,oBAAoB,EAAE,EAC3B,gBAAgB,EAAE,4BAA4B,EAC5D;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;QAOhB;IAED,gBAAgB,IAAI,MAAM,CAWzB;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,+BAA+B,CAE5F;IAED,QAAQ,SAEP;IAED,UAAU,iBAET;IAED,qBAAqB,2BAEpB;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,yBAAyB,CAmEvF;IAED,qBAAqB,IAAI,yBAAyB,CAEjD;CACF;AAED;;;;;GAKG;AACH,qBAAa,wCAAyC,SAAQ,+BAA+B;IAGzF,OAAO,CAAC,OAAO;IAFjB,YACE,YAAY,EAAE,oBAAoB,EAAE,EAC5B,OAAO,EAAE,UAAU,EAAE,EAC7B,gBAAgB,EAAE,4BAA4B,EAG/C;IAEQ,UAAU,IAAI,UAAU,EAAE,CAElC;CACF"}
|
|
1
|
+
{"version":3,"file":"attestations_and_signers.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/attestations_and_signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAI3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBAAa,+BAAgC,YAAW,QAAQ;IAIrD,YAAY,EAAE,oBAAoB,EAAE;aAC3B,gBAAgB,EAAE,4BAA4B;IAJhE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAA4B;IAE3E,YACS,YAAY,EAAE,oBAAoB,EAAE,EAC3B,gBAAgB,EAAE,4BAA4B,EAC5D;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;QAOhB;IAED,gBAAgB,IAAI,MAAM,CAWzB;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,+BAA+B,CAE5F;IAED,QAAQ,SAEP;IAED,UAAU,iBAET;IAED,qBAAqB,2BAEpB;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,yBAAyB,CAmEvF;IAED,qBAAqB,IAAI,yBAAyB,CAEjD;CACF;AAED;;;;;GAKG;AACH,qBAAa,wCAAyC,SAAQ,+BAA+B;IAGzF,OAAO,CAAC,OAAO;IAFjB,YACE,YAAY,EAAE,oBAAoB,EAAE,EAC5B,OAAO,EAAE,UAAU,EAAE,EAC7B,gBAAgB,EAAE,4BAA4B,EAG/C;IAEQ,UAAU,IAAI,UAAU,EAAE,CAElC;CACF;AAED;;;;;;;;;GASG;AACH,qBAAa,+CAAgD,SAAQ,+BAA+B;IAGhG,yGAAyG;IACzG,OAAO,CAAC,aAAa;IAHvB,YACE,YAAY,EAAE,oBAAoB,EAAE;IACpC,yGAAyG;IACjG,aAAa,EAAE,MAAM,EAC7B,gBAAgB,EAAE,4BAA4B,EAG/C;IAEQ,qBAAqB,IAAI,yBAAyB,CAmB1D;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { hexToBuffer } from '@aztec/foundation/string';
|
|
1
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
2
2
|
import { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { coordinationSignatureContextSchema } from '../../p2p/signature_utils.js';
|
|
@@ -123,3 +123,39 @@ export class CommitteeAttestationsAndSigners {
|
|
|
123
123
|
return this.signers;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Malicious extension of CommitteeAttestationsAndSigners that rewrites every non-proposer signature slot's
|
|
128
|
+
* recovery byte to yParity form (v ∈ {0, 1}) in the packed output, after the honest `packAttestations` has
|
|
129
|
+
* already canonicalized it to v ∈ {27, 28}. Models a malicious selected proposer that hand-crafts
|
|
130
|
+
* `propose()` calldata L1 accepts but no honest node can byte-replay: each rewritten signature still
|
|
131
|
+
* recovers to the same member (r, s and the recovery parity are preserved), the bitmap bits stay set, and
|
|
132
|
+
* `getSigners()` stays consistent, so `propose()` does not revert `SignersSizeMismatch` -- yet the
|
|
133
|
+
* checkpoint can never be proven (`ECDSA.recover` rejects v ∉ {27, 28}). The proposer's own slot is left
|
|
134
|
+
* canonical so L1 `verifyProposer` (which recovers that slot) still accepts the checkpoint. For testing only.
|
|
135
|
+
*/ export class MaliciousYParityCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
|
|
136
|
+
proposerIndex;
|
|
137
|
+
constructor(attestations, /** Committee index of the proposer's own slot, left canonical so `propose()` passes `verifyProposer`. */ proposerIndex, signatureContext){
|
|
138
|
+
super(attestations, signatureContext), this.proposerIndex = proposerIndex;
|
|
139
|
+
}
|
|
140
|
+
getPackedAttestations() {
|
|
141
|
+
const packed = super.getPackedAttestations();
|
|
142
|
+
const data = hexToBuffer(packed.signaturesOrAddresses);
|
|
143
|
+
// Walk the packed byte-vector and rewrite every non-proposer signed slot's v-byte to yParity form. A
|
|
144
|
+
// signed slot occupies 65 bytes (v, r, s); an empty slot occupies 20 bytes (address only).
|
|
145
|
+
let offset = 0;
|
|
146
|
+
for(let i = 0; i < this.attestations.length; i++){
|
|
147
|
+
const isSigned = !this.attestations[i].signature.isEmpty();
|
|
148
|
+
if (isSigned && i !== this.proposerIndex) {
|
|
149
|
+
// `packAttestations` canonicalized v to 27/28; rewrite back to the equivalent yParity byte (0/1),
|
|
150
|
+
// preserving the recovery parity so the signature still recovers to the same member.
|
|
151
|
+
const v = data[offset];
|
|
152
|
+
data[offset] = v >= 27 ? v - 27 : v;
|
|
153
|
+
}
|
|
154
|
+
offset += isSigned ? 65 : 20;
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
signatureIndices: packed.signatureIndices,
|
|
158
|
+
signaturesOrAddresses: bufferToHex(data)
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ViemCommitteeAttestations } from '@aztec/ethereum/contracts';
|
|
1
2
|
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
import { type ZodFor } from '@aztec/foundation/schemas';
|
|
@@ -19,6 +20,14 @@ export type ValidateCheckpointNegativeResult = {
|
|
|
19
20
|
attestors: EthAddress[];
|
|
20
21
|
/** Committee attestations for this checkpoint as they were posted to L1 */
|
|
21
22
|
attestations: CommitteeAttestation[];
|
|
23
|
+
/**
|
|
24
|
+
* The exact packed `CommitteeAttestations` tuple as posted to L1 calldata, carried verbatim so the
|
|
25
|
+
* invalidation evidence is byte-faithful to the stored `attestationsHash`. A repack via
|
|
26
|
+
* `packAttestations` is not a round-trip inverse of `fromPacked`, so it would diverge from the hash
|
|
27
|
+
* and revert `invalidateBadAttestation`/`invalidateInsufficientAttestations`. Always populated on the
|
|
28
|
+
* calldata validation path, the only production source of invalidation evidence.
|
|
29
|
+
*/
|
|
30
|
+
verbatimAttestations: ViemCommitteeAttestations;
|
|
22
31
|
/** Reason for the checkpoint being invalid: not enough attestations were posted */
|
|
23
32
|
reason: 'insufficient-attestations';
|
|
24
33
|
} | {
|
|
@@ -35,6 +44,12 @@ export type ValidateCheckpointNegativeResult = {
|
|
|
35
44
|
attestors: EthAddress[];
|
|
36
45
|
/** Committee attestations for this checkpoint as they were posted to L1 */
|
|
37
46
|
attestations: CommitteeAttestation[];
|
|
47
|
+
/**
|
|
48
|
+
* The exact packed `CommitteeAttestations` tuple as posted to L1 calldata, carried verbatim so the
|
|
49
|
+
* invalidation evidence is byte-faithful to the stored `attestationsHash`. See the same field on the
|
|
50
|
+
* insufficient-attestations variant for why a repack cannot be used.
|
|
51
|
+
*/
|
|
52
|
+
verbatimAttestations: ViemCommitteeAttestations;
|
|
38
53
|
/** Reason for the checkpoint being invalid: an invalid attestation was posted */
|
|
39
54
|
reason: 'invalid-attestation';
|
|
40
55
|
/** Index in the attestations array of the invalid attestation posted */
|
|
@@ -47,4 +62,4 @@ export type ValidateCheckpointResult = {
|
|
|
47
62
|
export declare const ValidateCheckpointResultSchema: ZodFor<ValidateCheckpointResult>;
|
|
48
63
|
export declare function serializeValidateCheckpointResult(result: ValidateCheckpointResult): Buffer;
|
|
49
64
|
export declare function deserializeValidateCheckpointResult(bufferOrReader: Buffer | BufferReader): ValidateCheckpointResult;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVfYmxvY2tfcmVzdWx0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svdmFsaWRhdGVfYmxvY2tfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUs5RSxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBSXBCLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFM0Usd0RBQXdEO0FBQ3hELE1BQU0sTUFBTSxnQ0FBZ0MsR0FDeEM7SUFDRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQ2IsOENBQThDO0lBQzlDLFVBQVUsRUFBRSxjQUFjLENBQUM7SUFDM0Isa0VBQWtFO0lBQ2xFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN4QixrREFBa0Q7SUFDbEQsS0FBSyxFQUFFLFdBQVcsQ0FBQztJQUNuQiw0Q0FBNEM7SUFDNUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLG9FQUFvRTtJQUNwRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDeEIsMkVBQTJFO0lBQzNFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDOzs7Ozs7T0FNRztJQUNILG9CQUFvQixFQUFFLHlCQUF5QixDQUFDO0lBQ2hELG1GQUFtRjtJQUNuRixNQUFNLEVBQUUsMkJBQTJCLENBQUM7Q0FDckMsR0FDRDtJQUNFLEtBQUssRUFBRSxLQUFLLENBQUM7SUFDYiw4Q0FBOEM7SUFDOUMsVUFBVSxFQUFFLGNBQWMsQ0FBQztJQUMzQixrRUFBa0U7SUFDbEUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3hCLGtEQUFrRDtJQUNsRCxLQUFLLEVBQUUsV0FBVyxDQUFDO0lBQ25CLDRDQUE0QztJQUM1QyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2Isb0VBQW9FO0lBQ3BFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN4QiwyRUFBMkU7SUFDM0UsWUFBWSxFQUFFLG9CQUFvQixFQUFFLENBQUM7SUFDckM7Ozs7T0FJRztJQUNILG9CQUFvQixFQUFFLHlCQUF5QixDQUFDO0lBQ2hELGlGQUFpRjtJQUNqRixNQUFNLEVBQUUscUJBQXFCLENBQUM7SUFDOUIsd0VBQXdFO0lBQ3hFLFlBQVksRUFBRSxNQUFNLENBQUM7Q0FDdEIsQ0FBQztBQUVOLHlEQUF5RDtBQUN6RCxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFBO0NBQUUsR0FBRyxnQ0FBZ0MsQ0FBQztBQVExRixlQUFPLE1BQU0sOEJBQThCLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixDQXlCMUUsQ0FBQztBQUVILHdCQUFnQixpQ0FBaUMsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLEdBQUcsTUFBTSxDQTJCMUY7QUFFRCx3QkFBZ0IsbUNBQW1DLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsd0JBQXdCLENBc0NuSCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_block_result.d.ts","sourceRoot":"","sources":["../../src/block/validate_block_result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"validate_block_result.d.ts","sourceRoot":"","sources":["../../src/block/validate_block_result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAK9E,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,wDAAwD;AACxD,MAAM,MAAM,gCAAgC,GACxC;IACE,KAAK,EAAE,KAAK,CAAC;IACb,8CAA8C;IAC9C,UAAU,EAAE,cAAc,CAAC;IAC3B,kEAAkE;IAClE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,kDAAkD;IAClD,KAAK,EAAE,WAAW,CAAC;IACnB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,2EAA2E;IAC3E,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC;;;;;;OAMG;IACH,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,mFAAmF;IACnF,MAAM,EAAE,2BAA2B,CAAC;CACrC,GACD;IACE,KAAK,EAAE,KAAK,CAAC;IACb,8CAA8C;IAC9C,UAAU,EAAE,cAAc,CAAC;IAC3B,kEAAkE;IAClE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,kDAAkD;IAClD,KAAK,EAAE,WAAW,CAAC;IACnB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,2EAA2E;IAC3E,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC;;;;OAIG;IACH,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,iFAAiF;IACjF,MAAM,EAAE,qBAAqB,CAAC;IAC9B,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN,yDAAyD;AACzD,MAAM,MAAM,wBAAwB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG,gCAAgC,CAAC;AAQ1F,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,wBAAwB,CAyB1E,CAAC;AAEH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CA2B1F;AAED,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,wBAAwB,CAsCnH"}
|
|
@@ -2,10 +2,15 @@ import { EpochNumber, EpochNumberSchema } from '@aztec/foundation/branded-types'
|
|
|
2
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import { schemas } from '@aztec/foundation/schemas';
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
import { CheckpointInfoSchema, deserializeCheckpointInfo, serializeCheckpointInfo } from '../checkpoint/checkpoint_info.js';
|
|
7
8
|
import { MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
|
|
8
9
|
import { CommitteeAttestation } from './proposal/committee_attestation.js';
|
|
10
|
+
/** Zod schema for the raw packed `CommitteeAttestations` viem tuple (two 0x-prefixed hex strings). */ const ViemCommitteeAttestationsSchema = z.object({
|
|
11
|
+
signatureIndices: schemas.HexStringWith0x,
|
|
12
|
+
signaturesOrAddresses: schemas.HexStringWith0x
|
|
13
|
+
});
|
|
9
14
|
export const ValidateCheckpointResultSchema = z.union([
|
|
10
15
|
z.object({
|
|
11
16
|
valid: z.literal(true)
|
|
@@ -18,6 +23,7 @@ export const ValidateCheckpointResultSchema = z.union([
|
|
|
18
23
|
seed: schemas.BigInt,
|
|
19
24
|
attestors: z.array(schemas.EthAddress),
|
|
20
25
|
attestations: z.array(CommitteeAttestation.schema),
|
|
26
|
+
verbatimAttestations: ViemCommitteeAttestationsSchema,
|
|
21
27
|
reason: z.literal('insufficient-attestations')
|
|
22
28
|
}),
|
|
23
29
|
z.object({
|
|
@@ -28,6 +34,7 @@ export const ValidateCheckpointResultSchema = z.union([
|
|
|
28
34
|
seed: schemas.BigInt,
|
|
29
35
|
attestors: z.array(schemas.EthAddress),
|
|
30
36
|
attestations: z.array(CommitteeAttestation.schema),
|
|
37
|
+
verbatimAttestations: ViemCommitteeAttestationsSchema,
|
|
31
38
|
reason: z.literal('invalid-attestation'),
|
|
32
39
|
invalidIndex: z.number()
|
|
33
40
|
})
|
|
@@ -37,7 +44,9 @@ export function serializeValidateCheckpointResult(result) {
|
|
|
37
44
|
return serializeToBuffer(true);
|
|
38
45
|
}
|
|
39
46
|
const checkpointBuffer = serializeCheckpointInfo(result.checkpoint);
|
|
40
|
-
|
|
47
|
+
const signatureIndices = hexToBuffer(result.verbatimAttestations.signatureIndices);
|
|
48
|
+
const signaturesOrAddresses = hexToBuffer(result.verbatimAttestations.signaturesOrAddresses);
|
|
49
|
+
return serializeToBuffer(result.valid, result.reason, checkpointBuffer.length, checkpointBuffer, result.committee.length, result.committee, result.epoch, result.seed ?? 0n, result.attestors.length, result.attestors, result.attestations.length, result.attestations, result.reason === 'invalid-attestation' ? result.invalidIndex : 0, signatureIndices.length, signatureIndices, signaturesOrAddresses.length, signaturesOrAddresses);
|
|
41
50
|
}
|
|
42
51
|
export function deserializeValidateCheckpointResult(bufferOrReader) {
|
|
43
52
|
const reader = BufferReader.asReader(bufferOrReader);
|
|
@@ -55,6 +64,10 @@ export function deserializeValidateCheckpointResult(bufferOrReader) {
|
|
|
55
64
|
const attestors = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
|
|
56
65
|
const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
|
|
57
66
|
const invalidIndex = reader.readNumber();
|
|
67
|
+
const verbatimAttestations = {
|
|
68
|
+
signatureIndices: bufferToHex(reader.readBuffer()),
|
|
69
|
+
signaturesOrAddresses: bufferToHex(reader.readBuffer())
|
|
70
|
+
};
|
|
58
71
|
if (reason === 'insufficient-attestations') {
|
|
59
72
|
return {
|
|
60
73
|
valid,
|
|
@@ -64,7 +77,8 @@ export function deserializeValidateCheckpointResult(bufferOrReader) {
|
|
|
64
77
|
epoch,
|
|
65
78
|
seed,
|
|
66
79
|
attestors,
|
|
67
|
-
attestations
|
|
80
|
+
attestations,
|
|
81
|
+
verbatimAttestations
|
|
68
82
|
};
|
|
69
83
|
} else if (reason === 'invalid-attestation') {
|
|
70
84
|
return {
|
|
@@ -76,7 +90,8 @@ export function deserializeValidateCheckpointResult(bufferOrReader) {
|
|
|
76
90
|
seed,
|
|
77
91
|
attestors,
|
|
78
92
|
invalidIndex,
|
|
79
|
-
attestations
|
|
93
|
+
attestations,
|
|
94
|
+
verbatimAttestations
|
|
80
95
|
};
|
|
81
96
|
} else {
|
|
82
97
|
const _ = reason;
|
|
@@ -69,4 +69,4 @@ export declare function checkConsensusEnvOverrides(networkConfig: Record<string,
|
|
|
69
69
|
export declare function allowsNetworkConfigOverride(env?: {
|
|
70
70
|
[key: string]: string | undefined;
|
|
71
71
|
}): boolean;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25zZW5zdXMtY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL25ldHdvcmstY29uc2Vuc3VzLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBb0QsTUFBTSx3QkFBd0IsQ0FBQztBQUdsSCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVVoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLDJsREFzREQsQ0FBQztBQUV2Qyw4RkFBOEY7QUFDOUYsTUFBTSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQU8sMEJBQTBCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUxRTs7Ozs7R0FLRztBQUNILE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEdBQUcsc0JBQXNCLENBQUMsR0FDeEcsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEdBQUcsd0JBQXdCLEdBQUcsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO0FBWXZIOzs7Ozs7R0FNRztBQUNILHdCQUFnQixnQ0FBZ0MsQ0FDOUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FDaEQsc0JBQXNCLENBaUJ4QjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLDhCQUE4QixDQUFDLE1BQU0sRUFBRSxzQkFBc0IsR0FBRyxNQUFNLEVBQUUsQ0FtRXZGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUN4QyxhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUN4RCxHQUFHLEdBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQTtDQUFnQixFQUN4RCxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssSUFBSSxHQUMxQixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQWlEeEI7QUFFRCw4R0FBOEc7QUFDOUcsd0JBQWdCLDJCQUEyQixDQUFDLEdBQUcsR0FBRTtJQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFBO0NBQWdCLEdBQUcsT0FBTyxDQUc3RyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-consensus-config.d.ts","sourceRoot":"","sources":["../../src/config/network-consensus-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"network-consensus-config.d.ts","sourceRoot":"","sources":["../../src/config/network-consensus-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAoD,MAAM,wBAAwB,CAAC;AAGlH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAUhE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,0BAA0B,2lDAsDD,CAAC;AAEvC,8FAA8F;AAC9F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,sBAAsB,CAAC,GACxG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,wBAAwB,GAAG,oCAAoC,CAAC,CAAC,CAAC;AAYvH;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAChD,sBAAsB,CAiBxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAmEvF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACxD,GAAG,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAgB,EACxD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiDxB;AAED,8GAA8G;AAC9G,wBAAgB,2BAA2B,CAAC,GAAG,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAgB,GAAG,OAAO,CAG7G"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l1ContractsConfigMappings } from '@aztec/ethereum/config';
|
|
1
|
+
import { l1ContractsConfigMappings, validateSlotDurations } from '@aztec/ethereum/config';
|
|
2
2
|
import { pickConfigMappings } from '@aztec/foundation/config';
|
|
3
3
|
import { DEFAULT_CHECKPOINT_PROPOSAL_INIT_TIME, DEFAULT_CHECKPOINT_PROPOSAL_PREPARE_TIME, DEFAULT_MIN_BLOCK_DURATION, DEFAULT_P2P_PROPAGATION_TIME } from '../timetable/budgets.js';
|
|
4
4
|
import { ProposerTimetable } from '../timetable/proposer_timetable.js';
|
|
@@ -126,18 +126,10 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
|
|
|
126
126
|
if (errors.length > 0) {
|
|
127
127
|
return errors;
|
|
128
128
|
}
|
|
129
|
-
|
|
130
|
-
errors.push(`ethereumSlotDuration must be positive (got ${config.ethereumSlotDuration})`);
|
|
131
|
-
}
|
|
129
|
+
errors.push(...validateSlotDurations(config));
|
|
132
130
|
if (config.blockDurationMs <= 0) {
|
|
133
131
|
errors.push(`blockDurationMs must be positive (got ${config.blockDurationMs})`);
|
|
134
132
|
}
|
|
135
|
-
if (config.aztecSlotDuration <= 0) {
|
|
136
|
-
errors.push(`aztecSlotDuration must be positive (got ${config.aztecSlotDuration})`);
|
|
137
|
-
}
|
|
138
|
-
if (config.ethereumSlotDuration > 0 && config.aztecSlotDuration % config.ethereumSlotDuration !== 0) {
|
|
139
|
-
errors.push(`aztecSlotDuration (${config.aztecSlotDuration}s) must be a multiple of ethereumSlotDuration ` + `(${config.ethereumSlotDuration}s)`);
|
|
140
|
-
}
|
|
141
133
|
if (config.blockDurationMs / 1000 > config.aztecSlotDuration) {
|
|
142
134
|
errors.push(`blockDurationMs (${config.blockDurationMs}ms) exceeds aztecSlotDuration (${config.aztecSlotDuration}s)`);
|
|
143
135
|
}
|
|
@@ -2,9 +2,17 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
2
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
3
3
|
import fs from 'fs/promises';
|
|
4
4
|
import { DatabaseVersion } from './database_version.js';
|
|
5
|
-
export type DatabaseVersionManagerFs = Pick<typeof fs, 'readFile' | '
|
|
5
|
+
export type DatabaseVersionManagerFs = Pick<typeof fs, 'readFile' | 'rm' | 'mkdir' | 'rename' | 'open'>;
|
|
6
6
|
export declare const DATABASE_VERSION_FILE_NAME = "db_version";
|
|
7
7
|
export type SchemaVersionMismatchPolicy = 'reset' | 'throw';
|
|
8
|
+
/**
|
|
9
|
+
* How to react when the version file exists but cannot be read (permissions, IO error, truncation).
|
|
10
|
+
* `'reset'` (default) treats the store as unversioned and lets the reset path run — safe for stores
|
|
11
|
+
* where an empty state is legitimate. `'throw'` refuses to open, leaving data untouched — required
|
|
12
|
+
* for protection stores (e.g. signing protection) that must never be silently wiped by a transient
|
|
13
|
+
* filesystem error. A genuinely missing file (ENOENT) is a first boot and is never affected by this.
|
|
14
|
+
*/
|
|
15
|
+
export type VersionFileReadFailurePolicy = 'reset' | 'throw';
|
|
8
16
|
export type DatabaseVersionManagerOptions<T> = {
|
|
9
17
|
schemaVersion: number;
|
|
10
18
|
rollupAddress: EthAddress;
|
|
@@ -12,6 +20,7 @@ export type DatabaseVersionManagerOptions<T> = {
|
|
|
12
20
|
onOpen: (dataDir: string) => Promise<T>;
|
|
13
21
|
onUpgrade?: (dataDir: string, currentVersion: number, latestVersion: number) => Promise<void>;
|
|
14
22
|
schemaVersionMismatchPolicy?: SchemaVersionMismatchPolicy;
|
|
23
|
+
versionFileReadFailurePolicy?: VersionFileReadFailurePolicy;
|
|
15
24
|
fileSystem?: DatabaseVersionManagerFs;
|
|
16
25
|
log?: Logger;
|
|
17
26
|
};
|
|
@@ -28,6 +37,7 @@ export declare class DatabaseVersionManager<T> {
|
|
|
28
37
|
private onOpen;
|
|
29
38
|
private onUpgrade?;
|
|
30
39
|
private schemaVersionMismatchPolicy;
|
|
40
|
+
private versionFileReadFailurePolicy;
|
|
31
41
|
private fileSystem;
|
|
32
42
|
private log;
|
|
33
43
|
/**
|
|
@@ -37,13 +47,16 @@ export declare class DatabaseVersionManager<T> {
|
|
|
37
47
|
* @param rollupAddress - The rollup contract address
|
|
38
48
|
* @param dataDirectory - The directory where version information will be stored
|
|
39
49
|
* @param onOpen - A callback to the open the database at the given location
|
|
40
|
-
* @param onUpgrade - An optional callback to upgrade the database before opening. If not provided it will reset the
|
|
50
|
+
* @param onUpgrade - An optional callback to upgrade the database before opening. If not provided it will reset the
|
|
51
|
+
* database. Must be idempotent: since the version marker is written only after a successful open, a crash after
|
|
52
|
+
* onUpgrade but before the marker is written re-runs onUpgrade on the next start.
|
|
41
53
|
* @param schemaVersionMismatchPolicy - Whether schema mismatches should reset data or throw
|
|
54
|
+
* @param versionFileReadFailurePolicy - Whether an unreadable (non-missing) version file should reset data or throw
|
|
42
55
|
* @param fileSystem - An interface to access the filesystem
|
|
43
56
|
* @param log - Optional custom logger
|
|
44
57
|
* @param options - Configuration options
|
|
45
58
|
*/
|
|
46
|
-
constructor({ schemaVersion, rollupAddress, dataDirectory, onOpen, onUpgrade, schemaVersionMismatchPolicy, fileSystem, log }: DatabaseVersionManagerOptions<T>);
|
|
59
|
+
constructor({ schemaVersion, rollupAddress, dataDirectory, onOpen, onUpgrade, schemaVersionMismatchPolicy, versionFileReadFailurePolicy, fileSystem, log }: DatabaseVersionManagerOptions<T>);
|
|
47
60
|
static writeVersion(version: DatabaseVersion, dataDir: string, fileSystem?: DatabaseVersionManagerFs): Promise<void>;
|
|
48
61
|
/**
|
|
49
62
|
* Checks the stored version against the current version and handles the outcome
|
|
@@ -54,6 +67,7 @@ export declare class DatabaseVersionManager<T> {
|
|
|
54
67
|
* @returns True if data was reset, false if upgraded or no change needed
|
|
55
68
|
*/
|
|
56
69
|
open(): Promise<[T, boolean]>;
|
|
70
|
+
private closeQuietly;
|
|
57
71
|
/**
|
|
58
72
|
* Writes the current version to the version file
|
|
59
73
|
*/
|
|
@@ -71,4 +85,4 @@ export declare class DatabaseVersionManager<T> {
|
|
|
71
85
|
*/
|
|
72
86
|
getSchemaVersion(): number;
|
|
73
87
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbl9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UtdmVyc2lvbi92ZXJzaW9uX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxHQUFHLElBQUksR0FBRyxPQUFPLEdBQUcsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBRXhHLGVBQU8sTUFBTSwwQkFBMEIsZUFBZSxDQUFDO0FBQ3ZELE1BQU0sTUFBTSwyQkFBMkIsR0FBRyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBRTVEOzs7Ozs7R0FNRztBQUNILE1BQU0sTUFBTSw0QkFBNEIsR0FBRyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBRTdELE1BQU0sTUFBTSw2QkFBNkIsQ0FBQyxDQUFDLElBQUk7SUFDN0MsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixhQUFhLEVBQUUsVUFBVSxDQUFDO0lBQzFCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUYsMkJBQTJCLENBQUMsRUFBRSwyQkFBMkIsQ0FBQztJQUMxRCw0QkFBNEIsQ0FBQyxFQUFFLDRCQUE0QixDQUFDO0lBQzVELFVBQVUsQ0FBQyxFQUFFLHdCQUF3QixDQUFDO0lBQ3RDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNkLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gscUJBQWEsc0JBQXNCLENBQUMsQ0FBQztJQUNuQyxnQkFBdUIsWUFBWSxnQkFBOEI7SUFFakUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQVM7SUFDckMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQWtCO0lBRWpELE9BQU8sQ0FBQyxhQUFhLENBQVM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBa0M7SUFDaEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFvRjtJQUN0RyxPQUFPLENBQUMsMkJBQTJCLENBQThCO0lBQ2pFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBK0I7SUFDbkUsT0FBTyxDQUFDLFVBQVUsQ0FBMkI7SUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUVwQjs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxZQUFZLEVBQ1YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsTUFBTSxFQUNOLFNBQVMsRUFDVCwyQkFBcUMsRUFDckMsNEJBQXNDLEVBQ3RDLFVBQWUsRUFDZixHQUFnRCxFQUNqRCxFQUFFLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxFQWVsQztJQUVELE9BQWEsWUFBWSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEdBQUUsd0JBQTZCLGlCQTZCN0c7SUFFRDs7Ozs7OztPQU9HO0lBQ1UsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQXFHekM7WUFNYSxZQUFZO0lBZTFCOztPQUVHO0lBQ0ksWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRS9DO0lBRUQ7O09BRUc7SUFDVSxrQkFBa0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBUS9DO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsSUFBSSxNQUFNLENBRWhDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsSUFBSSxNQUFNLENBRWhDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version_manager.d.ts","sourceRoot":"","sources":["../../src/database-version/version_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"version_manager.d.ts","sourceRoot":"","sources":["../../src/database-version/version_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;AAExG,eAAO,MAAM,0BAA0B,eAAe,CAAC;AACvD,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,6BAA6B,CAAC,CAAC,IAAI;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,UAAU,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,qBAAa,sBAAsB,CAAC,CAAC;IACnC,gBAAuB,YAAY,gBAA8B;IAEjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IAEjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAC,CAAoF;IACtG,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,4BAA4B,CAA+B;IACnE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,GAAG,CAAS;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,EACN,SAAS,EACT,2BAAqC,EACrC,4BAAsC,EACtC,UAAe,EACf,GAAgD,EACjD,EAAE,6BAA6B,CAAC,CAAC,CAAC,EAelC;IAED,OAAa,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,wBAA6B,iBA6B7G;IAED;;;;;;;OAOG;IACU,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAqGzC;YAMa,YAAY;IAe1B;;OAEG;IACI,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;IAED;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ/C;IAED;;OAEG;IACI,gBAAgB,IAAI,MAAM,CAEhC;IAED;;OAEG;IACI,gBAAgB,IAAI,MAAM,CAEhC;CACF"}
|