Я получил следующую ошибку при запуске приложения dApp (Truffle) в консоли браузера.
Uncaught (in promise) Error: Internal JSON-RPC error.
at Object.InvalidResponse (inpage.js:1)
Мой код App.js
handleClick: function (event) {
event.preventDefault();
web3.eth.getAccounts(function (error, accounts) {
if (error) {
console.log(error);
}
var account = accounts[0];
App.contracts.Rental.deployed().then(function (instance) {
var rentalInstance = instance;
var rentId = parseInt($(event.target).data('id'));
return rentalInstance.getRentals.call();
}).then(function (rentals) {
console.log(rentals);
return rentalInstance.rent(rentId, {
from: accounts[0],
value: this.state.Web3.toWei(rentals[rentId].price, 'ether')
});
});
});
}
Код до var rentId = parseInt ($ (event.target) .data ('id'));
работает нормально, но после этой строки у меня возникла проблема с получением арендной платы из смарт-контракта.
Мой умный контракт
pragma solidity ^0.5.0;
contract Rental {
address[16] public rentals;
address public owner;
constructor() public {
owner = msg.sender;
}
function rent(uint rentalId) public payable returns (uint){
require(rentalId >= 0 && rentalId <= 15, "");
rentals[rentalId] = msg.sender;
return rentalId;
}
function getRentals() public view returns (address[16] memory){
return rentals;
}
function getBalance() public view returns (uint){
return address(this).balance;
}
function payday() public view {
require(msg.sender == owner, "");
}
}