Skip to content

Commit bbec69f

Browse files
authored
Merge pull request #48 from NaturalSelectionLabs/fix/network-params-compress
fix: change setParams type to bytes
2 parents 91aa623 + f570e37 commit bbec69f

4 files changed

Lines changed: 28 additions & 27 deletions

File tree

deployments/abi/NetworkParams.abi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,8 @@
208208
},
209209
{
210210
"name": "params",
211-
"type": "string",
212-
"internalType": "string"
211+
"type": "bytes",
212+
"internalType": "bytes"
213213
}
214214
],
215215
"outputs": [],
@@ -259,9 +259,9 @@
259259
},
260260
{
261261
"name": "params",
262-
"type": "string",
262+
"type": "bytes",
263263
"indexed": false,
264-
"internalType": "string"
264+
"internalType": "bytes"
265265
}
266266
],
267267
"anonymous": false

script/CompressParams.s.sol

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ contract CompressParams is Script {
1111
// solhint-disable-next-line function-max-lines
1212
function run() public view {
1313
string memory params = _readInput("network_parameter");
14-
bytes memory result = LibZip.flzCompress(bytes(params));
15-
console.logBytes(result);
14+
bytes memory compressed = LibZip.flzCompress(bytes(params));
15+
console.log("Compressed:");
16+
console.logBytes(compressed);
1617
}
1718

1819
// read network config params from json file

src/NetworkParams.sol

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ contract NetworkParams is Initializable, AccessControlEnumerable {
1212
bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
1313

1414
// Mapping from epoch to configuration parameters
15-
mapping(uint64 epoch => string params) private _params;
15+
mapping(uint64 epoch => bytes params) private _params;
1616
uint64[] private _orderedEpochs;
1717

18-
event ParamsSet(uint64 indexed epoch, string params);
18+
event ParamsSet(uint64 indexed epoch, bytes params);
1919

2020
/**
2121
* @notice Initializes the NetworkParams contract.
@@ -30,10 +30,10 @@ contract NetworkParams is Initializable, AccessControlEnumerable {
3030
* @notice Sets configuration parameters for a specific epoch.
3131
* @dev Adds the epoch to the sorted list and maps it to the provided parameters.
3232
* @param epoch The epoch (as a uint64) to which the parameters should be associated.
33-
* @param params The configuration parameters (as a string) to be set.
33+
* @param params The configuration parameters (as bytes) to be set.
3434
*/
35-
function setParams(uint64 epoch, string calldata params) external onlyRole(ADMIN_ROLE) {
36-
if (bytes(_params[epoch]).length == 0) {
35+
function setParams(uint64 epoch, bytes calldata params) external onlyRole(ADMIN_ROLE) {
36+
if (_params[epoch].length == 0) {
3737
_insertOrderedEpoch(epoch);
3838
}
3939

@@ -54,13 +54,13 @@ contract NetworkParams is Initializable, AccessControlEnumerable {
5454
}
5555

5656
uint64 nearestEpoch = _findNearestEpoch(epoch);
57-
string memory compressedParams = _params[nearestEpoch];
57+
bytes memory compressedParams = _params[nearestEpoch];
5858

59-
if (bytes(compressedParams).length == 0) {
59+
if (compressedParams.length == 0) {
6060
return "";
6161
}
6262

63-
bytes memory decompressedParams = LibZip.flzDecompress(bytes(compressedParams));
63+
bytes memory decompressedParams = LibZip.flzDecompress(compressedParams);
6464
return string(decompressedParams);
6565
}
6666

test/NetworkParams.t.sol

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ contract NetworkParamsTest is CommonTest {
1111

1212
NetworkParams internal _params;
1313

14-
event ParamsSet(uint64 indexed epoch, string params);
14+
event ParamsSet(uint64 indexed epoch, bytes params);
1515

1616
function setUp() public {
1717
_params = new NetworkParams();
@@ -26,9 +26,9 @@ contract NetworkParamsTest is CommonTest {
2626
bytes memory compressedParams = LibZip.flzCompress(bytes(paramsStr));
2727

2828
expectEmit();
29-
emit ParamsSet(100, string(compressedParams));
29+
emit ParamsSet(100, compressedParams);
3030
vm.prank(bob);
31-
_params.setParams(100, string(compressedParams));
31+
_params.setParams(100, compressedParams);
3232

3333
assertEq(_params.getParams(100), paramsStr);
3434
}
@@ -52,19 +52,19 @@ contract NetworkParamsTest is CommonTest {
5252
bytes memory compressedParams30 = LibZip.flzCompress(bytes(epoch30ParamsStr));
5353

5454
expectEmit();
55-
emit ParamsSet(100, string(compressedParams100));
55+
emit ParamsSet(100, compressedParams100);
5656
vm.prank(bob);
57-
_params.setParams(100, string(compressedParams100));
57+
_params.setParams(100, compressedParams100);
5858

5959
expectEmit();
60-
emit ParamsSet(300, string(compressedParams300));
60+
emit ParamsSet(300, compressedParams300);
6161
vm.prank(bob);
62-
_params.setParams(300, string(compressedParams300));
62+
_params.setParams(300, compressedParams300);
6363

6464
expectEmit();
65-
emit ParamsSet(200, string(compressedParams200));
65+
emit ParamsSet(200, compressedParams200);
6666
vm.prank(bob);
67-
_params.setParams(200, string(compressedParams200));
67+
_params.setParams(200, compressedParams200);
6868

6969
// Below 100
7070
assertEq(_params.getParams(50), epoch100ParamsStr);
@@ -85,18 +85,18 @@ contract NetworkParamsTest is CommonTest {
8585

8686
// Update existing epoch 200
8787
expectEmit();
88-
emit ParamsSet(200, string(compressedParams200Modified));
88+
emit ParamsSet(200, compressedParams200Modified);
8989
vm.prank(bob);
90-
_params.setParams(200, string(compressedParams200Modified));
90+
_params.setParams(200, compressedParams200Modified);
9191

9292
// Equal to 200
9393
assertEq(_params.getParams(200), epoch200ParamsStrModified);
9494

9595
// Update earlier epoch
9696
expectEmit();
97-
emit ParamsSet(30, string(compressedParams30));
97+
emit ParamsSet(30, compressedParams30);
9898
vm.prank(bob);
99-
_params.setParams(30, string(compressedParams30));
99+
_params.setParams(30, compressedParams30);
100100

101101
// Pass epoch 30
102102
assertEq(_params.getParams(0), epoch30ParamsStr);

0 commit comments

Comments
 (0)