<
 
 
 
 
×
>
hide You are viewing an archived web page, collected at the request of Ethereum Foundation using Archive-It. This page was captured on 23:43:12 May 02, 2021 , and is part of the Community collection. The information on this web page may be out of date. See All versions of this archived page. Loading media information

difference between deploy a contract(e.g. truffle migrate) and new a Contract

lyhistorylyhistory Member Posts: 2
Let's say now we have this:
Fatory.sol:
import "./Contract.sol";
contract Factory {
address[] newContracts;

function createContract (bytes32 name) {
address newContract = new Contract(name);
newContracts.push(newContract);
}
}
Contract.sol:
contract Contract {
bytes32 public Name;

function Contract (bytes32 name) {
Name = name;
}
}

then we can deploy this two contracts like this:
2_deploy_contract.js:
var Factory = artifacts.require("./Factory.sol");
var Contract= artifacts.require("./Contract.sol")
module.exports = function(deployer){
deployer.deploy(Factory);
deployer.deploy(Contract,['Contract 1"]);
}
then we deploy this two contracts by : truffle migrate
after that we can interact with the smart contract through web3js, for simplity, I just call:
var factory = contract(factory_artifacts);
factory.deployerd().then(function(inst){
inst.createContract('Contract 2", {from: web3.eth.accounts[0]});
});

1). what's the difference when I call "deployer.deploy(Contract,['Contract 1"]);" through truffle migrate and " inst.createContract('Contract 2", {from: web3.eth.accounts[0]});" through web3js
2). where does it store, I mean the bytecode I deployed and the "nstance" I created: 'Contract 1' and 'Contract 2', are they stored in the same place
3). instead of deployer.deploy(Contract,['Contract 1"]); how about if deployer.deploy(Contract); without calling the construction function, is it ok, if this is fine, then what's the difference again?
Sign In or Register to comment.