首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用web3部署智能合约时不支持同步请求

使用web3部署智能合约时不支持同步请求
EN

Stack Overflow用户
提问于 2017-08-14 15:51:05
回答 1查看 933关注 0票数 3

我正在尝试使用Web3、Truffle和Testrpc在本地部署智能合约。我使用Truffle编译了一个智能合约,并使用以下代码提取ABI和字节码。在相同的脚本中,我尝试使用web3.eth.contract.deploy (在文档:https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#deploy中给出)来部署契约,但是得到了这个错误:

代码语言:javascript
复制
Error: Synchronous requests are not supported

我该怎么做才能解决这个问题呢?

下面是供参考的脚本:

代码语言:javascript
复制
let fs = require("fs");
let Web3 = require('web3'); // https://www.npmjs.com/package/web3
var TestRPC = require("ethereumjs-testrpc");

let web3 = new Web3();
web3.setProvider(TestRPC.provider());

let source = fs.readFileSync("../SmartContracts/build/contracts/TheContract.json");
let JSONObject = JSON.parse(source);

// ABI and bytecode description as JSON structure
let abi = JSONObject.abi
let bytecode = JSONObject.unlinked_binary;

// Create Contract proxy class
let contractSettings = {
  from: addr, 
  gas: 1000000, 
  data: bytecode
}
let SampleContract = new web3.eth.Contract(abi, contractSettings);

let deploySettings = {
  data: bytecode,
  from: addr
}

SampleContract.deploy(deploySettings)
  .send({
    from: addr,
    gas: 1500000,
    gasPrice: '30000000000000'
  })
  .on('error', function(error){ 
    console.log("error");
  })
  .on('transactionHash', function(transactionHash){ 
    console.log("transaction hash");
  })
  .on('receipt', function(receipt){
    console.log("receipt") // contains the new contract address
  })
  .on('confirmation', function(confirmationNumber, receipt){ 
    console.log("confirmation");
  })
  .then(function(newContractInstance){
    console.log(newContractInstance.options.address) // instance with the new contract address
  });

Console.log(“完成”);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-11 05:52:12

我认为这是使用TestRPC作为web3提供者的一个问题。切换到本地geth实例似乎已经解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45669792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档