使用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{
            
        }
    })

})

学如逆水行舟,不进则退。心似平原跑马,易放难收。全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。 也叫全端工程师(同时具备前端和后台能力),英文Full Stack engineer。【人工智能】【区块链】【系统/网络/运维】【云计算/大数据】【数据库】【移动开发】【后端开发】【游戏开发】【UI设计】【微服务】【爬虫】【Java】【Go】【C++】【PHP】【Python】【Android/IOS】【HTML/CSS】【JavaScript】【Node】。。。

欢迎各位大神萌新一起专研分享各行各业技术

IT全栈工程师技术交流群:593674370

猜你喜欢

转载自blog.csdn.net/qq_16137795/article/details/82988486
今日推荐