Skip to content

Commit

Permalink
feat: refactor the deployment script for Eigen updates (#44)
Browse files Browse the repository at this point in the history
* update the lib deps

* remappings

* refactor the submodule

* update the deployment script

* create the docker image
  • Loading branch information
cool-develope authored Dec 1, 2023
1 parent c28babf commit 1266dc7
Show file tree
Hide file tree
Showing 11 changed files with 65 additions and 63 deletions.
80 changes: 40 additions & 40 deletions config/operators.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,28 @@
"0x9750901b0ded0603e9be4a56315fe1487d4afc7ec05e3fc75fe6c568d52bea1b"
],
"bls_pub_keys": [
"0xa0c9919b9fea4577cd00c71dd43f0734d71793f154c5561e55c07bf59a551eb86c91f262ddae0140926452cd0b493cb6",
"0x81bfee7fb4d5fce71363f1a589944a4357ec9bb5ff65d6b380e58d210bbf001f72e69e7a1452d494213297afe2a03d19",
"0xae09e12fa89f265a11d7be68eedf81aa31f7a9679aef9598eae6204c1624b017dc56c8b050196f01ac2facefa314c5c4",
"0xa3276479d021f963684daef34cc54a0cda597f31e6e902bc96e60779e2c82e2c19c8395f42cd3c004d07a1c6794d5c5f",
"0x8c43a0f3b3e88b52526785a9a789b8ebeb08f1376e64e2457959a1793b13cb0c71b14bda11bc948f4af3cb6bcc277992",
"0x8158fbdd4af6254aa2bb7de9e820edee0205158711315e2497be56409bfc80132dd77e7c33151f657566b981051771a1",
"0xb501bb9ea2832716fd6a7af96db69756f0ee939f39b51b3f786f82d30a1f4a773c35ecf21d076c5e44c0d09b4ad0336f",
"0x95059ede9ed71edfdf5652d120a30e9fb8ec1be9798f8684ef52f0328df609aa9eba1a0b5e6c03cbd1643a1c08ab1845",
"0x9042165e7ec9be30a77e74550007b198251e27ddd7d6a9cdb90badd5610835e62886d45881398580ad70567a2462ee53",
"0xadddd3840860df99f7512e9f486da152a9050a2055941d70d4d8597a665201e3fa6c3d388486318ac1ead1a659008c44"
"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e",
"0x89ece308f9d1f0131765212deca99697b112d61f9be9a5f1f3780a51335b3ff981747a0b2ca2179b96d2c0c9024e5224",
"0xac9b60d5afcbd5663a8a44b7c5a02f19e9a77ab0a35bd65809bb5c67ec582c897feb04decc694b13e08587f3ff9b5b60",
"0xb0e7791fb972fe014159aa33a98622da3cdc98ff707965e536d8636b5fcc5ac7a91a8c46e59a00dca575af0f18fb13dc",
"0xa6e82f6da4520f85c5d27d8f329eccfa05944fd1096b20734c894966d12a9e2a9a9744529d7212d33883113a0cadb909",
"0xb928f3beb93519eecf0145da903b40a4c97dca00b21f12ac0df3be9116ef2ef27b2ae6bcd4c5bc2d54ef5a70627efcb7",
"0xa85ae765588126f5e860d019c0e26235f567a9c0c0b2d8ff30f3e8d436b1082596e5e7462d20f5be3764fd473e57f9cf",
"0x99cdf3807146e68e041314ca93e1fee0991224ec2a74beb2866816fd0826ce7b6263ee31e953a86d1b72cc2215a57793",
"0xaf81da25ecf1c84b577fefbedd61077a81dc43b00304015b2b596ab67f00e41c86bb00ebd0f90d4b125eb0539891aeed"
],
"bls_priv_keys": [
"0x309245b67d526a0a088e19c8ed22563af34d5f418103bed20bc9987e14ef5f96",
"0x352e6c47dc54a7505eb04635f99f4ddf461c5c170ebfd4523b0c563635bf7f43",
"0x096be0954c0147021bb40392868f561049f64e278d0e3e4ce947a80f5dbeb7e8",
"0x2155623ebb13320f569ca08ee392f5ed3958824c900794508263b89eb084b053",
"0x44bd68e022574f7a88f4e79b2a42dab3abeacf1a2b815e9fc4154cb500f3d04e",
"0x0a4f85530a6b591cd737c58059eb4a4908acac1a97692964be2c4b0403d550a2",
"0x6a7f40fa3f746138b404319e84a4bf53a66cc00a8dd52b9241202f60e3e4d432",
"0x4e8fa1327a3a14b2d155811de2e51dfeb20a9949ca0f4fd85f8772fa26a6e8a5",
"0x3ab06a4249b85aa7fb53c086e146de49dd6f837d20f461291620b866a1a6215e",
"0x529fa82386a66de6b0893c2d40cfdb39cbf448e9c7c1d942ca87dfbd921d8520"
"0x0000000000000000000000000000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000000000000000000000000000002",
"0x0000000000000000000000000000000000000000000000000000000000000003",
"0x0000000000000000000000000000000000000000000000000000000000000004",
"0x0000000000000000000000000000000000000000000000000000000000000005",
"0x0000000000000000000000000000000000000000000000000000000000000006",
"0x0000000000000000000000000000000000000000000000000000000000000007",
"0x0000000000000000000000000000000000000000000000000000000000000008",
"0x0000000000000000000000000000000000000000000000000000000000000009",
"0x000000000000000000000000000000000000000000000000000000000000000a"
]
},
{
Expand Down Expand Up @@ -79,28 +79,28 @@
"0x9750901b0ded0603e9be4a56315fe1487d4afc7ec05e3fc75fe6c568d52bea1b"
],
"bls_pub_keys": [
"0xa0c9919b9fea4577cd00c71dd43f0734d71793f154c5561e55c07bf59a551eb86c91f262ddae0140926452cd0b493cb6",
"0x81bfee7fb4d5fce71363f1a589944a4357ec9bb5ff65d6b380e58d210bbf001f72e69e7a1452d494213297afe2a03d19",
"0xae09e12fa89f265a11d7be68eedf81aa31f7a9679aef9598eae6204c1624b017dc56c8b050196f01ac2facefa314c5c4",
"0xa3276479d021f963684daef34cc54a0cda597f31e6e902bc96e60779e2c82e2c19c8395f42cd3c004d07a1c6794d5c5f",
"0x8c43a0f3b3e88b52526785a9a789b8ebeb08f1376e64e2457959a1793b13cb0c71b14bda11bc948f4af3cb6bcc277992",
"0x8158fbdd4af6254aa2bb7de9e820edee0205158711315e2497be56409bfc80132dd77e7c33151f657566b981051771a1",
"0xb501bb9ea2832716fd6a7af96db69756f0ee939f39b51b3f786f82d30a1f4a773c35ecf21d076c5e44c0d09b4ad0336f",
"0x95059ede9ed71edfdf5652d120a30e9fb8ec1be9798f8684ef52f0328df609aa9eba1a0b5e6c03cbd1643a1c08ab1845",
"0x9042165e7ec9be30a77e74550007b198251e27ddd7d6a9cdb90badd5610835e62886d45881398580ad70567a2462ee53",
"0xadddd3840860df99f7512e9f486da152a9050a2055941d70d4d8597a665201e3fa6c3d388486318ac1ead1a659008c44"
"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"0xa572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e",
"0x89ece308f9d1f0131765212deca99697b112d61f9be9a5f1f3780a51335b3ff981747a0b2ca2179b96d2c0c9024e5224",
"0xac9b60d5afcbd5663a8a44b7c5a02f19e9a77ab0a35bd65809bb5c67ec582c897feb04decc694b13e08587f3ff9b5b60",
"0xb0e7791fb972fe014159aa33a98622da3cdc98ff707965e536d8636b5fcc5ac7a91a8c46e59a00dca575af0f18fb13dc",
"0xa6e82f6da4520f85c5d27d8f329eccfa05944fd1096b20734c894966d12a9e2a9a9744529d7212d33883113a0cadb909",
"0xb928f3beb93519eecf0145da903b40a4c97dca00b21f12ac0df3be9116ef2ef27b2ae6bcd4c5bc2d54ef5a70627efcb7",
"0xa85ae765588126f5e860d019c0e26235f567a9c0c0b2d8ff30f3e8d436b1082596e5e7462d20f5be3764fd473e57f9cf",
"0x99cdf3807146e68e041314ca93e1fee0991224ec2a74beb2866816fd0826ce7b6263ee31e953a86d1b72cc2215a57793",
"0xaf81da25ecf1c84b577fefbedd61077a81dc43b00304015b2b596ab67f00e41c86bb00ebd0f90d4b125eb0539891aeed"
],
"bls_priv_keys": [
"0x309245b67d526a0a088e19c8ed22563af34d5f418103bed20bc9987e14ef5f96",
"0x352e6c47dc54a7505eb04635f99f4ddf461c5c170ebfd4523b0c563635bf7f43",
"0x096be0954c0147021bb40392868f561049f64e278d0e3e4ce947a80f5dbeb7e8",
"0x2155623ebb13320f569ca08ee392f5ed3958824c900794508263b89eb084b053",
"0x44bd68e022574f7a88f4e79b2a42dab3abeacf1a2b815e9fc4154cb500f3d04e",
"0x0a4f85530a6b591cd737c58059eb4a4908acac1a97692964be2c4b0403d550a2",
"0x6a7f40fa3f746138b404319e84a4bf53a66cc00a8dd52b9241202f60e3e4d432",
"0x4e8fa1327a3a14b2d155811de2e51dfeb20a9949ca0f4fd85f8772fa26a6e8a5",
"0x3ab06a4249b85aa7fb53c086e146de49dd6f837d20f461291620b866a1a6215e",
"0x529fa82386a66de6b0893c2d40cfdb39cbf448e9c7c1d942ca87dfbd921d8520"
"0x0000000000000000000000000000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000000000000000000000000000002",
"0x0000000000000000000000000000000000000000000000000000000000000003",
"0x0000000000000000000000000000000000000000000000000000000000000004",
"0x0000000000000000000000000000000000000000000000000000000000000005",
"0x0000000000000000000000000000000000000000000000000000000000000006",
"0x0000000000000000000000000000000000000000000000000000000000000007",
"0x0000000000000000000000000000000000000000000000000000000000000008",
"0x0000000000000000000000000000000000000000000000000000000000000009",
"0x000000000000000000000000000000000000000000000000000000000000000a"
]
}
]
2 changes: 1 addition & 1 deletion contracts/interfaces/IVoteWeigher.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ pragma solidity ^0.8.12;
interface IVoteWeigher {
function serviceManager() external view returns (address);

function weightOfOperator(address operator, uint256 quorumNumber) external returns (uint96);
function weightOfOperator(uint8 quorumNumber, address operator) external returns (uint96);
}
6 changes: 3 additions & 3 deletions contracts/library/StakeManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@ contract StakeManager is Initializable, OwnableUpgradeable, IStakeManager, IVote
quorumIndexes[quorumNumber] = indexes;
}

function weightOfOperator(address operator, uint256 quorumNumber) external view override returns (uint96) {
function weightOfOperator(uint8 quorumNumber, address operator) external view override returns (uint96) {
require(quorumNumber < numberOfQuorums, "Invalid quorum number");
uint256 weight = 0;
for (uint256 i = 0; i < quorumIndexes[uint8(quorumNumber)].length; i++) {
uint8 index = quorumIndexes[uint8(quorumNumber)][i];
for (uint256 i = 0; i < quorumIndexes[quorumNumber].length; i++) {
uint8 index = quorumIndexes[quorumNumber][i];
weight += (operatorStakes[tokenMultipliers[index].token][operator] * tokenMultipliers[index].multiplier)
/ _WEIGHTING_DIVISOR;
}
Expand Down
11 changes: 9 additions & 2 deletions contracts/mock/VoteWeigherBaseMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@
pragma solidity ^0.8.12;

import "@openzeppelin-upgrades/contracts/access/OwnableUpgradeable.sol";
import "@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol";

import {IStrategyManager} from "eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol";
import {IServiceManager} from "eigenlayer-middleware/interfaces/IServiceManager.sol";
import {VoteWeigherBase} from "eigenlayer-middleware/VoteWeigherBase.sol";

contract VoteWeigherBaseMock is Initializable, OwnableUpgradeable, VoteWeigherBase {
contract VoteWeigherBaseMock is OwnableUpgradeable, VoteWeigherBase {
constructor(IServiceManager _serviceManager, IStrategyManager _strategyManager)
VoteWeigherBase(_strategyManager, _serviceManager)
{
Expand All @@ -22,4 +21,12 @@ contract VoteWeigherBaseMock is Initializable, OwnableUpgradeable, VoteWeigherBa
function initialize(address initialOwner) external initializer {
_transferOwnership(initialOwner);
}

function weightOfOperator(uint8 quorumNumber, address operator)
external
view
returns (uint96)
{
return weightOfOperatorForQuorum(quorumNumber, operator);
}
}
4 changes: 2 additions & 2 deletions contracts/protocol/LagrangeCommittee.sol
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ contract LagrangeCommittee is Initializable, OwnableUpgradeable, HermezHelpers,

// Adds address stake data and flags it for committee addition
function addOperator(address operator, bytes memory blsPubKey, uint32 serveUntilBlock) public onlyService {
uint96 stakeAmount = voteWeigher.weightOfOperator(operator, 1);
uint96 stakeAmount = voteWeigher.weightOfOperator(0, operator);
OperatorStatus storage opStatus = operators[operator];
require(opStatus.amount == 0, "Operator is already registered.");
opStatus.amount = stakeAmount;
Expand All @@ -131,7 +131,7 @@ contract LagrangeCommittee is Initializable, OwnableUpgradeable, HermezHelpers,
return;
}
for (uint256 i = 0; i < operators[operator].subscribedChains.length; i++) {
_updateAmount(operator, voteWeigher.weightOfOperator(operator, 1), operators[operator].subscribedChains[i]);
_updateAmount(operator, voteWeigher.weightOfOperator(0, operator), operators[operator].subscribedChains[i]);
}
}

Expand Down
7 changes: 1 addition & 6 deletions contracts/test/VoteWeigherMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,7 @@ contract VoteWeigherMock is IVoteWeigher {
serviceManager = _serviceManager;
}

function weightOfOperator(address, /*operator*/ uint256 /*quorumNumber*/ )
external
pure
override
returns (uint96)
{
function weightOfOperator(uint8, /*quorumNumber*/ address /*operator*/ ) external pure override returns (uint96) {
return uint96(100000000);
}
}
4 changes: 2 additions & 2 deletions script/Add_Quorum.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ contract AddQuorum is Script, Test {
}
uint8[] memory quorumIndexes = new uint8[](1);
quorumIndexes[0] = 0;
stakeManager.setQuorumIndexes(1, quorumIndexes);
stakeManager.setQuorumIndexes(0, quorumIndexes);
} else {
VoteWeigherBaseMock voteWeigher =
VoteWeigherBaseMock(stdJson.readAddress(deployLGRData, ".addresses.voteWeigher"));
Expand All @@ -70,7 +70,7 @@ contract AddQuorum is Script, Test {
multiplier: strategies[i].multiplier
});
}
voteWeigher.addStrategiesConsideredAndMultipliers(1, newStrategiesConsideredAndMultipliers);
voteWeigher.createQuorum(newStrategiesConsideredAndMultipliers);
}

vm.stopBroadcast();
Expand Down
2 changes: 1 addition & 1 deletion script/output/M1_deployment_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
},
"chainInfo": {
"chainId": 1337,
"deploymentBlock": 22
"deploymentBlock": 13
},
"parameters": {
"executorMultisig": "0x6E654b122377EA7f592bf3FD5bcdE9e8c1B1cEb9",
Expand Down
2 changes: 1 addition & 1 deletion script/output/deployed_mock.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"addresses":{"batchStorage":"0x2f947E51B9A7cF1d6651D0a568261673233ba42b"}}
{"addresses":{"delegationManager":"0x2f947E51B9A7cF1d6651D0a568261673233ba42b","slasher":"0x91E333A3d61862B1FE976351cf0F3b30aff1D202","strategy":"0xF2740f6A6333c7B405aD7EfC68c74adAd83cC30D","strategyManager":"0x189d4f39f158664185DBB101791F47485B5bE993"}}
4 changes: 2 additions & 2 deletions test/e2e/test_committee.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const deployedAddresses = require('../../script/output/deployed_lgr.json');
require('dotenv').config();

const address = '0x6E654b122377EA7f592bf3FD5bcdE9e8c1B1cEb9';
const tokenAddress = '0x1D7Acca2751281Bd27d8254fC2fCd71a5243626c';
const tokenAddress = '0xbB9dDB1020F82F93e45DA0e2CFbd27756DA36956';
const privKey = accounts[address];
const provider = new ethers.providers.JsonRpcProvider(process.env.RPC_URL);
const wallet = new ethers.Wallet(privKey, provider);
Expand All @@ -28,7 +28,7 @@ provider.getNetwork().then((network) => {
console.log('chainID: ', network.chainId);
});

stake.weightOfOperator(address, 1).then((weight) => {
stake.weightOfOperator(0, address).then((weight) => {
console.log('Weight: ', weight);
});

Expand Down
6 changes: 3 additions & 3 deletions util/generate-accounts.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ const DEFAULT_MNEMONIC =
'exchange holiday girl alone head gift unfair resist void voice people tobacco';
const DEFAULT_NUM_ACCOUNTS = 10;

async function genBLSKey() {
async function genBLSKey(i) {
await bls.init(bls.BLS12_381);
blsKey = new bls.SecretKey();
await blsKey.setByCSPRNG();
await blsKey.setInt(i + 1);
return blsKey;
}

Expand All @@ -29,7 +29,7 @@ async function main() {
);
accounts[accountWallet.address] = accountWallet.privateKey;

blsPair = await genBLSKey();
blsPair = await genBLSKey(i);
pub = await blsPair.getPublicKey();
blsPairs[accountWallet.address] = {
pub: '0x' + (await pub.serializeToHexStr()),
Expand Down

0 comments on commit 1266dc7

Please sign in to comment.