Skip to content

Commit

Permalink
Merge pull request #4 from Hats-Protocol/hats-module-v0.5.0
Browse files Browse the repository at this point in the history
Upgrade to hats-module v0.5.0
  • Loading branch information
gershido authored Aug 28, 2023
2 parents 10197db + d54a3d1 commit db3793f
Show file tree
Hide file tree
Showing 10 changed files with 28 additions and 15 deletions.
5 changes: 3 additions & 2 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ libs = ['lib']
optimizer_runs = 1_000_000
gas_reports = ["StakingEligibility", "HatsModuleFactory"]
auto_detect_solc = false
solc = "0.8.18"
solc = "0.8.19"
bytecode_hash = "none"
remappings = [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
Expand Down Expand Up @@ -54,4 +55,4 @@ optimism = {key = "${OPTIMISM_KEY}", url = "https://api-optimistic.etherscan.io/
sepolia = {key = "${ETHERSCAN_KEY}", url = "https://api-sepolia.etherscan.io/api"}
polygon = {key = "${POLYGONSCAN_KEY}", url = "https://api.polygonscan.com/api"}

# See more config options https://github.com/foundry-rs/foundry/tree/master/config
# See more config options https://github.com/foundry-rs/foundry/tree/master/config
6 changes: 3 additions & 3 deletions script/StakingEligibility.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ contract DeployImplementation is Script {
bytes32 public SALT = bytes32(abi.encode(0x4a75)); // ~ H(4) A(a) T(7) S(5)

// default values
string public version = "0.2.0"; // increment with each deploy
string public version = "0.3.0"; // increment with each deploy
bool private verbose = true;

/// @notice Override default values, if desired
Expand All @@ -37,12 +37,12 @@ contract DeployImplementation is Script {
}

contract DeployInstance is Script {
address public implementation = 0xfFc3eFab7EeA6fe08B3A9FdE1F95B21683DdE869; // goerli
address public implementation = 0x9E01030aF633Be5a439DF122F2eEf750b44B8aC7; // goerli, v0.3.0
address public instance;
bytes public otherImmutableArgs;
bytes public initData;
address public token = 0xaFF4481D10270F50f203E0763e2597776068CBc5; // goerli, WEENUS
HatsModuleFactory public factory = HatsModuleFactory(0x696DBABd781D0e90b833968cF5C36C405772D4EA); // goerli, v0.1.0
HatsModuleFactory public factory = HatsModuleFactory(0x6D7E710BDbC80FC164ABA85e242E535c0A54CEc6); // goerli, v0.5.0
uint256 public minStake = 1 ether;
uint256 public stakerHat = 0x00000060_0001_0003_0003_0001_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000; // 96.1.3.3.1
// Arbitrator
Expand Down
4 changes: 2 additions & 2 deletions src/StakingEligibility.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

// import { console2 } from "forge-std/Test.sol"; // remove before deploy
import { HatsEligibilityModule, HatsModule } from "hats-module/HatsEligibilityModule.sol";
Expand Down Expand Up @@ -164,7 +164,7 @@ contract StakingEligibility is HatsEligibilityModule {
/**
* @inheritdoc HatsModule
*/
function setUp(bytes calldata _initdata) public override initializer {
function _setUp(bytes calldata _initdata) internal override {
// decode the _initData bytes and set the values in storage
(uint248 _minStake, uint256 _judgeHat, uint256 _recipientHat, uint256 _cooldownPeriod) =
abi.decode(_initdata, (uint248, uint256, uint256, uint256));
Expand Down
2 changes: 1 addition & 1 deletion test/StakingEligibility.invariants.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

import { Test, console2 } from "forge-std/Test.sol";
import {
Expand Down
16 changes: 14 additions & 2 deletions test/StakingEligibility.t.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

import { Test, console2 } from "forge-std/Test.sol";
import { StakingEligibility, IERC20 } from "src/StakingEligibility.sol";
Expand Down Expand Up @@ -225,12 +225,24 @@ contract HarnessTest is StakingEligibilityTest {
super.setUp();
// deploy the harness implementation
harnessImpl = new StakingEligibilityHarness("harness version");

uint256 judgeHatHarness;
uint256 recipientHatHarness;
address tokenHarness = address(IERC20(0x6B175474E89094C44Da98b954EedeAC495271d0F)); // DAI
uint248 minStakeHarness = 1000;
uint256 cooldownPeriodHarness = 1 hours;

// encode the other immutable args
bytes memory otherImmutableArgsHarness = abi.encodePacked(tokenHarness);
// encode the init data
bytes memory initDataHarness =
abi.encode(minStakeHarness, judgeHatHarness, recipientHatHarness, cooldownPeriodHarness);
// deploy an instance of the harness and initialize it with the same initData as `instance`
harnessInstance =
// StakingEligibilityHarness(factory.createHatsModule(address(harnessImpl), stakerHat, otherImmutableArgs,
// initData));
StakingEligibilityHarness(
deployModuleInstance(factory, address(harnessImpl), stakerHat, otherImmutableArgs, initData)
deployModuleInstance(factory, address(harnessImpl), stakerHat, otherImmutableArgsHarness, initDataHarness)
);
}
}
Expand Down
2 changes: 1 addition & 1 deletion test/handlers/AdminHandler.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

import { Test, console2, DSTest, TestBase, StdCheats, StdUtils } from "forge-std/Test.sol";
import { StakingEligibility, IERC20 } from "src/StakingEligibility.sol";
Expand Down
2 changes: 1 addition & 1 deletion test/handlers/LibHandler.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

struct AddressSet {
address[] addrs;
Expand Down
2 changes: 1 addition & 1 deletion test/handlers/SlashingHandler.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

import { Test, console2, DSTest, TestBase, StdCheats, StdUtils } from "forge-std/Test.sol";
import { StakingEligibility, IERC20 } from "src/StakingEligibility.sol";
Expand Down
2 changes: 1 addition & 1 deletion test/handlers/StakingHandler.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.18;
pragma solidity ^0.8.19;

import { Test, console2, DSTest, TestBase, StdCheats, StdUtils } from "forge-std/Test.sol";
import { StakingEligibility, IERC20 } from "src/StakingEligibility.sol";
Expand Down

0 comments on commit db3793f

Please sign in to comment.