Skip to content

Commit

Permalink
Fix Mtx broadcaster timeouts
Browse files Browse the repository at this point in the history
  • Loading branch information
area committed Aug 9, 2023
1 parent f9d09ed commit b157e75
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 14 deletions.
2 changes: 1 addition & 1 deletion packages/metatransaction-broadcaster/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ COPY ./packages ./packages
COPY ./package.json ./
COPY ./package-lock.json ./
COPY ./build ./build
RUN yarn
RUN npm i
RUN cd ./packages/metatransaction-broadcaster/ && npm i
RUN cd ./packages/package-utils/ && npm i
EXPOSE 3000
Expand Down
38 changes: 25 additions & 13 deletions packages/metatransaction-broadcaster/MetatransactionBroadcaster.js
Original file line number Diff line number Diff line change
Expand Up @@ -295,20 +295,32 @@ class MetatransactionBroadcaster {
}

async isValidSetAuthorityTransaction(tx, userAddress) {
let logs = [];
// Get the most recent metatx this user sent on colonyNetwork
let logs = await this.provider.getLogs({
address: this.colonyNetwork.address,
topics: [ethers.utils.id("MetaTransactionExecuted(address,address,bytes)")],
fromBlock: 0,
});
const data = logs
.map((l) => {
return {
log: l,
event: this.colonyNetwork.interface.parseLog(l),
};
})
.filter((x) => ethers.utils.getAddress(x.event.args.userAddress) === ethers.utils.getAddress(userAddress));
const stepSize = 10000;
let toBlock = await this.provider.getBlockNumber();
let fromBlock = toBlock - stepSize;
let data = [];
while (data.length === 0) {
logs = await this.provider.getLogs({
address: this.colonyNetwork.address,
topics: [ethers.utils.id("MetaTransactionExecuted(address,address,bytes)")],
fromBlock,
toBlock,
});

data = logs
.map((l) => {
return {
log: l,
event: this.colonyNetwork.interface.parseLog(l),
};
})
.filter((x) => ethers.utils.getAddress(x.event.args.userAddress) === ethers.utils.getAddress(userAddress));

fromBlock -= stepSize;
toBlock -= stepSize;
}
// Get the TokenAuthorityDeployed event
const receipt = await this.provider.getTransactionReceipt(data[data.length - 1].log.transactionHash);
logs = receipt.logs.map((l) => this.colonyNetwork.interface.parseLog(l)).filter((e) => e.name === "TokenAuthorityDeployed");
Expand Down

0 comments on commit b157e75

Please sign in to comment.