Skip to content

Commit 6538d38

Browse files
Dimo99PetarKirov
authored andcommitted
fix(contracts) Verifier digest mutability
1 parent 775a9bd commit 6538d38

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

beacon-light-client/solidity/contracts/balance_verifier/BalanceVerifier.sol

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ import {IBalanceVerifier} from './interfaces/IBalanceVerifierDiva.sol';
66
import '@openzeppelin/contracts/access/Ownable.sol';
77

88
abstract contract BalanceVerifier is Ownable, IBalanceVerifier {
9-
/// @notice the verifierDigest of the plonky2 circuit
10-
uint256 public immutable VERIFIER_DIGEST;
11-
129
/// @notice The genesis block timestamp.
1310
uint256 public immutable GENESIS_BLOCK_TIMESTAMP;
1411

@@ -22,19 +19,26 @@ abstract contract BalanceVerifier is Ownable, IBalanceVerifier {
2219

2320
address internal verifier;
2421

22+
/// @notice the verifierDigest of the plonky2 circuit
23+
uint256 public verifierDigest;
24+
2525
constructor(
26-
uint256 verifierDigest,
26+
uint256 _verifierDigest,
2727
uint256 genesisBlockTimestamp,
2828
address _verifier,
2929
address _owner
3030
) Ownable(_owner) {
31-
VERIFIER_DIGEST = verifierDigest;
31+
verifierDigest = _verifierDigest;
3232
GENESIS_BLOCK_TIMESTAMP = genesisBlockTimestamp;
3333
verifier = _verifier;
3434
}
3535

36-
function setVerifier(address _verifier) external override onlyOwner {
36+
function setVerifier(
37+
address _verifier,
38+
uint256 newVerifierDigest
39+
) external override onlyOwner {
3740
verifier = _verifier;
41+
verifierDigest = newVerifierDigest;
3842
}
3943

4044
/// @notice Verifies the proof and writes the data for given slot if valid

beacon-light-client/solidity/contracts/balance_verifier/BalanceVerifierDiva.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ contract BalanceVerifierDiva is BalanceVerifier, IBalanceVerifierDiva {
3939
uint64 _numberOfSlashedValidators
4040
) external override {
4141
uint256[] memory publicInputs = new uint256[](2);
42-
publicInputs[0] = VERIFIER_DIGEST;
42+
publicInputs[0] = verifierDigest;
4343
publicInputs[1] = (uint256(
4444
sha256(
4545
abi.encodePacked(

beacon-light-client/solidity/contracts/balance_verifier/BalanceVerifierLido.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ contract BalanceVerifierLido is BalanceVerifier, IBalanceVerifierLido {
3737
uint64 _numberOfSlashedValidators
3838
) external override {
3939
uint256[] memory publicInputs = new uint256[](2);
40-
publicInputs[0] = VERIFIER_DIGEST;
40+
publicInputs[0] = verifierDigest;
4141
publicInputs[1] = (uint256(
4242
sha256(
4343
abi.encodePacked(

beacon-light-client/solidity/contracts/balance_verifier/interfaces/IBalanceVerifier.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ interface IBalanceVerifier {
1414
/// @dev Verification failed
1515
error VerificationFailed();
1616

17-
function setVerifier(address newVerifier) external;
17+
function setVerifier(address newVerifier, uint256 newVerifierDigest) external;
1818
}

0 commit comments

Comments
 (0)