Deploy with web3.js
(async () => {
try {
console.log('deploy...')
// Note that the script needs the ABI which is generated from the compilation artifact.
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', 'browser/artifacts/CustomERC20.json'))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: ["Mask", "N95"]
})
newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log(newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
Deploy with Ethers
(async function() {
try {
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', 'browser/artifacts/CustomERC20.json'))
// the variable web3Provider is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
// Create an instance of a Contract Factory
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
// Notice we pass the constructor's parameters here
let contract = await factory.deploy('Mask', 'N95');
// The address the Contract WILL have once mined
console.log(contract.address);
// The transaction that was sent to the network to deploy the Contract
console.log(contract.deployTransaction.hash);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
// Done! The contract is deployed.
console.log('contract deployed')
} catch (e) {
console.log(e.message)
}
})();