Bitcoin Forum
November 19, 2024, 03:37:04 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Контракт не принимает эфир  (Read 854 times)
Cy80rG (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
October 25, 2017, 03:05:56 PM
 #1

Добрый день!

Изучаю эфириум и его смарт-контракты.
Пробую в тестовой приватной сети сделать смарт-контракты токенов и краудсейла.
Беру код вот отсюда 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

Могли бы вы подсказать, почему так происходит? Где может быть ошибка?
Спасибо!
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 25, 2017, 08:08:21 PM
 #2

Добрый день!

Изучаю эфириум и его смарт-контракты.
Пробую в тестовой приватной сети сделать смарт-контракты токенов и краудсейла.
Беру код вот отсюда 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 задеплоить контракт.

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
October 26, 2017, 10:00:42 AM
 #3

может в контракте нет ни одной payable функции? нужно сделать.
Cy80rG (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
October 26, 2017, 11:13:10 AM
 #4

...если у вас контракт owned то его надо с параметром хозяина деплоить
Спасибо за ответ! Но нет, контракт не owned...

кстати, актуальный код с ethereum.org/crowdsale не компилируется - ругается на "event GoalReached(address beneficiary, uint amountRaised);", но поскольку это всего лишь описание я его меняю на "event GoalReached(address _beneficiary, uint _amountRaised);" и все ок. Но это так, мелочь...
Cy80rG (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
October 26, 2017, 11:33:45 AM
 #5

может в контракте нет ни одной 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);
}
Это прямо из примера (копипейст)...

А может быть проблема как-то связана с тем, что я все делаю на одном кошельке? И деплою, и пытаюсь с него же перевести эфир на адрес контракта? В теории это не должно быть проблемой, но я уже просто не понимаю куда смотреть ((
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
October 26, 2017, 11:45:39 AM
 #6

А с другого контракта не переводили на этот эфир? Если получится, возможно что данная payable функция ещё под какими-то требованиями, например, должна быть пустой, что бы контракт мог принимать платежи с кошелька напрямую. Что-то такое я где-то краем глаза видел.
Mishman
Newbie
*
Offline Offline

Activity: 21
Merit: 0


View Profile
October 31, 2017, 01:44:37 PM
 #7

Да, перепроверьте, все ли условия выполняются при вызове function(), т.е. отправке эфира на адрес контракта. Обычно эта ошибка говорит о том, что какое-то условие в функции не может быть выполнено.
Cy80rG (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
November 08, 2017, 09:44:39 AM
 #8

Товарищи, всем спасибо за ответы! Проблема была в том, что на адрес краудсейл-контракта надо было перевести токены. Т.е. надо было, чтобы именно адрес краудсейл-контракта имел токены, а не адрес, с которого контракт деплоился... Я как-то умудрился упустить этот момент!... (( Надеюсь, теперь это кому-то тоже поможет!
Еще раз всем спасибо!!! )
yokotoka
Member
**
Offline Offline

Activity: 126
Merit: 23


View Profile
November 09, 2017, 04:20:36 PM
 #9

А вы заранее фиксированную эмиссию токенов решили сделать?
Cy80rG (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
November 10, 2017, 08:49:30 AM
 #10

А вы заранее фиксированную эмиссию токенов решили сделать?
Да
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!