Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade forge-std to latest release and fix solc warnings that happen… #41

Merged
merged 1 commit into from
Apr 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions src/ScriptTools.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand All @@ -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"));
Expand All @@ -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));
Expand All @@ -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"));
Expand Down Expand Up @@ -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));
}

Expand Down
26 changes: 12 additions & 14 deletions src/tests/ScriptToolsTest.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Loading