Skip to content

Commit e48c519

Browse files
committed
Make MTX broadcaster more gas(limit) efficient
1 parent 5a22825 commit e48c519

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

packages/metatransaction-broadcaster/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ COPY ./packages ./packages
33
COPY ./package.json ./
44
COPY ./package-lock.json ./
55
COPY ./build ./build
6-
RUN npm i
6+
RUN npm ci
77
RUN cd ./packages/metatransaction-broadcaster/ && npm i
88
RUN cd ./packages/package-utils/ && npm i
99
EXPOSE 3000

packages/metatransaction-broadcaster/MetatransactionBroadcaster.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,10 @@ class MetatransactionBroadcaster {
336336

337337
try {
338338
gasEstimate = await estimateGas(...args);
339+
if (ethers.BigNumber.from(args[args.length - 1].gasLimit).gt(gasEstimate.mul(11).div(10))) {
340+
// eslint-disable-next-line
341+
args[args.length - 1].gasLimit = gasEstimate.mul(11).div(10);
342+
}
339343
} catch (err) {
340344
let reason;
341345
try {

test/packages/metaTransactionBroadcaster.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const axios = require("axios");
1010
const { TruffleLoader } = require("../../packages/package-utils");
1111
const { setupEtherRouter } = require("../../helpers/upgradable-contracts");
1212
const { UINT256_MAX } = require("../../helpers/constants");
13+
const { web3GetTransaction } = require("../../helpers/test-helper");
1314

1415
const MetatransactionBroadcaster = require("../../packages/metatransaction-broadcaster/MetatransactionBroadcaster");
1516
const { getMetaTransactionParameters, getPermitParameters, setupColony } = require("../../helpers/test-data-generator");
@@ -242,6 +243,9 @@ contract("Metatransaction broadcaster", (accounts) => {
242243
expect(balanceAccount1).to.eq.BN(1200000);
243244
const balanceAccount2 = await metaTxToken.balanceOf(colony.address);
244245
expect(balanceAccount2).to.eq.BN(300000);
246+
247+
const tx = await web3GetTransaction(txHash);
248+
expect(tx.gas).to.be.lt.BN(500000);
245249
});
246250

247251
it("valid transactions broadcast near-simultaneously are still mined", async function () {

0 commit comments

Comments
 (0)