From e34b8258228633a13232f4d1243a66357b0fb519 Mon Sep 17 00:00:00 2001 From: picodes Date: Thu, 1 Feb 2024 11:10:22 +0100 Subject: [PATCH] feat: chainId in campaignId --- contracts/DistributionCreator.sol | 5 ++++- test/foundry/unit/DistributionCreator.t.sol | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/contracts/DistributionCreator.sol b/contracts/DistributionCreator.sol index 4c50eaf..3da0837 100644 --- a/contracts/DistributionCreator.sol +++ b/contracts/DistributionCreator.sol @@ -68,6 +68,8 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @notice Base for fee computation uint256 public constant BASE_9 = 1e9; + uint256 public immutable CHAIN_ID = block.chainid; + /// @notice `Core` contract handling access control ICore public core; @@ -291,11 +293,12 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// - `campaign.campaignData` /// This prevents the creation by the same account of two campaigns with the same parameters /// which is not a huge issue - function campaignId(CampaignParameters memory campaignData) public pure returns (bytes32) { + function campaignId(CampaignParameters memory campaignData) public view returns (bytes32) { return bytes32( keccak256( abi.encodePacked( + CHAIN_ID, campaignData.creator, campaignData.rewardToken, campaignData.campaignType, diff --git a/test/foundry/unit/DistributionCreator.t.sol b/test/foundry/unit/DistributionCreator.t.sol index ceece2c..2ed58a1 100644 --- a/test/foundry/unit/DistributionCreator.t.sol +++ b/test/foundry/unit/DistributionCreator.t.sol @@ -260,6 +260,7 @@ contract Test_DistributionCreator_CreateDistribution is DistributionCreatorTest bytes32 campaignId = bytes32( keccak256( abi.encodePacked( + block.chainid, alice, address(angle), uint32(2), @@ -443,6 +444,7 @@ contract Test_DistributionCreator_CreateCampaign is DistributionCreatorTest { bytes32 campaignId = bytes32( keccak256( abi.encodePacked( + block.chainid, alice, address(campaign.rewardToken), uint32(campaign.campaignType), @@ -523,6 +525,7 @@ contract Test_DistributionCreator_CreateCampaigns is DistributionCreatorTest { bytes32 campaignId = bytes32( keccak256( abi.encodePacked( + block.chainid, alice, address(campaigns[0].rewardToken), uint32(campaigns[0].campaignType), @@ -554,6 +557,7 @@ contract Test_DistributionCreator_CreateCampaigns is DistributionCreatorTest { campaignId = bytes32( keccak256( abi.encodePacked( + block.chainid, alice, address(campaigns[1].rewardToken), uint32(campaigns[1].campaignType),