Skip to content

Commit

Permalink
Merge pull request #20 from parami-foundation/remove-default-ad3
Browse files Browse the repository at this point in the history
  • Loading branch information
HarriesCC committed Jun 14, 2023
2 parents f33bf22 + 392fd48 commit 1329094
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 36 deletions.
10 changes: 8 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Actions
on:
push:
branches:
- master
- main
- rel/*
- staging
- trying
Expand All @@ -13,7 +13,7 @@ on:
- "**/*.md"
pull_request:
branches:
- master
- main
- rel/*
paths-ignore:
- "**/*.md"
Expand All @@ -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
15 changes: 2 additions & 13 deletions contracts/influencemining/HNFTGovernance.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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];
}
}
53 changes: 33 additions & 20 deletions test/Auction.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
HNFTGovernance,
HNFTGovernanceToken,
AD3,
ERC20,
} from "../typechain";
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
import { BigNumber } from "ethers";
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion test/HNFTGovernance.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down

0 comments on commit 1329094

Please sign in to comment.