14

我目前正在尝试使用 Infura 通过 Web3 在我的机器上运行。当我设置运行我的node index.js文件时,我收到以下错误:

Unhandled rejection Error: This contract object doesn't have address set yet, please set an address first.
    at Object._processExecuteArguments (/Users/Oso.Lu/cryptokitty-miner/node_modules/web3-eth-contract/src/index.js:739:15)
    at Object._executeMethod (/Users/Oso.Lu/cryptokitty-miner/node_modules/web3-eth-contract/src/index.js:760:54


var helpers = require("./helpers.js")

var Web3 = require('web3');
var Tx = require('ethereumjs-tx');

// You should be running a local Eth node or use Infura.
var web3 = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io:443"));
var prompt = require('prompt');


var sendingAddress = "********************"  // with your sending ETH address
var pKey = "******************************"; // This will store the corresponding private key.  we'll be getting the private key for this Eth address from a command prompt


// Keep track of kitties we'll mine to avoid double-mining
var kittyArray = []

var theNonce = "";
// Gas price.   Todo: Use Eth gas station Oracle to predict gas prices
var gwei = '26'

// Track # of received
var num_requested = 0
var num_received = 0

我认为问题可能在 Infura 端口 443 上运行。

4

3 回答 3

4

简单的解决方案

Voting.options.address = "0x6ee9957aef5f4073c6af71441ec7962527c37671"

其中Voting是我的智能合约实例名称

0x6ee9957aef5f4073c6af71441ec7962527c37671部署智能联系人地址

我的 web3.js 版本 “web3”:“^1.0.0-beta.31”,

于 2018-09-28T11:30:18.013 回答
2
const accounts = await web3.eth.getAccounts()
this.setState({ 'account': accounts[0] });
const networkId = await web3.eth.net.getId()
const networkData = SocialNetwork.networks[networkId]
if (networkData) {
    const socialNetwork = web3.eth.Contract(SocialNetwork.abi, networkData.address)

} else {
    window.alert('oops')
}

这是为您的合约设置地址的正确方法。您可以通过networkData.address设置地址

于 2020-02-27T20:37:43.047 回答
0

就我而言,我意识到我的 truffle-config.js 文件中缺少我的目录,这就是为什么我在 migration.sol 中的网络字段没有得到更新的原因。我必须添加以下行来满足

contract_build_directory: path.join(__dirname, "client/src/contracts"),

于 2022-02-21T17:36:41.490 回答