作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有人可以就我正在从事的项目指导我朝着正确的方向前进,该项目是 Udemy 类(class)的一部分(以太坊和solidity 完整的开发人员指南)
所以我目前正在努力整合一个 Kickstarter 替代方案的前端。我面临的问题在于 new.js
用作表示 的 JS 文件的文件新页面 包含一个按钮,使用户能够创建一个新的事件(通过元掩码进行实际交易)。
import React, { Component } from 'react';
import { Form, Button, Input } from 'semantic-ui-react';
import Layout from '../../components/Layout';
import factory from '../../ethereum/factory';
import web3 from '../../ethereum/web3';
require('babel-polyfill');
class CampaignNew extends Component {
state = {
minimumContribution: ''
};
//to record and track user changes and inputs
onSubmit = async (event) => {
event.preventDefault();
const accounts = await web3.eth.getAccounts();
await factory.methods
.createCampaign(this.state.minimumContribution)
.send({ from: accounts[0] });
};
render() {
return (
<Layout>
<h3>Create a Campaign</h3>
<Form onSubmit={this.onSubmit}>
<Form.Field>
<label>Minimum Contribution</label>
<Input
label="wei"
labelPosition="right"
value={this.state.minimumContribution}
onChange={event =>
this.setState({ minimumContribution: event.target.value })}
/>
</Form.Field>
<Button primary>Create!</Button>
</Form>
</Layout>
);
}
}
export default CampaignNew;
现在在页面本身上,当我尝试单击创建事件按钮时,该按钮具有应记录输入的 onChange 处理程序。在我尝试单击与 onEvent 处理程序 Hook 的按钮后出现的错误生成以下内容:
errors.js?207caff:127 Uncaught (in promise) Error: No "from" address specified in neither the given options, nor the default options.
at Object.ContractNoFromAddressDefinedError (errors.js?207caff:127)
at Object._executeMethod (index.js?901a092:775)
at CampaignNew._callee$ (new.js?bfcc6bf:22)
at tryCatch (runtime.js?af915c5:62)
at Generator.invoke [as _invoke] (runtime.js?af915c5:296)
at Generator.prototype.<computed> [as next] (runtime.js?af915c5:114)
at step (asyncToGenerator.js?210f254:17)
at asyncToGenerator.js?210f254:28
我按照类(class)的指示使用 web3 1.0.0-beta26,因此我们都可以遵循相同的语法。我更新了 truffle HD 钱包,并且我认为它可能会阻止与 Metamask 的正确连接,因此可以运行交易并创建事件。我不知道还能做什么,所以如果有人能感激地引导我朝着正确的方向前进,那真的很棒。
最佳答案
//在您的 web3.js 中尝试添加 ;
在底部 }
web3 = new Web3(provider);
}; (<-- Add semicolon here)
export default web3;
//并添加
.enable()
:
if (typeof window !== 'undefined' && typeof window.web3 !== 'undefined') {
// We are in the browser and Metamask is running
web3 = new Web3(window.web3.currentProvider.enable())
这将连接钱包,但不是最终解决方案。如果连接到钱包后出现更多问题。删除
.enable()
再次,您应该能够进行交易..
关于javascript - 未捕获( promise 中)错误 : No "from" address specified in neither the given options, 和默认选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813995/
我是一名优秀的程序员,十分优秀!