Author

Topic: Контракт не принимает эфир (Read 854 times)

newbie
Activity: 7
Merit: 0
А вы заранее фиксированную эмиссию токенов решили сделать?
Да
member
Activity: 126
Merit: 23
А вы заранее фиксированную эмиссию токенов решили сделать?
newbie
Activity: 7
Merit: 0
Товарищи, всем спасибо за ответы! Проблема была в том, что на адрес краудсейл-контракта надо было перевести токены. Т.е. надо было, чтобы именно адрес краудсейл-контракта имел токены, а не адрес, с которого контракт деплоился... Я как-то умудрился упустить этот момент!... (( Надеюсь, теперь это кому-то тоже поможет!
Еще раз всем спасибо!!! )
newbie
Activity: 21
Merit: 0
Да, перепроверьте, все ли условия выполняются при вызове function(), т.е. отправке эфира на адрес контракта. Обычно эта ошибка говорит о том, что какое-то условие в функции не может быть выполнено.
full member
Activity: 313
Merit: 103
А с другого контракта не переводили на этот эфир? Если получится, возможно что данная payable функция ещё под какими-то требованиями, например, должна быть пустой, что бы контракт мог принимать платежи с кошелька напрямую. Что-то такое я где-то краем глаза видел.
newbie
Activity: 7
Merit: 0
может в контракте нет ни одной payable функции? нужно сделать.
есть payable fallback:
function () payable {
        require(!crowdsaleClosed);
        uint amount = msg.value;
        balanceOf[msg.sender] += amount;
        amountRaised += amount;
        tokenReward.transfer(msg.sender, amount / price);
        FundTransfer(msg.sender, amount, true);
}
Это прямо из примера (копипейст)...

А может быть проблема как-то связана с тем, что я все делаю на одном кошельке? И деплою, и пытаюсь с него же перевести эфир на адрес контракта? В теории это не должно быть проблемой, но я уже просто не понимаю куда смотреть ((
newbie
Activity: 7
Merit: 0
...если у вас контракт owned то его надо с параметром хозяина деплоить
Спасибо за ответ! Но нет, контракт не owned...

кстати, актуальный код с ethereum.org/crowdsale не компилируется - ругается на "event GoalReached(address beneficiary, uint amountRaised);", но поскольку это всего лишь описание я его меняю на "event GoalReached(address _beneficiary, uint _amountRaised);" и все ок. Но это так, мелочь...
full member
Activity: 313
Merit: 103
может в контракте нет ни одной payable функции? нужно сделать.
sr. member
Activity: 613
Merit: 256
Добрый день!

Изучаю эфириум и его смарт-контракты.
Пробую в тестовой приватной сети сделать смарт-контракты токенов и краудсейла.
Беру код вот отсюда https://ethereum.org/token#the-code и отсюда https://ethereum.org/crowdsale#the-code
Деплою через кошелек Эфириума (майнинг при этом работает, блоки собираются).
После деплоя контракта токенов и краудсейла пытаюсь с основного кошелька отправить эфир на адрес краудсейл-контракта, но получаю ошибку: It seems this transaction will fail. If you submit it, it may consume all the gas you provide.
Так же в окне подтверждения пишется "Estimated fee consumption: The contract won't allow this transaction to be executed".
Если ошибку проигнорировать, и подтвердить транзакцию, то ничего не происходит. Баланс не уменьшается, токены не зачисляются.
Кошелек Ethereum Wallet 0.9.2

Могли бы вы подсказать, почему так происходит? Где может быть ошибка?
Спасибо!
На ethereum.org нормальные рабочие примеры, я сам проверял.
Ошибка как у вас у меня тоже была, возможно не с этими примерами, но вроде ее я решил очень просто, вроде если у вас контракт owned то его надо с параметром хозяина деплоить, в remix-е надо указать в поле "At Address" указать адрес хозяина. (адрес надо в кавычках указывать), как называется этот параметр в кошельке я не знаю. Если что попробуйте через remix задеплоить контракт.
newbie
Activity: 7
Merit: 0
Добрый день!

Изучаю эфириум и его смарт-контракты.
Пробую в тестовой приватной сети сделать смарт-контракты токенов и краудсейла.
Беру код вот отсюда https://ethereum.org/token#the-code и отсюда https://ethereum.org/crowdsale#the-code
Деплою через кошелек Эфириума (майнинг при этом работает, блоки собираются).
После деплоя контракта токенов и краудсейла пытаюсь с основного кошелька отправить эфир на адрес краудсейл-контракта, но получаю ошибку: It seems this transaction will fail. If you submit it, it may consume all the gas you provide.
Так же в окне подтверждения пишется "Estimated fee consumption: The contract won't allow this transaction to be executed".
Если ошибку проигнорировать, и подтвердить транзакцию, то ничего не происходит. Баланс не уменьшается, токены не зачисляются.
Кошелек Ethereum Wallet 0.9.2

Могли бы вы подсказать, почему так происходит? Где может быть ошибка?
Спасибо!
Jump to: