Могу ли я предоставить новым пользователям тестовой сети доступ к эфиру моего смарт-контракта?

Я создаю смарт-контракт для голосования, который позволяет участникам голосовать по определенному вопросу и записывать голосование и различные вспомогательные данные в блокчейн. Я новый разработчик Ethereum/Solidity, и мне нужна помощь в создании хорошей стратегии для тестовой фазы разработки и развертывания смарт-контрактов, когда они находятся только в тестовой сети.

Я хотел бы максимально упростить работу с моими тестовыми пользователями, поэтому я надеюсь, что смарт-контракт сможет «финансировать» весь голос эфира, который я запросил у тестовой сети Ринкеби (т. е. — с моей учетной записи). Я стараюсь не заставлять каждого тестового пользователя делать свои собственные запросы эфира из тестовой сети Rinkeby только для того, чтобы они могли участвовать.

В целом, как большинство из вас управляет/содействует этапу тестирования ваших смарт-контрактов, когда они работают в тестовой сети? Есть ли где-нибудь хорошая статья или документ, в котором конкретно рассматриваются эти вопросы?

Ответы (1)

Это немного похоже на сценарий куриного яйца, потому что им потребуется немного эфира, чтобы подписать транзакцию по вашему контракту. Кроме того, ваш контракт может пересылать эфир, который есть у него, но не эфир, который есть у кого-то другого (вас).

Шаблон, который вам нужен, — это кран. Это будет веб-сайт, который позволит им запросить отправку эфира на их учетную запись, чтобы загрузить их с нулевого баланса. Так же легко можно дать четкие инструкции по сбору средств из существующего крана.

Например (Ринкеби): https://faucet.rinkeby.io/

или (Ropsten): http://ipfs.b9lab.com:8080/ipfs/QmWBRdUQsLahC8dWVo3rS9jrFnxGSw3WHm5gcHu3URTv87/throttled_faucet.html

Надеюсь, поможет,

Есть ли способ развернуть контракт с существующим балансом или «оплатить» его с моего счета, чтобы финансировать его, как только он будет развернут? сам контракт (например, включение в счет за номер в гостинице еды, которую вы покупаете для кого-то другого)? Или у моих тестеров все еще будет хотя бы немного эфира для подписания любых транзакций по контракту, как вы сказали?
Контракты могут удерживать средства, и они могут переводить средства, но они не могут платить за газ. Это потому, что они не могут быть инициаторами подписанной транзакции. Он всегда исходит от внешней учетной записи и всегда несет расходы на газ для обработки запроса, независимо от того, сколько контрактов может быть в цепочке сообщений, которые разворачиваются.