Я создал умный контракт, он хорошо работает, когда я вызываю функцию «депозит» с помощью ремикса, но когда я вызываю функцию «депозит» с помощью myetherwallet, возникает ошибка: «Требуемый газ превышает допустимый или всегда провал транзакции»
Я развернул этот контракт в сети Ropsten,
адрес контракта: 0xe09173bc458cbb421cf1e8813bedf68522839ef8
исходный код смарт-контракта:
pragma solidity ^0.5.0;
contract Deposit{
mapping(address=>uint) private balance;
mapping(address=>bool) private hasDeposit;
event depositEvent(address addr, uint val, uint48 TeraAcc);
function deposit(uint48 TeraAccountNum) public payable{
require(msg.value>=10000000000, "Please deposit more than 10gwei!");
require(TeraAccountNum!=0, "Please input your tera account!");
balance[msg.sender] += msg.value;
hasDeposit[msg.sender]=true;
emit depositEvent(msg.sender, msg.value, TeraAccountNum);
}
function getBalance() view public returns(uint){
require(hasDeposit[msg.sender]==true, "You haven't deposit yet!");
return balance[msg.sender];
}
function getTotalBalance() view public returns(uint){
return address(this).balance;
}
function() external payable{
deposit(0);
}
}
Я ожидаю, что этот контракт будет работать как с remix, так и с myetherwallet, но при вызове функции deposit в myetherwallet всегда возникает ошибка, пожалуйста, помогите.