2021-01-29 05:26:28 +00:00
|
|
|
const hre = require("hardhat");
|
|
|
|
|
|
|
|
async function main() {
|
2021-02-01 04:32:01 +00:00
|
|
|
var signers = await ethers.getSigners();
|
2021-02-02 04:26:10 +00:00
|
|
|
var aliceAddress = signers[0].address;
|
|
|
|
var bobAddress = signers[1].address;
|
2021-02-01 04:32:01 +00:00
|
|
|
|
|
|
|
var DEFAULT_HARDDEPOSIT_DECREASE_TIMEOUT = ethers.BigNumber.from(86400)
|
|
|
|
|
2021-02-02 04:26:10 +00:00
|
|
|
// Deploy ERC20 Token
|
2021-01-29 05:26:28 +00:00
|
|
|
const ERC20 = await hre.ethers.getContractFactory("ERC20PresetMinterPauser");
|
|
|
|
var erc20 = await ERC20.deploy("TestToken", "TEST");
|
|
|
|
await erc20.deployed();
|
2021-02-02 04:26:10 +00:00
|
|
|
console.log("ERC20:", erc20.address);
|
2021-01-29 05:26:28 +00:00
|
|
|
|
2021-01-29 05:27:31 +00:00
|
|
|
// Deploy SwapFactory
|
|
|
|
const SimpleSwapFactory = await hre.ethers.getContractFactory("SimpleSwapFactory");
|
|
|
|
var simpleSwapFactory = await SimpleSwapFactory.deploy(erc20.address);
|
|
|
|
await simpleSwapFactory.deployed();
|
2021-02-02 04:26:10 +00:00
|
|
|
console.log("SimpleSwapFactory:", simpleSwapFactory.address);
|
2021-02-01 04:32:01 +00:00
|
|
|
|
2021-02-02 04:26:10 +00:00
|
|
|
// Setup Swap contract interface to parse logs
|
2021-02-01 04:32:01 +00:00
|
|
|
var swapFactoryArtifact = await artifacts.readArtifact("SimpleSwapFactory");
|
|
|
|
var swapFactoryInterface = new ethers.utils.Interface(swapFactoryArtifact.abi);
|
2021-02-02 04:26:10 +00:00
|
|
|
|
|
|
|
// Deploy Alice Swap and get address
|
|
|
|
var resp = await simpleSwapFactory.deploySimpleSwap(aliceAddress, DEFAULT_HARDDEPOSIT_DECREASE_TIMEOUT)
|
|
|
|
var logs = await ethers.provider.getLogs({address: simpleSwapFactory.address});
|
|
|
|
var AliceSwapAddress = swapFactoryInterface.parseLog(logs[0]).args.contractAddress
|
|
|
|
|
|
|
|
// Deploy Bob Swap and get address
|
|
|
|
var resp = await simpleSwapFactory.deploySimpleSwap(bobAddress, DEFAULT_HARDDEPOSIT_DECREASE_TIMEOUT)
|
|
|
|
var logs = await ethers.provider.getLogs({address: simpleSwapFactory.address});
|
|
|
|
var BobSwapAddress = swapFactoryInterface.parseLog(logs[0]).args.contractAddress
|
|
|
|
|
|
|
|
console.log("Alice address:", aliceAddress);
|
|
|
|
console.log("Bob address:", bobAddress);
|
|
|
|
console.log("AliceSwapAddress:", AliceSwapAddress)
|
|
|
|
console.log("BobSwapAddress:", BobSwapAddress)
|
2021-01-29 05:26:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// We recommend this pattern to be able to use async/await everywhere
|
|
|
|
// and properly handle errors.
|
|
|
|
main()
|
|
|
|
.then(() => process.exit(0))
|
|
|
|
.catch(error => {
|
|
|
|
console.error(error);
|
|
|
|
process.exit(1);
|
|
|
|
});
|