Eri*_*uez 0 reactjs ethereum solidity
我正在用 React 构建一个简单的应用程序,但是var manager = wait lottery.methods.manager().call(); 永远不会检索值,我怎么会错呢?
彩票.js
import web3 from './web3';
const address = '0x430b45dcf781d58e73CeeA288b4196B6ddeE4d7E';
const abi = [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"enter","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getPlayers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pickWinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"players","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"random","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}];
const cont = new web3.eth.Contract(abi,address);
export default cont;
Run Code Online (Sandbox Code Playgroud)
应用程序.js
import React,{Component} from 'react';
import logo from './logo.svg';
import './App.css';
import web3 from './web3';
import lottery from './lottery';
class App extends Component {
constructor (props){
super(props);
this.state = {"manager":''};
}
async componentDidMount(){
console.log("componentDidMount fired");
var manager = await lottery.methods.manager().call();//never set manager var
this.setState({manager});
}
render() {
return (
<div>
<h2>Lottery contract</h2>
<p>This contract is managed by {this.state.manager}</p>
</div>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
web3.js
import Web3 from "web3";
const web3 = new Web3(window.ethereum);//Web3(window.web3.currentProvider);
export default web3;
Run Code Online (Sandbox Code Playgroud)
欢迎任何帮助我的建议,谢谢
小智 5
对我有用的是在https://remix.ethereum.org/上编译我的合约并从那里复制 abi。
const abi = [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "enter",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getPlayers",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "manager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pickWinner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "players",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
];Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |