pragma solidity ^0.4.23;
contract Hotelbooking {
event Transfer(
address indexed _from,
address indexed _to,
uint256 _value
);
mapping(address => uint256) public balanceOf;
//mapping (uint256 => data) accounts ;
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
}
}
Мой код трассировки, который я хочу использовать с mty truffle
Hotelbooking.deployed().then(function(i){app = i;})
app.transfer(web3.eth.accounts[1],10,{из: web3.eth.accounts[0] })
я получаю следующую ошибку
Ошибка: Исключение виртуальной машины при обработке транзакции: возврат в XMLHttpRequest._onHttpResponseEnd (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:509:1) в XMLHttpRequest._setReadyState (/usr/ lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:354:1) в XMLHttpRequestEventTarget.dispatchEvent (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/ xhr2.js:64:1) в XMLHttpRequest.request.onreadystatechange (/usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/httpprovider.js:128:1) в /usr/lib /node_modules/truffle/build/webpack:/packages/truffle-provider/wrapper.js:134:1 в /usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/requestmanager.js: 86:1 в Object.InvalidResponse (/usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/errors.js:38:1)
пожалуйста, помогите мне
Все ваши балансы равны нулю. Требовать в вашей функции передачи всегда будет терпеть неудачу. Вам не хватает конструктора для чеканки монет.
Например:
constructor(uint initialAmount) {
balanceOf[msg.sender] = initialAmount;
}
Я нашел проблему. Функция, которую я упомянул, предназначена для перевода моих монет на другую учетную запись, а не эфира одной учетной записи на другую.
Для перевода эфира перейдите по следующей ссылке
Я пытаюсь добавить эфир в одну из своих учетных записей etherium, используя смарт-контракт.
Ксавье Лепретр B9lab
accounts[0]
есть вbalanceOf
?Венкатеш Мутхьяла
Ксавье Лепретр B9lab
mapping(address => uint256) public balanceOf;
. Сколькоapp.balanceOf(web3.eth.accounts[0] )
возвращается?Венкатеш Мутхьяла
Ксавье Лепретр B9lab
0
. делать.toString(10)
. По сутиbalanceOf[msg.sender] == 0
, поэтому он терпит неудачу вrequire(balanceOf[msg.sender] >= _value);
.Венкатеш Мутхьяла
Ксавье Лепретр B9lab
Hotelbooking
токен-контракт. Имеет балансы и передаточную функцию. Это не имеет ничего общего с эфиром. Найдите "контракт токена". В настоящее время у всех в вашем контракте 0 токенов, поэтому никто ничего не может отправить. Вам нужно его инициализировать.Венкатеш Мутхьяла