diff --git a/lib/forge-std b/lib/forge-std index 155d547..bb4ceea 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 155d547c449afa8715f538d69454b83944117811 +Subproject commit bb4ceea94d6f10eeb5b41dc2391c6c8bf8e734ef diff --git a/src/ScriptTools.sol b/src/ScriptTools.sol index d90dd57..c44af96 100644 --- a/src/ScriptTools.sol +++ b/src/ScriptTools.sol @@ -66,7 +66,7 @@ library ScriptTools { * @param name The default config file to load if no environment variables are set. * @return config The raw json text of the config. */ - function loadConfig(string memory name) internal returns (string memory config) { + function loadConfig(string memory name) internal view returns (string memory config) { config = vm.envOr("FOUNDRY_SCRIPT_CONFIG_TEXT", string("")); if (eq(config, "")) { config = readInput(vm.envOr("FOUNDRY_SCRIPT_CONFIG", name)); @@ -80,7 +80,7 @@ library ScriptTools { * Finally will revert if no environment variables are set. * @return config The raw json text of the config. */ - function loadConfig() internal returns (string memory config) { + function loadConfig() internal view returns (string memory config) { config = vm.envOr("FOUNDRY_SCRIPT_CONFIG_TEXT", string("")); if (eq(config, "")) { config = readInput(vm.envString("FOUNDRY_SCRIPT_CONFIG")); @@ -95,7 +95,7 @@ library ScriptTools { * @param name The default dependency file to load if no environment variables are set. * @return dependencies The raw json text of the dependencies. */ - function loadDependencies(string memory name) internal returns (string memory dependencies) { + function loadDependencies(string memory name) internal view returns (string memory dependencies) { dependencies = vm.envOr("FOUNDRY_SCRIPT_DEPS_TEXT", string("")); if (eq(dependencies, "")) { dependencies = readOutput(vm.envOr("FOUNDRY_SCRIPT_DEPS", name)); @@ -109,7 +109,7 @@ library ScriptTools { * Finally will revert if no environment variables are set. * @return dependencies The raw json text of the dependencies. */ - function loadDependencies() internal returns (string memory dependencies) { + function loadDependencies() internal view returns (string memory dependencies) { dependencies = vm.envOr("FOUNDRY_SCRIPT_DEPS_TEXT", string("")); if (eq(dependencies, "")) { dependencies = readOutput(vm.envString("FOUNDRY_SCRIPT_DEPS")); @@ -250,59 +250,59 @@ library ScriptTools { // Read config variable, but allow for an environment variable override - function readUint(string memory json, string memory key, string memory envKey) internal returns (uint256) { + function readUint(string memory json, string memory key, string memory envKey) internal view returns (uint256) { return vm.envOr(envKey, stdJson.readUint(json, key)); } - function readUintArray(string memory json, string memory key, string memory envKey) internal returns (uint256[] memory) { + function readUintArray(string memory json, string memory key, string memory envKey) internal view returns (uint256[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readUintArray(json, key)); } - function readInt(string memory json, string memory key, string memory envKey) internal returns (int256) { + function readInt(string memory json, string memory key, string memory envKey) internal view returns (int256) { return vm.envOr(envKey, stdJson.readInt(json, key)); } - function readIntArray(string memory json, string memory key, string memory envKey) internal returns (int256[] memory) { + function readIntArray(string memory json, string memory key, string memory envKey) internal view returns (int256[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readIntArray(json, key)); } - function readBytes32(string memory json, string memory key, string memory envKey) internal returns (bytes32) { + function readBytes32(string memory json, string memory key, string memory envKey) internal view returns (bytes32) { return vm.envOr(envKey, stdJson.readBytes32(json, key)); } - function readBytes32Array(string memory json, string memory key, string memory envKey) internal returns (bytes32[] memory) { + function readBytes32Array(string memory json, string memory key, string memory envKey) internal view returns (bytes32[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readBytes32Array(json, key)); } - function readString(string memory json, string memory key, string memory envKey) internal returns (string memory) { + function readString(string memory json, string memory key, string memory envKey) internal view returns (string memory) { return vm.envOr(envKey, stdJson.readString(json, key)); } - function readStringArray(string memory json, string memory key, string memory envKey) internal returns (string[] memory) { + function readStringArray(string memory json, string memory key, string memory envKey) internal view returns (string[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readStringArray(json, key)); } - function readAddress(string memory json, string memory key, string memory envKey) internal returns (address) { + function readAddress(string memory json, string memory key, string memory envKey) internal view returns (address) { return vm.envOr(envKey, stdJson.readAddress(json, key)); } - function readAddressArray(string memory json, string memory key, string memory envKey) internal returns (address[] memory) { + function readAddressArray(string memory json, string memory key, string memory envKey) internal view returns (address[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readAddressArray(json, key)); } - function readBool(string memory json, string memory key, string memory envKey) internal returns (bool) { + function readBool(string memory json, string memory key, string memory envKey) internal view returns (bool) { return vm.envOr(envKey, stdJson.readBool(json, key)); } - function readBoolArray(string memory json, string memory key, string memory envKey) internal returns (bool[] memory) { + function readBoolArray(string memory json, string memory key, string memory envKey) internal view returns (bool[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readBoolArray(json, key)); } - function readBytes(string memory json, string memory key, string memory envKey) internal returns (bytes memory) { + function readBytes(string memory json, string memory key, string memory envKey) internal view returns (bytes memory) { return vm.envOr(envKey, stdJson.readBytes(json, key)); } - function readBytesArray(string memory json, string memory key, string memory envKey) internal returns (bytes[] memory) { + function readBytesArray(string memory json, string memory key, string memory envKey) internal view returns (bytes[] memory) { return vm.envOr(envKey, vm.envOr(DELIMITER_OVERRIDE, DEFAULT_DELIMITER), stdJson.readBytesArray(json, key)); } diff --git a/src/tests/ScriptToolsTest.t.sol b/src/tests/ScriptToolsTest.t.sol index d1abc9e..9829ce2 100644 --- a/src/tests/ScriptToolsTest.t.sol +++ b/src/tests/ScriptToolsTest.t.sol @@ -22,46 +22,44 @@ contract ScriptToolTest is DssTest { string loadedExports; - function test_stringToBytes32() public { + function test_stringToBytes32() public pure { assertEq(ScriptTools.stringToBytes32("test"), bytes32("test")); } - function test_stringToBytes32_empty() public { + function test_stringToBytes32_empty() public pure { assertEq(ScriptTools.stringToBytes32(""), bytes32("")); } - function test_ilkToChainlogFormat() public { + function test_ilkToChainlogFormat() public pure { assertEq(ScriptTools.ilkToChainlogFormat(bytes32("ETH-A")), "ETH_A"); } - function test_ilkToChainlogFormat_empty() public { + function test_ilkToChainlogFormat_empty() public pure { assertEq(ScriptTools.ilkToChainlogFormat(bytes32("")), ""); } - function test_ilkToChainlogFormat_multiple() public { + function test_ilkToChainlogFormat_multiple() public pure { assertEq(ScriptTools.ilkToChainlogFormat(bytes32("DIRECT-AAVEV2-DAI")), "DIRECT_AAVEV2_DAI"); } - function test_eq() public { + function test_eq() public pure { assertTrue(ScriptTools.eq("A", "A")); } - function test_not_eq() public { + function test_not_eq() public pure { assertTrue(!ScriptTools.eq("A", "B")); } - function test_export_contracts() public { + function test_export() public { // Export some contracts and write to output - ScriptTools.exportContract("myExports", "label1", address(1)); - ScriptTools.exportContract("myExports", "label2", address(2)); + ScriptTools.exportContract("myExports", "addr1", address(0x1)); + ScriptTools.exportContract("myExports", "addr2", address(0x2)); // Simulate a subsequent run loading a previously written file (use latest deploy) loadedExports = ScriptTools.readOutput("myExports", 1); - assertEq(stdJson.readAddress(loadedExports, ".label1"), address(1)); - assertEq(stdJson.readAddress(loadedExports, ".label2"), address(2)); - } + assertEq(stdJson.readAddress(loadedExports, ".addr1"), address(0x1)); + assertEq(stdJson.readAddress(loadedExports, ".addr2"), address(0x2)); - function test_export_values() public { // Export some values and write to output ScriptTools.exportValue("myExports", "label1", 1); ScriptTools.exportValue("myExports", "label2", 2);