Skip to content

Commit fe9d28a

Browse files
authored
chore: make json parsing cheatcodes pure (#447)
1 parent c4aaed6 commit fe9d28a

File tree

2 files changed

+34
-28
lines changed

2 files changed

+34
-28
lines changed

src/StdJson.sol

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,59 +33,59 @@ library stdJson {
3333
return vm.parseJson(json, key);
3434
}
3535

36-
function readUint(string memory json, string memory key) internal returns (uint256) {
36+
function readUint(string memory json, string memory key) internal pure returns (uint256) {
3737
return vm.parseJsonUint(json, key);
3838
}
3939

40-
function readUintArray(string memory json, string memory key) internal returns (uint256[] memory) {
40+
function readUintArray(string memory json, string memory key) internal pure returns (uint256[] memory) {
4141
return vm.parseJsonUintArray(json, key);
4242
}
4343

44-
function readInt(string memory json, string memory key) internal returns (int256) {
44+
function readInt(string memory json, string memory key) internal pure returns (int256) {
4545
return vm.parseJsonInt(json, key);
4646
}
4747

48-
function readIntArray(string memory json, string memory key) internal returns (int256[] memory) {
48+
function readIntArray(string memory json, string memory key) internal pure returns (int256[] memory) {
4949
return vm.parseJsonIntArray(json, key);
5050
}
5151

52-
function readBytes32(string memory json, string memory key) internal returns (bytes32) {
52+
function readBytes32(string memory json, string memory key) internal pure returns (bytes32) {
5353
return vm.parseJsonBytes32(json, key);
5454
}
5555

56-
function readBytes32Array(string memory json, string memory key) internal returns (bytes32[] memory) {
56+
function readBytes32Array(string memory json, string memory key) internal pure returns (bytes32[] memory) {
5757
return vm.parseJsonBytes32Array(json, key);
5858
}
5959

60-
function readString(string memory json, string memory key) internal returns (string memory) {
60+
function readString(string memory json, string memory key) internal pure returns (string memory) {
6161
return vm.parseJsonString(json, key);
6262
}
6363

64-
function readStringArray(string memory json, string memory key) internal returns (string[] memory) {
64+
function readStringArray(string memory json, string memory key) internal pure returns (string[] memory) {
6565
return vm.parseJsonStringArray(json, key);
6666
}
6767

68-
function readAddress(string memory json, string memory key) internal returns (address) {
68+
function readAddress(string memory json, string memory key) internal pure returns (address) {
6969
return vm.parseJsonAddress(json, key);
7070
}
7171

72-
function readAddressArray(string memory json, string memory key) internal returns (address[] memory) {
72+
function readAddressArray(string memory json, string memory key) internal pure returns (address[] memory) {
7373
return vm.parseJsonAddressArray(json, key);
7474
}
7575

76-
function readBool(string memory json, string memory key) internal returns (bool) {
76+
function readBool(string memory json, string memory key) internal pure returns (bool) {
7777
return vm.parseJsonBool(json, key);
7878
}
7979

80-
function readBoolArray(string memory json, string memory key) internal returns (bool[] memory) {
80+
function readBoolArray(string memory json, string memory key) internal pure returns (bool[] memory) {
8181
return vm.parseJsonBoolArray(json, key);
8282
}
8383

84-
function readBytes(string memory json, string memory key) internal returns (bytes memory) {
84+
function readBytes(string memory json, string memory key) internal pure returns (bytes memory) {
8585
return vm.parseJsonBytes(json, key);
8686
}
8787

88-
function readBytesArray(string memory json, string memory key) internal returns (bytes[] memory) {
88+
function readBytesArray(string memory json, string memory key) internal pure returns (bytes[] memory) {
8989
return vm.parseJsonBytesArray(json, key);
9090
}
9191

src/Vm.sol

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -280,20 +280,26 @@ interface VmSafe {
280280
// and hex numbers '0xEF'.
281281
// Type coercion works ONLY for discrete values or arrays. That means that the key must return a value or array, not
282282
// a JSON object.
283-
function parseJsonUint(string calldata json, string calldata key) external returns (uint256);
284-
function parseJsonUintArray(string calldata json, string calldata key) external returns (uint256[] memory);
285-
function parseJsonInt(string calldata json, string calldata key) external returns (int256);
286-
function parseJsonIntArray(string calldata json, string calldata key) external returns (int256[] memory);
287-
function parseJsonBool(string calldata json, string calldata key) external returns (bool);
288-
function parseJsonBoolArray(string calldata json, string calldata key) external returns (bool[] memory);
289-
function parseJsonAddress(string calldata json, string calldata key) external returns (address);
290-
function parseJsonAddressArray(string calldata json, string calldata key) external returns (address[] memory);
291-
function parseJsonString(string calldata json, string calldata key) external returns (string memory);
292-
function parseJsonStringArray(string calldata json, string calldata key) external returns (string[] memory);
293-
function parseJsonBytes(string calldata json, string calldata key) external returns (bytes memory);
294-
function parseJsonBytesArray(string calldata json, string calldata key) external returns (bytes[] memory);
295-
function parseJsonBytes32(string calldata json, string calldata key) external returns (bytes32);
296-
function parseJsonBytes32Array(string calldata json, string calldata key) external returns (bytes32[] memory);
283+
function parseJsonUint(string calldata json, string calldata key) external pure returns (uint256);
284+
function parseJsonUintArray(string calldata json, string calldata key) external pure returns (uint256[] memory);
285+
function parseJsonInt(string calldata json, string calldata key) external pure returns (int256);
286+
function parseJsonIntArray(string calldata json, string calldata key) external pure returns (int256[] memory);
287+
function parseJsonBool(string calldata json, string calldata key) external pure returns (bool);
288+
function parseJsonBoolArray(string calldata json, string calldata key) external pure returns (bool[] memory);
289+
function parseJsonAddress(string calldata json, string calldata key) external pure returns (address);
290+
function parseJsonAddressArray(string calldata json, string calldata key)
291+
external
292+
pure
293+
returns (address[] memory);
294+
function parseJsonString(string calldata json, string calldata key) external pure returns (string memory);
295+
function parseJsonStringArray(string calldata json, string calldata key) external pure returns (string[] memory);
296+
function parseJsonBytes(string calldata json, string calldata key) external pure returns (bytes memory);
297+
function parseJsonBytesArray(string calldata json, string calldata key) external pure returns (bytes[] memory);
298+
function parseJsonBytes32(string calldata json, string calldata key) external pure returns (bytes32);
299+
function parseJsonBytes32Array(string calldata json, string calldata key)
300+
external
301+
pure
302+
returns (bytes32[] memory);
297303

298304
// Checks if a key exists in a JSON or TOML object.
299305
function keyExists(string calldata json, string calldata key) external view returns (bool);

0 commit comments

Comments
 (0)