Skip to content

Commit 2f61a81

Browse files
committed
Improve coverage
1 parent 08de988 commit 2f61a81

File tree

4 files changed

+53
-5
lines changed

4 files changed

+53
-5
lines changed

contracts/extensions/CoinMachine.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ contract CoinMachine is ColonyExtension, BasicMetaTransaction {
210210
"coin-machine-unauthorised"
211211
);
212212

213-
uint256 maxPurchase = getMaxPurchase(msg.sender);
213+
uint256 maxPurchase = getMaxPurchase(msgSender());
214214
uint256 numTokens = min(maxPurchase, _numTokens);
215215
uint256 totalCost = wmul(numTokens, activePrice);
216216

@@ -224,7 +224,7 @@ contract CoinMachine is ColonyExtension, BasicMetaTransaction {
224224
// Do userLimitFraction bookkeeping (only if needed)
225225
if (userLimitFraction < WAD) {
226226
soldTotal = add(soldTotal, numTokens);
227-
soldUser[msg.sender] = add(soldUser[msg.sender], numTokens);
227+
soldUser[msgSender()] = add(soldUser[msgSender()], numTokens);
228228
}
229229

230230
// Check if we've sold out

contracts/extensions/EvaluatedExpenditure.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ contract EvaluatedExpenditure is ColonyExtension, BasicMetaTransaction {
8787
public
8888
{
8989
require(_slots.length == _payoutModifiers.length, "evaluated-expenditure-bad-slots");
90-
require(colony.getExpenditure(_id).owner == msg.sender, "evaluated-expenditure-not-owner");
90+
require(colony.getExpenditure(_id).owner == msgSender(), "evaluated-expenditure-not-owner");
9191

9292
bool[] memory mask = new bool[](2);
9393
bytes32[] memory keys = new bytes32[](2);

test/contracts-network/colony-network-extensions.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ import { soliditySha3 } from "web3-utils";
88

99
import { checkErrorRevert, web3GetBalance, encodeTxData } from "../../helpers/test-helper";
1010
import { setupEtherRouter } from "../../helpers/upgradable-contracts";
11-
import { setupColonyNetwork, setupMetaColonyWithLockedCLNYToken, setupRandomColony } from "../../helpers/test-data-generator";
1211
import { UINT256_MAX } from "../../helpers/constants";
1312

13+
import {
14+
setupColonyNetwork,
15+
setupMetaColonyWithLockedCLNYToken,
16+
setupRandomColony,
17+
getMetaTransactionParameters,
18+
} from "../../helpers/test-data-generator";
19+
1420
const { expect } = chai;
1521
chai.use(bnChai(web3.utils.BN));
1622

@@ -355,5 +361,24 @@ contract("Colony Network Extensions", (accounts) => {
355361
const action = await encodeTxData(tokenLocking, "unlockTokenForUser", [token.address, USER, lockId]);
356362
await checkErrorRevert(otherColonyExecuteCall.executeCall(tokenLocking.address, action), "colony-token-locking-not-locker");
357363
});
364+
365+
it("allows extensions to use metatransactions", async () => {
366+
await metaColony.addExtensionToNetwork(TEST_EXTENSION, testExtension1Resolver.address);
367+
await colony.installExtension(TEST_EXTENSION, 1, { from: ROOT });
368+
369+
const extensionAddress = await colonyNetwork.getExtensionInstallation(TEST_EXTENSION, colony.address);
370+
const extension = await TestExtension1.at(extensionAddress);
371+
372+
let nonce;
373+
nonce = await extension.getMetatransactionNonce(ROOT);
374+
expect(nonce).to.be.zero;
375+
376+
const txData = await extension.contract.methods.foo().encodeABI();
377+
const { r, s, v } = await getMetaTransactionParameters(txData, ROOT, extension.address);
378+
await extension.executeMetaTransaction(ROOT, txData, r, s, v, { from: USER });
379+
380+
nonce = await extension.getMetatransactionNonce(ROOT);
381+
expect(nonce).to.eq.BN(1);
382+
});
358383
});
359384
});

test/extensions/evaluated-expenditures.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ import { soliditySha3 } from "web3-utils";
88
import { UINT256_MAX, WAD } from "../../helpers/constants";
99
import { setupEtherRouter } from "../../helpers/upgradable-contracts";
1010
import { checkErrorRevert, web3GetCode } from "../../helpers/test-helper";
11-
import { setupColonyNetwork, setupRandomColony, setupMetaColonyWithLockedCLNYToken } from "../../helpers/test-data-generator";
11+
12+
import {
13+
setupColonyNetwork,
14+
setupRandomColony,
15+
setupMetaColonyWithLockedCLNYToken,
16+
getMetaTransactionParameters,
17+
} from "../../helpers/test-data-generator";
1218

1319
const { expect } = chai;
1420
chai.use(bnChai(web3.utils.BN));
@@ -127,5 +133,22 @@ contract("EvaluatedExpenditure", (accounts) => {
127133
"evaluated-expenditure-not-owner"
128134
);
129135
});
136+
137+
it("can set the payout modifier via metatransaction", async () => {
138+
const txData = await evaluatedExpenditure.contract.methods
139+
.setExpenditurePayoutModifiers(1, UINT256_MAX.toString(), expenditureId.toString(), [0], [WAD.toString()])
140+
.encodeABI();
141+
142+
const { r, s, v } = await getMetaTransactionParameters(txData, USER0, evaluatedExpenditure.address);
143+
144+
let expenditureSlot;
145+
expenditureSlot = await colony.getExpenditureSlot(expenditureId, 0);
146+
expect(expenditureSlot.payoutModifier).to.be.zero;
147+
148+
await evaluatedExpenditure.executeMetaTransaction(USER0, txData, r, s, v, { from: USER1 });
149+
150+
expenditureSlot = await colony.getExpenditureSlot(expenditureId, 0);
151+
expect(expenditureSlot.payoutModifier).to.eq.BN(WAD);
152+
});
130153
});
131154
});

0 commit comments

Comments
 (0)