|
1 | 1 | // SPDX-License-Identifier: BUSL-1.1
|
2 | 2 | pragma solidity >=0.5.0;
|
3 | 3 |
|
4 |
| -import "src/interfaces/IQuorumRegistry.sol"; |
5 |
| -import {BN254} from "eigenlayer-contracts/src/contracts/libraries/BN254.sol"; |
6 |
| - |
7 |
| - |
8 |
| -/** |
9 |
| - * @title Minimal interface extension to `IQuorumRegistry`. |
10 |
| - * @author Layr Labs, Inc. |
11 |
| - * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service |
12 |
| - * @notice Adds BLS-specific functions to the base interface. |
13 |
| - */ |
14 |
| -interface IBLSRegistry is IQuorumRegistry { |
15 |
| - /// @notice Data structure used to track the history of the Aggregate Public Key of all operators |
16 |
| - struct ApkUpdate { |
17 |
| - // keccak256(apk_x0, apk_x1, apk_y0, apk_y1) |
18 |
| - bytes32 apkHash; |
19 |
| - // block number at which the update occurred |
20 |
| - uint32 blockNumber; |
21 |
| - } |
22 |
| - |
23 |
| - // EVENTS |
24 |
| - /** |
25 |
| - * @notice Emitted upon the registration of a new operator for the middleware |
26 |
| - * @param operator Address of the new operator |
27 |
| - * @param pkHash The keccak256 hash of the operator's public key |
28 |
| - * @param pk The operator's public key itself |
29 |
| - * @param apkHashIndex The index of the latest (i.e. the new) APK update |
30 |
| - * @param apkHash The keccak256 hash of the new Aggregate Public Key |
31 |
| - */ |
32 |
| - event Registration( |
33 |
| - address indexed operator, |
34 |
| - bytes32 pkHash, |
35 |
| - BN254.G1Point pk, |
36 |
| - uint32 apkHashIndex, |
37 |
| - bytes32 apkHash, |
38 |
| - string socket |
39 |
| - ); |
40 |
| - |
41 |
| - /// @notice Emitted when the `operatorWhitelister` role is transferred. |
42 |
| - event OperatorWhitelisterTransferred(address previousAddress, address newAddress); |
43 |
| - |
44 |
| - /** |
45 |
| - * @notice get hash of a historical aggregated public key corresponding to a given index; |
46 |
| - * called by checkSignatures in BLSSignatureChecker.sol. |
47 |
| - */ |
48 |
| - function getCorrectApkHash(uint256 index, uint32 blockNumber) external returns (bytes32); |
49 |
| - |
50 |
| - /// @notice returns the `ApkUpdate` struct at `index` in the list of APK updates |
51 |
| - function apkUpdates(uint256 index) external view returns (ApkUpdate memory); |
52 |
| - |
53 |
| - /// @notice returns the APK hash that resulted from the `index`th APK update |
54 |
| - function apkHashes(uint256 index) external view returns (bytes32); |
55 |
| - |
56 |
| - /// @notice returns the block number at which the `index`th APK update occurred |
57 |
| - function apkUpdateBlockNumbers(uint256 index) external view returns (uint32); |
58 |
| - |
59 |
| - function operatorWhitelister() external view returns (address); |
60 |
| - |
61 |
| - function operatorWhitelistEnabled() external view returns (bool); |
62 |
| - |
63 |
| - function whitelisted(address) external view returns (bool); |
64 |
| - |
65 |
| - function setOperatorWhitelistStatus(bool _operatorWhitelistEnabled) external; |
66 |
| - |
67 |
| - function addToOperatorWhitelist(address[] calldata) external; |
68 |
| - |
69 |
| - function removeFromWhitelist(address[] calldata operators) external; |
70 |
| -} |
| 4 | +import "eigenlayer-contracts/src/contracts/interfaces/IBLSRegistry.sol"; |
0 commit comments