Skip to content
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
Binary file removed .DS_Store
Binary file not shown.
4 changes: 2 additions & 2 deletions script/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity ^0.8.22;

import {Script, console} from "forge-std/Script.sol";
import {SmartnodesCore} from "../src/SmartnodesCore.sol";
import {SmartnodesToken} from "../src/SmartnodesToken.sol";
import {SmartnodesERC20} from "../src/SmartnodesERC20.sol";
import {SmartnodesCoordinator} from "../src/SmartnodesCoordinator.sol";
import {SmartnodesDAO} from "../src/SmartnodesDAO.sol";

Expand All @@ -21,7 +21,7 @@ contract Deploy is Script {

vm.startBroadcast();

SmartnodesToken token = new SmartnodesToken(
SmartnodesERC20 token = new SmartnodesERC20(
DEPLOYMENT_MULTIPLIER,
genesis
);
Expand Down
9 changes: 3 additions & 6 deletions src/SmartnodesCoordinator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity ^0.8.22;

import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {ISmartnodesCore} from "./interfaces/ISmartnodesCore.sol";
import {ISmartnodesToken} from "./interfaces/ISmartnodesToken.sol";
import {ISmartnodesERC20} from "./interfaces/ISmartnodesERC20.sol";

/**
* @title SmartnodesCoordinator
Expand Down Expand Up @@ -31,7 +31,7 @@ contract SmartnodesCoordinator is ReentrancyGuard {

// ============= State Variables ==============
ISmartnodesCore private immutable i_smartnodesCore;
ISmartnodesToken private immutable i_smartnodesToken;
ISmartnodesERC20 private immutable i_smartnodesToken;
uint8 private immutable i_requiredApprovalsPercentage;

// Packed time-related variables
Expand Down Expand Up @@ -134,7 +134,7 @@ contract SmartnodesCoordinator is ReentrancyGuard {
}

i_smartnodesCore = ISmartnodesCore(_smartnodesCore);
i_smartnodesToken = ISmartnodesToken(_smartnodesToken);
i_smartnodesToken = ISmartnodesERC20(_smartnodesToken);
i_requiredApprovalsPercentage = _requiredApprovalsPercentage;

timeConfig = TimeConfig({
Expand Down Expand Up @@ -269,7 +269,6 @@ contract SmartnodesCoordinator is ReentrancyGuard {

// Verify proposal data integrity
bytes32 computedHash = _computeProposalHash(
proposalId,
merkleRoot,
validatorsToRemove,
jobHashes,
Expand Down Expand Up @@ -557,7 +556,6 @@ contract SmartnodesCoordinator is ReentrancyGuard {
}

function _computeProposalHash(
uint8 proposalId,
bytes32 merkleRoot,
address[] calldata validatorsToRemove,
bytes32[] calldata jobHashes,
Expand All @@ -567,7 +565,6 @@ contract SmartnodesCoordinator is ReentrancyGuard {
return
keccak256(
abi.encode(
proposalId,
merkleRoot,
validatorsToRemove,
jobHashes,
Expand Down
6 changes: 3 additions & 3 deletions src/SmartnodesCore.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.22;

import {ISmartnodesCoordinator} from "./interfaces/ISmartnodesCoordinator.sol";
import {ISmartnodesToken, PaymentAmounts} from "./interfaces/ISmartnodesToken.sol";
import {ISmartnodesERC20, PaymentAmounts} from "./interfaces/ISmartnodesERC20.sol";

/**
* @title SmartnodesCore - Job Management System for Secure, Incentivised, Multi-Network P2P Resource Sharing
Expand Down Expand Up @@ -55,7 +55,7 @@ contract SmartnodesCore {
/** Constants */
uint24 private constant UNLOCK_PERIOD = 14 days;

ISmartnodesToken private immutable i_tokenContract;
ISmartnodesERC20 private immutable i_tokenContract;

/** State Variables */
ISmartnodesCoordinator private validatorContract;
Expand Down Expand Up @@ -83,7 +83,7 @@ contract SmartnodesCore {
}

constructor(address _tokenContract) {
i_tokenContract = ISmartnodesToken(_tokenContract);
i_tokenContract = ISmartnodesERC20(_tokenContract);
jobCounter = 0;
}

Expand Down
19 changes: 9 additions & 10 deletions src/SmartnodesDAO.sol
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ contract SmartnodesDAO is ReentrancyGuard {
bool queued;
address[] targets;
bytes[] calldatas;
uint256[] values;
string description;
}

Expand Down Expand Up @@ -137,6 +138,7 @@ contract SmartnodesDAO is ReentrancyGuard {
function propose(
address[] calldata targets,
bytes[] calldata calldatas,
uint256[] calldata values,
string calldata description
) external returns (uint256) {
uint256 targetsLength = targets.length;
Expand Down Expand Up @@ -168,13 +170,9 @@ contract SmartnodesDAO is ReentrancyGuard {
p.startTime = uint128(block.timestamp);
p.endTime = uint128(block.timestamp + votingPeriod);

// Copy arrays
p.targets = new address[](targetsLength);
p.calldatas = new bytes[](targetsLength);
for (uint256 i = 0; i < targetsLength; ++i) {
p.targets[i] = targets[i];
p.calldatas[i] = calldatas[i];
}
p.targets = targets;
p.calldatas = calldatas;
p.values = values;
p.description = description;

emit ProposalCreated(
Expand Down Expand Up @@ -269,9 +267,10 @@ contract SmartnodesDAO is ReentrancyGuard {
// Execute all calls
uint256 targetsLength = p.targets.length;
for (uint256 i = 0; i < targetsLength; ++i) {
(bool success, bytes memory returnData) = p.targets[i].call(
p.calldatas[i]
);
(bool success, bytes memory returnData) = p.targets[i].call{
value: p.values[i]
}(p.calldatas[i]);

if (!success) {
// Handle revert reason
if (returnData.length > 0) {
Expand Down
Loading