From e8e71b8b040e418db3d1f0d094eb34d2b3b81fee Mon Sep 17 00:00:00 2001 From: moshmage Date: Sun, 2 Oct 2022 08:28:25 +0100 Subject: [PATCH] change how funding/reward is calculated (#56) * change transfer to multiply before dividing on close bounty * change e2e to create two funding rounds from the same acc to test that partial funding works --- contracts/bepro/NetworkV2.sol | 2 +- test/models/network-v2.spec.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/contracts/bepro/NetworkV2.sol b/contracts/bepro/NetworkV2.sol index 159ab276..4f8d8046 100644 --- a/contracts/bepro/NetworkV2.sol +++ b/contracts/bepro/NetworkV2.sol @@ -768,7 +768,7 @@ contract NetworkV2 is Governed, ReentrancyGuard { for (uint256 i = 0; i <= proposal.details.length - 1; i++) { INetworkV2.ProposalDetail memory detail = proposal.details[i]; INetworkV2.BountyConnector memory award = INetworkV2.BountyConnector(address(this), bounty.id, detail.percentage, "dev"); - require(erc20.transfer(detail.recipient, proposalAmount.div(100).mul(detail.percentage)), "5"); + require(erc20.transfer(detail.recipient, proposalAmount.mul(detail.percentage).div(100)), "5"); if (address(registry) != address(0)) { if (address(registry.bountyToken()) != address(0)) { diff --git a/test/models/network-v2.spec.ts b/test/models/network-v2.spec.ts index 42549ef5..31193802 100644 --- a/test/models/network-v2.spec.ts +++ b/test/models/network-v2.spec.ts @@ -304,7 +304,8 @@ describe(`NetworkV2`, () => { web3Connection.switchToAccount(Alice.privateKey); await bountyTransactional.approve(network.contractAddress!, AMOUNT_1M); - await hasTxBlockNumber(network.fundBounty(bountyId, 10000)); + await hasTxBlockNumber(network.fundBounty(bountyId, 10000/2)); + await hasTxBlockNumber(network.fundBounty(bountyId, 10000/2)); web3Connection.switchToAccount(Admin.privateKey); await increaseTime(62, web3Connection.Web3); @@ -392,6 +393,8 @@ describe(`NetworkV2`, () => { it(`Alice withdraws from bounty`, async () => { await hasTxBlockNumber(network.withdrawFundingReward(bountyId, 0)); + expect(await rewardToken.getTokenAmount(Alice.address)).to.be.eq((500).toString()); + await hasTxBlockNumber(network.withdrawFundingReward(bountyId, 1)); expect(await rewardToken.getTokenAmount(Alice.address)).to.be.eq((1000).toString()); }); });