Skip to content

Commit

Permalink
Applying suggested gas optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
0xvv committed Mar 27, 2023
1 parent 2115675 commit 2fcb03a
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions src/contracts/StakingContract.sol
Original file line number Diff line number Diff line change
Expand Up @@ -555,12 +555,11 @@ contract StakingContract {
if (_publicKeys.length % PUBLIC_KEY_LENGTH != 0) {
revert InvalidPublicKeys();
}
uint256 keyCount = _publicKeys.length / PUBLIC_KEY_LENGTH;
for (uint256 i = 0; i < keyCount; ) {
bytes memory publicKey = BytesLib.slice(_publicKeys, i * PUBLIC_KEY_LENGTH, PUBLIC_KEY_LENGTH);
for (uint256 i = 0; i < _publicKeys.length; ) {
bytes memory publicKey = BytesLib.slice(_publicKeys, i, PUBLIC_KEY_LENGTH);
_deployAndWithdraw(publicKey, EXECUTION_LAYER_SALT_PREFIX, StakingContractStorageLib.getELDispatcher());
unchecked {
++i;
i += PUBLIC_KEY_LENGTH;
}
}
}
Expand All @@ -573,12 +572,11 @@ contract StakingContract {
if (_publicKeys.length % PUBLIC_KEY_LENGTH != 0) {
revert InvalidPublicKeys();
}
uint256 keyCount = _publicKeys.length / PUBLIC_KEY_LENGTH;
for (uint256 i = 0; i < keyCount; ) {
bytes memory publicKey = BytesLib.slice(_publicKeys, i * PUBLIC_KEY_LENGTH, PUBLIC_KEY_LENGTH);
for (uint256 i = 0; i < _publicKeys.length; ) {
bytes memory publicKey = BytesLib.slice(_publicKeys, i, PUBLIC_KEY_LENGTH);
_deployAndWithdraw(publicKey, CONSENSUS_LAYER_SALT_PREFIX, StakingContractStorageLib.getCLDispatcher());
unchecked {
++i;
i += PUBLIC_KEY_LENGTH;
}
}
}
Expand All @@ -591,13 +589,12 @@ contract StakingContract {
if (_publicKeys.length % PUBLIC_KEY_LENGTH != 0) {
revert InvalidPublicKeys();
}
uint256 keyCount = _publicKeys.length / PUBLIC_KEY_LENGTH;
for (uint256 i = 0; i < keyCount; ) {
bytes memory publicKey = BytesLib.slice(_publicKeys, i * PUBLIC_KEY_LENGTH, PUBLIC_KEY_LENGTH);
for (uint256 i = 0; i < _publicKeys.length; ) {
bytes memory publicKey = BytesLib.slice(_publicKeys, i, PUBLIC_KEY_LENGTH);
_deployAndWithdraw(publicKey, EXECUTION_LAYER_SALT_PREFIX, StakingContractStorageLib.getELDispatcher());
_deployAndWithdraw(publicKey, CONSENSUS_LAYER_SALT_PREFIX, StakingContractStorageLib.getCLDispatcher());
unchecked {
++i;
i += PUBLIC_KEY_LENGTH;
}
}
}
Expand Down

0 comments on commit 2fcb03a

Please sign in to comment.