Title: solidity, плата за вызов функции Post by: zan0za on September 21, 2018, 01:12:06 PM Я хочу сделать так чтобы тот кто вызывает функцию в моем контракте заплатил бы мне за вызов фиксированную сумму, как это сделать? Как прописать сумму которую я хочу взымать за вызов функции?
Если я объявлю мою функцию как payable то что мне еще надо сделать? Title: Re: solidity, плата за вызов функции Post by: resttorg on September 22, 2018, 12:15:08 PM Вы можете переложить оплату газа на пользователя, но указать точную сумму не сможете
Title: Re: solidity, плата за вызов функции Post by: bomj on September 23, 2018, 09:31:10 AM https://ethereum.stackexchange.com/questions/6676/add-a-transaction-fee-for-each-time-a-function-is-called
https://ethereum.stackexchange.com/questions/42322/how-to-dynamically-charge-a-fee-associated-with-executing-a-particular-solidity Еще интересные моменты - https://ethereum.stackexchange.com/questions/11818/paying-a-transaction-fee-with-an-erc20-token https://ethereum.stackexchange.com/questions/144/can-contracts-pay-the-gas-instead-of-the-message-sender/46546#46546 https://github.com/bitclave/Feeless https://github.com/ethereum/EIPs/issues/865 Title: Re: solidity, плата за вызов функции Post by: zan0za on September 24, 2018, 07:30:53 PM https[Suspicious link removed]cuting-a-particular-solidity Еще интересные моменты - https://ethereum.stackexchange.com/questions/11818/paying-a-transaction-fee-with-an-erc20-token https://ethereum.stackexchange.com/questions/144/can-contracts-pay-the-gas-instead-of-the-message-sender/46546#46546 https://github.com/bitclave/Feeless https://github.com/ethereum/EIPs/issues/865 Сделал как по ссылкам описано и это работает. Такой код для проверки пришлось написать Code: //PayableService.sol Если просто вызывать функцию и делать оплату то это работает. А что делать если надо из смарт контракта вызвать платную функцию другого контракта, как мне переделать этот пример чтобы работал с контрактом выше? Code: //PayableServiceUser.sol Title: Re: solidity, плата за вызов функции Post by: zan0za on September 24, 2018, 10:49:17 PM Заменил
resp = payableService.summ(arg1, arg2); на resp = payableService.summ.value(CALL_PRICE)(arg1, arg2); Так заработало. А как выводить эфир с адреса контракта, обязательно функцию писать для этого или владелец контракта как то имеет возможность совершать транзакции с этого контракта без написания специальной функции? Title: Re: solidity, плата за вызов функции Post by: bomj on September 25, 2018, 05:15:37 PM А как выводить эфир с адреса контракта, обязательно функцию писать для этого или владелец контракта как то имеет возможность совершать транзакции с этого контракта без написания специальной функции? Вы знаете, пока не разбирался. Подготовил концепцию нового токена, перерываю толк на поиск аналогов. Одновременно просматриваю интересные контракты и возможность реализации. Все, что интересует пока быстро просматриваю забрасываю в закладки, откуда и послал вам ссылки. Уже массу закладок понаделал. Когда читать? Кстати данная тема меня интересует. Так что спасибо, за то что не промолчали, а ответили да еще и с кодом. Возможно в будущем к вам и обращусь с вопросом. Title: Re: solidity, плата за вызов функции Post by: zan0za on September 25, 2018, 10:06:52 PM А как выводить эфир с адреса контракта, обязательно функцию писать для этого или владелец контракта как то имеет возможность совершать транзакции с этого контракта без написания специальной функции? Вы знаете, пока не разбирался. Подготовил концепцию нового токена, перерываю толк на поиск аналогов. Одновременно просматриваю интересные контракты и возможность реализации. Все, что интересует пока быстро просматриваю забрасываю в закладки, откуда и послал вам ссылки. Уже массу закладок понаделал. Когда читать? Кстати данная тема меня интересует. Так что спасибо, за то что не промолчали, а ответили да еще и с кодом. Возможно в будущем к вам и обращусь с вопросом. Как можно без кода задавать вопрос или отвечать в теме КОДЕРЫ? ;D Я могу написать функцию которая будет выводить эфир с адреса моего смарт контракта, но хочу узнать есть ли возможность у того кто деплоил контракт выводить эфир с баланса смарт контракта? Title: Re: solidity, плата за вызов функции Post by: pchistyakov on September 26, 2018, 06:14:23 AM Посмотрите ссылку, может пригодится https://github.com/ethereum/EIPs/issues/865
Title: Re: solidity, плата за вызов функции Post by: bomj on September 26, 2018, 10:14:10 AM Может пригодиться пример реализации у Etherdelta
https://etherscan.io/address/0x8d12a197cb00d4747a1fe03395095ce2a5cc6819#code Title: Re: solidity, плата за вызов функции Post by: Jaga-Jaga on October 01, 2018, 05:35:37 PM Заменил resp = payableService.summ(arg1, arg2); на resp = payableService.summ.value(CALL_PRICE)(arg1, arg2); Так заработало. А как выводить эфир с адреса контракта, обязательно функцию писать для этого или владелец контракта как то имеет возможность совершать транзакции с этого контракта без написания специальной функции? Может пригодиться пример реализации у Etherdelta https://etherscan.io/address/0x8d12a197cb00d4747a1fe03395095ce2a5cc6819#code За код который может пригодиться вам по мериту ;) Может есть смысл отдельную тему для полезного кода создать? Title: Re: solidity, плата за вызов функции Post by: bomj on October 10, 2018, 01:37:32 PM Мысли вслух....
Условие: Существует развернутый контракт А. Задача: Создать контракт Б, который будет срабатывать при вызове Контракта А. Пока такие ссылки нашел: https://dicoiner.com/вызов-существующего-контракта-из-другого-контракта-f9a140eb7dc1 https://askentire.net/q/Как-вызвать-функцию-из-уже-развернутого-контракта-32299853198 https://ethereum.stackexchange.com/questions/9733/calling-function-from-deployed-contract Title: Re: solidity, плата за вызов функции Post by: Jaga-Jaga on October 14, 2018, 06:45:09 PM Мысли вслух.... Условие: Существует развернутый контракт А. Задача: Создать контракт Б, который будет срабатывать при вызове Контракта А. Пока такие ссылки нашел: https://dicoiner.com/вызов-существующего-контракта-из-другого-контракта-f9a140eb7dc1 https://askentire.net/q/Как-вызвать-функцию-из-уже-развернутого-контракта-32299853198 https://ethereum.stackexchange.com/questions/9733/calling-function-from-deployed-contract Если в контракте A не предусмотрен вызов другого контракта то никак не вызвать. Контракты нельзя изменять. Если в контракте A заранее предусмотреть вызов контракта B то это несложно реализовать, можно даже запилить контракт так чтобы из него можно было вызывать любой контракт а не только B, но и C, D, E, F, при этом этих контрактов еще может и не существовать на момент деплоя контракта A. До чего мы дожили кодерские темы модераторы в альты переносят, модераторы уже совсем не шарят в теме? ЛОЛ. |