Skip to content

Commit 37138ab

Browse files
committed
StateHolder Fix
1 parent 5c75749 commit 37138ab

7 files changed

+18
-22
lines changed

IStateHolder.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ interface IStateHolder {
66

77
function getProxy() external view returns (address);
88
function setProxy() external;
9-
function getState(uint256 i) external view returns (string memory name, string memory dataType, bytes memory value);
10-
function getInfo(string calldata varName) external view returns (string memory dataType, bytes memory value, uint256 position);
9+
function toJSON() external view returns(string memory);
10+
function toJSON(uint256 start, uint256 l) external view returns(string memory);
1111
function getStateSize() external view returns (uint256);
1212
function exists(string calldata varName) external view returns(bool);
1313
function getDataType(string calldata varName) external view returns(string memory dataType);

MVDFunctionalitiesManager.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ contract MVDFunctionalitiesManager is IMVDFunctionalitiesManager, CommonUtilitie
2424
uint256 getMinimumBlockNumberSourceLocationId, address getMinimumBlockNumberFunctionalityAddress,
2525
uint256 getEmergencyMinimumBlockNumberSourceLocationId, address getEmergencyMinimumBlockNumberFunctionalityAddress,
2626
uint256 getEmergencySurveyStakingSourceLocationId, address getEmergencySurveyStakingFunctionalityAddress,
27-
uint256 checkVoteResultSourceLocationId, address checkVoteResultFunctionalityAddress) public override {
27+
uint256 checkVoteResultSourceLocationId, address checkVoteResultFunctionalityAddress) public {
2828
if(getMinimumBlockNumberFunctionalityAddress == address(0)) {
2929
return;
3030
}

MVDFunctionalityModelsManager.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ contract MVDFunctionalityModelsManager is IMVDFunctionalityModelsManager {
77

88
mapping(string => Functionality) private _wellKnownFunctionalityModels;
99

10-
constructor() public override {
10+
constructor() public {
1111
init();
1212
}
1313

MVDFunctionalityProposal.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ contract MVDFunctionalityProposal is IMVDFunctionalityProposal, CommonUtilities
3434
uint256 private _totalRefuse;
3535

3636
constructor(string memory codeName, address location, string memory methodSignature, string memory returnAbiParametersArray,
37-
string memory replaces, address proxy) public override {
37+
string memory replaces, address proxy) public {
3838
init(codeName, location, methodSignature, returnAbiParametersArray, replaces, proxy);
3939
}
4040

MVDProxy.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ contract MVDProxy is IMVDProxy {
2020

2121
address[] private _delegates;
2222

23-
constructor(address votingTokenAddress, address stateHolderAddress, address functionalityModelsManagerAddress, address functionalityProposalManagerAddress, address functionalitiesManagerAddress) public override {
23+
constructor(address votingTokenAddress, address stateHolderAddress, address functionalityModelsManagerAddress, address functionalityProposalManagerAddress, address functionalitiesManagerAddress) public {
2424
if(votingTokenAddress == address(0)) {
2525
return;
2626
}

StateHolder.sol

+11-15
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ contract StateHolder is IStateHolder, CommonUtilities {
2727
address private _proxy;
2828
uint256 private _stateSize;
2929

30-
constructor() public override {
30+
constructor() public {
3131
init();
3232
}
3333

@@ -36,23 +36,19 @@ contract StateHolder is IStateHolder, CommonUtilities {
3636
_state.push(Var("", DataType.BYTES, "", 0, false));
3737
}
3838

39-
function getState(uint256 i) public override view returns (string memory, string memory, bytes memory) {
40-
uint256 position = 0;
41-
for(uint256 z = 1; z < _state.length; z++) {
42-
Var memory v = _state[z];
43-
if(v.active && position++ == i) {
44-
return (v.name, toString(v.dataType), v.value);
45-
}
46-
}
39+
function toJSON() public override view returns(string memory) {
40+
return toJSON(0, _state.length - 1);
4741
}
4842

49-
function getInfo(string memory varName) public override view returns (string memory dataType, bytes memory value, uint256 position) {
50-
Var memory v = _state[_index[varName]];
51-
if(v.active) {
52-
dataType = toString(v.dataType);
53-
value = v.value;
54-
position = v.position - 1;
43+
function toJSON(uint256 start, uint256 l) public override view returns(string memory json) {
44+
uint256 length = start + 1 + l;
45+
json = "[";
46+
for(uint256 i = start; i < length; i++) {
47+
json = !_state[i].active ? json : string(abi.encodePacked(json, '{"name":"', _state[i].name, '","type":"', toString(_state[i].dataType), '"}', i == length - (_state[i].active ? 1 : 0) ? "" : ","));
48+
length += _state[i].active ? 0 : 1;
49+
length = length > _state.length ? _state.length : length;
5550
}
51+
json = string(abi.encodePacked(json, ']'));
5652
}
5753

5854
function getStateSize() public override view returns (uint256) {

VotingToken.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ contract VotingToken is IERC20, IVotingToken {
1616
string private _name;
1717
string private _symbol;
1818

19-
constructor(string memory name, string memory symbol, uint256 decimals, uint256 totalSupply) public override {
19+
constructor(string memory name, string memory symbol, uint256 decimals, uint256 totalSupply) public {
2020
if(totalSupply == 0) {
2121
return;
2222
}

0 commit comments

Comments
 (0)