Ошибка выполнения: нет газа

Я новый пользователь Эфириума. Моя ошибка:

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") })

У меня нет ошибки. Но я не понимаю, почему???

Вы используете контракт с учетной записью владельца?
Нет, но я тоже безуспешно пытаюсь :'( Сколько времени требуется, чтобы контракт был доступен? Потому что я не знаю почему, но мой старый контракт может работать сейчас

Ответы (1)

ваш код мне непонятен, но я думаю, что проблема порождается модификатором

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) проверьте свои значения

Спасибо за ответ, но я пытаюсь не использовать модификатор -> function betEven(uint number) public payable transactionMustContainEther() {
Как вы думаете, почему это происходит от модификатора? Я пытался обойти модификатор, чтобы не использовать его в коде, но он все равно не работает. Спасибо за вашу помощь!
я только отлаживал его