From 659d269a6ec9a3865eba1f4565c25cdfa31cd74e Mon Sep 17 00:00:00 2001 From: HarriesChen Date: Wed, 14 Jun 2023 12:19:18 +0800 Subject: [PATCH 1/4] remove default ad3Address --- contracts/influencemining/HNFTGovernance.sol | 15 +----- test/Auction.test.ts | 53 ++++++++++++-------- test/HNFTGovernance.test.ts | 2 +- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/contracts/influencemining/HNFTGovernance.sol b/contracts/influencemining/HNFTGovernance.sol index a7c3515..bbd4267 100644 --- a/contracts/influencemining/HNFTGovernance.sol +++ b/contracts/influencemining/HNFTGovernance.sol @@ -4,9 +4,7 @@ pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./HNFTGovernanceToken.sol"; -contract HNFTGovernance is Ownable { - - address public ad3Address; +contract HNFTGovernance { mapping(address => mapping(uint256 => address)) public hnft2tokenId2GovernanceToken; @@ -41,16 +39,7 @@ contract HNFTGovernance is Ownable { emit Governance(nftId, erc20Address); } - function setDefaultGovernanceToken(address defaultGovernanceToken) public onlyOwner { - ad3Address = defaultGovernanceToken; - } - function getGovernanceToken(address hnftAddress, uint256 nftId) public view returns (address) { - address governanceToken = hnft2tokenId2GovernanceToken[hnftAddress][nftId]; - if (governanceToken != address(0)) { - return governanceToken; - } else { - return ad3Address; - } + return hnft2tokenId2GovernanceToken[hnftAddress][nftId]; } } \ No newline at end of file diff --git a/test/Auction.test.ts b/test/Auction.test.ts index d9e93a2..8b0b1da 100644 --- a/test/Auction.test.ts +++ b/test/Auction.test.ts @@ -7,6 +7,7 @@ import { HNFTGovernance, HNFTGovernanceToken, AD3, + ERC20, } from "../typechain"; import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; import { BigNumber } from "ethers"; @@ -16,7 +17,7 @@ describe("Auction", () => { let auction: Auction; let hNFT: EIP5489ForInfluenceMining; let ad3Token: MockAD3; - let governanceToken: HNFTGovernanceToken; + let governanceToken: ERC20; let governance: HNFTGovernance; let relayer: SignerWithAddress; let owner: SignerWithAddress; @@ -235,12 +236,15 @@ describe("Auction", () => { }); it("Should fail when signature content and input parameters or relayerAddr do not match", async function () { - governance.setDefaultGovernanceToken(ad3Token.address); const governanceTokenAddr = await governance.getGovernanceToken(hNFT.address, 1); - governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); - + if (governanceTokenAddr == ethers.constants.AddressZero) { + governanceToken = ad3Token + } else { + governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + } + const preBidAmount = 10; const bidAmount = 90; const errorSignBidAmount = 120; @@ -286,11 +290,12 @@ describe("Auction", () => { it("Should fail when signer is not the relayerAddr", async function () { - governance.setDefaultGovernanceToken(ad3Token.address); - const governanceTokenAddr = await governance.getGovernanceToken(hNFT.address, 1); - - governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + if (governanceTokenAddr == ethers.constants.AddressZero) { + governanceToken = ad3Token + } else { + governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + } const preBidAmount = 10; const bidAmount =90; @@ -341,11 +346,13 @@ describe("Auction", () => { it("Should fail when signature does not exist", async function () { - governance.setDefaultGovernanceToken(ad3Token.address); - const governanceTokenAddr = await governance.getGovernanceToken(hNFT.address, 1); - governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + if (governanceTokenAddr == ethers.constants.AddressZero) { + governanceToken = ad3Token + } else { + governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + } const bidAmount = 90; const preBidAmount = 10; @@ -392,11 +399,13 @@ describe("Auction", () => { it("Should success when preBid has already timed out", async () => { - governance.setDefaultGovernanceToken(ad3Token.address); - const governanceTokenAddr = await governance.getGovernanceToken(hNFT.address, 1); - governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + if (governanceTokenAddr == ethers.constants.AddressZero) { + governanceToken = ad3Token + } else { + governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + } const hNFTId = 1; const preBidAmount = 10; @@ -559,11 +568,13 @@ describe("Auction", () => { it("should allow users to commitBid with AD3 token as governance token", async () => { - governance.setDefaultGovernanceToken(ad3Token.address); - const governanceTokenAddr = await governance.getGovernanceToken(hNFT.address, 1); - governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + if (governanceTokenAddr == ethers.constants.AddressZero) { + governanceToken = ad3Token + } else { + governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + } const hNFTId = 1; const bidAmount = 10; @@ -706,11 +717,13 @@ describe("Auction", () => { it("should refund the previous bidder when a new bid is submitted", async () => { - governance.setDefaultGovernanceToken(ad3Token.address); - const governanceTokenAddr = await governance.getGovernanceToken(hNFT.address, 1); - governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + if (governanceTokenAddr == ethers.constants.AddressZero) { + governanceToken = ad3Token + } else { + governanceToken = await ethers.getContractAt("HNFTGovernanceToken", governanceTokenAddr, owner); + } const preBidAmount1 = 10; const bidAmount1 = 60; diff --git a/test/HNFTGovernance.test.ts b/test/HNFTGovernance.test.ts index e8c3d27..97f7a0e 100644 --- a/test/HNFTGovernance.test.ts +++ b/test/HNFTGovernance.test.ts @@ -47,7 +47,7 @@ describe("HNFTGovernance", () => { const tokenId = 1; await expect( hnftGovernance.connect(addr1).issueGovernanceToken(hnftContract.address, tokenId, "MGB", "MGB") - ).to.be.revertedWith("Only the NFT owner can governed"); + ).to.be.revertedWith("Only the NFT owner can issue governance token"); }); it("should emit event when NFT is issued", async () => { From 1184f331ad4a506f62f653de0eebe085938e8db3 Mon Sep 17 00:00:00 2001 From: HarriesChen Date: Wed, 14 Jun 2023 12:23:21 +0800 Subject: [PATCH 2/4] Github actions --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b0c6c22..6348f6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,7 +3,7 @@ name: Actions on: push: branches: - - master + - main - rel/* - staging - trying @@ -13,7 +13,7 @@ on: - "**/*.md" pull_request: branches: - - master + - main - rel/* paths-ignore: - "**/*.md" From 5ae1d4466185e00842830403ae6eb6cf3cefcc9c Mon Sep 17 00:00:00 2001 From: HarriesChen Date: Wed, 14 Jun 2023 12:28:34 +0800 Subject: [PATCH 3/4] use node version 16 --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6348f6e..ba3be49 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,6 +22,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 - name: install dependencies run: npm i From 392fd48bc14618d7ac11c05af8766fa16b7cacb5 Mon Sep 17 00:00:00 2001 From: HarriesChen Date: Wed, 14 Jun 2023 12:32:48 +0800 Subject: [PATCH 4/4] run compile before test --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ba3be49..bfd735a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,5 +29,8 @@ jobs: - name: install dependencies run: npm i + - name: Rum compile + run: npm run compile + - name: Run tests run: npm run test