web3 deploy smart contract 1.2.1
Use https://remix.ethereum.org Get Contract json and data.
In remix website, Compile finish. See Compliation Details.
1. ABI: click ABI buttion, get data. Use http://jsonviewer.stack.hu/ remove space
2. Compliation Details -> WEB3DEPLOY -> get data
3. cContract.options.from need put correct.
var Web3 = require("web3");
var provider = new Web3.providers.HttpProvider("http://ganache:8545");
var web3 = new Web3(provider);
//abi
var cContract = new web3.eth.Contract([{"constant":false,"inputs":[{"name":"x","type":"uint256"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}])
//bytecode
cContract.options.data = '0x608060405234801561001057600080fd5b5060bf8061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360fe47b18114604d5780636d4ce63c146064575b600080fd5b348015605857600080fd5b5060626004356088565b005b348015606f57600080fd5b506076608d565b60408051918252519081900360200190f35b600055565b600054905600a165627a7a72305820765480c908e5e28e3233e18bfa422944b42cad5fc08b77d7b22d3ddd7016a1380029'
cContract.options.from = '0xoooxxxoooxxxoooxxxoooxxxoooxxx'
cContract.options.gas = '4700000'
console.log("web3 version: %o", web3.version)
web3.eth.getAccounts().then(o=>{console.log(o)})
cContract.deploy().send()
.on('error', (error) => {
console.log("error: %o", error)
})
.on('transactionHash', (transactionHash) => {
console.log("transactionHash: %o", transactionHash)
})
.on('receipt', (receipt) => {
// receipt will contain deployed contract address
console.log("receipt: %o", receipt)
console.log("receipt.contractAddress: %o", receipt.contractAddress)
})
.on('confirmation', (confirmationNumber, receipt) => {
console.log("confirmationNumber: %o", confirmationNumber)
console.log("confirmation receipt: %o", receipt)
})
.then(function(newContractInstance){
if (typeof newContractInstance.options.address !== 'undefined') {
console.log('Contract mined! address: ' + newContractInstance.options.address);
}else{
console.log("newContractInstance.address is undefined!")
}
});