Я новый пользователь Эфириума. Моя ошибка:
Runtime Error: out of gas
Мой контракт: https://github.com/cbourree/test/wiki
Я компилирую с помощью: https://ethereum.github.io/browser-solidity/#version=soljson-v0.4.0+commit.acd334c9.js
«развернутый web3» генерируется с надежностью: https://github.com/cbourree/test/wiki/Compiled-contract
я бегуtestrpc -u 0 -u 1
На консоли Chrome:
I run "web3 deployed" commandes
web3.fromWei(web3.eth.getBalance("0xafd05e5884d2cccc947b76da3e4af9025b677002"), "ether").toNumber(); //0xaf...002 address of my contract
РАБОТА (возврат 10 Eth) ! Но :
roulette.betEven(10, { from: web3.eth.accounts[1], value: web3.toWei(1, "ether") })
-> Ошибка: нет газа
Код взят из этого руководства: https://www.ethereum-france.com/ecrire-une-dapp-pour-ethereum-1-smart-contract/
Изменить : я могу выполнить контракт в консоли трюфелей без ошибок
РЕДАКТИРОВАТЬ 2
когда я бегу
roulette.betOdd({ from: web3.eth.accounts[1] })
тогда
roulette.betOdd({ from: web3.eth.accounts[1], value: web3.toWei(10, "ether") })
У меня нет ошибки. Но я не понимаю, почему???
ваш код мне непонятен, но я думаю, что проблема порождается модификатором
modifier bankMustBeAbleToPayForBetType(BetType betType) {
uint necessaryBalance = 0;
for (uint i = 0; i < bets.length; i++) {
necessaryBalance += getPayoutForType(bets[i].betType) * bets[i].value;
}
necessaryBalance += getPayoutForType(betType) * msg.value;
if (necessaryBalance > this.balance) throw;
_;
}
возможно, (necessaryBalance > this.balance) проверьте свои значения
Гавей
Шарль Бурре