使用web3+solc编译发布以太坊智能合约

一、环境安装:

1、安装web3工程:npm install web3

2、安装solc工程:npm install solc
二、在node环境中使用

先引用所需环境:

var fs = require ('fs');
var solc = require ('solc');
var solc = require ('web3');

//注:eth_token.sol 是在node工程中已经写好的要发布的智能合约。

//加载需要发的智能合约,我这里用ERC20标准合约测试。代码看之前的博客
var sourceToken = fs.readFileSync(rootDir+"/public/solidity/eth_token.sol","utf8");
//编译合约源码
var cacl=solc.compile(sourceToken,1);
var bytecode=cacl.contracts[':TokenERC20'].bytecode;
//发布合约所需的大致费用
var price = 90000000000;
var limit = 60000;
//查询钱包地址的nonce
web3.eth.getTransactionCount("填写钱包地址",function (error,result) {
//封装交易
var rawTx = {
nonce: result,
gasPrice: web3.toHex(price),
gasLimit: web3.toHex(limit),
from:"填写钱包地址",
data: "0x"+bytecode,
}
//私钥签名交易
var pk = new Buffer("填写钱包地址的私钥", 'hex')
var tx = new Tx(rawTx);
tx.sign(pk);
var serializedTx = tx.serialize();
//广播签名的交易
web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function (err, hash) {
if (!err) {
// 发行成功 用返回的 hash 值去区块链上查询 成功状态
}else{

}
})

})


---------------------
作者:IT_浩哥
来源:CSDN
原文:https://blog.csdn.net/qq_16137795/article/details/82988486?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/yuluoxingkong/p/9791858.html