diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b0c6c22..bfd735a 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" @@ -22,9 +22,15 @@ 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 + - name: Rum compile + run: npm run compile + - name: Run tests run: npm run test 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 () => {