[英]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。
如果有人可以提供幫助,我將非常感激。
我可以發現兩個問題:
challenger
的私鑰),因此它無法為您簽署交易。 如果challenger
是您的帳戶,則可以在廣播之前按住密鑰並簽署部署事務。 如果challenger
是您應用程序的用戶,那么最好讓用戶簽名並通過MetaMask之類的東西自己發送交易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.