codex-factory/migrations/1_initial.js

36 lines
1.4 KiB
JavaScript
Raw Normal View History

const ERC20PresetMinterPauser = artifacts.require("ERC20PresetMinterPauser");
const FS = require('fs')
const Path = require('path')
function getSimpleSwapFactoryBin(tokenAddress) {
const simpleSwapFactoryBinPath = Path.join(__dirname, '..', 'contracts', 'SimpleSwapFactory.bytecode')
const baseBin = FS.readFileSync(simpleSwapFactoryBinPath, 'utf8').toString()
//remove 0x prefix
tokenAddress = tokenAddress.substring(2).toLowerCase().padStart(64, '0')
//add tokenaddress for param to the end of the bytecode
return baseBin + tokenAddress
}
async function createSimpleSwapFactoryContract(erc20ContractAddress, creatorAccount) {
const transaction = await web3.eth.sendTransaction({
data: getSimpleSwapFactoryBin(erc20ContractAddress),
gasLimit: 6721975,
gasPrice: web3.utils.toWei('10', 'gwei'),
from: creatorAccount
})
if(!transaction.status) {
console.error('SimpleSwapFactory contract creation Error', error)
throw new Error('Error happened at creating SimpleSwapFactory contract creation')
}
console.log(`SimpleSwapFactory contract creation was successful!\n`
+ `\tTransaction ID: ${transaction.transactionHash}\n`
+ `\tContract ID: ${transaction.contractAddress}`)
}
module.exports = function (deployer, network, accounts) {
deployer.deploy(ERC20PresetMinterPauser, "Swarm Token", "BZZ").then(async () => {
await createSimpleSwapFactoryContract(ERC20PresetMinterPauser.address, accounts[0])
});
};