в настоящее время я создаю простой лотерейный контракт с помощью реакции, но получаю ошибку .default.methods.manager не является функцией в реакции - PullRequest
0 голосов
/ 17 июня 2020

В настоящее время я строю простой лотерейный контракт с помощью react.js. это мой файл app.js в react.js с web3, лотерейный контракт работает хорошо, ремикс не может найти ошибку в этом файле.

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() {
const manager = await lottery.methods.manager().call();

this.setState({ manager });
}

render(){
return (
<div>
  <h2> Lottery contract</h2>
  <p>this contract if managed by {this.state.manager}</p>
</div>
      
);
}

}

export default App;

лотерея. js

import web3 from './web3';

const address = '0xBEFF762b1A78D1263b43e72630843D093B5c36d4';

const abi = [
    {"constant":false,"inputs":[{"name":"newMessage","type":"string"}],"name":"setMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"message","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialMessage","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}];

export default new web3.eth.Contract(abi, address);

введите описание изображения здесь

1 Ответ

0 голосов
/ 21 июня 2020

Кажется, что в вашем массиве ABI нет функции с именем manager и, возможно, выдается ошибка default.methods.manager is not a function.

Единственными функциями в вашем массиве ABI являются setMessage и message.

...