Получи случайную криптовалюту за регистрацию!

В идеале для таких игр надо поднимать собственную ноду (а лучш | zxCrypto

В идеале для таких игр надо поднимать собственную ноду (а лучше майнеров), хотя очевидно что это не спасёт, но по крайней мере можно сильно срезать задержки на общении между вашим провайдером и rpc. Но надежность маленькая, видимо гораздо проще просто угадывать газвар.
А что-бы не терять на отклонившихся транзах можно кидать транзы через флешботс, поэтому на следующий день я решаю добить флешботс версию. В тестах работает неплохо, но в паблике… Люди говорят флешботс требует на 40% газа (гвей) больше чем для обычной транзакции. Я отправил транзу с гвей 100 в момент когда базовый прайс был около 60 и оно не смайнилось за более чем 10 блоков, устал ждать, отменил. По наблюдениям ребята которые успешно проходят ставят газ в 2-3 раза выше достаточного. Походу флешботс так же отлетает для меня и лучше на него сильно не расчитывать.

Но вчера ночью я реально очень жидко с подливой обосрался
Вылез на радаре очень гемный гем. Сейл каких то лимонов, прайс 0.5, флур ~2, капа 500шт. На паблик остается примерно 100-150 (за два часа до сейла админ ублюдок поменял вайтлист и сминтил около 50шт, уверен себе и друзьям, так что нам осталось ~90шт).
Интерес этого сейла в том что чуваки для паблика решили использовать merkleTree вместо простых сигнатур для защиты от ботов.
Короч как это работает: Есть какие-то данные (например список адресов). Из них строится некий граф, где конечные элементы графа это сами адреса. Алгоритм позволяет доказать что какой то адрес содержится в этом графе без необходимости знать обо всех элементах этого графа. Нужен только хэш всего дерева (root), хеш искомого элемента (leaf) и массив хешей “пруфов” (proofs).
Причем в контракт надо было передать сразу два пруфа. Один строится по массиву неких “пропусков”, которые были зашиты в коде сайта. Второй строится от твоего адреса, но дерево содержит еще кучу мусора, однако в контракт передается сам root. Т.е можно собрать любое дерево где будет твой адрес и он пройдет. Я собрал дерево из одного элемента, в таком случае root == leaf а список пруфов пустой. В теории это еще и газ экономит (по сравнению с минтом через сайт, где в контракт передаются лишние данные).
В общем собрал я все данные, протестил в тестнете и принялся писать вокруг этого кода упрощенную версию минтилки. Моя актуальная версия слишком сложная т.к умеет работать в 3 режимах включая фронтран + ускорение транзакций, считает газ хитрым ораклом из мемпула и т.д. Захотелось сделать версию сильно проще и очевиднее. Где-то за час до сейла все было готово, десяток раз протестировано и готово к запуску. И вот тут я ловлю какой то лютый баг, код тупо падает. Правлю, еще раз тестирую в тестнете, откатываю все константы к паблику и запускаю. Начинается минт, а мои транзы не проходят с ошибкой “неправильная сумма”. Твою ж мать, я когда искал баг переопределил value не в конфиге, а прям в коде который вычисляет хеши для дерева и забыл удалить эту строчку. Лютейший фейл, т.к по газу я точно прошел бы и поимел профит в пару эфирчиков.

_

Такие дела, не будь как я