Im trying to create a Token Generator(Token Factory). I dont know how to include the function create in the deploy script. When I excluded
const tx
I deployed a token without name, symbol, decimals and totalSupply but cant deploy a token with name, symbol, decimals and totalSupply.
Here's my contract.
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
import "@openzeppelin/contracts/proxy/Clones.sol";
import "@openzeppelin/contracts/utils/Address.sol";
import "./TokenFactoryBase.sol";
import "../interfaces/IStandardERC20.sol";
contract StandardTokenFactory is TokenFactoryBase {
using Address for address payable;
using SafeMath for uint256;
constructor(address factoryManager_, address implementation_) TokenFactoryBase(factoryManager_, implementation_) {}
function create(
string memory name,
string memory symbol,
uint8 decimals,
uint256 totalSupply
) external payable enoughFee nonReentrant returns (address token) {
refundExcessiveFee();
payable(feeTo).sendValue(flatFee);
token = Clones.clone(implementation);
IStandardERC20(token).initialize(msg.sender, name, symbol, decimals, totalSupply);
assignTokenToOwner(msg.sender, token, 0);
emit TokenCreated(msg.sender, token, 0);
}
}
Here's my deploy.
const {ethers} = require("hardhat");
async function main() {
const StandardTokenFactory = await ethers.getContractFactory("StandardTokenFactory");
// const token = await StandardTokenFactory
const token = await StandardTokenFactory.deploy("0x4D21ED77b4Fc2Df4f4186fc8170FBdDe4b196A51","0x4D21ED77b4Fc2Df4f4186fc8170FBdDe4b196A51");
await token.deployed();
const tx = await token.create({
address: "0x4D21ED77b4Fc2Df4f4186fc8170FBdDe4b196A51",
name_: "RNCHEY",
symbol_:"RNCH",
decimals_: "18",
totalSupply_: "100000"
})
await tx.wait();
console.log("Token deployed to:", token.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
Terminal output:
Error: missing argument: passed to contract (count=1, expectedCount=4, code=MISSING_ARGUMENT, version=contracts/5.7.0)
Guys I'm new to programming and would be very grateful if someone helps.