Bitcoin Forum
November 09, 2024, 12:14:22 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: отправка эфира на смартконтракт  (Read 372 times)
ShDenis (OP)
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
September 24, 2017, 04:11:03 PM
 #1

Залил контракт (систему контрактов) в девелоперский блокчейн. Теперь пытаюсь передать на управляющий контракт немного эфира с основного аккаунта, но получаю сообщение о том, что похоже, что транзакция не будет исполнена по причине того, что контракт для этого не предназначен (The contract won't allow this transaction to be executed). 

Это как получается, для перевода денег на контракт он должен быть каким-то особенным? Т.е. не на каждый контракт можно перевести эфир?

Подскажите, пожалуйста, кто знает.
ShDenis (OP)
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
September 25, 2017, 07:41:13 AM
 #2

подниму тему.
Похоже, что для контрактов, на которые можно отправлять валюту, обязательно присутствие функции с модификатором payable. (перехват входящих маней). Может у кого есть идеи или примеры, как в этой функции отличать, что за токены пришли, и как потом (желательно потом, а не сразу) отсылать накопленные на контракте токены и эфир в желаемом направлении?
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
September 26, 2017, 10:09:14 PM
 #3

подниму тему.
Похоже, что для контрактов, на которые можно отправлять валюту, обязательно присутствие функции с модификатором payable. (перехват входящих маней). Может у кого есть идеи или примеры, как в этой функции отличать, что за токены пришли, и как потом (желательно потом, а не сразу) отсылать накопленные на контракте токены и эфир в желаемом направлении?
Я вижу 2 варианта как это можно реализовать.
1-Вариант, это когда уже после нескольких оплат будет накапливаться нужная для вывода сумма, это каждый раз при получении токенов смотреть не накопилась ли уже сумма достаточная для вывода и если да то совершать транзакцию.
2-Вариант, это когда нужная сумма будет накапливаться медленно или выводить ее надо очень редко, это надо сделать следующее:
1. В конструкторе смарт контракта надо сохранить адрес владельца контракта.
2. Создать функцию которая будет совершать транзакцию всей суммы или той суммы которая приходит как параметр, в этой функции должна быть встроена проверка что вызвать ее может только владелец контракта.
3. Вызывать функцию когда понадобится вывести средства.

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

Activity: 313
Merit: 103



View Profile
September 27, 2017, 06:06:06 AM
 #4

за подробный ответ спасибо. а по поводу переводов в разных токенах - как можно их отличать, обрабатывать, выводить с контракта?
KostiaSA
Jr. Member
*
Offline Offline

Activity: 34
Merit: 3


View Profile
September 27, 2017, 07:58:08 AM
 #5

за подробный ответ спасибо. а по поводу переводов в разных токенах - как можно их отличать, обрабатывать, выводить с контракта?

посмотрите опубликованный контракт с исходниками, очень поучительно, там все есть https://etherscan.io/address/0x34f762de7be95e4dbd6d9188554979444637c636#code
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!