@aztec/ethereum 3.0.0-nightly.20250904 → 3.0.0-nightly.20250906
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/config.d.ts.map +1 -1
- package/dest/config.js +40 -15
- package/dest/contracts/rollup.d.ts +12 -0
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +23 -0
- package/dest/contracts/tally_slashing_proposer.d.ts +15 -2
- package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/tally_slashing_proposer.js +43 -3
- package/dest/l1_artifacts.d.ts +68 -12
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +14 -25
- package/dest/l1_reader.js +8 -8
- package/dest/test/chain_monitor.d.ts +7 -0
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +24 -1
- package/package.json +5 -5
- package/src/config.ts +40 -15
- package/src/contracts/rollup.ts +29 -0
- package/src/contracts/tally_slashing_proposer.ts +42 -3
- package/src/l1_contract_addresses.ts +14 -25
- package/src/l1_reader.ts +8 -8
- package/src/test/chain_monitor.ts +25 -1
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAOlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,+EAA+E;IAC/E,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wKAAwK;IACxK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,gGAAgG;IAChG,wBAAwB,EAAE,MAAM,CAAC;IACjC,yGAAyG;IACzG,8BAA8B,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,cAAc,EAAE,UAAU,CAAC;IAC3B,4IAA4I;IAC5I,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+BAA+B;IAC/B,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;CAqBR,CAAC;AA8B9B,eAAO,MAAM,0BAA0B,GAAI,aAAa,YAAY;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAOlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,+EAA+E;IAC/E,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wKAAwK;IACxK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,gGAAgG;IAChG,wBAAwB,EAAE,MAAM,CAAC;IACjC,yGAAyG;IACzG,8BAA8B,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,cAAc,EAAE,UAAU,CAAC;IAC3B,4IAA4I;IAC5I,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+BAA+B;IAC/B,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;CAqBR,CAAC;AA8B9B,eAAO,MAAM,0BAA0B,GAAI,aAAa,YAAY;;;;;;;;;;;;CAUnE,CAAC;AAYF,eAAO,MAAM,mBAAmB,GAAI,aAAa,YAAY;;;CAU5D,CAAC;AAmBF,eAAO,MAAM,eAAe,GAAI,aAAa,YAAY;;;;;CAUxD,CAAC;AAkBF,eAAO,MAAM,oBAAoB,GAAI,aAAa,YAAY;;;;;;CAU7D,CAAC;AAmBF,eAAO,MAAM,mBAAmB,GAAI,aAAa,YAAY;;;;;;CAU5D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAkH3E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAW7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,eAAe,CAAC,GAAG,IAAI,CAmH3F"}
|
package/dest/config.js
CHANGED
|
@@ -50,10 +50,15 @@ const TestnetGovernanceConfiguration = {
|
|
|
50
50
|
minimumVotes: DefaultL1ContractsConfig.ejectionThreshold * 200n
|
|
51
51
|
};
|
|
52
52
|
export const getGovernanceConfiguration = (networkName)=>{
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
switch(networkName){
|
|
54
|
+
case 'alpha-testnet':
|
|
55
|
+
case 'testnet':
|
|
56
|
+
return TestnetGovernanceConfiguration;
|
|
57
|
+
case 'local':
|
|
58
|
+
return LocalGovernanceConfiguration;
|
|
59
|
+
default:
|
|
60
|
+
throw new Error('Unrecognized network name: ' + networkName);
|
|
55
61
|
}
|
|
56
|
-
return LocalGovernanceConfiguration;
|
|
57
62
|
};
|
|
58
63
|
const TestnetGSEConfiguration = {
|
|
59
64
|
activationThreshold: BigInt(100e18),
|
|
@@ -64,10 +69,15 @@ const LocalGSEConfiguration = {
|
|
|
64
69
|
ejectionThreshold: BigInt(50e18)
|
|
65
70
|
};
|
|
66
71
|
export const getGSEConfiguration = (networkName)=>{
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
switch(networkName){
|
|
73
|
+
case 'alpha-testnet':
|
|
74
|
+
case 'testnet':
|
|
75
|
+
return TestnetGSEConfiguration;
|
|
76
|
+
case 'local':
|
|
77
|
+
return LocalGSEConfiguration;
|
|
78
|
+
default:
|
|
79
|
+
throw new Error('Unrecognized network name: ' + networkName);
|
|
69
80
|
}
|
|
70
|
-
return LocalGSEConfiguration;
|
|
71
81
|
};
|
|
72
82
|
// Making a default config here as we are only using it thought the deployment
|
|
73
83
|
// and do not expect to be using different setups, so having environment variables
|
|
@@ -85,10 +95,15 @@ const TestnetRewardConfig = {
|
|
|
85
95
|
blockReward: BigInt(50e18)
|
|
86
96
|
};
|
|
87
97
|
export const getRewardConfig = (networkName)=>{
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
switch(networkName){
|
|
99
|
+
case 'alpha-testnet':
|
|
100
|
+
case 'testnet':
|
|
101
|
+
return TestnetRewardConfig;
|
|
102
|
+
case 'local':
|
|
103
|
+
return LocalRewardConfig;
|
|
104
|
+
default:
|
|
105
|
+
throw new Error('Unrecognized network name: ' + networkName);
|
|
90
106
|
}
|
|
91
|
-
return LocalRewardConfig;
|
|
92
107
|
};
|
|
93
108
|
const LocalRewardBoostConfig = {
|
|
94
109
|
increment: 200000,
|
|
@@ -105,10 +120,15 @@ const TestnetRewardBoostConfig = {
|
|
|
105
120
|
minimum: 100000
|
|
106
121
|
};
|
|
107
122
|
export const getRewardBoostConfig = (networkName)=>{
|
|
108
|
-
|
|
109
|
-
|
|
123
|
+
switch(networkName){
|
|
124
|
+
case 'alpha-testnet':
|
|
125
|
+
case 'testnet':
|
|
126
|
+
return TestnetRewardBoostConfig;
|
|
127
|
+
case 'local':
|
|
128
|
+
return LocalRewardBoostConfig;
|
|
129
|
+
default:
|
|
130
|
+
throw new Error('Unrecognized network name: ' + networkName);
|
|
110
131
|
}
|
|
111
|
-
return LocalRewardBoostConfig;
|
|
112
132
|
};
|
|
113
133
|
// Similar to the above, no need for environment variables for this.
|
|
114
134
|
const LocalEntryQueueConfig = {
|
|
@@ -126,10 +146,15 @@ const TestnetEntryQueueConfig = {
|
|
|
126
146
|
maxQueueFlushSize: 32n
|
|
127
147
|
};
|
|
128
148
|
export const getEntryQueueConfig = (networkName)=>{
|
|
129
|
-
|
|
130
|
-
|
|
149
|
+
switch(networkName){
|
|
150
|
+
case 'alpha-testnet':
|
|
151
|
+
case 'testnet':
|
|
152
|
+
return TestnetEntryQueueConfig;
|
|
153
|
+
case 'local':
|
|
154
|
+
return LocalEntryQueueConfig;
|
|
155
|
+
default:
|
|
156
|
+
throw new Error('Unrecognized network name: ' + networkName);
|
|
131
157
|
}
|
|
132
|
-
return LocalEntryQueueConfig;
|
|
133
158
|
};
|
|
134
159
|
export const l1ContractsConfigMappings = {
|
|
135
160
|
ethereumSlotDuration: {
|
|
@@ -89,6 +89,18 @@ export declare class RollupContract {
|
|
|
89
89
|
getManaLimit(): Promise<bigint>;
|
|
90
90
|
getVersion(): Promise<bigint>;
|
|
91
91
|
getGenesisArchiveTreeRoot(): Promise<`0x${string}`>;
|
|
92
|
+
/**
|
|
93
|
+
* Returns rollup constants used for epoch queries.
|
|
94
|
+
* Return type is `L1RollupConstants` which is defined in stdlib,
|
|
95
|
+
* so we cant reference it until we move this contract to that package.
|
|
96
|
+
*/
|
|
97
|
+
getRollupConstants(): Promise<{
|
|
98
|
+
l1StartBlock: bigint;
|
|
99
|
+
l1GenesisTime: bigint;
|
|
100
|
+
slotDuration: number;
|
|
101
|
+
epochDuration: number;
|
|
102
|
+
proofSubmissionEpochs: number;
|
|
103
|
+
}>;
|
|
92
104
|
getSlasher(): Promise<`0x${string}`>;
|
|
93
105
|
/**
|
|
94
106
|
* Returns a SlasherContract instance for interacting with the slasher contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"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"}
|
package/dest/contracts/rollup.js
CHANGED
|
@@ -155,6 +155,26 @@ export class RollupContract {
|
|
|
155
155
|
]);
|
|
156
156
|
return block.archive;
|
|
157
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Returns rollup constants used for epoch queries.
|
|
160
|
+
* Return type is `L1RollupConstants` which is defined in stdlib,
|
|
161
|
+
* so we cant reference it until we move this contract to that package.
|
|
162
|
+
*/ async getRollupConstants() {
|
|
163
|
+
const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs] = await Promise.all([
|
|
164
|
+
this.getL1StartBlock(),
|
|
165
|
+
this.getL1GenesisTime(),
|
|
166
|
+
this.getSlotDuration(),
|
|
167
|
+
this.getEpochDuration(),
|
|
168
|
+
this.getProofSubmissionEpochs()
|
|
169
|
+
]);
|
|
170
|
+
return {
|
|
171
|
+
l1StartBlock,
|
|
172
|
+
l1GenesisTime,
|
|
173
|
+
slotDuration: Number(slotDuration),
|
|
174
|
+
epochDuration: Number(epochDuration),
|
|
175
|
+
proofSubmissionEpochs: Number(proofSubmissionEpochs)
|
|
176
|
+
};
|
|
177
|
+
}
|
|
158
178
|
getSlasher() {
|
|
159
179
|
return this.rollup.read.getSlasher();
|
|
160
180
|
}
|
|
@@ -681,3 +701,6 @@ _ts_decorate([
|
|
|
681
701
|
_ts_decorate([
|
|
682
702
|
memoize
|
|
683
703
|
], RollupContract.prototype, "getGenesisArchiveTreeRoot", null);
|
|
704
|
+
_ts_decorate([
|
|
705
|
+
memoize
|
|
706
|
+
], RollupContract.prototype, "getRollupConstants", null);
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { type L1TxRequest, type ViemClient } from '@aztec/ethereum';
|
|
2
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import EventEmitter from 'events';
|
|
5
4
|
import { type Hex, type Log, type TypedDataDefinition } from 'viem';
|
|
6
5
|
/**
|
|
7
6
|
* Wrapper around the TallySlashingProposer contract that provides
|
|
8
7
|
* a TypeScript interface for interacting with the consensus-based slashing system.
|
|
9
8
|
*/
|
|
10
|
-
export declare class TallySlashingProposerContract
|
|
9
|
+
export declare class TallySlashingProposerContract {
|
|
11
10
|
readonly client: ViemClient;
|
|
12
11
|
private readonly contract;
|
|
13
12
|
readonly type: "tally";
|
|
@@ -96,6 +95,11 @@ export declare class TallySlashingProposerContract extends EventEmitter {
|
|
|
96
95
|
* @returns L1 transaction request
|
|
97
96
|
*/
|
|
98
97
|
buildExecuteRoundRequest(round: bigint, committees: EthAddress[][]): L1TxRequest;
|
|
98
|
+
/** Returns the last vote emitted for a given round */
|
|
99
|
+
getLastVote(round: bigint): Promise<{
|
|
100
|
+
validator: EthAddress;
|
|
101
|
+
slashAmount: bigint;
|
|
102
|
+
}[]>;
|
|
99
103
|
/**
|
|
100
104
|
* Listen for VoteCast events
|
|
101
105
|
* @param callback - Callback function to handle vote cast events
|
|
@@ -116,4 +120,13 @@ export declare class TallySlashingProposerContract extends EventEmitter {
|
|
|
116
120
|
l1BlockHash: Hex;
|
|
117
121
|
}) => void): () => void;
|
|
118
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Decodes a Buffer containing slash votes back into an array of numbers.
|
|
125
|
+
* Each vote is represented as a 2-bit value (0, 1, 2, or 3) representing slashing units.
|
|
126
|
+
* @dev This should live in stdlib next to encodeSlashConsensusVotes but is here since we
|
|
127
|
+
* do not have a dependency to stdlib from the ethereum package. We need a larger refactor to fix this.
|
|
128
|
+
* @param buffer - The Buffer containing encoded slash votes
|
|
129
|
+
* @returns An array of numbers representing the slash votes
|
|
130
|
+
*/
|
|
131
|
+
export declare function decodeSlashConsensusVotes(buffer: Buffer): number[];
|
|
119
132
|
//# sourceMappingURL=tally_slashing_proposer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tally_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/tally_slashing_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"tally_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/tally_slashing_proposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,19 @@ import { tryExtractEvent } from '@aztec/ethereum';
|
|
|
2
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
5
|
+
import { hexToBuffer } from '@aztec/foundation/string';
|
|
5
6
|
import { TallySlashingProposerAbi } from '@aztec/l1-artifacts/TallySlashingProposerAbi';
|
|
6
|
-
import EventEmitter from 'events';
|
|
7
7
|
import { encodeFunctionData, getContract } from 'viem';
|
|
8
8
|
/**
|
|
9
9
|
* Wrapper around the TallySlashingProposer contract that provides
|
|
10
10
|
* a TypeScript interface for interacting with the consensus-based slashing system.
|
|
11
|
-
*/ export class TallySlashingProposerContract
|
|
11
|
+
*/ export class TallySlashingProposerContract {
|
|
12
12
|
client;
|
|
13
13
|
contract;
|
|
14
14
|
type;
|
|
15
15
|
constructor(client, address){
|
|
16
|
-
|
|
16
|
+
this.client = client;
|
|
17
|
+
this.type = 'tally';
|
|
17
18
|
this.contract = getContract({
|
|
18
19
|
address: typeof address === 'string' ? address : address.toString(),
|
|
19
20
|
abi: TallySlashingProposerAbi,
|
|
@@ -221,6 +222,22 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
221
222
|
})
|
|
222
223
|
};
|
|
223
224
|
}
|
|
225
|
+
/** Returns the last vote emitted for a given round */ async getLastVote(round) {
|
|
226
|
+
const { voteCount } = await this.getRound(round);
|
|
227
|
+
const validators = (await this.contract.simulate.getSlashTargetCommittees([
|
|
228
|
+
round
|
|
229
|
+
])).result.flat();
|
|
230
|
+
const vote = await this.contract.read.getVotes([
|
|
231
|
+
round,
|
|
232
|
+
voteCount - 1n
|
|
233
|
+
]);
|
|
234
|
+
const decoded = decodeSlashConsensusVotes(hexToBuffer(vote));
|
|
235
|
+
const slashAmounts = await this.getSlashingAmounts();
|
|
236
|
+
return decoded.map((units, i)=>({
|
|
237
|
+
validator: EthAddress.fromString(validators[i]),
|
|
238
|
+
slashAmount: slashAmounts[units - 1] ?? 0n
|
|
239
|
+
})).filter((v)=>v.slashAmount > 0n);
|
|
240
|
+
}
|
|
224
241
|
/**
|
|
225
242
|
* Listen for VoteCast events
|
|
226
243
|
* @param callback - Callback function to handle vote cast events
|
|
@@ -261,3 +278,26 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
261
278
|
});
|
|
262
279
|
}
|
|
263
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Decodes a Buffer containing slash votes back into an array of numbers.
|
|
283
|
+
* Each vote is represented as a 2-bit value (0, 1, 2, or 3) representing slashing units.
|
|
284
|
+
* @dev This should live in stdlib next to encodeSlashConsensusVotes but is here since we
|
|
285
|
+
* do not have a dependency to stdlib from the ethereum package. We need a larger refactor to fix this.
|
|
286
|
+
* @param buffer - The Buffer containing encoded slash votes
|
|
287
|
+
* @returns An array of numbers representing the slash votes
|
|
288
|
+
*/ export function decodeSlashConsensusVotes(buffer) {
|
|
289
|
+
const votes = [];
|
|
290
|
+
for(let i = 0; i < buffer.length; i++){
|
|
291
|
+
const voteByte = buffer.readUInt8(i);
|
|
292
|
+
// Decode votes from Solidity's bit order (LSB to MSB)
|
|
293
|
+
// Bits 0-1: validator at index i*4
|
|
294
|
+
// Bits 2-3: validator at index i*4+1
|
|
295
|
+
// Bits 4-5: validator at index i*4+2
|
|
296
|
+
// Bits 6-7: validator at index i*4+3
|
|
297
|
+
votes.push(voteByte >> 0 & 0x03);
|
|
298
|
+
votes.push(voteByte >> 2 & 0x03);
|
|
299
|
+
votes.push(voteByte >> 4 & 0x03);
|
|
300
|
+
votes.push(voteByte >> 6 & 0x03);
|
|
301
|
+
}
|
|
302
|
+
return votes;
|
|
303
|
+
}
|
package/dest/l1_artifacts.d.ts
CHANGED
|
@@ -57665,10 +57665,6 @@ export declare const GSEArtifact: {
|
|
|
57665
57665
|
export declare const HonkVerifierArtifact: {
|
|
57666
57666
|
name: string;
|
|
57667
57667
|
contractAbi: readonly [{
|
|
57668
|
-
readonly type: "constructor";
|
|
57669
|
-
readonly inputs: readonly [];
|
|
57670
|
-
readonly stateMutability: "nonpayable";
|
|
57671
|
-
}, {
|
|
57672
57668
|
readonly type: "error";
|
|
57673
57669
|
readonly name: "DevNet__NoPruningAllowed";
|
|
57674
57670
|
readonly inputs: readonly [];
|
|
@@ -57828,6 +57824,14 @@ export declare const HonkVerifierArtifact: {
|
|
|
57828
57824
|
readonly type: "error";
|
|
57829
57825
|
readonly name: "Outbox__Unauthorized";
|
|
57830
57826
|
readonly inputs: readonly [];
|
|
57827
|
+
}, {
|
|
57828
|
+
readonly type: "error";
|
|
57829
|
+
readonly name: "ProofLengthWrong";
|
|
57830
|
+
readonly inputs: readonly [];
|
|
57831
|
+
}, {
|
|
57832
|
+
readonly type: "error";
|
|
57833
|
+
readonly name: "PublicInputsLengthWrong";
|
|
57834
|
+
readonly inputs: readonly [];
|
|
57831
57835
|
}, {
|
|
57832
57836
|
readonly type: "error";
|
|
57833
57837
|
readonly name: "Registry__NoRollupsRegistered";
|
|
@@ -57900,6 +57904,10 @@ export declare const HonkVerifierArtifact: {
|
|
|
57900
57904
|
readonly type: "error";
|
|
57901
57905
|
readonly name: "Rollup__TryingToProveNonExistingBlock";
|
|
57902
57906
|
readonly inputs: readonly [];
|
|
57907
|
+
}, {
|
|
57908
|
+
readonly type: "error";
|
|
57909
|
+
readonly name: "ShpleminiFailed";
|
|
57910
|
+
readonly inputs: readonly [];
|
|
57903
57911
|
}, {
|
|
57904
57912
|
readonly type: "error";
|
|
57905
57913
|
readonly name: "Staking__DepositOutOfGas";
|
|
@@ -57916,6 +57924,10 @@ export declare const HonkVerifierArtifact: {
|
|
|
57916
57924
|
readonly type: "error";
|
|
57917
57925
|
readonly name: "Staking__QueueEmpty";
|
|
57918
57926
|
readonly inputs: readonly [];
|
|
57927
|
+
}, {
|
|
57928
|
+
readonly type: "error";
|
|
57929
|
+
readonly name: "SumcheckFailed";
|
|
57930
|
+
readonly inputs: readonly [];
|
|
57919
57931
|
}, {
|
|
57920
57932
|
readonly type: "error";
|
|
57921
57933
|
readonly name: "TallySlashingProposer__InvalidCommitteeCommitment";
|
|
@@ -59396,11 +59408,11 @@ export declare const HonkVerifierArtifact: {
|
|
|
59396
59408
|
readonly type: "function";
|
|
59397
59409
|
readonly name: "verify";
|
|
59398
59410
|
readonly inputs: readonly [{
|
|
59399
|
-
readonly name: "";
|
|
59411
|
+
readonly name: "proof";
|
|
59400
59412
|
readonly type: "bytes";
|
|
59401
59413
|
readonly internalType: "bytes";
|
|
59402
59414
|
}, {
|
|
59403
|
-
readonly name: "";
|
|
59415
|
+
readonly name: "publicInputs";
|
|
59404
59416
|
readonly type: "bytes32[]";
|
|
59405
59417
|
readonly internalType: "bytes32[]";
|
|
59406
59418
|
}];
|
|
@@ -59458,6 +59470,22 @@ export declare const HonkVerifierArtifact: {
|
|
|
59458
59470
|
readonly type: "uint256";
|
|
59459
59471
|
readonly internalType: "uint256";
|
|
59460
59472
|
}];
|
|
59473
|
+
}, {
|
|
59474
|
+
readonly type: "error";
|
|
59475
|
+
readonly name: "ProofLengthWrongWithLogN";
|
|
59476
|
+
readonly inputs: readonly [{
|
|
59477
|
+
readonly name: "logN";
|
|
59478
|
+
readonly type: "uint256";
|
|
59479
|
+
readonly internalType: "uint256";
|
|
59480
|
+
}, {
|
|
59481
|
+
readonly name: "actualLength";
|
|
59482
|
+
readonly type: "uint256";
|
|
59483
|
+
readonly internalType: "uint256";
|
|
59484
|
+
}, {
|
|
59485
|
+
readonly name: "expectedLength";
|
|
59486
|
+
readonly type: "uint256";
|
|
59487
|
+
readonly internalType: "uint256";
|
|
59488
|
+
}];
|
|
59461
59489
|
}, {
|
|
59462
59490
|
readonly type: "error";
|
|
59463
59491
|
readonly name: "Rollup__StaleTempBlockLog";
|
|
@@ -63382,10 +63410,6 @@ export declare const l1ArtifactsVerifiers: {
|
|
|
63382
63410
|
honkVerifier: {
|
|
63383
63411
|
name: string;
|
|
63384
63412
|
contractAbi: readonly [{
|
|
63385
|
-
readonly type: "constructor";
|
|
63386
|
-
readonly inputs: readonly [];
|
|
63387
|
-
readonly stateMutability: "nonpayable";
|
|
63388
|
-
}, {
|
|
63389
63413
|
readonly type: "error";
|
|
63390
63414
|
readonly name: "DevNet__NoPruningAllowed";
|
|
63391
63415
|
readonly inputs: readonly [];
|
|
@@ -63545,6 +63569,14 @@ export declare const l1ArtifactsVerifiers: {
|
|
|
63545
63569
|
readonly type: "error";
|
|
63546
63570
|
readonly name: "Outbox__Unauthorized";
|
|
63547
63571
|
readonly inputs: readonly [];
|
|
63572
|
+
}, {
|
|
63573
|
+
readonly type: "error";
|
|
63574
|
+
readonly name: "ProofLengthWrong";
|
|
63575
|
+
readonly inputs: readonly [];
|
|
63576
|
+
}, {
|
|
63577
|
+
readonly type: "error";
|
|
63578
|
+
readonly name: "PublicInputsLengthWrong";
|
|
63579
|
+
readonly inputs: readonly [];
|
|
63548
63580
|
}, {
|
|
63549
63581
|
readonly type: "error";
|
|
63550
63582
|
readonly name: "Registry__NoRollupsRegistered";
|
|
@@ -63617,6 +63649,10 @@ export declare const l1ArtifactsVerifiers: {
|
|
|
63617
63649
|
readonly type: "error";
|
|
63618
63650
|
readonly name: "Rollup__TryingToProveNonExistingBlock";
|
|
63619
63651
|
readonly inputs: readonly [];
|
|
63652
|
+
}, {
|
|
63653
|
+
readonly type: "error";
|
|
63654
|
+
readonly name: "ShpleminiFailed";
|
|
63655
|
+
readonly inputs: readonly [];
|
|
63620
63656
|
}, {
|
|
63621
63657
|
readonly type: "error";
|
|
63622
63658
|
readonly name: "Staking__DepositOutOfGas";
|
|
@@ -63633,6 +63669,10 @@ export declare const l1ArtifactsVerifiers: {
|
|
|
63633
63669
|
readonly type: "error";
|
|
63634
63670
|
readonly name: "Staking__QueueEmpty";
|
|
63635
63671
|
readonly inputs: readonly [];
|
|
63672
|
+
}, {
|
|
63673
|
+
readonly type: "error";
|
|
63674
|
+
readonly name: "SumcheckFailed";
|
|
63675
|
+
readonly inputs: readonly [];
|
|
63636
63676
|
}, {
|
|
63637
63677
|
readonly type: "error";
|
|
63638
63678
|
readonly name: "TallySlashingProposer__InvalidCommitteeCommitment";
|
|
@@ -65113,11 +65153,11 @@ export declare const l1ArtifactsVerifiers: {
|
|
|
65113
65153
|
readonly type: "function";
|
|
65114
65154
|
readonly name: "verify";
|
|
65115
65155
|
readonly inputs: readonly [{
|
|
65116
|
-
readonly name: "";
|
|
65156
|
+
readonly name: "proof";
|
|
65117
65157
|
readonly type: "bytes";
|
|
65118
65158
|
readonly internalType: "bytes";
|
|
65119
65159
|
}, {
|
|
65120
|
-
readonly name: "";
|
|
65160
|
+
readonly name: "publicInputs";
|
|
65121
65161
|
readonly type: "bytes32[]";
|
|
65122
65162
|
readonly internalType: "bytes32[]";
|
|
65123
65163
|
}];
|
|
@@ -65175,6 +65215,22 @@ export declare const l1ArtifactsVerifiers: {
|
|
|
65175
65215
|
readonly type: "uint256";
|
|
65176
65216
|
readonly internalType: "uint256";
|
|
65177
65217
|
}];
|
|
65218
|
+
}, {
|
|
65219
|
+
readonly type: "error";
|
|
65220
|
+
readonly name: "ProofLengthWrongWithLogN";
|
|
65221
|
+
readonly inputs: readonly [{
|
|
65222
|
+
readonly name: "logN";
|
|
65223
|
+
readonly type: "uint256";
|
|
65224
|
+
readonly internalType: "uint256";
|
|
65225
|
+
}, {
|
|
65226
|
+
readonly name: "actualLength";
|
|
65227
|
+
readonly type: "uint256";
|
|
65228
|
+
readonly internalType: "uint256";
|
|
65229
|
+
}, {
|
|
65230
|
+
readonly name: "expectedLength";
|
|
65231
|
+
readonly type: "uint256";
|
|
65232
|
+
readonly internalType: "uint256";
|
|
65233
|
+
}];
|
|
65178
65234
|
}, {
|
|
65179
65235
|
readonly type: "error";
|
|
65180
65236
|
readonly name: "Rollup__StaleTempBlockLog";
|