• Почему разные EVM жалуются на то, что не могут оценить газ?

    @Tyavochka
    Например, на моем текущем проекте (thUSD) веб часть использвет web3.js плюс плагин для кошелька (можно и metamask). Как результат такое дебажить проще. Т.е. Метамаск не будет готовить транзакцию для подписания, это будет делать web часть, а Метамаск только подписывать (на случай, если что-то не так именно с подготовкой транзакций).
    По поводу плагинов - кроме стандартного для solidity все остальное зависит от того какая среда для тестов и деплоя. Hardhat, foundry или что-то еще. И вот для этого всего обычно есть отдельный плагин (ручаюсь как минимум за hardhat)
    Написано
  • Почему разные EVM жалуются на то, что не могут оценить газ?

    @Tyavochka
    Тут не могу сильно помочь, т.к. к Remix не очень тепло отношусь (по подобным причинам когда нужно разобраться в тонкостях). И Metamask тоже не раз скрывал реальную ошибку за бесполезным сообщением о газе. Так что в проектах где я участвую всегда используется либо web3.js либо web3.py (иногда правда в связке с metamask). Как идея в каком направлении двигаться: тестовая локальная нода + web3.js код для деплоя. Будет возможность убедиться, что это не проблема (или все же именно проблема) Remix с тем какие параметры транзакции задавать (а тут вариация не маленькая) и вполне вероятно получить нормальное сообщение об ошибке. Из IDE - рекомендую Visual Code, много плагинов для solidity.
    Написано
  • Почему разные EVM жалуются на то, что не могут оценить газ?

    @Tyavochka
    EIP-1559 относится к блокчейну это правильно, но никак не относится к контрактам. По сути своей это изменение формата самой транзакции, но не байткода транзакции. A библиотеки openzeppelin это только solidity. После компиляции ничего кроме набора opcode на выходе ну будет (там конечно abi, metadata, но это все не обязательно). И совместимость с EVM будет определяться только по совместимости opcode.
    И еще добавка по EIP-1559 - это изменило как комуницировать с клиентом ноды (своей или чужой), причем помню, что некоторые клиенты до сих пор могут принимать старый формат.
    Написано
  • Почему разные EVM жалуются на то, что не могут оценить газ?

    @Tyavochka
    Лично не сталкивалась с несовместимостью, но могу представить, например, какой-то opcode не поддерживается. Как идея для проверки хорошая, взять хотя бы 0.7.x версию для компиляции.
    Написано
  • КОД-РЕВЬЮ СмартКонтракта Solidity. Контракт переводит деньги на 2 кошелька. Всё правильно написал?

    @Tyavochka
    receive срабатывает, если просто послать средства на контракт без указания метода/функции.
    Как именно выглядит вызов метода?
  • Как в Solidity перевести эфир с адреса на адрес?

    @Tyavochka
    Если я правильно понимаю, то тут контракт и не нужен. Приведенный код отсылает эфир, который принадлежит именно контракту, а не 1му аккаунту. Поэтому видимо и ошибка, т.к. средств на счету контракта нет. Чтобы переслать эфир - необходимо отправить пустую транзакцию (с пустым полем data) и прикрепленным эфиром на 2й аккаунт без посредника. Если же нужен посредник (контракт) - то сначала переслать эфир ему.
  • Как в Solidity перевести эфир с адреса на адрес?

    @Tyavochka
    А 1-й аккаунт это же задеплоеный контракт Test или все таки имеется в виду живой аккаунт без контракта?
  • Как в Solidity перевести эфир с адреса на адрес?

    @Tyavochka
    Пробую в Remix - компиляция проходит (ну и пара собственных контрактов работают с похожим кодом).
    А ругается компилятор или же транзакция не выполняется?
  • Кто платит комиссию в смарт-контракте?

    @Tyavochka
    Добрый день,

    Независимо от количество контрактов в вызове (а их может быть больше одного) и не зависимо от того, какой тип транзакции (пересылка средств это просто подвид остальных обращений контракту и/или другому адресу) - всегда платит тот, кто подписал транзакцию.
    Причем хоть и называется комиссией, но по факту инициатор должен оплатить сложность работы операции, измеряемую в газе. Отправка средств - это одна из самых дешевых транзакций, порядка 23 000 газа.
    А вот вывод средств - это уже выполнение хоть какого-то минимального кода и будет дороже, хотя зависит от реализации.
    И еще один момент - цена за газ очень сильно варьируется и иногда можно выставить 0, хотя гарантий что такая транзакция будет включена в блокчейн нет.