Контакты
Местоположение
Россия, Москва и Московская обл., Москва

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (5)
  • Для чего нужен интерфейс смарт-контракта?

    @Tyavochka
    Solidity Developer
    Интерфейс необходим для вызова любой функции контракта из клиента или другого контракта.
    В вызов входит сигнатура метода - первые 4 байта хеша от имени функции и ее параметров (без возвращаемого значения).
    В большинстве случаев у вас есть весь контракт и нет необходимости выделять отдельно интерфейс.
    Интерфейс может помочь унифицировать код, а также пригодится там, где точно неизвестна реализация контракта - например нужна работа с любыми токенами, которые поддерживают ERC20.
    Еще интерфейс будет полезен для всяких грязных хаков с fallback функциями и delegatecall (proxy) - когда вызов идет через промежуточный контракт.
    Ответ написан
  • Можно ли проитерироваться по мапе в Solidity?

    @Tyavochka
    Solidity Developer
    В текущем варианте контракта нет способа узнать всех хранящих средства на кошельке, т.к. из mapping никак не вытащить индексы (их там нет), поэтому надо дополнительно хранить массив всех владельцев.
    В цикле метода kill - перебрать всех владельцев и отправить средства. Помимо этого нужна защита от reentrancy - вытащить значение balances, далее обнулить значение в mapping и только после этого вызвать transfer.

    Еще один совет: когда есть цикл по неопределенному количеству элементов, то можно встрять на слишком большом потреблении газа для одной транзакции. В таком случае выход - разделить kill() на два метода. Один метод будет возвращать заданному числу владельцев средства, второй метод собственно вызывать selfdesctruct при выводе всех средств.
    Ответ написан
  • Как сделать несколько криптовалютных переводов за одну транзакцию?

    @Tyavochka
    Solidity Developer
    Для сети Ethereum потребуется воспользоваться smart-контрактом, например, https://multisender.app/.
    В идеале конечно создать и развернуть свой, чтобы не потребовалось никому доверять.
    Но в любом случае комиссия за перевод на несколько адресов будет больше, чем на один адрес, но меньше, чем если делать все по отдельности.
    Ответ написан