@aztec/stdlib 0.0.1-commit.d1da697d6 → 0.0.1-commit.d20b825a7
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/abi/authorization_selector.d.ts +3 -6
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +32 -6
- package/dest/abi/event_selector.d.ts +3 -6
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.d.ts +3 -6
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +1 -3
- package/dest/abi/note_selector.d.ts +3 -6
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.js +1 -3
- package/dest/avm/avm.d.ts +300 -300
- package/dest/aztec-address/index.d.ts +3 -6
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +2 -4
- package/dest/block/block_data.d.ts +8 -8
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +2 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- package/dest/block/l2_block_info.d.ts +6 -5
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_info.js +6 -5
- package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/config/chain-config.d.ts +1 -1
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +7 -1
- package/dest/config/sequencer-config.d.ts +2 -2
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +10 -3
- package/dest/contract/contract_address.d.ts +1 -1
- package/dest/contract/contract_address.js +2 -2
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +2 -4
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- package/dest/gas/gas_fees.d.ts +5 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +10 -1
- package/dest/gas/index.d.ts +2 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +1 -0
- package/dest/ha-signing/config.d.ts +6 -6
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +4 -3
- package/dest/ha-signing/index.d.ts +2 -2
- package/dest/ha-signing/index.d.ts.map +1 -1
- package/dest/ha-signing/index.js +1 -1
- package/dest/ha-signing/local_config.js +1 -1
- package/dest/ha-signing/types.d.ts +37 -32
- package/dest/ha-signing/types.d.ts.map +1 -1
- package/dest/ha-signing/types.js +13 -6
- package/dest/hash/hash.d.ts +16 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +32 -0
- package/dest/interfaces/archiver.d.ts +11 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +3 -1
- package/dest/interfaces/aztec-node-admin.d.ts +8 -14
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +1 -2
- package/dest/interfaces/aztec-node-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +18 -0
- package/dest/interfaces/aztec-node.d.ts +10 -1
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +2 -0
- package/dest/interfaces/client.d.ts +2 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +1 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts +1 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +0 -3
- package/dest/interfaces/slasher.d.ts +1 -10
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +0 -2
- package/dest/interfaces/validator.d.ts +14 -17
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/log_id.d.ts +1 -1
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +1 -2
- package/dest/logs/siloed_tag.d.ts +5 -7
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +4 -0
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +4 -0
- package/dest/p2p/block_proposal.d.ts +6 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +4 -9
- package/dest/p2p/checkpoint_attestation.d.ts +4 -6
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +2 -7
- package/dest/p2p/checkpoint_proposal.d.ts +8 -10
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +5 -24
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.d.ts +7 -3
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +7 -3
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +4 -90
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +0 -14
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- package/dest/tests/factories.d.ts +2 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +8 -18
- package/dest/tests/mocks.d.ts +1 -1
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +12 -17
- package/dest/timetable/index.d.ts +51 -1
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +204 -14
- package/dest/trees/nullifier_leaf.d.ts +2 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- package/dest/tx/block_header.d.ts +2 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +1 -1
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/global_variable_builder.d.ts +3 -16
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/indexed_tx_effect.d.ts +1 -1
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +1 -2
- package/dest/tx/simulated_tx.d.ts +1 -1
- package/dest/tx/simulated_tx.js +1 -1
- package/dest/tx/tx.d.ts +3 -3
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/types/shared.d.ts +1 -10
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +0 -9
- package/dest/vks/verification_key.d.ts +2 -137
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +5 -126
- package/dest/world-state/genesis_data.d.ts +11 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +4 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +8 -1
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -1
- package/package.json +8 -8
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/encoder.ts +42 -6
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_selector.ts +3 -12
- package/src/abi/note_selector.ts +3 -12
- package/src/aztec-address/index.ts +4 -10
- package/src/block/block_data.ts +3 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_stream/interfaces.ts +6 -2
- package/src/block/l2_block_stream/l2_tips_store_base.ts +1 -1
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/config/chain-config.ts +7 -1
- package/src/config/sequencer-config.ts +14 -4
- package/src/contract/contract_address.ts +2 -2
- package/src/contract/private_function.ts +3 -1
- package/src/gas/README.md +31 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas_fees.ts +17 -4
- package/src/gas/index.ts +1 -0
- package/src/ha-signing/config.ts +5 -2
- package/src/ha-signing/index.ts +3 -1
- package/src/ha-signing/local_config.ts +1 -1
- package/src/ha-signing/types.ts +48 -34
- package/src/hash/hash.ts +27 -0
- package/src/interfaces/archiver.ts +8 -0
- package/src/interfaces/aztec-node-admin.ts +3 -6
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +15 -0
- package/src/interfaces/client.ts +1 -0
- package/src/interfaces/merkle_tree_operations.ts +3 -2
- package/src/interfaces/prover-client.ts +2 -5
- package/src/interfaces/slasher.ts +0 -6
- package/src/interfaces/validator.ts +15 -8
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/log_id.ts +1 -2
- package/src/logs/siloed_tag.ts +8 -9
- package/src/logs/tag.ts +8 -8
- package/src/p2p/block_proposal.ts +13 -9
- package/src/p2p/checkpoint_attestation.ts +5 -9
- package/src/p2p/checkpoint_proposal.ts +21 -36
- package/src/p2p/gossipable.ts +4 -4
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/rollup/block_headers_hash.ts +11 -2
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +3 -35
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/tests/factories.ts +14 -20
- package/src/tests/mocks.ts +14 -10
- package/src/timetable/index.ts +293 -13
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/tx/block_header.ts +2 -2
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +2 -18
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +1 -2
- package/src/tx/simulated_tx.ts +1 -1
- package/src/tx/tx.ts +2 -2
- package/src/types/shared.ts +0 -10
- package/src/vks/verification_key.ts +5 -184
- package/src/world-state/genesis_data.ts +15 -0
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +9 -1
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- package/dest/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -158
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/abi/mocked_keys.ts +0 -2
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/slashing/empire.ts +0 -104
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
1
|
+
import { CheckpointProposalHash, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
|
|
3
2
|
import { keccak256 } from '@aztec/foundation/crypto/keccak';
|
|
4
3
|
import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
5
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -15,12 +14,6 @@ import { Gossipable } from './gossipable.js';
|
|
|
15
14
|
import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
|
|
16
15
|
import { SignedTxs } from './signed_txs.js';
|
|
17
16
|
import { TopicType } from './topic_type.js';
|
|
18
|
-
// REFACTOR(palla): Use a branded type instead of a subclass of Buffer32
|
|
19
|
-
export class CheckpointProposalHash extends Buffer32 {
|
|
20
|
-
constructor(hash){
|
|
21
|
-
super(hash);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
17
|
/**
|
|
25
18
|
* A checkpoint proposal is created by the leader of the chain for the last block in a checkpoint.
|
|
26
19
|
* It includes the aggregated checkpoint header that validators will attest to, plus optionally
|
|
@@ -37,7 +30,7 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
37
30
|
super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.lastBlock = lastBlock;
|
|
38
31
|
}
|
|
39
32
|
generateP2PMessageIdentifier() {
|
|
40
|
-
return Promise.resolve(
|
|
33
|
+
return Promise.resolve(CheckpointProposalHash.fromBuffer(keccak256(this.signature.toBuffer())));
|
|
41
34
|
}
|
|
42
35
|
get slotNumber() {
|
|
43
36
|
return this.checkpointHeader.slotNumber;
|
|
@@ -83,29 +76,17 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
83
76
|
serializeSignedBigInt(this.feeAssetPriceModifier)
|
|
84
77
|
]);
|
|
85
78
|
}
|
|
86
|
-
static async createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier,
|
|
79
|
+
static async createProposalFromSigner(checkpointHeader, archiveRoot, checkpointNumber, feeAssetPriceModifier, lastBlockProposal, payloadSigner) {
|
|
87
80
|
// Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
|
|
88
81
|
const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty());
|
|
89
82
|
const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
|
|
90
83
|
const checkpointContext = {
|
|
91
84
|
slot: checkpointHeader.slotNumber,
|
|
92
|
-
|
|
85
|
+
checkpointNumber,
|
|
93
86
|
dutyType: DutyType.CHECKPOINT_PROPOSAL
|
|
94
87
|
};
|
|
95
|
-
if (lastBlockInfo) {
|
|
96
|
-
// Sign block proposal before signing checkpoint proposal to ensure HA protection
|
|
97
|
-
const lastBlockProposal = await BlockProposal.createProposalFromSigner(lastBlockInfo.blockHeader, lastBlockInfo.indexWithinCheckpoint, checkpointHeader.inHash, archiveRoot, lastBlockInfo.txHashes, lastBlockInfo.txs, payloadSigner);
|
|
98
|
-
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
99
|
-
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
|
|
100
|
-
blockHeader: lastBlockInfo.blockHeader,
|
|
101
|
-
indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
|
|
102
|
-
txHashes: lastBlockInfo.txHashes,
|
|
103
|
-
signature: lastBlockProposal.signature,
|
|
104
|
-
signedTxs: lastBlockProposal.signedTxs
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
88
|
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
108
|
-
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
|
|
89
|
+
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, lastBlockProposal);
|
|
109
90
|
}
|
|
110
91
|
/**
|
|
111
92
|
* Lazily evaluate the sender of the proposal; result is cached.
|
package/dest/p2p/gossipable.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseBuffer32 } from '@aztec/foundation/buffer';
|
|
2
2
|
import type { TopicType } from './topic_type.js';
|
|
3
3
|
export declare class P2PMessage {
|
|
4
4
|
readonly payload: Buffer;
|
|
@@ -22,8 +22,8 @@ export declare abstract class Gossipable {
|
|
|
22
22
|
* A digest of the message information **used for logging only**.
|
|
23
23
|
* The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
|
|
24
24
|
*/
|
|
25
|
-
p2pMessageLoggingIdentifier(): Promise<
|
|
26
|
-
abstract generateP2PMessageIdentifier(): Promise<
|
|
25
|
+
p2pMessageLoggingIdentifier(): Promise<BaseBuffer32>;
|
|
26
|
+
abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
|
|
27
27
|
abstract toBuffer(): Buffer;
|
|
28
28
|
toMessage(): Buffer;
|
|
29
29
|
/**
|
|
@@ -32,4 +32,4 @@ export declare abstract class Gossipable {
|
|
|
32
32
|
*/
|
|
33
33
|
abstract getSize(): number;
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUEyQjtJQUMzQywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQU16RDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,YAAY,CAAC,CAMzD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
|
|
@@ -6,12 +6,16 @@ export declare class ParityBasePrivateInputs {
|
|
|
6
6
|
readonly msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>;
|
|
7
7
|
/** Root of the VK tree */
|
|
8
8
|
readonly vkTreeRoot: Fr;
|
|
9
|
+
/** Prover identity committed to by the circuit, for sybil protection. */
|
|
10
|
+
readonly proverId: Fr;
|
|
9
11
|
constructor(
|
|
10
12
|
/** Aggregated proof of all the parity circuit iterations. */
|
|
11
13
|
msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>,
|
|
12
14
|
/** Root of the VK tree */
|
|
13
|
-
vkTreeRoot: Fr
|
|
14
|
-
|
|
15
|
+
vkTreeRoot: Fr,
|
|
16
|
+
/** Prover identity committed to by the circuit, for sybil protection. */
|
|
17
|
+
proverId: Fr);
|
|
18
|
+
static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr, proverId: Fr): ParityBasePrivateInputs;
|
|
15
19
|
/** Serializes the inputs to a buffer. */
|
|
16
20
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
17
21
|
/** Serializes the inputs to a hex string. */
|
|
@@ -32,4 +36,4 @@ export declare class ParityBasePrivateInputs {
|
|
|
32
36
|
/** Creates an instance from a hex string. */
|
|
33
37
|
static get schema(): import("zod").ZodType<ParityBasePrivateInputs, any, string>;
|
|
34
38
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyaXR5X2Jhc2VfcHJpdmF0ZV9pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvcGFyaXR5X2Jhc2VfcHJpdmF0ZV9pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1Qyx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRzFGLHFCQUFhLHVCQUF1QjtJQUVoQyw2REFBNkQ7YUFDN0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUNoRSwwQkFBMEI7YUFDVixVQUFVLEVBQUUsRUFBRTtJQUM5Qix5RUFBeUU7YUFDekQsUUFBUSxFQUFFLEVBQUU7SUFOOUI7SUFDRSw2REFBNkQ7SUFDN0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUNoRSwwQkFBMEI7SUFDVixVQUFVLEVBQUUsRUFBRTtJQUM5Qix5RUFBeUU7SUFDekQsUUFBUSxFQUFFLEVBQUUsRUFDMUI7SUFFSixPQUFjLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsdUJBQXVCLENBV3pHO0lBRUQseUNBQXlDO0lBQ3pDLFFBQVEsNEJBRVA7SUFFRCw2Q0FBNkM7SUFDN0MsUUFBUSxrQkFFUDtJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLDJCQU85QztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLDJCQUU1QjtJQUVELDhEQUE4RDtJQUM5RCxNQUFNLDRCQUVMO0lBRUQsNkNBQTZDO0lBQzdDLE1BQU0sS0FBSyxNQUFNLGdFQUVoQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity_base_private_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_base_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,qBAAa,uBAAuB;IAEhC,6DAA6D;aAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;aACV,UAAU,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"parity_base_private_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_base_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,qBAAa,uBAAuB;IAEhC,6DAA6D;aAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;aACV,UAAU,EAAE,EAAE;IAC9B,yEAAyE;aACzD,QAAQ,EAAE,EAAE;IAN9B;IACE,6DAA6D;IAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;IACV,UAAU,EAAE,EAAE;IAC9B,yEAAyE;IACzD,QAAQ,EAAE,EAAE,EAC1B;IAEJ,OAAc,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,uBAAuB,CAWzG;IAED,yCAAyC;IACzC,QAAQ,4BAEP;IAED,6CAA6C;IAC7C,QAAQ,kBAEP;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,2BAO9C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,2BAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,gEAEhB;CACF"}
|
|
@@ -6,11 +6,13 @@ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
|
6
6
|
export class ParityBasePrivateInputs {
|
|
7
7
|
msgs;
|
|
8
8
|
vkTreeRoot;
|
|
9
|
-
|
|
9
|
+
proverId;
|
|
10
|
+
constructor(/** Aggregated proof of all the parity circuit iterations. */ msgs, /** Root of the VK tree */ vkTreeRoot, /** Prover identity committed to by the circuit, for sybil protection. */ proverId){
|
|
10
11
|
this.msgs = msgs;
|
|
11
12
|
this.vkTreeRoot = vkTreeRoot;
|
|
13
|
+
this.proverId = proverId;
|
|
12
14
|
}
|
|
13
|
-
static fromSlice(array, index, vkTreeRoot) {
|
|
15
|
+
static fromSlice(array, index, vkTreeRoot, proverId) {
|
|
14
16
|
// Can't use Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP> due to length
|
|
15
17
|
if (array.length !== NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) {
|
|
16
18
|
throw new Error(`Msgs array length must be NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP=${NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP}`);
|
|
@@ -18,10 +20,10 @@ export class ParityBasePrivateInputs {
|
|
|
18
20
|
const start = index * NUM_MSGS_PER_BASE_PARITY;
|
|
19
21
|
const end = start + NUM_MSGS_PER_BASE_PARITY;
|
|
20
22
|
const msgs = array.slice(start, end);
|
|
21
|
-
return new ParityBasePrivateInputs(msgs, vkTreeRoot);
|
|
23
|
+
return new ParityBasePrivateInputs(msgs, vkTreeRoot, proverId);
|
|
22
24
|
}
|
|
23
25
|
/** Serializes the inputs to a buffer. */ toBuffer() {
|
|
24
|
-
return serializeToBuffer(this.msgs, this.vkTreeRoot);
|
|
26
|
+
return serializeToBuffer(this.msgs, this.vkTreeRoot, this.proverId);
|
|
25
27
|
}
|
|
26
28
|
/** Serializes the inputs to a hex string. */ toString() {
|
|
27
29
|
return bufferToHex(this.toBuffer());
|
|
@@ -31,7 +33,7 @@ export class ParityBasePrivateInputs {
|
|
|
31
33
|
* @param buffer - The buffer to deserialize from.
|
|
32
34
|
*/ static fromBuffer(buffer) {
|
|
33
35
|
const reader = BufferReader.asReader(buffer);
|
|
34
|
-
return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
|
|
36
|
+
return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* Deserializes the inputs from a hex string.
|
|
@@ -8,13 +8,17 @@ export declare class ParityPublicInputs {
|
|
|
8
8
|
convertedRoot: Fr;
|
|
9
9
|
/** Root of the VK tree */
|
|
10
10
|
vkTreeRoot: Fr;
|
|
11
|
+
/** Prover identity committed to by the circuit, for sybil protection. */
|
|
12
|
+
proverId: Fr;
|
|
11
13
|
constructor(
|
|
12
14
|
/** Root of the SHA256 tree. */
|
|
13
15
|
shaRoot: Fr,
|
|
14
16
|
/** Root of the converted tree. */
|
|
15
17
|
convertedRoot: Fr,
|
|
16
18
|
/** Root of the VK tree */
|
|
17
|
-
vkTreeRoot: Fr
|
|
19
|
+
vkTreeRoot: Fr,
|
|
20
|
+
/** Prover identity committed to by the circuit, for sybil protection. */
|
|
21
|
+
proverId: Fr);
|
|
18
22
|
/**
|
|
19
23
|
* Serializes the inputs to a buffer.
|
|
20
24
|
* @returns The inputs serialized to a buffer.
|
|
@@ -38,7 +42,7 @@ export declare class ParityPublicInputs {
|
|
|
38
42
|
* @param fields - The instance to get the fields from.
|
|
39
43
|
* @returns The instance fields.
|
|
40
44
|
*/
|
|
41
|
-
static getFields(fields: FieldsOf<ParityPublicInputs>): readonly [Fr, Fr, Fr];
|
|
45
|
+
static getFields(fields: FieldsOf<ParityPublicInputs>): readonly [Fr, Fr, Fr, Fr];
|
|
42
46
|
/**
|
|
43
47
|
* Deserializes the inputs from a buffer.
|
|
44
48
|
* @param buffer - The buffer to deserialize from.
|
|
@@ -53,4 +57,4 @@ export declare class ParityPublicInputs {
|
|
|
53
57
|
static fromString(str: string): ParityPublicInputs;
|
|
54
58
|
static get schema(): import("zod").ZodType<ParityPublicInputs, any, string>;
|
|
55
59
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyaXR5X3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvcGFyaXR5X3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQscUJBQWEsa0JBQWtCO0lBRTNCLCtCQUErQjtJQUN4QixPQUFPLEVBQUUsRUFBRTtJQUNsQixrQ0FBa0M7SUFDM0IsYUFBYSxFQUFFLEVBQUU7SUFDeEIsMEJBQTBCO0lBQ25CLFVBQVUsRUFBRSxFQUFFO0lBQ3JCLHlFQUF5RTtJQUNsRSxRQUFRLEVBQUUsRUFBRTtJQVJyQjtJQUNFLCtCQUErQjtJQUN4QixPQUFPLEVBQUUsRUFBRTtJQUNsQixrQ0FBa0M7SUFDM0IsYUFBYSxFQUFFLEVBQUU7SUFDeEIsMEJBQTBCO0lBQ25CLFVBQVUsRUFBRSxFQUFFO0lBQ3JCLHlFQUF5RTtJQUNsRSxRQUFRLEVBQUUsRUFBRSxFQUtwQjtJQUVEOzs7T0FHRztJQUNILFFBQVEsNEJBRVA7SUFFRDs7O09BR0c7SUFDSCxRQUFRLGtCQUVQO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sNEJBRUw7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsa0JBQWtCLENBRXBFO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyw2QkFFcEQ7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksc0JBUTlDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sc0JBRTVCO0lBRUQsTUFBTSxLQUFLLE1BQU0sMkRBRWhCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity_public_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,kBAAkB;IAE3B,+BAA+B;IACxB,OAAO,EAAE,EAAE;IAClB,kCAAkC;IAC3B,aAAa,EAAE,EAAE;IACxB,0BAA0B;IACnB,UAAU,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"parity_public_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,kBAAkB;IAE3B,+BAA+B;IACxB,OAAO,EAAE,EAAE;IAClB,kCAAkC;IAC3B,aAAa,EAAE,EAAE;IACxB,0BAA0B;IACnB,UAAU,EAAE,EAAE;IACrB,yEAAyE;IAClE,QAAQ,EAAE,EAAE;IARrB;IACE,+BAA+B;IACxB,OAAO,EAAE,EAAE;IAClB,kCAAkC;IAC3B,aAAa,EAAE,EAAE;IACxB,0BAA0B;IACnB,UAAU,EAAE,EAAE;IACrB,yEAAyE;IAClE,QAAQ,EAAE,EAAE,EAKpB;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACH,QAAQ,kBAEP;IAED,uDAAuD;IACvD,MAAM,4BAEL;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEpE;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,6BAEpD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,sBAQ9C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,sBAE5B;IAED,MAAM,KAAK,MAAM,2DAEhB;CACF"}
|
|
@@ -6,10 +6,12 @@ export class ParityPublicInputs {
|
|
|
6
6
|
shaRoot;
|
|
7
7
|
convertedRoot;
|
|
8
8
|
vkTreeRoot;
|
|
9
|
-
|
|
9
|
+
proverId;
|
|
10
|
+
constructor(/** Root of the SHA256 tree. */ shaRoot, /** Root of the converted tree. */ convertedRoot, /** Root of the VK tree */ vkTreeRoot, /** Prover identity committed to by the circuit, for sybil protection. */ proverId){
|
|
10
11
|
this.shaRoot = shaRoot;
|
|
11
12
|
this.convertedRoot = convertedRoot;
|
|
12
13
|
this.vkTreeRoot = vkTreeRoot;
|
|
14
|
+
this.proverId = proverId;
|
|
13
15
|
if (shaRoot.toBuffer()[0] != 0) {
|
|
14
16
|
throw new Error(`shaRoot buffer must be 31 bytes. Got 32 bytes`);
|
|
15
17
|
}
|
|
@@ -44,7 +46,8 @@ export class ParityPublicInputs {
|
|
|
44
46
|
return [
|
|
45
47
|
fields.shaRoot,
|
|
46
48
|
fields.convertedRoot,
|
|
47
|
-
fields.vkTreeRoot
|
|
49
|
+
fields.vkTreeRoot,
|
|
50
|
+
fields.proverId
|
|
48
51
|
];
|
|
49
52
|
}
|
|
50
53
|
/**
|
|
@@ -53,7 +56,7 @@ export class ParityPublicInputs {
|
|
|
53
56
|
* @returns A new ParityPublicInputs instance.
|
|
54
57
|
*/ static fromBuffer(buffer) {
|
|
55
58
|
const reader = BufferReader.asReader(buffer);
|
|
56
|
-
return new ParityPublicInputs(reader.readObject(Fr), reader.readObject(Fr), Fr.fromBuffer(reader));
|
|
59
|
+
return new ParityPublicInputs(reader.readObject(Fr), reader.readObject(Fr), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
62
|
* Deserializes the inputs from a hex string.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { BlockHeader } from '../tx/block_header.js';
|
|
3
3
|
export declare function computeBlockHeadersHash(blockHeaders: BlockHeader[]): Promise<Fr>;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyc19oYXNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9sbHVwL2Jsb2NrX2hlYWRlcnNfaGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsd0JBQXNCLHVCQUF1QixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBYXRGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_headers_hash.d.ts","sourceRoot":"","sources":["../../src/rollup/block_headers_hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"block_headers_hash.d.ts","sourceRoot":"","sources":["../../src/rollup/block_headers_hash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAatF"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
|
+
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
1
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import {
|
|
4
|
+
import { computeUnbalancedMerkleTreeRootAsync } from '@aztec/foundation/trees';
|
|
3
5
|
export async function computeBlockHeadersHash(blockHeaders) {
|
|
4
6
|
const blockHeaderHashes = await Promise.all(blockHeaders.map((header)=>header.hash()));
|
|
5
7
|
// Must match the implementation in merge_block_rollups.nr, with the **unbalanced** rollup structure
|
|
6
8
|
// (see validate_consecutive_block_rollups.nr > assert_rollups_filled_greedily.nr).
|
|
7
|
-
const
|
|
9
|
+
const blockHeadersHasher = async (left, right)=>(await poseidon2HashWithSeparator([
|
|
10
|
+
Buffer.from(left),
|
|
11
|
+
Buffer.from(right)
|
|
12
|
+
], DomainSeparator.BLOCK_HEADERS_HASH)).toBuffer();
|
|
13
|
+
const blockHeadersHash = await computeUnbalancedMerkleTreeRootAsync(blockHeaderHashes.map((hash)=>hash.toBuffer()), blockHeadersHasher);
|
|
8
14
|
return Fr.fromBuffer(blockHeadersHash);
|
|
9
15
|
}
|
package/dest/slashing/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
2
|
export * from './interfaces.js';
|
|
3
3
|
export * from './helpers.js';
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './tally.js';
|
|
4
|
+
export * from './votes.js';
|
|
6
5
|
export * from './serialization.js';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsb0JBQW9CLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/slashing/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/slashing/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
|
package/dest/slashing/index.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import type { Offense
|
|
1
|
+
import type { Offense } from './types.js';
|
|
2
2
|
export declare function serializeOffense(offense: Offense): Buffer;
|
|
3
3
|
export declare function deserializeOffense(buffer: Buffer): Offense;
|
|
4
|
-
|
|
5
|
-
export declare function deserializeSlashPayload(buffer: Buffer): SlashPayload;
|
|
6
|
-
export declare function serializeSlashPayloadRound(payload: SlashPayloadRound): Buffer;
|
|
7
|
-
export declare function deserializeSlashPayloadRound(buffer: Buffer): SlashPayloadRound;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NsYXNoaW5nL3NlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQ1YsT0FBTyxFQUVQLFlBQVksRUFDWixpQkFBaUIsRUFHbEIsTUFBTSxZQUFZLENBQUM7QUFFcEIsd0JBQWdCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsTUFBTSxDQU96RDtBQUVELHdCQUFnQixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FRMUQ7QUFpQ0Qsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsTUFBTSxDQU9uRTtBQUVELHdCQUFnQix1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksQ0FPcEU7QUFFRCx3QkFBZ0IsMEJBQTBCLENBQUMsT0FBTyxFQUFFLGlCQUFpQixHQUFHLE1BQU0sQ0FTN0U7QUFFRCx3QkFBZ0IsNEJBQTRCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FVOUUifQ==
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NsYXNoaW5nL3NlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFlLE1BQU0sWUFBWSxDQUFDO0FBRXZELHdCQUFnQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxHQUFHLE1BQU0sQ0FPekQ7QUFFRCx3QkFBZ0Isa0JBQWtCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBUTFEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/slashing/serialization.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/slashing/serialization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AAEvD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAOzD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQ1D"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { times } from '@aztec/foundation/collection';
|
|
2
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
2
|
import { BufferReader, bigintToUInt64BE, bigintToUInt128BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
3
|
export function serializeOffense(offense) {
|
|
@@ -17,62 +16,3 @@ export function deserializeOffense(buffer) {
|
|
|
17
16
|
epochOrSlot
|
|
18
17
|
};
|
|
19
18
|
}
|
|
20
|
-
function serializeValidatorSlashOffense(offense) {
|
|
21
|
-
return serializeToBuffer(bigintToUInt64BE(offense.epochOrSlot), offense.offenseType);
|
|
22
|
-
}
|
|
23
|
-
function deserializeValidatorSlashOffense(buffer) {
|
|
24
|
-
const reader = BufferReader.asReader(buffer);
|
|
25
|
-
return {
|
|
26
|
-
epochOrSlot: reader.readUInt64(),
|
|
27
|
-
offenseType: reader.readNumber()
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function serializeValidatorSlash(slash) {
|
|
31
|
-
return serializeToBuffer(slash.validator, bigintToUInt128BE(slash.amount), slash.offenses.length, slash.offenses.map(serializeValidatorSlashOffense));
|
|
32
|
-
}
|
|
33
|
-
function deserializeValidatorSlash(buffer) {
|
|
34
|
-
const reader = BufferReader.asReader(buffer);
|
|
35
|
-
const validator = reader.readObject(EthAddress);
|
|
36
|
-
const amount = reader.readUInt128();
|
|
37
|
-
const offensesCount = reader.readNumber();
|
|
38
|
-
const offenses = times(offensesCount, ()=>deserializeValidatorSlashOffense(reader));
|
|
39
|
-
return {
|
|
40
|
-
validator,
|
|
41
|
-
amount,
|
|
42
|
-
offenses
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
export function serializeSlashPayload(payload) {
|
|
46
|
-
return serializeToBuffer(payload.address, payload.slashes.length, payload.slashes.map(serializeValidatorSlash), bigintToUInt64BE(payload.timestamp));
|
|
47
|
-
}
|
|
48
|
-
export function deserializeSlashPayload(buffer) {
|
|
49
|
-
const reader = BufferReader.asReader(buffer);
|
|
50
|
-
const address = reader.readObject(EthAddress);
|
|
51
|
-
const slashesCount = reader.readNumber();
|
|
52
|
-
const slashes = times(slashesCount, ()=>deserializeValidatorSlash(reader));
|
|
53
|
-
const timestamp = reader.readUInt64();
|
|
54
|
-
return {
|
|
55
|
-
address,
|
|
56
|
-
slashes,
|
|
57
|
-
timestamp
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export function serializeSlashPayloadRound(payload) {
|
|
61
|
-
return serializeToBuffer(payload.address, payload.slashes.length, payload.slashes.map(serializeValidatorSlash), bigintToUInt64BE(payload.timestamp), Number(payload.votes), bigintToUInt64BE(payload.round));
|
|
62
|
-
}
|
|
63
|
-
export function deserializeSlashPayloadRound(buffer) {
|
|
64
|
-
const reader = BufferReader.asReader(buffer);
|
|
65
|
-
const address = reader.readObject(EthAddress);
|
|
66
|
-
const slashesCount = reader.readNumber();
|
|
67
|
-
const slashes = times(slashesCount, ()=>deserializeValidatorSlash(reader));
|
|
68
|
-
const timestamp = reader.readUInt64();
|
|
69
|
-
const votes = BigInt(reader.readNumber());
|
|
70
|
-
const round = reader.readUInt64();
|
|
71
|
-
return {
|
|
72
|
-
address,
|
|
73
|
-
slashes,
|
|
74
|
-
timestamp,
|
|
75
|
-
votes,
|
|
76
|
-
round
|
|
77
|
-
};
|
|
78
|
-
}
|
package/dest/slashing/types.d.ts
CHANGED
|
@@ -59,107 +59,21 @@ export type ValidatorSlash = {
|
|
|
59
59
|
amount: bigint;
|
|
60
60
|
offenses: ValidatorSlashOffense[];
|
|
61
61
|
};
|
|
62
|
-
/**
|
|
63
|
-
export type SlashPayload = {
|
|
64
|
-
address: EthAddress;
|
|
65
|
-
slashes: ValidatorSlash[];
|
|
66
|
-
timestamp: bigint;
|
|
67
|
-
};
|
|
68
|
-
/** Slash payload with round information from empire slash proposer */
|
|
69
|
-
export type SlashPayloadRound = SlashPayload & {
|
|
70
|
-
votes: bigint;
|
|
71
|
-
round: bigint;
|
|
72
|
-
};
|
|
73
|
-
export declare const SlashPayloadRoundSchema: z.ZodObject<{
|
|
74
|
-
address: import("../schemas/index.js").ZodFor<EthAddress>;
|
|
75
|
-
timestamp: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
76
|
-
votes: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
77
|
-
round: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
78
|
-
slashes: z.ZodArray<z.ZodObject<{
|
|
79
|
-
validator: import("../schemas/index.js").ZodFor<EthAddress>;
|
|
80
|
-
amount: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
81
|
-
offenses: z.ZodArray<z.ZodObject<{
|
|
82
|
-
offenseType: z.ZodNativeEnum<typeof OffenseType>;
|
|
83
|
-
epochOrSlot: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
84
|
-
}, "strip", z.ZodTypeAny, {
|
|
85
|
-
offenseType: OffenseType;
|
|
86
|
-
epochOrSlot: bigint;
|
|
87
|
-
}, {
|
|
88
|
-
offenseType: OffenseType;
|
|
89
|
-
epochOrSlot: string | number | bigint;
|
|
90
|
-
}>, "many">;
|
|
91
|
-
}, "strip", z.ZodTypeAny, {
|
|
92
|
-
validator: EthAddress;
|
|
93
|
-
amount: bigint;
|
|
94
|
-
offenses: {
|
|
95
|
-
offenseType: OffenseType;
|
|
96
|
-
epochOrSlot: bigint;
|
|
97
|
-
}[];
|
|
98
|
-
}, {
|
|
99
|
-
validator?: any;
|
|
100
|
-
amount: string | number | bigint;
|
|
101
|
-
offenses: {
|
|
102
|
-
offenseType: OffenseType;
|
|
103
|
-
epochOrSlot: string | number | bigint;
|
|
104
|
-
}[];
|
|
105
|
-
}>, "many">;
|
|
106
|
-
}, "strip", z.ZodTypeAny, {
|
|
107
|
-
address: EthAddress;
|
|
108
|
-
timestamp: bigint;
|
|
109
|
-
votes: bigint;
|
|
110
|
-
round: bigint;
|
|
111
|
-
slashes: {
|
|
112
|
-
validator: EthAddress;
|
|
113
|
-
amount: bigint;
|
|
114
|
-
offenses: {
|
|
115
|
-
offenseType: OffenseType;
|
|
116
|
-
epochOrSlot: bigint;
|
|
117
|
-
}[];
|
|
118
|
-
}[];
|
|
119
|
-
}, {
|
|
120
|
-
address?: any;
|
|
121
|
-
timestamp: string | number | bigint;
|
|
122
|
-
votes: string | number | bigint;
|
|
123
|
-
round: string | number | bigint;
|
|
124
|
-
slashes: {
|
|
125
|
-
validator?: any;
|
|
126
|
-
amount: string | number | bigint;
|
|
127
|
-
offenses: {
|
|
128
|
-
offenseType: OffenseType;
|
|
129
|
-
epochOrSlot: string | number | bigint;
|
|
130
|
-
}[];
|
|
131
|
-
}[];
|
|
132
|
-
}>;
|
|
133
|
-
/** Votes for a validator slash in the consensus slash proposer */
|
|
62
|
+
/** Votes for a validator slash in the slashing proposer */
|
|
134
63
|
export type ValidatorSlashVote = number;
|
|
135
64
|
export type ProposerSlashAction =
|
|
136
|
-
/**
|
|
65
|
+
/** Vote for offenses on the slashing proposer */
|
|
137
66
|
{
|
|
138
|
-
type: 'create-empire-payload';
|
|
139
|
-
data: ValidatorSlash[];
|
|
140
|
-
}
|
|
141
|
-
/** Vote for a slashing payload on an empire-based slash proposer */
|
|
142
|
-
| {
|
|
143
|
-
type: 'vote-empire-payload';
|
|
144
|
-
payload: EthAddress;
|
|
145
|
-
}
|
|
146
|
-
/** Execute a slashing payload on an empire-based slash proposer */
|
|
147
|
-
| {
|
|
148
|
-
type: 'execute-empire-payload';
|
|
149
|
-
round: bigint;
|
|
150
|
-
}
|
|
151
|
-
/** Vote for offenses on a consensus slashing proposer */
|
|
152
|
-
| {
|
|
153
67
|
type: 'vote-offenses';
|
|
154
68
|
votes: ValidatorSlashVote[];
|
|
155
69
|
committees: EthAddress[][];
|
|
156
70
|
round: bigint;
|
|
157
71
|
}
|
|
158
|
-
/** Execute a slashing round on
|
|
72
|
+
/** Execute a slashing round on the slashing proposer */
|
|
159
73
|
| {
|
|
160
74
|
type: 'execute-slash';
|
|
161
75
|
committees: EthAddress[][];
|
|
162
76
|
round: bigint;
|
|
163
77
|
};
|
|
164
78
|
export type ProposerSlashActionType = ProposerSlashAction['type'];
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixvQkFBWSxXQUFXO0lBQ3JCLE9BQU8sSUFBSTtJQUNYLHVGQUF1RjtJQUN2RixnQkFBZ0IsSUFBSTtJQUNwQiwyRUFBMkU7SUFDM0Usa0JBQWtCLElBQUk7SUFDdEIsdUZBQXVGO0lBQ3ZGLFVBQVUsSUFBSTtJQUNkLHNGQUFzRjtJQUN0RixrQ0FBa0MsSUFBSTtJQUN0QywrRUFBK0U7SUFDL0Usa0NBQWtDLElBQUk7SUFDdEMsdUhBQXVIO0lBQ3ZILCtCQUErQixJQUFJO0lBQ25DLDBJQUEwSTtJQUMxSSw4QkFBOEIsSUFBSTtJQUNsQyxpSUFBaUk7SUFDakksa0JBQWtCLElBQUk7SUFDdEIsOEZBQThGO0lBQzlGLHFCQUFxQixJQUFJO0NBQzFCO0FBRUQsd0JBQWdCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxXQUFXLDhRQXlCdEQ7QUFFRCxlQUFPLE1BQU0saUJBQWlCLHFDQUE0QixDQUFDO0FBRTNELGVBQU8sTUFBTSxlQUFlLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBV3ZELENBQUM7QUFFRix3QkFBZ0IsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsV0FBVyxDQXlCNUQ7QUFFRCxNQUFNLE1BQU0sT0FBTyxHQUFHO0lBQ3BCLFNBQVMsRUFBRSxVQUFVLENBQUM7SUFDdEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDekIsV0FBVyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBRUYsTUFBTSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUUzRixlQUFPLE1BQU0sYUFBYTs7Ozs7Ozs7Ozs7Ozs7O0VBT3pCLENBQUM7QUFFRiwrREFBK0Q7QUFDL0QsTUFBTSxNQUFNLHFCQUFxQixHQUFHO0lBQ2xDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsV0FBVyxFQUFFLFdBQVcsQ0FBQztDQUMxQixDQUFDO0FBRUYseUZBQXlGO0FBQ3pGLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsU0FBUyxFQUFFLFVBQVUsQ0FBQztJQUN0QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7Q0FDbkMsQ0FBQztBQUVGLDJEQUEyRDtBQUMzRCxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBRXhDLE1BQU0sTUFBTSxtQkFBbUI7QUFDN0IsaURBQWlEO0FBQy9DO0lBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQztJQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDO0lBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUU7QUFDbkcsd0RBQXdEO0dBQ3REO0lBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQztJQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFekUsTUFBTSxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slashing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,uFAAuF;IACvF,gBAAgB,IAAI;IACpB,2EAA2E;IAC3E,kBAAkB,IAAI;IACtB,uFAAuF;IACvF,UAAU,IAAI;IACd,sFAAsF;IACtF,kCAAkC,IAAI;IACtC,+EAA+E;IAC/E,kCAAkC,IAAI;IACtC,uHAAuH;IACvH,+BAA+B,IAAI;IACnC,0IAA0I;IAC1I,8BAA8B,IAAI;IAClC,iIAAiI;IACjI,kBAAkB,IAAI;IACtB,8FAA8F;IAC9F,qBAAqB,IAAI;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,8QAyBtD;AAED,eAAO,MAAM,iBAAiB,qCAA4B,CAAC;AAE3D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAWvD,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAyB5D;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC;AAE3F,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAOzB,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slashing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,uFAAuF;IACvF,gBAAgB,IAAI;IACpB,2EAA2E;IAC3E,kBAAkB,IAAI;IACtB,uFAAuF;IACvF,UAAU,IAAI;IACd,sFAAsF;IACtF,kCAAkC,IAAI;IACtC,+EAA+E;IAC/E,kCAAkC,IAAI;IACtC,uHAAuH;IACvH,+BAA+B,IAAI;IACnC,0IAA0I;IAC1I,8BAA8B,IAAI;IAClC,iIAAiI;IACjI,kBAAkB,IAAI;IACtB,8FAA8F;IAC9F,qBAAqB,IAAI;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,8QAyBtD;AAED,eAAO,MAAM,iBAAiB,qCAA4B,CAAC;AAE3D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAWvD,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAyB5D;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC;AAE3F,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAOzB,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,mBAAmB;AAC7B,iDAAiD;AAC/C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACnG,wDAAwD;GACtD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC"}
|
package/dest/slashing/types.js
CHANGED
|
@@ -84,17 +84,3 @@ export const OffenseSchema = zodFor()(z.object({
|
|
|
84
84
|
offenseType: OffenseTypeSchema,
|
|
85
85
|
epochOrSlot: schemas.BigInt
|
|
86
86
|
}));
|
|
87
|
-
export const SlashPayloadRoundSchema = zodFor()(z.object({
|
|
88
|
-
address: schemas.EthAddress,
|
|
89
|
-
timestamp: schemas.BigInt,
|
|
90
|
-
votes: schemas.BigInt,
|
|
91
|
-
round: schemas.BigInt,
|
|
92
|
-
slashes: z.array(z.object({
|
|
93
|
-
validator: schemas.EthAddress,
|
|
94
|
-
amount: schemas.BigInt,
|
|
95
|
-
offenses: z.array(z.object({
|
|
96
|
-
offenseType: OffenseTypeSchema,
|
|
97
|
-
epochOrSlot: schemas.BigInt
|
|
98
|
-
}))
|
|
99
|
-
}))
|
|
100
|
-
}));
|
|
@@ -26,4 +26,4 @@ export declare function getSlashConsensusVotesFromOffenses(offenses: PartialBy<O
|
|
|
26
26
|
* @returns A Buffer containing the encoded slash votes
|
|
27
27
|
*/
|
|
28
28
|
export declare function encodeSlashConsensusVotes(votes: ValidatorSlashVote[]): Buffer;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm90ZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy92b3Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5RDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQWdCLGtDQUFrQyxDQUNoRCxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsRUFBRSxFQUM3QyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFDMUIsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLEVBQzdCLFFBQVEsRUFBRTtJQUNSLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsb0JBQW9CLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDL0IsRUFDRCxNQUFNLEdBQUUsTUFBc0MsR0FDN0Msa0JBQWtCLEVBQUUsQ0EwRHRCO0FBZUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IseUJBQXlCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxDQWU3RSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"votes.d.ts","sourceRoot":"","sources":["../../src/slashing/votes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAC7C,UAAU,EAAE,UAAU,EAAE,EAAE,EAC1B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE;IACR,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,EACD,MAAM,GAAE,MAAsC,GAC7C,kBAAkB,EAAE,CA0DtB;AAeD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAe7E"}
|
|
@@ -12,7 +12,7 @@ import { getEpochForOffense } from './helpers.js';
|
|
|
12
12
|
* with non-zero votes. The lowest-vote pairs are zeroed out to stay within the limit.
|
|
13
13
|
* @param logger - Logger, logs which validators were dropped.
|
|
14
14
|
* @returns Array of ValidatorSlashVote, where each vote is how many slash units the validator in that position should be slashed
|
|
15
|
-
*/ export function getSlashConsensusVotesFromOffenses(offenses, committees, epochsForCommittees, settings, logger = createLogger('slasher:
|
|
15
|
+
*/ export function getSlashConsensusVotesFromOffenses(offenses, committees, epochsForCommittees, settings, logger = createLogger('slasher:votes')) {
|
|
16
16
|
const { slashingAmounts, targetCommitteeSize, maxSlashedValidators } = settings;
|
|
17
17
|
if (committees.length !== epochsForCommittees.length) {
|
|
18
18
|
throw new Error('committees and epochsForCommittees must have the same length');
|