Привет, ребята, у меня проблемы с финансированием моего контракта с web3.
У меня в контракте очень простая оплачиваемая функция, которая просто принимает деньги.
function makePayment() public payable returns (bool) {
return true;
}
Для моего веб-интерфейса у меня есть очень простая HTML-форма для ввода некоторой суммы, а затем кнопка для финансирования контракта.
Вот мой HTML:
<form class="pure-form">
<input id="name" type="text" placeholder="Fund Contract" />
<button type="submit" class="sendMoney"></button>
</form>
<script>
var nameInput = document.getElementById('name');
document.querySelector('form.pure-form').addEventListener('submit', function (e) {
//prevent the normal submission of the form
e.preventDefault();
// console.log(nameInput.value);
});
</script>
Тогда в моем app.js есть функция для отправки денег:
sendMoney: function() {
// console.log(nameInput.value);
var practiceInstance;
App.contracts.Practice.deployed().then(function (instance) {
practiceInstance = instance;
return practiceInstance.makePayment().send ({
from: web3.eth.accounts[1],
value: web3.utils.toWei(nameInput.value, 'ether')
});
}).catch(function (err) {
console.log(err.message);
});
},
Эта функция ^ вызывается при нажатии кнопки «sendMoney».
Итак, что происходит, когда я записываю количество эфира в приложении для отправки в контракт, я получаю сообщение в журнале, в котором говорится: «Не удается прочитать свойство toWei из неопределенного» * 1016 *
И в моей мета-маске он показывает, что 0 эфир по какой-то причине отправляется в контракт: