【问题标题】:Deploying new contract to etherium network with web3.js使用 web3.js 将新合约部署到以太坊网络
【发布时间】:2020-03-09 23:57:51
【问题描述】:

我已尝试使用相关依赖项运行此代码以获取合约地址,但收到错误

No "from" address specified in neither the given options, nor the default options. 来自浏览器。此外,使用 metamask ropsten 测试网使用 Remix 工具进行部署时也没有错误。

onSubmit = async (event) => {
    event.preventDefault();
    this.setState({ loading: true, errorMessage: '' }); 
    try {
        const accounts = await web3.eth.getAccounts();
        console.log(accounts)
        await factory.methods
        .createCampaign(this.state.minimumContribution)
        .send({ from: accounts[0] })
        Router.pushRoute('/');
    } catch (err) {
        this.setState({ errorMessage: err.message }) 
    }
    this.setState({ loading: false });
}

【问题讨论】:

  • 能否提供您如何设置 web3 的代码?
  • import Web3 from 'web3'; let web3; if ( typeof window !== 'undefined' && typeof window.eth !== 'undefined') { web3 = new Web3(window.web3.currentProvider); } else { const provider = new Web3.providers.HttpProvider( 'https://ropsten.infura.io/v3/741b62b06288435e856e8567767a3a5b' ); web3 = new Web3(provider); } export default web3;

标签: javascript reactjs solidity web3js


【解决方案1】:

console.log(accounts) 是否打印任何内容?

如果没有,请尝试使用以下代码设置 web3:

if (typeof web3 !== 'undefined') {
  window.web3 = new Web3(web3.currentProvider);
  web3.currentProvider.enable();
} else {
  window.web3 = new Web3(new Web3.providers.HttpProvider("..."));
}

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 2018-08-24
    • 1970-01-01
    • 2018-06-20
    • 2018-01-07
    • 2018-08-09
    • 2016-02-28
    • 1970-01-01
    • 2018-06-19
    相关资源
    最近更新 更多