簡體   English   中英

部署智能合約Web3無效的RPC響應

[英]Deploying smart contract web3 Invalid RPC response

我正在嘗試在節點服務器上部署合同,如下所示:

var escrow = 'pragma solidity ^0.4.4;contract Escrow {address public challenger;address public participant;address public arbiter;function Escrow(address _participant, address _arbiter) {challenger = msg.sender;participant = _participant;arbiter = _arbiter;}function payoutToParticipant() {if(msg.sender == challenger || msg.sender == arbiter) {participant.send(this.balance);}}function refundToChallenger() {if(msg.sender == challenger || msg.sender == arbiter) {challenger.send(this.balance);}}function getBalance() constant returns (uint) {return this.balance;}}';

module.exports.createEscrowContract = function(req, res) {
    //Set variables
    var challenger = '0xE6...';
    var participant = '0x4E...';
    var arbiter = '0xe5C...';

    //Compile contract
    var compiled = solc.compile(escrow);

    console.log(compiled);
    const web3 = new Web3();
    web3.setProvider(new 
    web3.providers.HttpProvider("https://mainnet.infura.io/XXXX"));

    //Store bytecode
    var bytecode = compiled.contracts[':Escrow'].bytecode;

    //Store abi
    var abi = JSON.parse(compiled.contracts[':Escrow'].interface);

    var escrowContract = web3.eth.contract(abi);

    //Seems to compile fine.
    console.log(escrowContract);

    //Deploy contract
    var deployed = escrowContract.new(participant, arbiter, {
      from: challenger,
      data: bytecode,
      gas: 470000,
      }, (error, contract) => {

           console.log(error); 
           // Invalid JSON RPC response: ""
           console.log(contract);
           //undefined
      });


}

我嘗試了幾件事並閱讀了文檔,但似乎找不到任何東西! 我確定我不是唯一一個遇到此問題的人,我使用的是web3@0.20。

如果有人可以提供幫助,我將非常感激。

我可以發現兩個問題:

  1. 您正在傳遞47,000,000的天然氣,這是荒謬的。 就上下文而言,整個區塊只能使用8,000,000瓦斯。 如果您以當前的天然氣價格實際使用了4,700萬美元的天然氣,那將花費超過200美元。 我相信這會導致您的交易在任何節點嘗試運行之前被拒絕。
  2. Infura作為公共節點,永遠無法擁有您的私鑰(在本例中為challenger的私鑰),因此它無法為您簽署交易。 如果challenger是您的帳戶,則可以在廣播之前按住密鑰並簽署部署事務。 如果challenger是您應用程序的用戶,那么最好讓用戶簽名並通過MetaMask之類的東西自己發送交易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM