Skip to content

Commit 783fa3f

Browse files
committed
fix: lint
1 parent 0d18e3a commit 783fa3f

2 files changed

Lines changed: 76 additions & 40 deletions

File tree

contracts/TokenCreator.sol

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
// SPDX-License-Identifier: MIT
2-
pragma solidity ^0.8.0;
3-
41
import "./tokens/ERC20.sol";
52
import "./tokens/ERC721.sol";
63
import "./tokens/ERC1155.sol";
@@ -19,24 +16,31 @@ contract TokenCreator is Ownable {
1916
creationFee = _creationFee;
2017
}
2118

22-
function createERC20(string memory name, string memory symbol, uint8 decimals, uint256 initialSupply) external payable {
23-
require(msg.value == creationFee, InsufficientFee());
24-
ERC20Token newToken = new ERC20Token(name, symbol, decimals, initialSupply, msg.sender);
19+
modifier requiresFee() {
20+
if (msg.value != creationFee) {
21+
revert InsufficientFee();
22+
}
2523
payable(owner()).transfer(msg.value);
24+
_;
25+
}
26+
27+
function createERC20(
28+
string memory name,
29+
string memory symbol,
30+
uint8 decimals,
31+
uint256 initialSupply
32+
) external payable requiresFee {
33+
ERC20Token newToken = new ERC20Token(name, symbol, decimals, initialSupply, msg.sender);
2634
emit ERC20Created(address(newToken));
2735
}
2836

29-
function createERC721(string memory name, string memory symbol) external payable {
30-
require(msg.value == creationFee, InsufficientFee());
37+
function createERC721(string memory name, string memory symbol) external payable requiresFee {
3138
ERC721Token newToken = new ERC721Token(name, symbol, msg.sender);
32-
payable(owner()).transfer(msg.value);
3339
emit ERC721Created(address(newToken));
3440
}
3541

36-
function createERC1155(string memory uri) external payable {
37-
require(msg.value == creationFee, InsufficientFee());
42+
function createERC1155(string memory uri) external payable requiresFee {
3843
ERC1155Token newToken = new ERC1155Token(uri, msg.sender);
39-
payable(owner()).transfer(msg.value);
4044
emit ERC1155Created(address(newToken));
4145
}
42-
}
46+
}

test/TokenCreator.ts

Lines changed: 59 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,21 @@ describe("TokenCreator", () => {
1515
ownerAddress = owner.address;
1616
creatorAddress = account1.address;
1717

18-
tokenCreator = await hre.ethers.deployContract("TokenCreator", [fee, ownerAddress]);
18+
tokenCreator = await hre.ethers.deployContract("TokenCreator", [
19+
fee,
20+
ownerAddress,
21+
]);
1922
});
2023

2124
const extractTokenAddressFromEvent = async (
2225
tx: any,
23-
eventName: string
26+
eventName: string,
2427
): Promise<string> => {
2528
const receipt = await tx.wait();
2629
const eventSignature = hre.ethers.id(`${eventName}(address)`);
27-
const log = receipt.logs.find((log: any) => log.topics[0] === eventSignature);
30+
const log = receipt.logs.find(
31+
(log: any) => log.topics[0] === eventSignature,
32+
);
2833

2934
expect(log, `${eventName} event not found`).to.not.be.undefined;
3035

@@ -34,19 +39,19 @@ describe("TokenCreator", () => {
3439
describe("Creation Events", () => {
3540
it("should emit ERC20Created", async () => {
3641
await expect(
37-
tokenCreator.createERC20("TOS", "TSA", 12, 1000, { value: fee })
42+
tokenCreator.createERC20("TOS", "TSA", 12, 1000, { value: fee }),
3843
).to.emit(tokenCreator, "ERC20Created");
3944
});
4045

4146
it("should emit ERC721Created", async () => {
4247
await expect(
43-
tokenCreator.createERC721("TOS721", "TSA721", { value: fee })
48+
tokenCreator.createERC721("TOS721", "TSA721", { value: fee }),
4449
).to.emit(tokenCreator, "ERC721Created");
4550
});
4651

4752
it("should emit ERC1155Created", async () => {
4853
await expect(
49-
tokenCreator.createERC1155("https://myuri", { value: fee })
54+
tokenCreator.createERC1155("https://myuri", { value: fee }),
5055
).to.emit(tokenCreator, "ERC1155Created");
5156
});
5257
});
@@ -56,7 +61,7 @@ describe("TokenCreator", () => {
5661
await expect(
5762
tokenCreator.createERC20("TOS", "TSA", 12, 1000, {
5863
value: hre.ethers.parseEther("0.05"),
59-
})
64+
}),
6065
).to.be.revertedWithCustomError(tokenCreator, "InsufficientFee");
6166
});
6267

@@ -69,51 +74,78 @@ describe("TokenCreator", () => {
6974

7075
it("should transfer the fee when creating an ERC20 token", async () => {
7176
await checkOwnerBalanceIncrease(() =>
72-
tokenCreator.connect(creatorAccount).createERC20("TOS", "TSA", 12, 1000, { value: fee })
77+
tokenCreator
78+
.connect(creatorAccount)
79+
.createERC20("TOS", "TSA", 12, 1000, { value: fee }),
7380
);
7481
});
7582

7683
it("should transfer the fee when creating an ERC721 token", async () => {
7784
await checkOwnerBalanceIncrease(() =>
78-
tokenCreator.connect(creatorAccount).createERC721("TOS721", "TSA721", { value: fee })
85+
tokenCreator
86+
.connect(creatorAccount)
87+
.createERC721("TOS721", "TSA721", { value: fee }),
7988
);
8089
});
8190

8291
it("should transfer the fee when creating an ERC1155 token", async () => {
8392
await checkOwnerBalanceIncrease(() =>
84-
tokenCreator.connect(creatorAccount).createERC1155("https://myuri", { value: fee })
93+
tokenCreator
94+
.connect(creatorAccount)
95+
.createERC1155("https://myuri", { value: fee }),
8596
);
8697
});
8798
});
8899

89100
describe("Ownership Assignment", () => {
90101
it("should assign ERC20 token ownership to the creator", async () => {
91-
const tx = await tokenCreator.connect(creatorAccount).createERC20("TOS", "TSA", 12, 1000, {
92-
value: fee,
93-
});
94-
95-
const tokenAddress = await extractTokenAddressFromEvent(tx, "ERC20Created");
102+
const tx = await tokenCreator
103+
.connect(creatorAccount)
104+
.createERC20("TOS", "TSA", 12, 1000, {
105+
value: fee,
106+
});
107+
108+
const tokenAddress = await extractTokenAddressFromEvent(
109+
tx,
110+
"ERC20Created",
111+
);
96112
const erc20 = await hre.ethers.getContractAt("ERC20Token", tokenAddress);
97113
expect(await erc20.owner()).to.equal(creatorAccount.address);
98114
});
99115

100116
it("should assign ERC721 token ownership to the creator", async () => {
101-
const tx = await tokenCreator.connect(creatorAccount).createERC721("TOS721", "TSA721", {
102-
value: fee,
103-
});
104-
105-
const tokenAddress = await extractTokenAddressFromEvent(tx, "ERC721Created");
106-
const erc721 = await hre.ethers.getContractAt("ERC721Token", tokenAddress);
117+
const tx = await tokenCreator
118+
.connect(creatorAccount)
119+
.createERC721("TOS721", "TSA721", {
120+
value: fee,
121+
});
122+
123+
const tokenAddress = await extractTokenAddressFromEvent(
124+
tx,
125+
"ERC721Created",
126+
);
127+
const erc721 = await hre.ethers.getContractAt(
128+
"ERC721Token",
129+
tokenAddress,
130+
);
107131
expect(await erc721.owner()).to.equal(creatorAccount.address);
108132
});
109133

110134
it("should assign ERC1155 token ownership to the creator", async () => {
111-
const tx = await tokenCreator.connect(creatorAccount).createERC1155("https://myuri", {
112-
value: fee,
113-
});
114-
115-
const tokenAddress = await extractTokenAddressFromEvent(tx, "ERC1155Created");
116-
const erc1155 = await hre.ethers.getContractAt("ERC1155Token", tokenAddress);
135+
const tx = await tokenCreator
136+
.connect(creatorAccount)
137+
.createERC1155("https://myuri", {
138+
value: fee,
139+
});
140+
141+
const tokenAddress = await extractTokenAddressFromEvent(
142+
tx,
143+
"ERC1155Created",
144+
);
145+
const erc1155 = await hre.ethers.getContractAt(
146+
"ERC1155Token",
147+
tokenAddress,
148+
);
117149
expect(await erc1155.owner()).to.equal(creatorAccount.address);
118150
});
119151
});

0 commit comments

Comments
 (0)