From 5c04930ed97404dd6de32633b08ceb00321f5bb9 Mon Sep 17 00:00:00 2001 From: Aditya Rout Date: Mon, 26 Dec 2022 20:05:06 +0530 Subject: [PATCH 1/3] Extend test coverage --- eth/test/bridge.test.js | 358 ++++++++++++++++++++-------------------- 1 file changed, 181 insertions(+), 177 deletions(-) diff --git a/eth/test/bridge.test.js b/eth/test/bridge.test.js index 0fe848eb..2405b0ab 100644 --- a/eth/test/bridge.test.js +++ b/eth/test/bridge.test.js @@ -1,29 +1,38 @@ -const { expect, use } = require("chai"); +const { expect } = require("chai"); const { ethers, upgrades } = require("hardhat"); -const { getImplementationAddress } = require("@openzeppelin/upgrades-core"); -const { time, takeSnapshot, SnapshotRestorer } = require("@nomicfoundation/hardhat-network-helpers"); +const { takeSnapshot, SnapshotRestorer } = require("@nomicfoundation/hardhat-network-helpers"); const WETH = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"; -const Uniswap = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D" +const Uniswap = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"; const tokenAddress = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"; const buyTokenForEth = async (buyer, router, ethAmount, path) => { - await router.connect(buyer).swapExactETHForTokens(0, path, buyer.address, ethers.constants.MaxUint256, { value: ethAmount }); + await router + .connect(buyer) + .swapExactETHForTokens(0, path, buyer.address, ethers.constants.MaxUint256, { value: ethAmount }); }; describe("Spectre Bridge", () => { - let router, tokenInstance, weth; + let router, tokenInstance; let owner, someone, relayer, anotherRelayer, someoneWithTokens, pausableAdmin, unpausableAdmin, whitelistingAdmin; let bridge, proxy; let nonce, anotherNonce; let snapshotA = SnapshotRestorer; before(async () => { - [owner, someone, relayer, anotherRelayer, someoneWithTokens, pausableAdmin, unpausableAdmin, whitelistingAdmin] = await ethers.getSigners(); + [ + owner, + someone, + relayer, + anotherRelayer, + someoneWithTokens, + pausableAdmin, + unpausableAdmin, + whitelistingAdmin + ] = await ethers.getSigners(); router = await ethers.getContractAt("IUniswapV2Router01", Uniswap); tokenInstance = await ethers.getContractAt("ERC20", tokenAddress); - weth = await ethers.getContractAt("ERC20", WETH); await buyTokenForEth(relayer, router, ethers.utils.parseEther("100", "ether"), [WETH, tokenAddress]); await buyTokenForEth(anotherRelayer, router, ethers.utils.parseEther("100", "ether"), [WETH, tokenAddress]); @@ -34,7 +43,7 @@ describe("Spectre Bridge", () => { await tokenInstance.connect(someone).transfer(someoneWithTokens.address, someoneBalance); bridge = await ethers.getContractFactory("EthErc20FastBridge"); - proxy = await upgrades.deployProxy(bridge, [[], []], { unsafeAllow: ['delegatecall'] }); + proxy = await upgrades.deployProxy(bridge, [[], []], { unsafeAllow: ["delegatecall"] }); await proxy.deployed(); await proxy.connect(owner).grantRole(await proxy.PAUSABLE_ADMIN_ROLE(), pausableAdmin.address); @@ -45,7 +54,7 @@ describe("Spectre Bridge", () => { anotherNonce = 11231232; snapshotA = await takeSnapshot(); - }) + }); afterEach(async () => await snapshotA.restore()); describe("Whitelisting", () => { @@ -53,25 +62,34 @@ describe("Spectre Bridge", () => { "0xdAC17F958D2ee523a2206206994597C13D831ec7", "0xB8c77482e45F1F44dE1745F52C74426C631bDD52", "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" - ] - const tokensWhitelistStatuses = [ - true, - true, - false - ] + ]; + const tokensWhitelistStatuses = [true, true, false]; it("Should add tokens to whitelist", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens(tokensAddresses, tokensWhitelistStatuses)).to.emit(proxy, "SetTokens").withArgs(tokensAddresses, tokensWhitelistStatuses); + await expect( + proxy.connect(whitelistingAdmin).setWhitelistedTokens(tokensAddresses, tokensWhitelistStatuses) + ) + .to.emit(proxy, "SetTokens") + .withArgs(tokensAddresses, tokensWhitelistStatuses); expect(await proxy.isTokenInWhitelist(tokensAddresses[0])).to.be.true; expect(await proxy.isTokenInWhitelist(tokensAddresses[1])).to.be.true; expect(await proxy.isTokenInWhitelist(tokensAddresses[2])).to.be.false; - }) + }); it("Shouldn't setWhitelistedTokens by someone", async () => { - await expect(proxy.connect(someone).setWhitelistedTokens(tokensAddresses, tokensWhitelistStatuses)).to.be.reverted; - }) - }) + await expect(proxy.connect(someone).setWhitelistedTokens(tokensAddresses, tokensWhitelistStatuses)).to.be + .reverted; + }); + + it("Shouldn't setWhitelistedTokens if arrays of different lengths are passed", async () => { + const tokensWhitelistStatuses = [true, true, false, true]; + + await expect( + proxy.connect(whitelistingAdmin).setWhitelistedTokens(tokensAddresses, tokensWhitelistStatuses) + ).to.be.revertedWith("Arrays must be equal"); + }); + }); it("Should deploy Bridge with tokens and whitelist states", async () => { let tokensAddresses = [ @@ -79,238 +97,224 @@ describe("Spectre Bridge", () => { "0xa1f5A105d73204b45778983038f733d8867fBea0", "0x3195D5df0521d2Fcd5b02413E23e4b1219790767" ]; - let tokensWhitelistStatuses = [ - true, - true, - false - ]; + let tokensWhitelistStatuses = [true, true, false]; const bridgeV1 = await ethers.getContractFactory("EthErc20FastBridge"); - const proxyV1 = await upgrades.deployProxy(bridgeV1, [tokensAddresses, tokensWhitelistStatuses], { unsafeAllow: ['delegatecall'] }); + const proxyV1 = await upgrades.deployProxy(bridgeV1, [tokensAddresses, tokensWhitelistStatuses], { + unsafeAllow: ["delegatecall"] + }); await proxyV1.deployed(); + await expect(proxyV1.initialize(["0x3195D5df0521d2Fcd5b02413E23e4b1219790767"], [false])).to.be.reverted; + expect(await proxyV1.isTokenInWhitelist(tokensAddresses[1])).to.be.true; expect(await proxyV1.isTokenInWhitelist(tokensAddresses[2])).to.be.false; - await expect(proxyV1.connect(owner).setWhitelistedTokens( - [tokensAddresses[2]], - [true] - )).to.emit(proxyV1, "SetTokens").withArgs([tokensAddresses[2]], [true]); + await expect(proxyV1.connect(owner).setWhitelistedTokens([tokensAddresses[2]], [true])) + .to.emit(proxyV1, "SetTokens") + .withArgs([tokensAddresses[2]], [true]); expect(await proxyV1.isTokenInWhitelist(tokensAddresses[2])).to.be.true; - }) + }); + + it("Should upgrade Bridge ", async () => { + const bridgeV1 = await ethers.getContractFactory("EthErc20FastBridge"); + await expect( + upgrades.upgradeProxy("0xc3023a2c9f7B92d1dd19F488AF6Ee107a78Df9DB", bridgeV1.connect(someone), { + unsafeAllow: ["delegatecall"] + }) + ).to.be.reverted; + + await upgrades.upgradeProxy("0xc3023a2c9f7B92d1dd19F488AF6Ee107a78Df9DB", bridgeV1, { + unsafeAllow: ["delegatecall"] + }); + }); describe("Transfer", () => { it("Should transfer token", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [true] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); - - relayerBalance = await tokenInstance.balanceOf(relayer.address); - await tokenInstance.connect(relayer).approve( - proxy.address, - relayerBalance - ); + let relayerBalance = await tokenInstance.balanceOf(relayer.address); + await expect( + proxy.connect(relayer).transferTokens(tokenAddress, someone.address, 11231232, relayerBalance) + ).to.be.revertedWith("Token not whitelisted!"); + + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); + + await tokenInstance.connect(relayer).approve(proxy.address, relayerBalance); let transferPart = relayerBalance - 100; - await expect(proxy.connect(relayer).transferTokens( - tokenAddress, - someone.address, - nonce, - transferPart - )).to.emit(proxy, "TransferTokens").withArgs(nonce, relayer.address, tokenAddress, someone.address, transferPart); + await expect(proxy.connect(relayer).transferTokens(tokenAddress, someone.address, nonce, transferPart)) + .to.emit(proxy, "TransferTokens") + .withArgs(nonce, relayer.address, tokenAddress, someone.address, transferPart); expect(await tokenInstance.balanceOf(someone.address)).to.be.equal(transferPart); await proxy.connect(pausableAdmin).pause(); let relayerBalanceAfter = tokenInstance.balanceOf(relayer.address); - await expect(proxy.connect(relayer).transferTokens(tokenAddress, someone.address, 11231232, relayerBalanceAfter)).to.be.revertedWith("Pausable: paused"); + await expect( + proxy.connect(relayer).transferTokens(tokenAddress, someone.address, 11231232, relayerBalanceAfter) + ).to.be.revertedWith("Pausable: paused"); await proxy.connect(unpausableAdmin).unPause(); const amount = 100; - await expect(proxy.connect(relayer).transferTokens( - tokenAddress, - someone.address, - anotherNonce, - amount - )).to.emit(proxy, "TransferTokens").withArgs(anotherNonce, relayer.address, tokenAddress, someone.address, amount); + await expect(proxy.connect(relayer).transferTokens(tokenAddress, someone.address, anotherNonce, amount)) + .to.emit(proxy, "TransferTokens") + .withArgs(anotherNonce, relayer.address, tokenAddress, someone.address, amount); let transferPart2 = transferPart + 100; expect(await tokenInstance.balanceOf(someone.address)).to.be.equal(transferPart2); - }) + }); it("Shouldn't process the same transfer twice", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [true] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); let balanceRelayer = await tokenInstance.balanceOf(relayer.address); - await tokenInstance.connect(relayer).approve( - proxy.address, - balanceRelayer - ); + await tokenInstance.connect(relayer).approve(proxy.address, balanceRelayer); let balanceAnotherRelayer = await tokenInstance.balanceOf(anotherRelayer.address); - await tokenInstance.connect(anotherRelayer).approve( - proxy.address, - balanceAnotherRelayer - ); + await tokenInstance.connect(anotherRelayer).approve(proxy.address, balanceAnotherRelayer); - await expect(proxy.connect(anotherRelayer).transferTokens( - tokenAddress, - someone.address, - nonce, - balanceRelayer - )).to.emit(proxy, "TransferTokens").withArgs(nonce, anotherRelayer.address, tokenAddress, someone.address, balanceRelayer); + await expect( + proxy.connect(anotherRelayer).transferTokens(tokenAddress, someone.address, nonce, balanceRelayer) + ) + .to.emit(proxy, "TransferTokens") + .withArgs(nonce, anotherRelayer.address, tokenAddress, someone.address, balanceRelayer); expect(await tokenInstance.balanceOf(someone.address)).to.be.equal(balanceRelayer); - await expect(proxy.connect(anotherRelayer).transferTokens( - tokenAddress, - someone.address, - nonce, - balanceRelayer - )).to.be.revertedWith("This transaction has already been processed!"); + await expect( + proxy.connect(anotherRelayer).transferTokens(tokenAddress, someone.address, nonce, balanceRelayer) + ).to.be.revertedWith("This transaction has already been processed!"); expect(await tokenInstance.balanceOf(someone.address)).to.be.equal(balanceRelayer); - }) + }); it("Should transfer token via two not equal transfers", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [true], - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); let balanceRelayer = await tokenInstance.balanceOf(relayer.address); - await tokenInstance.connect(relayer).approve( - proxy.address, - balanceRelayer - ); + await tokenInstance.connect(relayer).approve(proxy.address, balanceRelayer); let balanceAnotherRelayer = await tokenInstance.balanceOf(anotherRelayer.address); - await tokenInstance.connect(anotherRelayer).approve( - proxy.address, - balanceAnotherRelayer - ); - await expect(proxy.connect(relayer).transferTokens( - tokenAddress, - someone.address, - nonce, - balanceRelayer - )).to.emit(proxy, "TransferTokens").withArgs(nonce, relayer.address, tokenAddress, someone.address, balanceRelayer); + await tokenInstance.connect(anotherRelayer).approve(proxy.address, balanceAnotherRelayer); + await expect(proxy.connect(relayer).transferTokens(tokenAddress, someone.address, nonce, balanceRelayer)) + .to.emit(proxy, "TransferTokens") + .withArgs(nonce, relayer.address, tokenAddress, someone.address, balanceRelayer); expect(await tokenInstance.balanceOf(someone.address)).to.be.equal(balanceRelayer); - await expect(proxy.connect(anotherRelayer).transferTokens( - tokenAddress, - someone.address, - anotherNonce, - balanceRelayer - )).to.emit(proxy, "TransferTokens").withArgs(anotherNonce, anotherRelayer.address, tokenAddress, someone.address, balanceRelayer); + await expect( + proxy + .connect(anotherRelayer) + .transferTokens(tokenAddress, someone.address, anotherNonce, balanceRelayer) + ) + .to.emit(proxy, "TransferTokens") + .withArgs(anotherNonce, anotherRelayer.address, tokenAddress, someone.address, balanceRelayer); expect(await tokenInstance.balanceOf(someone.address)).to.be.equal(balanceRelayer * 2); - }) + }); it("Shouldn't transfer token to zero address or self", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [true] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); - - await expect(proxy.connect(relayer).transferTokens( - tokenAddress, - ethers.constants.AddressZero, - 1, - 10000000000 - )).to.be.revertedWith("Wrong recipient provided"); - - await expect(proxy.connect(relayer).transferTokens( - tokenAddress, - relayer.address, - 1, - 10000000000 - )).to.be.revertedWith("Wrong recipient provided"); - }) + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); + + await expect( + proxy.connect(relayer).transferTokens(tokenAddress, ethers.constants.AddressZero, 1, 10000000000) + ).to.be.revertedWith("Wrong recipient provided"); + + await expect( + proxy.connect(relayer).transferTokens(tokenAddress, relayer.address, 1, 10000000000) + ).to.be.revertedWith("Wrong recipient provided"); + }); it("Shouldn't process the transfer with zero amount specified", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [true] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); - - await expect(proxy.connect(relayer).transferTokens( - tokenAddress, - someone.address, - 1, - 0, - )).to.be.revertedWith("Wrong amount provided"); - }) - }) + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); + + await expect(proxy.connect(relayer).transferTokens(tokenAddress, someone.address, 1, 0)).to.be.revertedWith( + "Wrong amount provided" + ); + }); + }); describe("Admin functionality", () => { it("Only admin can withdraw the stuck tokens", async () => { let balanceSomeoneWithTokens = await tokenInstance.balanceOf(someoneWithTokens.address); - await tokenInstance.connect(someoneWithTokens).transfer( - proxy.address, - balanceSomeoneWithTokens, - ); - + await tokenInstance.connect(someoneWithTokens).transfer(proxy.address, balanceSomeoneWithTokens); + expect(await tokenInstance.balanceOf(someoneWithTokens.address)).to.be.equal(0); - + await expect(proxy.connect(someone).withdrawStuckTokens(tokenAddress)).to.be.reverted; - + let bridgeBalanceBefore = await tokenInstance.balanceOf(proxy.address); let ownerBalanceBefore = await tokenInstance.balanceOf(owner.address); await proxy.connect(owner).withdrawStuckTokens(tokenAddress); - - expect(await tokenInstance.balanceOf(owner.address)).to.be.equal(bridgeBalanceBefore.add(ownerBalanceBefore)); - }) + + expect(await tokenInstance.balanceOf(owner.address)).to.be.equal( + bridgeBalanceBefore.add(ownerBalanceBefore) + ); + }); it("Only pausable admin can pause contract", async () => { await expect(proxy.connect(someone).pause()).to.be.reverted; await expect(proxy.connect(pausableAdmin).pause()).to.emit(proxy, "Paused").withArgs(pausableAdmin.address); - }) + }); it("Only unpausable admin can unpause contract", async () => { await expect(proxy.connect(pausableAdmin).pause()).to.emit(proxy, "Paused").withArgs(pausableAdmin.address); await expect(proxy.connect(someone).unPause()).to.be.reverted; - await expect(proxy.connect(unpausableAdmin).unPause()).to.emit(proxy, "Unpaused").withArgs(unpausableAdmin.address); - }) + await expect(proxy.connect(unpausableAdmin).unPause()) + .to.emit(proxy, "Unpaused") + .withArgs(unpausableAdmin.address); + }); it("Only admin and whitelisting admin can whitelisted tokens", async () => { - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [true] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); - await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens( - [tokenAddress], - [false] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [false]); + await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [false])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [false]); - await expect(proxy.connect(owner).setWhitelistedTokens( - [tokenAddress], - [true] - )).to.emit(proxy, "SetTokens").withArgs([tokenAddress], [true]); - - }) + await expect(proxy.connect(owner).setWhitelistedTokens([tokenAddress], [true])) + .to.emit(proxy, "SetTokens") + .withArgs([tokenAddress], [true]); + }); it("Only admin and whitelisting admin can add/remove token to/from white list", async () => { - await expect(proxy.connect(whitelistingAdmin).addTokenToWhitelist(tokenAddress)).to.emit(proxy, "AddTokenToWhitelist").withArgs(tokenAddress); - await expect(proxy.connect(whitelistingAdmin).removeTokenFromWhitelist(tokenAddress)).to.emit(proxy, "RemoveTokenFromWhitelist").withArgs(tokenAddress); - - await expect(proxy.connect(owner).addTokenToWhitelist(tokenAddress)).to.emit(proxy, "AddTokenToWhitelist").withArgs(tokenAddress); - await expect(proxy.connect(owner).addTokenToWhitelist(tokenAddress)).to.be.revertedWith("Token already whitelisted!"); - - await expect(proxy.connect(owner).removeTokenFromWhitelist(tokenAddress)).to.emit(proxy, "RemoveTokenFromWhitelist").withArgs(tokenAddress); - await expect(proxy.connect(owner).removeTokenFromWhitelist(tokenAddress)).to.be.revertedWith("Token not whitelisted!"); - + await expect(proxy.connect(whitelistingAdmin).addTokenToWhitelist(tokenAddress)) + .to.emit(proxy, "AddTokenToWhitelist") + .withArgs(tokenAddress); + await expect(proxy.connect(whitelistingAdmin).removeTokenFromWhitelist(tokenAddress)) + .to.emit(proxy, "RemoveTokenFromWhitelist") + .withArgs(tokenAddress); + + await expect(proxy.connect(owner).addTokenToWhitelist(tokenAddress)) + .to.emit(proxy, "AddTokenToWhitelist") + .withArgs(tokenAddress); + await expect(proxy.connect(owner).addTokenToWhitelist(tokenAddress)).to.be.revertedWith( + "Token already whitelisted!" + ); + + await expect(proxy.connect(owner).removeTokenFromWhitelist(tokenAddress)) + .to.emit(proxy, "RemoveTokenFromWhitelist") + .withArgs(tokenAddress); + await expect(proxy.connect(owner).removeTokenFromWhitelist(tokenAddress)).to.be.revertedWith( + "Token not whitelisted!" + ); + await expect(proxy.connect(someone).removeTokenFromWhitelist(tokenAddress)).to.be.reverted; await expect(proxy.connect(someone).addTokenToWhitelist(tokenAddress)).to.be.reverted; - }) - }) -}) \ No newline at end of file + }); + }); +}); From 56ed1ccff4f139d91cc2a08a95146d93256880c2 Mon Sep 17 00:00:00 2001 From: Aditya Rout Date: Mon, 23 Jan 2023 18:21:31 +0530 Subject: [PATCH 2/3] resolved PR comments --- eth/test/bridge.test.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/eth/test/bridge.test.js b/eth/test/bridge.test.js index 2405b0ab..73c57c41 100644 --- a/eth/test/bridge.test.js +++ b/eth/test/bridge.test.js @@ -13,7 +13,7 @@ const buyTokenForEth = async (buyer, router, ethAmount, path) => { .swapExactETHForTokens(0, path, buyer.address, ethers.constants.MaxUint256, { value: ethAmount }); }; -describe("Spectre Bridge", () => { +describe("Fast Bridge", () => { let router, tokenInstance; let owner, someone, relayer, anotherRelayer, someoneWithTokens, pausableAdmin, unpausableAdmin, whitelistingAdmin; let bridge, proxy; @@ -105,7 +105,8 @@ describe("Spectre Bridge", () => { }); await proxyV1.deployed(); - await expect(proxyV1.initialize(["0x3195D5df0521d2Fcd5b02413E23e4b1219790767"], [false])).to.be.reverted; + const tokenAdd = "0x3195D5df0521d2Fcd5b02413E23e4b1219790767"; + await expect(proxyV1.initialize([tokenAdd], [false])).to.be.reverted; expect(await proxyV1.isTokenInWhitelist(tokensAddresses[1])).to.be.true; expect(await proxyV1.isTokenInWhitelist(tokensAddresses[2])).to.be.false; @@ -120,12 +121,12 @@ describe("Spectre Bridge", () => { it("Should upgrade Bridge ", async () => { const bridgeV1 = await ethers.getContractFactory("EthErc20FastBridge"); await expect( - upgrades.upgradeProxy("0xc3023a2c9f7B92d1dd19F488AF6Ee107a78Df9DB", bridgeV1.connect(someone), { + upgrades.upgradeProxy(proxy.address, bridgeV1.connect(someone), { unsafeAllow: ["delegatecall"] }) ).to.be.reverted; - await upgrades.upgradeProxy("0xc3023a2c9f7B92d1dd19F488AF6Ee107a78Df9DB", bridgeV1, { + await upgrades.upgradeProxy(proxy.address, bridgeV1, { unsafeAllow: ["delegatecall"] }); }); From a09521b1a0923ed3596e46e32845e2c3688e014f Mon Sep 17 00:00:00 2001 From: Aditya Rout Date: Mon, 23 Jan 2023 18:47:47 +0530 Subject: [PATCH 3/3] minor fix --- eth/test/bridge.test.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/eth/test/bridge.test.js b/eth/test/bridge.test.js index 740cd979..fe414eec 100644 --- a/eth/test/bridge.test.js +++ b/eth/test/bridge.test.js @@ -18,7 +18,7 @@ const buyTokenForEth = async (buyer, router, ethAmount, path) => { .swapExactETHForTokens(0, path, buyer.address, ethers.constants.MaxUint256, { value: ethAmount }); }; -describe("Spectre Bridge", () => { +describe("Fast Bridge", () => { let router, tokenInstance; let owner, someone, relayer, anotherRelayer, someoneWithTokens, pausableAdmin, unpausableAdmin, whitelistingAdmin; let bridge, proxy; @@ -140,7 +140,7 @@ describe("Spectre Bridge", () => { it("Should transfer token", async () => { let relayerBalance = await tokenInstance.balanceOf(relayer.address); await expect( - proxy.connect(relayer).transferTokens(tokenAddress, someone.address, 11231232, relayerBalance) + proxy.connect(relayer).transferTokens(tokenAddress, someone.address, 11231232, relayerBalance, unlockRecipient) ).to.be.revertedWith("Token not whitelisted!"); await expect(proxy.connect(whitelistingAdmin).setWhitelistedTokens([tokenAddress], [true])) @@ -365,6 +365,7 @@ describe("Spectre Bridge", () => { ); await expect(proxy.connect(someone).removeTokenFromWhitelist(tokenAddress)).to.be.reverted; + await expect(proxy.connect(someone).addTokenToWhitelist(tokenAddress)).to.be.reverted; }); }); });