diff --git a/contracts/test/auth.ts b/contracts/test/auth.ts index a27a8787..9d8f0e91 100644 --- a/contracts/test/auth.ts +++ b/contracts/test/auth.ts @@ -160,10 +160,15 @@ describe('Auth', function () { siweStr4, await erc191sign(siweStr4, account), ); - // Wait until the next second after expiration - await delay(expiration.getTime() - Date.now() + 1000); - const tx = await siweAuthTests.doNothing(); - await tx.wait(); + // Wait until the block time is greater than the expiration date + await new Promise((resolve, reject) => { + ethers.provider.on('block', async (blockNumber) => { + const ts = (await ethers.provider.getBlock(blockNumber))!.timestamp; + if (ts * 1000 > expiration.getTime()) { + resolve(); + } + }); + }); await expect(siweAuthTests.testVerySecretMessage(bearer4)).to.be.reverted; // Revoke bearer. diff --git a/contracts/test/gas.ts b/contracts/test/gas.ts index 02a14abe..329cb233 100644 --- a/contracts/test/gas.ts +++ b/contracts/test/gas.ts @@ -30,8 +30,11 @@ describe('Gas Padding', function () { // Note: calldata isn't included in gas padding // Thus when the value is 0 it will use 4 gas instead of 16 gas + // TODO: Workaround for flaky gas used https://github.com/oasisprotocol/sapphire-paratime/issues/337. tx = await contract.testConstantTime(0, 100000); receipt = await tx.wait(); - expect(receipt?.cumulativeGasUsed).eq(initialGasUsed - 12n); + expect(receipt?.cumulativeGasUsed) + .gte(initialGasUsed - 13n) + .lte(initialGasUsed - 12n); }); });