zoukankan      html  css  js  c++  java
  • 使用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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    APP_DEBUG作用
    tp字段映射机制原理
    unix、windows、mac 的换行习惯
    DroidCam 一片 红色 解决办法
    A3 A8 算法,中文简明解释
    /usr/local/mysql/bin/mysql P 3307 protocol=tcp 无法连接mysql
    [转载]网络基础:精解传输层安全协议
    无线网络加密一点漫谈
    安全模式:J2EE、Web服务和身份管理最佳实践与策略
    scp和winscp
  • 原文地址:https://www.cnblogs.com/yuluoxingkong/p/9791858.html
Copyright © 2011-2022 走看看