2017-08-14 6 views
2

Web3、Truffle、およびTestrpcを使用してスマートコントラクトをローカルに展開しようとしています。私はTruffleを使ってスマートな契約を作成し、ABIとバイトコードを抽出する次のコードを用意しました。同じスクリプトでは、私は(このドキュメントで与えられた:https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#deploy)web3.eth.contract.deployを使用して契約を展開しようとしているが、このエラーを取得されています:web3を使用してスマートコントラクトをデプロイすると、同期要求がサポートされない

Error: Synchronous requests are not supported 

私は周りを取得するために何をすべきこの?ここ

は参考のためにスクリプトである:

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( "終了しました")。

+0

あなたはこの解決策を見つけることになりましたか?私は同じ問題を抱えています。 –

答えて

0

私はこれがWeb3プロバイダーとしてTestRPCを使用する際の問題だと考えています。ローカルのgethインスタンスに切り替えると、問題が解決されたようです。

+0

はい、あなたは正しいと思います。私もこの問題を抱えていました。バージョン管理の問題だと思います。私はここでそれを開きました:https://github.com/ethereum/web3.js/issues/1038 –

関連する問題