<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>th0masi</title><generator>teletype.in</generator><description><![CDATA[th0masi]]></description><image><url>https://img3.teletype.in/files/ab/e4/abe45c3e-2f34-4056-8b94-547a756417b9.png</url><title>th0masi</title><link>https://teletype.in/@thomasi</link></image><link>https://teletype.in/@thomasi?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/thomasi?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/thomasi?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sat, 11 Apr 2026 21:17:29 GMT</pubDate><lastBuildDate>Sat, 11 Apr 2026 21:17:29 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@thomasi/thorlab-wl-generator</guid><link>https://teletype.in/@thomasi/thorlab-wl-generator?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/thorlab-wl-generator?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Автоматическое заполнение страницы добавления в вайтлист кошельков на биржах</title><pubDate>Sun, 03 Mar 2024 13:43:34 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/6e/1d/6e1d39de-dc3e-4db7-b915-1b914566f8c9.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/9f/0a/9f0a2290-ec7c-4ff1-b63f-17bb32fe9885.png"></img>Сам генератор кода: https://thorlab.io/]]></description><content:encoded><![CDATA[
  <p id="VCzl"><strong>Сам генератор кода: <a href="https://thorlab.io/" target="_blank">https://thorlab.io/</a></strong></p>
  <p id="OjST"><br /><strong>Навигация:</strong></p>
  <ol id="ycOW">
    <li id="3r7y"><a href="#rT5x"><strong>Куда вставлять код?</strong></a></li>
    <li id="1q66"><a href="#y16o"><strong>Gate</strong></a></li>
    <li id="BMpu"><strong><a href="#ztxI">Bitget</a></strong></li>
    <li id="V3EX"><strong><a href="#gGbM">Binance</a></strong></li>
    <li id="SrR4"><strong><a href="#rcGT">Okx</a></strong></li>
  </ol>
  <p id="KPMG"><br />По всем вопросам можете писать в <a href="https://t.me/thorlab_chat" target="_blank"><strong>общий чат</strong></a></p>
  <p id="CaMM">Если хотите задонатить, реквизиты можно найти на сайте</p>
  <p id="eiiR"></p>
  <h2 id="rT5x">Куда вставлять код</h2>
  <p id="8hqI"></p>
  <p id="7B0a">На странице любой биржи, при добавлении в вайлист нажмите <strong>F12</strong></p>
  <figure id="Lc7C" class="m_retina">
    <img src="https://img2.teletype.in/files/9f/0a/9f0a2290-ec7c-4ff1-b63f-17bb32fe9885.png" width="1036.5" />
    <figcaption>пример страницы</figcaption>
  </figure>
  <p id="Mw0d"><strong>Затем в консоль вставьте код, сгенерированный на <a href="https://thorlab.io/" target="_blank">сайте</a></strong></p>
  <figure id="Z5LZ" class="m_retina">
    <img src="https://img2.teletype.in/files/95/7b/957b8248-27b1-4f4a-9ebb-e7588142279a.png" width="1044.5" />
  </figure>
  <p id="xb8K"><strong>Нажмите <code>Enter</code> для запуска скрипта.</strong></p>
  <p id="ceFv">Если вы видите следующее сообщение: </p>
  <figure id="sy8r" class="m_original">
    <img src="https://img4.teletype.in/files/f3/63/f36386b9-efba-477e-8fa5-2d72e19e1163.png" width="546" />
  </figure>
  <p id="pgaZ">Введите в консоль <code>allow pasting</code> и попытайтесь снова</p>
  <p id="3mM0"></p>
  <h2 id="y16o">Gate</h2>
  <figure id="16Hu" class="m_retina">
    <img src="https://img3.teletype.in/files/a9/0c/a90c313d-6d60-4e20-b2ee-379975e2e9d8.png" width="993.5" />
  </figure>
  <p id="egNj">Вот <a href="https://www.gate.io/ru/myaccount/add_withdraw_address_list" target="_blank"><strong>ссылка</strong></a> на страницу для добавления.</p>
  <ol id="Yhca">
    <li id="1AT9">Найдите токен и нужную сеть</li>
    <li id="Rayn">Укажите, точно как на странице, название токена и сети на <strong>thorlab</strong></li>
    <li id="oPGM">Укажите кошельки и имена</li>
  </ol>
  <p id="j1bD"></p>
  <section style="background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="NcYI">Ограничение у биржи на разовое добавление - 10 кошельков</p>
  </section>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="4DbM">Если кнопка добавить не активна, все равно нажмите на неё, она кликабельная <em>(это баг из-за того что не заполнены имена)</em></p>
  </section>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="UKRg">Если пишет неправильный пароль фонда, тоже забейте ничего не кликайте - просто ебанутая биржа, кошельки добавятся</p>
  </section>
  <p id="GtVE"></p>
  <h2 id="ztxI">Bitget</h2>
  <figure id="c8B8" class="m_retina">
    <img src="https://img2.teletype.in/files/10/66/10661cab-a5be-4e7b-97e5-979903e7d5e3.png" width="834.5" />
  </figure>
  <p id="wIGv">Вот <strong><a href="https://www.bitget.com/asset/batchAdd?batchType=1" target="_blank">ссылка</a></strong> на страницу для добавления.</p>
  <ol id="Yhca">
    <li id="Xswh">Найдите токен и нужную сеть</li>
    <li id="p8rB">Укажите, точно как на странице, название токена и сети на <strong><a href="https://thorlab.io/" target="_blank">сайте</a></strong></li>
    <li id="01B5">Укажите кошельки и имена</li>
  </ol>
  <p id="8rjN"></p>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="lWVe">Ограничение у биржи на разовое добавление - 50 кошельков</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="QCoY">В целом у биржи уже есть массовое добавление для EVM кошельков, скрипт нужен только для неEVM токенов и сетей</p>
  </section>
  <section style="background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="obeK">Сайт написать очень хреново и под конец у вас 100% будет лагать даже без скрипта, поэтому если слабый комп добавляйте по 30-40 кошельков</p>
  </section>
  <p id="af4E"></p>
  <p id="nbCw"></p>
  <h2 id="gGbM">Binance</h2>
  <figure id="SAwi" class="m_retina">
    <img src="https://img2.teletype.in/files/54/6b/546b5e1e-1195-4fbe-afc8-b15bce33f269.png" width="1103" />
  </figure>
  <p id="qiQm">Вот <strong><a href="https://www.binance.com/ru/my/security/address-management/vip-batch-add" target="_blank">ссылка</a> </strong>на страницу для добавления.</p>
  <ol id="DRCn">
    <li id="tFOx">Найдите сеть и монету</li>
    <li id="wl3N">Укажите, точно как на странице, название токена и сети на <strong><a href="https://thorlab.io/" target="_blank">сайте</a></strong></li>
    <li id="3hMf">Укажите кошельки и имена</li>
  </ol>
  <p id="tMnn"></p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="jBiS">Если используете имена у них только минимум 4 символа для нужно для имени</p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ezGz">Ограничение у биржи на разовое добавление - 50 кошельков</p>
  </section>
  <p id="yDtH"></p>
  <h2 id="rcGT">OKEX</h2>
  <figure id="vblu" class="m_retina">
    <img src="https://img2.teletype.in/files/19/aa/19aa25a3-8c39-43d7-a5bb-6fdf1429ccb9.png" width="890.5" />
  </figure>
  <p id="tRhJ">Ссылка здесь меняется в зависимости от токена для добавления. </p>
  <ol id="AHyv">
    <li id="E0T7">Зайдите на страницу для добавления нажмите <strong>F12</strong></li>
    <li id="A9Cr">Если видите сообщение <em>Приостановлено в отладчике</em>, обновите страницу <strong>F5</strong></li>
    <li id="xTRL">Нажмите <strong>Добавить группами</strong></li>
    <li id="yyAy">Если добавляете определенную сеть, посмотрите как она называется <em>(Для EVM указывать сеть не обязательно)</em></li>
    <li id="Hn6B">Укажите в скрипте<strong> Универсальный адрес</strong> и название сети, либо просто выберите <strong>Адрес EVM</strong></li>
  </ol>
  <p id="Ma4D"></p>
  <section style="background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="k1MU">Ограничение у биржи на разовое добавление - 20 кошельков</p>
  </section>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="K1Ee">Если вы не видите нужную сеть, выберите другой токен при выводе <em>(как минимум нативный)</em></p>
  </section>
  <p id="WNbU"></p>
  <h2 id="HkQD">Bybit</h2>
  <figure id="WXpf" class="m_retina">
    <img src="https://img1.teletype.in/files/42/76/427685ff-720e-4bd0-aed3-6183e7563d71.png" width="1122.5" />
  </figure>
  <p id="0HAc">Вот <strong><a href="https://www.bybit.com/user/assets/money-address/batch" target="_blank">ссылка</a> </strong>на страницу для добавления.</p>
  <ol id="Gy55">
    <li id="xEyr">Токен выбирать не обязательно, только сеть</li>
    <li id="r5Nf">Выберите сеть и укажите точно как на странице вывода</li>
  </ol>
  <p id="H0W3"></p>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="BEE8">Ограничение у биржи на разовое добавление - 5 кошельков</p>
  </section>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/layerzero-checker</guid><link>https://teletype.in/@thomasi/layerzero-checker?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/layerzero-checker?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Ultimate LayerZero checker</title><pubDate>Sat, 27 Jan 2024 20:38:11 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/29/74/29744153-121a-4dd2-8f3e-06dc516d484a.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/d5/6e/d56ecdfb-d9bc-4de5-8be1-6672562ad315.png"></img>Софт получает данные с помощью API Copilot и официального API LayerZero.]]></description><content:encoded><![CDATA[
  <figure id="vy5E" class="m_original">
    <img src="https://img2.teletype.in/files/d5/6e/d56ecdfb-d9bc-4de5-8be1-6672562ad315.png" width="2605" />
  </figure>
  <p id="13Uy">Софт получает данные с помощью API Copilot и официального API LayerZero. </p>
  <p id="nMZA">Данные которые парсятся с <strong>Copilot</strong>:</p>
  <ol id="NGTB">
    <li id="cHr3">Ранг</li>
    <li id="iv3i">Объем старгейта</li>
    <li id="D1DA">Активные месяцы</li>
    <li id="vxft">Кол-во уникальных контрактов</li>
  </ol>
  <p id="FYiD"></p>
  <p id="QEsI">Данные, которые парятся с <strong>официального API</strong>:</p>
  <ol id="QYPA">
    <li id="c5uE">Кол-во транзакций</li>
    <li id="sxyE">Исходящие сети (списком) + их количество</li>
    <li id="X77l">Сети назначения (списком) + их количество</li>
    <li id="gaTa">Дата последнего ончейн-взаимодействия с L0</li>
  </ol>
  <p id="7Irm"></p>
  <p id="Bsnd">Дополнительно проверяется была ли сделана любая исходящая транзакция из <strong>Ethereum</strong>.</p>
  <p id="AVjr"></p>
  <section style="background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ol id="VQLf">
      <li id="K9S8"><a href="#SFYH"><strong>Подготовка к запуску</strong></a></li>
      <li id="fw57"><a href="#FKu6"><strong>Настройка перед первым запуском</strong></a></li>
      <li id="Wmmq"><a href="#7DYz"><strong>Запуск</strong></a></li>
      <li id="jiaD"><a href="#Ly9x"><strong>Функционал чекера</strong></a></li>
      <li id="DwPz"><a href="#JEKm"><strong>Экспорт таблицы</strong></a></li>
      <li id="4WBX"><a href="#vGcc"><strong>Экспорт отдельных данных</strong></a></li>
    </ol>
  </section>
  <p id="4Ivb"></p>
  <p id="t6Gt"></p>
  <p id="WCcY"></p>
  <h2 id="SFYH">Подготовка к запуску</h2>
  <p id="pApT"><br /><strong>Нужен Python 3.11. Скачать можно на <a href="https://www.python.org/downloads/release/python-3110/" target="_blank">официальном сайте</a></strong></p>
  <p id="NbVW"></p>
  <p id="4fS6">В качестве <strong>IDE</strong> рекомендую использовать <strong>PyCharm Community Edition</strong>, он бесплатный и удобный, скачать можно на <a href="https://www.jetbrains.com/ru-ru/pycharm/download/?section=windows" target="_blank"><strong>официальном сайте</strong></a></p>
  <p id="fQxZ"></p>
  <p id="4uLF">Так же нужно <a href="https://github.com/th0masi" target="_blank"><strong>скачать сам софт</strong></a></p>
  <p id="Gcit"></p>
  <p id="fF2j"><em>Как дальше работать с проектом, с интерфейсом Pycharm можете найти в интернете</em></p>
  <p id="yqIX"></p>
  <p id="Nok7"></p>
  <h2 id="FKu6">Настройка перед первым запуском</h2>
  <p id="lX4E"></p>
  <p id="BRgr">В первую очередь вам нужно установить зависимости, откройте <strong>Terminal </strong>и введите команду:</p>
  <p id="4CjA"><code>pip install -r requirements.txt</code></p>
  <figure id="cqHZ" class="m_original">
    <img src="https://img3.teletype.in/files/21/f9/21f990ed-4383-4aef-8ec9-2e32e304c958.png" width="1136" />
  </figure>
  <p id="IYFt"><br />Затем откройте данные для заполнения <strong>корень_проекта -&gt; data:</strong></p>
  <figure id="EpEo" class="m_original">
    <img src="https://img4.teletype.in/files/3c/06/3c061bab-4402-4118-8aea-46c232eddb5f.png" width="466" />
  </figure>
  <p id="bQZ4">Здесь 3 текстовика. </p>
  <p id="feSJ">В <strong>wallets.txt </strong>нужно поместить адреса кошельков</p>
  <p id="sWFT"><br />В <strong>names.txt</strong> нужно поместить имена для кошельков <em>(можете использовать ID, либо приватные ключи, чтобы потом было удобно парсить!)</em></p>
  <p id="O97d"></p>
  <p id="h2HH">В <strong>proxies.txt </strong>нужно поместить прокси в формате:<em><strong> login:pass@ip:port<br /></strong>можете взять ограниченное кол-во прокси и размножить, API позволяют и 10 кошельков чекать с 1 IP</em></p>
  <p id="n3O0"><br />Во всех файлах должно быть равное или больше кол-во строк. К примеру проксей может хоть 1000 лежать, но в <strong>names.txt</strong>  и <strong>wallets.txt </strong>должно быть<strong> одинаковое количество!</strong></p>
  <h2 id="7DYz"><br />Запуск</h2>
  <p id="W4as">Запускаем <strong>main.py</strong></p>
  <figure id="eLZ2" class="m_original">
    <img src="https://img3.teletype.in/files/6c/42/6c4242af-818d-4082-8ab8-09fdf49e95e1.png" width="1214" />
  </figure>
  <p id="6NNt"><strong>Консоль присылает ссылку на локальный хост, где будет храниться наша таблица.</strong></p>
  <p id="v6gQ"><br />Сама страница выглядит так: </p>
  <figure id="kBRE" class="m_original">
    <img src="https://img2.teletype.in/files/d4/55/d4553966-7bcd-4bf6-bd21-511a3e4dc9ca.png" width="2605" />
  </figure>
  <p id="LBOl"></p>
  <p id="2PXD">При первом запуске для начала проверки всех кошельков нажмите кнопку <strong>ОБНОВИТЬ ДАННЫЕ</strong>.</p>
  <p id="Z8fh"></p>
  <p id="Hpxm"></p>
  <h2 id="Ly9x">Функционал чекера</h2>
  <p id="XyGN">Для начала можно настроить столбцы изображения, из-за перегрузки информации часть первоначально будет скрыта. <br /><br /><strong>Чекбокс Отображать ID </strong>будет отображать вместо кошельков данные из names.txt </p>
  <p id="ZoTE"></p>
  <p id="vwgc"><strong>Таблицу </strong>можно сортировать по любым параметрам: </p>
  <figure id="QpBC" class="m_original">
    <img src="https://img1.teletype.in/files/4f/1e/4f1e1be3-bd1b-4fe4-a2a4-67350600df44.png" width="2479" />
  </figure>
  <p id="asGo"></p>
  <p id="9fUY"><strong>Топ бар </strong>отображает краткую статистику с различными расчетами, его можно скролить:</p>
  <figure id="6rV7" class="m_original">
    <img src="https://img3.teletype.in/files/e5/44/e5448ff7-6381-4282-881e-8db68d66c695.png" width="1635" />
  </figure>
  <p id="tjZx">Дополнительно можно смотреть список сетей напрямую в таблице, при наведении на ячейку <strong>Исх. сети/ Сети назнач.</strong></p>
  <figure id="ouQQ" class="m_original">
    <img src="https://img1.teletype.in/files/88/69/8869e78a-4249-4b8e-9899-19876c72aa82.png" width="2347" />
  </figure>
  <p id="hXyr"></p>
  <p id="uqRW"></p>
  <p id="I3b6"></p>
  <h2 id="JEKm">Экспорт таблицы</h2>
  <figure id="aEHx" class="m_original">
    <img src="https://img3.teletype.in/files/2f/69/2f694c55-b21c-45e5-979a-e3a71090dec5.png" width="2040" />
  </figure>
  <p id="iZqu">После загрузки всех данных вы можете экспортировать страницу в таблицу.</p>
  <p id="SiH7"></p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="lfYX">Важно! Могут быть проблемы с кодировками и табуляцией. Импортируйте таблицу с указывайте в качестве разделителя запятую: </p>
  </section>
  <figure id="3EEs" class="m_original">
    <img src="https://img2.teletype.in/files/19/58/195809a1-c23d-41e1-be67-06c07fb5bf14.png" width="980" />
  </figure>
  <p id="RhYO"></p>
  <p id="HABG"><strong>На какую кнопку нажать для экспорта на странице думаю разберетесь))</strong></p>
  <p id="9Qu5"></p>
  <h2 id="vGcc">Экспорт отдельных данных</h2>
  <figure id="Uivq" class="m_original">
    <img src="https://img4.teletype.in/files/3e/98/3e98eeb7-9df3-401e-b0db-ab986cc7f1e3.png" width="2366" />
  </figure>
  <p id="OYvi">Это очень удобно для тех кто хочет прокачать кошельки без ручного редактирования. </p>
  <p id="Xz6b"></p>
  <p id="Cl9I">Здесь есть 4 параметра: </p>
  <p id="bQTs"><strong>Какие данные экспортировать</strong> -&gt; <strong>Адреса или Имена</strong> <em>(напомню в имена можно вставить приватники и тогда софт экспортирует просто список приватников, можно сразу закинуть в софт к примеру)</em></p>
  <p id="zPxI"><br /><strong>Сортировка </strong>-&gt; <strong>по какому параметру сортировать</strong><em> (доступны все виды)</em></p>
  <p id="JFHM"><br /><strong>Параметры</strong> -&gt; <strong>Больше, меньше, Присутствует, Отсутствует </strong><em>(Параметры присутствует и отсутствует нужен для исходящий сетей и сетей назначения, подробнее в примерах)</em></p>
  <p id="8qub"></p>
  <p id="BbzX"><strong>Значение </strong>-&gt; <strong>Любое</strong></p>
  <p id="q0RQ"><br /><br /><strong>Примеры: </strong></p>
  <section style="background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="otG0">При настройках <strong>Адреса -&gt; по рангу -&gt; больше -&gt; 500000</strong> софт скачает .txt, где будет указан список адресов, на которых ранг больше 500000</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="pYXm">При настройках <strong>Адреса -&gt; транзакция в майннете -&gt; отсутствует -&gt; 0</strong> софт скачает .txt, где будет указан список адресов, на которых нет транзакций в майннете</p>
  </section>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Tu6w">При настройках Имена <strong>-&gt; исходящие сети -&gt; отсутствует -&gt; arbitrum </strong>софт скачает .txt, где будет указан список имен кошельков, на которых нет исходящих транзакций в arbitrum</p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="k7Zu">При настройках Имена <strong>-&gt; последняя активность -&gt; больше -&gt; 01.01.2024 </strong>софт скачает .txt, где будет указан список адресов, на которых транзакций не было в этом месяце.</p>
  </section>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/100vs500</guid><link>https://teletype.in/@thomasi/100vs500?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/100vs500?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Дизайн за 100$ vs 500$</title><pubDate>Wed, 29 Nov 2023 12:49:36 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/1b/40/1b40e9cd-d22d-4778-b2e8-5a59078777f1.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/f7/61/f761a865-a7af-4e48-9332-c6781b45db4d.png"></img>Хочу рассказать свой опыт по работе с дизайнерами разных уровней (с скриншотами работ)]]></description><content:encoded><![CDATA[
  <p id="NXN7">Хочу рассказать свой опыт по работе с дизайнерами разных уровней.</p>
  <p id="Fw3N">Начнем с того что при закладывании максимум 7 дней на дизайн я потратил в общей сложности 30 дней и вот почему:</p>
  <ol id="lJE8">
    <li id="zbTA"><strong>Скорость</strong>,<em>хотел чтобы отрисовали за пару дней, когда многим дизайнерам нужна была неделя+</em></li>
    <li id="81E3"><strong>Экономия</strong>, <em>искренне думал что дизайн не должен стоить дороже верстки, на самом деле все не так однозначно</em></li>
  </ol>
  <p id="btYe"></p>
  <p id="aA7F">Сразу оговорюсь что у меня не было четкого ТЗ по дизайну, каждому дизайнеру я озвучивал лишь пожелания: <em>темный стиль и общую информацию, которая должна быть на каждой странице</em>.</p>
  <h3 id="ecLT">Содержание</h3>
  <ol id="nw0a">
    <li id="3Nqj"><a href="https://teletype.in/@thomasi/100vs500#%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD-%D0%B7%D0%B0-100$" target="_blank">Дизайн за 100$</a></li>
    <li id="AooP"><a href="https://teletype.in/@thomasi/100vs500#%D0%94%D0%BE%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B0-%D1%81%D1%82%D1%83%D0%B4%D0%B8%D0%B5%D0%B9-%D0%B7%D0%B0-50$/1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" target="_blank">Доработка дизайна студией за 50$/1 страница</a></li>
    <li id="oKPv"><a href="https://teletype.in/@thomasi/100vs500#%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD-%D0%B7%D0%B0-400$" target="_blank">Дизайн за 500$</a></li>
    <li id="17uM"><a href="#XVKA">Вывод</a><br /></li>
  </ol>
  <h2 id="Дизайн-за-100$">Дизайн за 100</h2>
  <p id="amWg"><em>Дизайнер был с опытом в несколько лет, мне понравились его работы и он вписывался в дедлайн. </em><br /><br />Общение по работе было трудным, дизайнер не хотел разбираться в проекте, весь дизайн был сплошными правками. В итоге за ~5 дней работы вот что я получил:</p>
  <figure id="gBa7" class="m_original">
    <img src="https://telegra.ph/file/58ce2a088946077200038.png" width="2134" />
  </figure>
  <figure id="mv2q" class="m_original">
    <img src="https://telegra.ph/file/8d1147cb6fc95720ad340.png" width="2216" />
  </figure>
  <figure id="3kJW" class="m_original">
    <img src="https://telegra.ph/file/66d63d706b4d5048ea3b1.png" width="2131" />
  </figure>
  <p id="6qCc">На самом деле в тот момент дизайн меня устраивал, но вот к качеству работы было очень много вопросов. На страницах были разные отступы, весь проект выглядел как дизайн в photoshop, на который слой за слоем наложили текст. Он не дорисовал различные поведения кнопок<em> (при наведении, нажатии)</em>, дизайн выпадающих меню, чекбоксов и т.п.</p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="vaJR"><em>Небольшая справка </em><br />Большинство дизайнеров работают в Figma, этот инструмент создан для web-дизайна. Миллион инструментов, которые позволяют красиво нарисовать, собирать в блоки, делать киты и т.п.</p>
  </section>
  <p id="mbHr">В конце концов я устал от такой работы <em>&quot;по правкам&quot;. </em>Просто оплатил работу и пошел дальше искать дизайнера.</p>
  <p id="FDYN"></p>
  <p id="jeW7"></p>
  <h2 id="Доработка-дизайна-студией-за-50$/1-страница">Доработка дизайна студией за 50$/1 страница</h2>
  <p id="UwTV"><em>Здесь работал человек, у которого уже есть своя студия по web-дизайну. <br /><br /></em>Тут я уже стал понимать важность созвонов и первым делом мы созвонились. Я рассказал что накидал примерный референс дизайна, который мне нравится и его нужно доработать, сделать целостным. <br /><br /><em>Мне хотелось чтобы дизайн был целостным и не выглядел как конструктор разных идей и стилей.<br /><br /></em>Прежде чем я нашел дизайнера, я уже успел накидать свой вариант:</p>
  <figure id="h3K1" class="m_original">
    <img src="https://telegra.ph/file/81f0b03c048a5ce37c7f3.png" width="2100" />
    <figcaption>мой референс, который я накидал сам</figcaption>
  </figure>
  <p id="yueb"></p>
  <p id="yRB0">Спустя какого-то время дизайнер мне присылает доработанную страницу. На самом деле это пиздец. Я искренне не понимал за что здесь я заплатил 50$. <br />Я думаю вы сами сможете найти все косяки <em>(смотрите на иконку в меню, на отступы). <br /><br /></em>Вот версия дизайнера от дизайн-студии за 50$:</p>
  <figure id="CleO" class="m_original">
    <img src="https://telegra.ph/file/0f09499df462299641bd9.png" width="2127" />
    <figcaption><em>версия дизайнера от дизайн-студии за 50$</em></figcaption>
  </figure>
  <p id="Dv2o"></p>
  <p id="fJ4z">Таких дизайнеров-доработчиков было несколько и в общем наверное я потратил уже 180-200$, при этом прошло уже больше двух недель, а у меня не было готового дизайна. Меня уже окончательно не устраивал первый вариант, работать в слепую и отдавать деньги мне больше не хотелось, как и тратить время. </p>
  <p id="lHjm">У меня был знакомый дизайнер, с которым мы делали пару проектов. Я знал что ему нужно будет дней 10 чтобы нарисовать такой проект. Сначала меня это смущало, но после проебанных двух недель уже хотелось отдать в надежные руки и заниматься бекэндом. </p>
  <p id="NaC9"></p>
  <h2 id="Дизайн-за-400$">Дизайн за 500$</h2>
  <p id="Bcco"><em>Здесь я уже знал дизайнера, у него так же есть своя web-студия </em></p>
  <section style="background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="lWDe">Первое что значительно отличает хорошего дизайнера - <strong>созвоны</strong>. Они обязательные с присутствием всех дизайнеров, работающих над проектом. </p>
  </section>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="2Niw"><strong>Погружение в проект: </strong>дизайнер должен понимать всю схему работы сайта, предназначение каждой кнопки, поскольку есть общие стандарты, которые нужно соблюдать для простоты пользования конечным пользователям. Первый созвон был полностью посвящен погружению дизайнеров проект. </p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="AhWt">В<strong>ариативность:</strong> когда я сам не понимал <em>&quot;как я хочу&quot;,</em> мне предлагали несколько вариантов страниц/расположений/кнопок и это круто.</p>
  </section>
  <section style="background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="yqHt"><strong>Инициатива: </strong>в какой-то момент меня понесло и вместо &quot;клиент всегда прав&quot; меня  стопали и говорили что так не делается, предлагали другие решения, которые в конечном итоге идеально вписались в общую картину.</p>
  </section>
  <p id="kaAx">Над моим проектом работало 2 человека и весь проект разработки я чувствовал заинтересованность и профессионализм. <br /><br />Вот что в конечном итоге получилось: </p>
  <figure id="0tJm" class="m_original">
    <img src="https://img4.teletype.in/files/b2/79/b279fd10-f025-49dc-a8fb-cc9b8b668a05.png" width="1935" />
  </figure>
  <figure id="X3Dy" class="m_original">
    <img src="https://img2.teletype.in/files/11/55/11558bc7-8790-43cd-93ae-0ff623727118.png" width="1936" />
  </figure>
  <figure id="IXdz" class="m_original">
    <img src="https://img1.teletype.in/files/cf/60/cf60a2d1-5203-42dc-a4c4-0a74096d6452.png" width="1938" />
  </figure>
  <p id="SIkU"></p>
  <h2 id="XVKA">Вывод</h2>
  <p id="XI4w">Лично я увидел огромную пропасть между работами дизайнеров в разных ценовых сегментах. Для меня дизайнеры, которые работают ниже рынка стали рулеткой. <br /><br />У дизайнера за 500$ появился свой личный канал в ТГ.  После релиза софта, он обещал сделать разбор дизайна с подробностями. Человек со своей командой настолько круто сделали свою работу, что прям хочется его тегнуть.</p>
  <p id="hgAr"></p>
  <p id="GwrN"><strong>Дизайнер:</strong> <a href="https://t.me/dsgnharmony" target="_blank">https://t.me/dsgnharmony</a></p>
  <p id="gevl"><strong>Thor Lab:</strong> <a href="https://t.me/thor_lab" target="_blank">https://t.me/thor_lab</a></p>
  <p id="gOVl"><strong>Thor Soft:</strong> <a href="https://t.me/thorcode" target="_blank">https://t.me/thorcode</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/arbnova_swapper</guid><link>https://teletype.in/@thomasi/arbnova_swapper?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/arbnova_swapper?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Софт для Arbitrum Nova</title><pubDate>Fri, 07 Apr 2023 14:14:50 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/cd/fd/cdfd6163-b580-4e85-896b-9b9ec44b5bc1.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/d3/09/d3092837-1cb0-4d6a-8986-44b6e65f7198.png"></img>Совсем недавно мастера кода с Кодерской свалки написали свой софт для Arbitrum Nova (спойлер: он пиздатый). ]]></description><content:encoded><![CDATA[
  <p id="2BDo">Совсем недавно мастера кода с <a href="https://t.me/developercode1" target="_blank"><strong>Кодерской свалки</strong></a> написали свой софт для Arbitrum Nova (спойлер: он пиздатый). </p>
  <p id="Ffcy"><br />Софт покупает и продает USDC, DAI, WBTC, ARB на четырех DEX: RPCswap, SushiSwap, Arbswap, Slingshot, так же заливает ликвидность.<br /><br />Подробнее про их софт читайте у них в <a href="https://mirror.xyz/wiedzmin.eth/Z06W81VrxO9KI88vkcxeW0Lc8f2nBo5Wdyqce0HTNm8" target="_blank"><strong>гайде</strong></a></p>
  <p id="6IMR">Я лишь внес некоторые изменения, а именно:<br /></p>
  <figure id="kPoA" class="m_original">
    <img src="https://img2.teletype.in/files/d3/09/d3092837-1cb0-4d6a-8986-44b6e65f7198.png" width="1138" />
  </figure>
  <p id="WVmh"><code>liqudity_switch  = 1/0</code>  - позволяет включать/выключать добавление ликвидности. 1 - включить, 0 - выключить.</p>
  <p id="4z0U"><code>number_txn = [min, max]</code> - минимальное и максимальное количество покупок-продаж для каждого аккаунта (в оригинале он мешает все дексы и делает buy/sold на всех по очереди).</p>
  <p id="1T9U"><code>delay_txn = [min, max]</code> - задержка между <strong>транзакциями </strong>минимальное и максимальное значение в секундах</p>
  <p id="JkUG"><code>delay_acc = [min, max]</code> - задержка между <strong>кошельками </strong>минимальное и максимальное значение в секундах</p>
  <p id="HGvF"><code>slippage = x%</code> - минимальное количество которое вы готовы получить, например если меняете 1$, 30% будет означать что вы хотите получить не меньше 0.7$, в противном случае транзакция не исполнится. <strong>Зависит от ликвидности, ниже 30 не рекомендую</strong></p>
  <p id="IgMd"></p>
  <p id="XGz5">Так же: </p>
  <p id="1zw2">Я убрал <strong>Slingshot </strong>из пула DEX (просто так захотел).</p>
  <p id="K9cL">Я добавил лог в виде failed_accounts.txt, в него будут выводится данные кошелька, если на нем была хоть 1 неудачная транзакция, в формате:</p>
  <p id="aad0"><code>приватный_ключ : адрес_кошелька</code></p>
  <p id="ixOh"></p>
  <p id="gLZg">Я не стал перезаливать софт на github, для внесения моих изменений нужно будет  изменить файл <strong>main.py, </strong>кодя залил на gist: <strong><br /><br />&gt;&gt;&gt; <a href="https://gist.github.com/framsi/3bc9abbf9387ac45a7e122c8bb53b6da" target="_blank">Измененная версия</a></strong></p>
  <p id="FuO2"><strong>&gt;&gt;&gt; <a href="https://gist.github.com/framsi/3bc9abbf9387ac45a7e122c8bb53b6da" target="_blank">Измененная версия</a></strong></p>
  <p id="q4Q9"><strong>&gt;&gt;&gt; <a href="https://gist.github.com/framsi/3bc9abbf9387ac45a7e122c8bb53b6da" target="_blank">Измененная версия</a></strong></p>
  <p id="ujs7"></p>
  <p id="bsPF"><strong>Вообще спасибо кодерам, когда я увидел их код - просто растекся, как все красиво и четко написано. Люблю<br /><br />Мой канал: <a href="https://t.me/thor_lab" target="_blank">https://t.me/thor_lab</a><br />Канал кодерской свалки: <a href="https://t.me/developercode1" target="_blank">https://t.me/developercode1</a></strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/soft-optimism-vote</guid><link>https://teletype.in/@thomasi/soft-optimism-vote?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/soft-optimism-vote?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Софт для Optimism Vote</title><pubDate>Tue, 04 Apr 2023 10:52:01 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/df/4f/df4f37c0-f96b-47cb-b923-44b04f0d438e.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/8c/78/8c78de2a-d54b-4837-b6ad-422d827e65ee.png"></img>Решил поделиться моим софтом под голосовалку оптимизма. Что делает софт: 
]]></description><content:encoded><![CDATA[
  <p id="1JRX">Решил поделиться моим софтом под голосовалку оптимизма. Что делает софт: <br /></p>
  <figure id="i6Nn" class="m_retina">
    <img src="https://img1.teletype.in/files/8c/78/8c78de2a-d54b-4837-b6ad-422d827e65ee.png" width="467" />
  </figure>
  <p id="Xu4T">Софт бесплатный, написан на <strong>python </strong>гигамозгом под названием <strong>ChatGPT</strong>. Хочу чтобы вы сами все настроили я лишь дам вам 2 необходимых файла <strong>config.json</strong> и <strong>main.py, </strong>можете посмотреть что к чему, проверить софт и дальше решать запускать его или нет. <br /><br />Ссылка на <a href="https://gist.github.com/framsi/3b3ea2bc400dc1a79c8410f53c626366" target="_blank"><strong>Githab Gist</strong></a> (файлообменник)<br />Мой канал в ТГ: <a href="https://t.me/thor_lab" target="_blank"><strong>Thor Lab</strong></a></p>
  <p id="CvLe"></p>
  <h2 id="c7FL">Проверка софта</h2>
  <p id="tCfS">Для начала хочу рассказать вам действенный метод проверить. Используйте ChatGPT, он отлично понимаем код и спойлер - практически весь код был написать им.</p>
  <p id="FLa8">Просто скопируйте весь код и отправьте ему, попросите полностью проанализировать софт, расписать по пунктам что он делает и откуда берет данные. <br /><br />Не стесняйтесь, можете спросить за каждый кусок кода, а так же поинтересоваться отправляет ли он куда-либо ваши данные!<br /><br />ChatGPT: <a href="https://chat.openai.com/chat" target="_blank">https://chat.openai.com/chat</a></p>
  <figure id="XDAi" class="m_original">
    <img src="https://img4.teletype.in/files/b2/a2/b2a2021b-e2e4-47de-b787-c239258dca2b.png" width="945" />
  </figure>
  <h2 id="TN2d">Подготовка</h2>
  <p id="yHuv">Для работы с python рекомендую использовать <strong>PyCharm</strong>.</p>
  <p id="Ba3m">Ссылка на скачивание: <a href="https://www.jetbrains.com/pycharm/" target="_blank">https://www.jetbrains.com/pycharm/</a></p>
  <figure id="EA2p" class="m_original">
    <img src="https://img3.teletype.in/files/e5/e1/e5e173f2-b8cb-4025-a89d-6afbb2b4e8a9.png" width="851" />
  </figure>
  <p id="H9ke">Там нужно будет еще триал версию использовать, думаю сами разберетесь, не сложно.<br /><br />После скачивания, запускаем <strong>PyCharm</strong></p>
  <figure id="uJNS" class="m_retina">
    <img src="https://img3.teletype.in/files/23/9b/239beb2a-4722-401a-a042-6df38b14c94a.png" width="508.5" />
  </figure>
  <p id="4Hwu">Нажимаем <strong>New Project<br /></strong></p>
  <figure id="ikZa" class="m_retina">
    <img src="https://img4.teletype.in/files/f5/a5/f5a57ab2-15fb-4769-a588-2411c7e7e4ea.png" width="501.5" />
  </figure>
  <p id="ZCtx">Здесь нужно будет выбрать путь (Location), можете оставить стандартный и нажимаем <strong>Create</strong></p>
  <figure id="oaqf" class="m_retina">
    <img src="https://img4.teletype.in/files/3d/92/3d92cceb-f6cd-4a46-bf77-51a8bd5d6af8.png" width="1202.5" />
  </figure>
  <p id="8Jjh">Открывается окно проекта, вот сюда в <strong>main.py</strong> мы добавляем код проекта из <a href="https://gist.github.com/framsi/3b3ea2bc400dc1a79c8410f53c626366" target="_blank"><strong>гиста</strong></a><br /></p>
  <figure id="ovju" class="m_retina">
    <img src="https://img2.teletype.in/files/95/41/9541d7e6-5be1-4dfc-a91e-2dae0bf3396b.png" width="1209" />
  </figure>
  <p id="NUVg">Должно получиться вот так, далее мы слева нажимаем ПКМ по пустому месту выбираем <strong>New -&gt; File</strong> и называем файл <strong>config.json</strong></p>
  <figure id="mBth" class="m_retina">
    <img src="https://img4.teletype.in/files/7f/bd/7fbd1822-a558-49b4-8bd2-2439b57c79cd.png" width="1206.5" />
  </figure>
  <p id="4qgW">В файл мы помещаем содержимое config.json из <a href="https://gist.github.com/framsi/3b3ea2bc400dc1a79c8410f53c626366" target="_blank"><strong>гиста</strong></a></p>
  <figure id="RjxL" class="m_retina">
    <img src="https://img3.teletype.in/files/29/3c/293c0bd5-5a76-40aa-b4f7-eff796bfe4fc.png" width="1199.5" />
  </figure>
  <p id="LmSn">На текущем этапе мы добавили все необходимые данные, теперь нам нужно импортировать библиотеки, которые используются в коде.<br /><br />Внизу страницы нажимаем на <strong>Terminal</strong></p>
  <figure id="2TIi" class="m_retina">
    <img src="https://img2.teletype.in/files/16/1f/161f3dd8-84fb-48dd-966f-795fd615adc7.png" width="1198" />
  </figure>
  <p id="Wlsq">И вводим <strong>по очереди </strong>эти команды: <br /><br /><code>pip install web3=5.12.2</code><br /><br /><code>pip install eth-account</code></p>
  <figure id="C57r" class="m_original">
    <img src="https://img3.teletype.in/files/af/bd/afbd7e2c-6c9d-4714-a853-3b4c2ea7b1e1.png" width="1021" />
  </figure>
  <figure id="PSGJ" class="m_retina">
    <img src="https://img4.teletype.in/files/bc/3d/bc3d3979-ceb5-48df-a28e-48ec637d2a27.png" width="1199" />
  </figure>
  <p id="dzjK"></p>
  <h2 id="keGT">Запуск софта</h2>
  <p id="P7pN">Теперь мы можем поместить в папку с проектом файл <strong>wallets.txt</strong>, в котором будут содержаться приватные ключи (каждый с новой строки).</p>
  <p id="OEvW">Далее переходим в <strong>config.json</strong> и настраиваем под себя:</p>
  <p id="WO80"><code>proposal_id</code> - ID голосования, можно взять из ссылки, пример: <a href="https://vote.optimism.io/proposals/27878184270712708211495755831534918916136653803154031118511283847257927730426" target="_blank">https://vote.optimism.io/proposals/27878184270712708211495755831534918916136653803154031118511283847257927730426</a><br /><br /><code>min_delay</code> -  минимальное время задержки между голосованиями</p>
  <p id="DCZL"><code>max_delay</code> - максимальное время задержки между голосованиями</p>
  <p id="fczF"><code>rpc</code> - нода для взаимодействия с блокчейном</p>
  <p id="ML1q"><code>abi</code> - это код для взаимодействия нашего кода с смарт-контрактом (его не нужно трогать)</p>
  <p id="ee0e">Сохранить файл можно сочетанием <strong>Ctrl+S</strong></p>
  <figure id="GWCB" class="m_retina">
    <img src="https://img3.teletype.in/files/6e/1a/6e1a91e2-76c4-45a4-adab-fa04b2df4e6b.png" width="699" />
  </figure>
  <p id="WNWY"><br />Теперь когда все готово, переходим в <strong>main.py</strong>, нажимаем <strong>ctrl+shift+F10, </strong>либо кликаем ПКМ по названию вкладки main.py и нажимаем <strong>Run &#x27;main&#x27;</strong></p>
  <p id="A61z">После запуска открывается лог, где выводятся все сообщения, наслаждаемся<br /></p>
  <figure id="3yNG" class="m_retina">
    <img src="https://img2.teletype.in/files/58/84/5884c613-8521-44db-9fcd-3260ca9973cf.png" width="573.5" />
  </figure>
  <p id="HOYH">После всех голосований будет выведено сообщение об успешном окончании, если с некоторых кошельков не удастся проголосовать бот пришлет список. <br /><br />Все вопросы можете задать в чате: <a href="https://t.me/thorlab_chat" target="_blank">https://t.me/thorlab_chat</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/googlesheets-ethAPIchecker</guid><link>https://teletype.in/@thomasi/googlesheets-ethAPIchecker?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/googlesheets-ethAPIchecker?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Ethereum+ARB google sheets на API</title><pubDate>Sun, 26 Mar 2023 17:23:14 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/de/93/de93b6fe-ff0d-45b7-842e-1d38d158d955.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/17/44/1744fff9-019c-4749-8017-d4bb20e5bf6a.png"></img>UPD 28.03 добавил возможность проверять кол-во NFT по адресу контракта. Функции getNFTCount и arb_getNFTCount ]]></description><content:encoded><![CDATA[
  <figure id="8CM4" class="m_retina">
    <img src="https://img2.teletype.in/files/17/44/1744fff9-019c-4749-8017-d4bb20e5bf6a.png" width="919" />
  </figure>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="TqiP"><strong>UPD 28.03 добавил возможность проверять кол-во NFT по адресу контракта</strong>. Функции<strong> getNFTCount </strong>и<strong> arb_getNFTCount </strong></p>
    <p id="Yp8e"></p>
    <p id="LdTK"><strong>UPD 27.03 добавил формулы для сети Arbitrum.  </strong>Формулы для Arbitrum имеют приставку <strong>&quot;arb_</strong>&quot;, для работы нужно получить <strong>API KEY</strong> на <a href="https://arbiscan.io/" target="_blank"><strong>arbiscan.io</strong></a>, принцип получения такой же, как и для ethscan.io</p>
  </section>
  <figure id="wUyh" class="m_retina">
    <img src="https://img3.teletype.in/files/a3/4c/a34c8e52-c32d-4722-8786-406ab419c6e7.png" width="942.5" />
  </figure>
  <p id="5Lw2"></p>
  <p id="Bz5m">Как уже только я не предлагал использовать таблицы, писал множество формул, но все они имели один огромный недостаток - ограничение. </p>
  <p id="SdIx">У гугла стоит стоит ограничение на ~20 запросов в минуту и ~200 запросов в час. Это очень сильно бесило, когда у тебя, к примеру, 100 аккаунтов, а гугл не может загрузить и посчитать балансы всех. </p>
  <p id="zWWb">Но я нашел выход, я написал свои формулы при помощи Etherscan API, в чем преимущество:</p>
  <ul id="f4m4">
    <li id="WrnW">Количество запросов ~<strong>15</strong>/сек, <strong>300 000</strong>/день</li>
    <li id="ecLd">Больше данных для импорта</li>
    <li id="tviz"><strong>Бесплатное API</strong></li>
  </ul>
  <p id="DtBg">На текущий момент написал только для блокчейна Ethereum, надеюсь мне будет не лень написать для большинства других блокчейнов и я сделаю это в ближайшее время, следите за анонсами в TG: <a href="https://t.me/thor_lab" target="_blank"><strong>Thor Lab</strong></a></p>
  <p id="1WBn">Начнем..</p>
  <h2 id="g7QJ">Ключи API</h2>
  <p id="ZaD6">Для начала нам нужно получить ключи API (опять же они бесплатные). Для этого нужно <a href="https://etherscan.io/register" target="_blank"><strong>зарегистрироваться</strong></a> на etherscan.</p>
  <figure id="WBNt" class="m_retina">
    <img src="https://img4.teletype.in/files/3d/35/3d35f440-3696-43b5-88ee-7ac52f150160.png" width="917" />
  </figure>
  <p id="RMJ5">После регистрации и авторизации идем <a href="https://etherscan.io/myapikey" target="_blank"><strong>сюда</strong></a> </p>
  <figure id="lOpy" class="m_retina">
    <img src="https://img4.teletype.in/files/b7/9b/b79baa50-ead5-41a5-8b27-f2c76c2e17f9.png" width="937.5" />
  </figure>
  <p id="Kuc8">Нажимаем на <strong>+Add</strong>, придумываем названия и генерируем себе 3 ключа</p>
  <figure id="sB1C" class="m_retina">
    <img src="https://img2.teletype.in/files/95/fd/95fd2b8a-2d68-4b10-b44e-54e0e1b448e1.png" width="591" />
  </figure>
  <figure id="y5XA" class="m_retina">
    <img src="https://img4.teletype.in/files/b7/9b/b79baa50-ead5-41a5-8b27-f2c76c2e17f9.png" width="937.5" />
  </figure>
  <h2 id="lHBD"></h2>
  <h2 id="Jy71">Таблица</h2>
  <p id="iLUT">Теперь переходим в <a href="https://docs.google.com/spreadsheets/d/1MVFPftQxb3hXF2Gbo9ke-y3ZUu96ljAFrWrarXeUnRA/edit?usp=sharing" target="_blank"><strong>таблицу</strong></a></p>
  <figure id="pqgK" class="m_original">
    <img src="https://img4.teletype.in/files/b7/26/b72616ef-b330-4ca5-8047-09ddc5e941fb.png" width="1832" />
  </figure>
  <p id="FGU5">Думаю что к чему понятно:</p>
  <p id="FTH9"><strong>Wallets </strong>- столбец кошельков, вставляем с <strong>A2 </strong></p>
  <p id="BeB5"><strong>BAL $ETH</strong> - баланс эфира</p>
  <p id="zSDR"><strong>to USD</strong> - баланс эфира в $ (курс автоматически подтягивается в ячейку L7)</p>
  <p id="tauP"><strong>Count txns</strong> - количество транзакций в сети эфира</p>
  <p id="ZeW3"><strong>Last txn</strong> - когда последний раз была транзакция на кошельке</p>
  <p id="66Qk"><strong>BAL $USDT</strong> - баланс USDT</p>
  <p id="cp2y"><strong>BAL $USDC</strong> - баланс USDC</p>
  <p id="gE1U"><strong>$CUSTOM</strong> -  вы можете вставить любой адрес контракта в R9 (Custom $contract) и получить столбец с балансами этого токена.</p>
  <p id="RIPZ">Столбец<strong> L</strong> суммирует все балансы.</p>
  <p id="96KE"><strong>Custom $contract </strong>- сюда можно поместить любой токен-контракт, чтобы посмотреть балансы токенов</p>
  <p id="RWxS"><strong>Etherscan API </strong>- сюда суем 3 API ключа</p>
  <p id="ZvBQ"></p>
  <p id="P3mQ">Для того чтобы скопировать к себе таблицу нужно нажать на <strong>Файл -&gt; Создать копию</strong></p>
  <figure id="vQm2" class="m_retina">
    <img src="https://img1.teletype.in/files/42/37/4237fb2f-8d1e-47a6-bb5b-e76c4f2fbfb6.png" width="595.5" />
  </figure>
  <figure id="QI8c" class="m_retina">
    <img src="https://img2.teletype.in/files/51/63/5163978d-2e69-4a8c-86bc-c1f525d2551b.png" width="483.5" />
  </figure>
  <p id="xJ0t">Можем поменять название, файлы Apps Script нужно оставить прикрепленными, для того чтобы кастомные формулы работали! </p>
  <p id="oXN2">После копирования, таблица сохранится у вас на диске и доступ к ней будете иметь <strong>только вы</strong>!</p>
  <p id="moYl">После копирования вставьте список <strong>API </strong>ключей и список кошельков, загрузка всех данных займет до несколько минут. Я так же добавил параметр нулевого значения, функция не будет обращается к API, если кошелька в B-столбце нету, если же он есть функция будет обновлять данные примерно <strong>каждые ~3 секунды</strong>.</p>
  <p id="LUmR">Кому интересны формулы подробнее о них: </p>
  <p id="v0Hq"><code>=getEthBalance(ячейка; apiKey)</code> - получает баланс эфира, округляет до 4 знаков после запятой</p>
  <p id="eDK2"><code>=getEthTxCount(ячейка; apiKey)</code> - считает количество транзакций на кошельке</p>
  <p id="9IWw"><code>=getLastTransactionTime(ячейка; apiKey)</code> - проверяет время последней транзакций, считает от текущего (выводит минуты/часы/дни в зависимости от того сколько прошло времени)</p>
  <p id="PRsP"><code>=getTokenBalance(токенКонтракт;ячейка; apiKey)</code> - получает балансы токенов, единицы измерения подходящей для стейблов (10^6)</p>
  <p id="Efs6"><code>=getCustomTokenBalance(токенКонтракт;ячейка; apiKey)</code> - получает балансы токенов, единицы измерения подходящей для большинства токенов ERC-20 (10^18)</p>
  <p id="DxB4"><code>=customSum(первая_ячейка:последняя_ячейка) </code>- суммирует большинство ячеек, это кастомная формула, т.к. родная SUM не умеет нормально интерпретировать вывод цифр.</p>
  <p id="R0RC"><code>=EthBalance(колво_eth;цена_eth) </code>- считает оценочную стоимость эфира по актуальному прайсу в google. </p>
  <p id="WhkU"><code>=getNFTcount(контракт_NFT;кошелек; apiKey)</code>- считает оценочную стоимость эфира по актуальному прайсу в google. </p>
  <p id="Rv4S"></p>
  <h2 id="IL26">Заключение</h2>
  <p id="0RhP">Не все формулы идеальные, будет желание и время возможно буду оптимизировать, в течение недели возможно напишу под другие блокчейны, под какой написать в первую очередь пишите в комментах крч.</p>
  <p id="B1Tn"></p>
  <figure id="aSIt" class="m_original">
    <img src="https://img1.teletype.in/files/8b/fa/8bfa474a-5a1a-41a2-9335-42e8562ef944.jpeg" width="390" />
  </figure>
  <p id="CnuV">Любые вопросы можно задавать в чате <a href="https://t.me/thorlab_chat" target="_blank"><strong>Thor Chat </strong></a>(торчат)</p>
  <p id="VSdc">Подписывайтесь на <a href="https://t.me/thor_lab" target="_blank"><strong>Thor Lab</strong></a> (основной канал), может будет полезно, часто пытаюсь придумать какую-нибудь хуйню.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/layerzero</guid><link>https://teletype.in/@thomasi/layerzero?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/layerzero?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Все активности LayerZero </title><pubDate>Fri, 17 Mar 2023 07:18:58 GMT</pubDate><description><![CDATA[Всем привет, на фоне дропа от arbitrum'а каждый второй вопрос - есть ли еще ретродропы, которые можно поделать. Один из первых на очереди это LayerZero.]]></description><content:encoded><![CDATA[
  <p id="RqQo">Всем привет, на фоне дропа от arbitrum&#x27;а каждый второй вопрос - есть ли еще ретродропы, которые можно поделать. Один из первых на очереди это <strong>LayerZero</strong>.</p>
  <p id="5hpu"><strong>LayerZero - </strong>протокол взаимодействия, которыйиспользует легкие ноды ZRO, как конечные точки обмена. Любая точка ZRO может взаимодействовать с аналогичной точкой в другом блокчейне.</p>
  <p id="fa0E">Подключенные к ZRO приложения общаются между собой по протоколу связи, который поддерживается набором смарт-контрактов. Он позволяет узлам обмениваются сообщениями, находясь при этом в разных сетях, делать запросы на отправку средств и подтверждать валидность транзакции.</p>
  <p id="xpgo">В коде проекта уже нашли информацию о токене $ZRO. Официального анонса $ZRO нет, но это и не удивительно, анонс будет тогда, когда абузить будет поздно.</p>
  <p id="Smno"></p>
  <p id="hQK6">Уже есть подробные гайды по активностям в проектах, использующих протокол взаимодействия Layer Zero.</p>
  <p id="YvhJ"><strong><a href="https://incrypted.com/prohodim-testnet-na-layerzero/" target="_blank">Проходим тестнет на LayerZero в надежде на AirDrop</a></strong></p>
  <p id="RTEC"></p>
  <h3 id="widD">Я же просто перечислю проекты:<br /></h3>
  <ol id="wmEJ">
    <li id="cReV"><strong><a href="https://stargate.finance/" target="_blank">Stargate Finance</a>  </strong>-основа основ, в них инвестировали сами LayerZero. У проекта есть <a href="https://guild.xyz/stargate" target="_blank">guild</a>, а также <a href="https://snapshot.org/#/stgdao.eth" target="_blank">snapshot</a>. </li>
    <li id="FMXn"><a href="https://testnetbridge.com/" target="_blank"><strong>TestnetBridge</strong></a> - спорный &quot;мост&quot; из Goerli в Ethereum, но тут есть пулы и можно или даже нужно закинуть копеечку</li>
    <li id="BUtK"><a href="https://theaptosbridge.com/bridge" target="_blank"><strong>Aptos Bridge</strong></a> - мост на базе LayerZero, пару раз прогнать туда-сюда стоит. Самый дешевый $USDC из сети Matic в сеть Aptos и обратно. Аккуратнее на вывод из Aptos стоит задержка около 2х дней.</li>
    <li id="Gmyp"><a href="https://bitcoinbridge.network/" target="_blank"><strong>BitcoinBridge</strong></a> - официальный бридж BTC.b (обернутый $BTC в сети Avalanche)</li>
    <li id="B5ei"><a href="https://bridge.harmony.one/one" target="_blank"><strong>Harmony Bridge</strong></a> - официальный мост в Harmony.</li>
    <li id="IcLL"><a href="https://www.sushi.com/xswap?srcToken=ETH&dstToken=ETH&srcChainId=1&dstChainId=42161&srcTypedAmount=" target="_blank"><strong>Sushi</strong></a> - DEX платформа, работающая на LayerZero (вкладка xSwap). не забывайте у них тоже есть <a href="https://snapshot.org/#/sushigov.eth" target="_blank">snapshot</a>.</li>
  </ol>
  <p id="foJm"></p>
  <p id="gRjU"><strong>Это все проекты</strong>, которые разработали либо сами LayerZero, либо тесно связаны с ними. На текущий момент я не вижу других проектов, которые будут учитываться при дропе. </p>
  <blockquote id="dNPZ"><em>Да, я видел и NFT-площадки, домен, прочие dex, но каких-то упоминаний, либо связи между проектами не нашел, поэтому нахуй их. </em></blockquote>
  <p id="aK21"></p>
  <p id="N72D"><strong>Учтите, прогнать все выше перечисленное будет дорого!</strong></p>
  <p id="Ux39" data-align="right">Мой канал <a href="https://t.me/thor_lab" target="_blank">Thor Lab</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/deploy-contract-base</guid><link>https://teletype.in/@thomasi/deploy-contract-base?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/deploy-contract-base?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Развертываем контракт на Base Goerli</title><pubDate>Sat, 25 Feb 2023 13:36:21 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/91/bc/91bc207b-bef0-4185-bf4b-bae9a9682fc8.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/71/88/7188d97b-62c2-470a-8c33-e66fda87987d.png"></img>Гайд подготовлен @th0masi. Мой паблик Thor Lab]]></description><content:encoded><![CDATA[
  <p id="sltf" data-align="right">Гайд подготовлен <a href="https://t.me/th0masi" target="_blank"><strong>@th0masi</strong></a>. Мой паблик <a href="https://t.me/thor_lab" target="_blank"><strong>Thor Lab</strong></a></p>
  <hr />
  <p id="dk66">Будем делать легко и просто через <strong>remix </strong>c максимальной комфортными условиями под быстрый и удобный мультиаккинг.</p>
  <p id="4vxT">Для начала нам нужны тестовые токены для оплаты газа. Можно использовать официальный <a href="https://www.coinbase.com/faucets/base-ethereum-goerli-faucet" target="_blank">кран</a> (0.1 eth/day). </p>
  <p id="AbGv"></p>
  <p id="gnzf">Далее переходим на сайт <a href="https://remix.ethereum.org/#optimize=false&runs=200&evmVersion=null&version=builtin" target="_blank">Remix</a></p>
  <figure id="8toP" class="m_retina">
    <img src="https://img4.teletype.in/files/71/88/7188d97b-62c2-470a-8c33-e66fda87987d.png" width="1263" />
  </figure>
  <p id="FKxt">Открываем папку <strong>Contracts </strong>и файл <strong>1_Storage.sol</strong></p>
  <figure id="aZkm" class="m_retina">
    <img src="https://img3.teletype.in/files/29/b0/29b05af6-dfe5-4486-8d71-4c6650e64f9d.png" width="585.5" />
  </figure>
  <p id="bKT2">Переходим на последнюю вкладку из вертикального меню <strong>DEPLOY &amp; RUN TRANSACTIONS</strong></p>
  <figure id="3xgc" class="m_retina">
    <img src="https://img1.teletype.in/files/cd/5b/cd5b687f-8ccc-4534-b5a2-3a696baeaf04.png" width="233" />
  </figure>
  <p id="I8bj">В <strong>Environment </strong>выбираем <strong>Injected Provider (Metamask </strong>или <strong>Coinbase), </strong>предварительно в кошельке измените сеть на<strong> Base Goerli. </strong></p>
  <p id="LrpY">Подпишите транзакцию с подключением к сайту. Должно получиться так:</p>
  <figure id="Xi6t" class="m_retina">
    <img src="https://img2.teletype.in/files/db/40/db406dcc-f412-4054-a57f-06b59cee318a.png" width="228.5" />
  </figure>
  <p id="icDJ">Далее переходим на третью вкладку <strong>SOLIDITY COMPILER. </strong>Справа у вас все время должен быть открыт файл<strong> 1_Storage. sol</strong>, если вы перезагружали страницу заново откройте его.</p>
  <figure id="3aN3" class="m_retina">
    <img src="https://img3.teletype.in/files/a2/9c/a29c7d0a-15d8-4bbf-83d4-42a151651b4e.png" width="587" />
  </figure>
  <p id="Osys">На третей вкладке, мы выбираем последнюю версию <strong>Compiler </strong>(latest ...., обычно самая первая в списке) и нажимаем на <strong>Compile 1_storage.sol</strong></p>
  <figure id="Lx1U" class="m_original">
    <img src="https://img2.teletype.in/files/1a/99/1a990fdd-099f-4a02-8072-d4d511f1dbed.png" width="446" />
  </figure>
  <p id="Llmj">Слева в меню должна появится зеленая галка, значит с контрактом все ОК.</p>
  <p id="Okig">Возвращаемся в четвертую (последнюю вкладку) и видим появившуюся кнопку <strong>Deploy</strong></p>
  <figure id="hvXy" class="m_original">
    <img src="https://img3.teletype.in/files/29/5e/295e2438-61a1-48ea-8b06-56b7338a1104.png" width="457" />
  </figure>
  <p id="ymMz">Нажимаем на <strong>Deploy </strong>и подписываем транзу.</p>
  <figure id="7qSw" class="m_retina">
    <img src="https://img2.teletype.in/files/57/21/572118c3-c0c0-4afd-bfe2-0aa9e3faf900.png" width="215.5" />
  </figure>
  <p id="3QVG">В проводнике блоков находим транзакцию (<a href="https://goerli.basescan.org/tx/0x622ef7ad5af03cc62ac5d8636c56ecb2600d21886439bf39485d3412f4b5fa7f" target="_blank">пример</a>)</p>
  <figure id="2Yge" class="m_retina">
    <img src="https://img1.teletype.in/files/c3/1e/c31e8a03-9cf9-4c97-904b-92403dac9a19.png" width="607" />
  </figure>
  <p id="E6h5"><strong>Контракт успешно развернут!<br /><br /></strong>Кстати если хотите <strong>развернуть контракт сразу на множество кошельков</strong>, достаточно менять их в метамаске, далее подписывать транзу на подключение (убедитесь что он точно подключен к <strong>Remix</strong>) и жать <strong>Deploy</strong>! <br /><strong>Заново проделывать весь гайд для каждого кошелька не нужно!</strong></p>
  <p id="2L6O"></p>
  <hr />
  <p id="aw0E" data-align="right">Гайд подготовлен <a href="https://t.me/th0masi" target="_blank"><strong>@th0masi</strong></a>. Мой паблик <a href="https://t.me/thor_lab" target="_blank"><strong>Thor Lab</strong></a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/smart-contract-arbitrum1</guid><link>https://teletype.in/@thomasi/smart-contract-arbitrum1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/smart-contract-arbitrum1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Развертываем смарт-контракт на Arbitrum</title><pubDate>Tue, 21 Feb 2023 12:37:58 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/5f/24/5f243b1b-fa54-4249-8cd6-8cea39e621d9.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/76/fb/76fbc1d1-fbef-4b83-9576-fc1bb59d46eb.png"></img>Стоит дешево (в районе 0.2$ на 1 кошельке), времени занимает мало, поэтому делаем.]]></description><content:encoded><![CDATA[
  <p id="Mhc4">Стоит дешево (в районе 0.2$ на 1 кошельке), времени занимает мало, поэтому делаем.</p>
  <p id="W0mV"></p>
  <p id="N8ye">Открываем <a href="https://remix.ethereum.org/#optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.7+commit.e28d00a7.js" target="_blank"><strong>сайт</strong></a></p>
  <figure id="DSn0" class="m_retina">
    <img src="https://img4.teletype.in/files/76/fb/76fbc1d1-fbef-4b83-9576-fc1bb59d46eb.png" width="978.5" />
  </figure>
  <p id="ABh7">Слева переходим на последнюю вкладку <strong>Deploy and Run </strong></p>
  <p id="uGEx">Выбираем <strong>Injected Provider - Metamask</strong></p>
  <figure id="K8NU" class="m_original">
    <img src="https://img2.teletype.in/files/d9/8c/d98c736d-ba94-45a0-90c0-5a34b40712ec.png" width="934" />
  </figure>
  <p id="MEwD">Переходим обратно на первую вкладку <strong>File Explorer</strong> и создаем новый файл </p>
  <figure id="hraZ" class="m_original">
    <img src="https://img1.teletype.in/files/08/db/08db5ad8-e9ad-468d-849e-681c93469ab2.png" width="476" />
  </figure>
  <p id="15k1">Название любое, но обязательно добавляем <strong>.sol </strong>в конце <em>(пример mint.sol)</em></p>
  <p id="bwQ6">Нажимаем на созданный файл и вставляем код: </p>
  <p id="5tjo"><code>// SPDX-License-Identifier: MIT</code></p>
  <p id="84pm"><code>pragma solidity ^0.8.0;</code></p>
  <p id="O4R3"><code>contract Example {</code></p>
  <p id="bPnY"><code>function getHelloWorld() external pure returns (string memory) {</code></p>
  <p id="yCUS"><code>return &quot;poshel nahui&quot;;</code></p>
  <p id="LyCx"><code>}</code></p>
  <p id="YINl"><code>}</code></p>
  <p id="xRVB">Должно получится так:</p>
  <figure id="RCmf" class="m_original">
    <img src="https://img4.teletype.in/files/be/46/be465cc2-d280-41ed-a6d7-fdd1b1f7b8bc.png" width="1266" />
  </figure>
  <p id="vN7b">Переходим на третью вкладку и выбираем <strong>latest</strong>-версию</p>
  <figure id="e7eY" class="m_original">
    <img src="https://img4.teletype.in/files/f7/b9/f7b95199-1fe6-437b-841e-8140db20fd30.png" width="831" />
  </figure>
  <p id="3oyw">Нажимаем <strong>Compile название.sol</strong></p>
  <figure id="UCnM" class="m_original">
    <img src="https://img1.teletype.in/files/c4/68/c468e7f6-506a-48e8-80d9-3fbecbaf9638.png" width="503" />
  </figure>
  <p id="bfYc">Видим что все четко и появилась зеленая галка</p>
  <figure id="MRPk" class="m_original">
    <img src="https://img3.teletype.in/files/6d/0b/6d0b8b46-e739-4c51-8b73-67db199c8c38.png" width="452" />
  </figure>
  <p id="sF6w">Переходим на четвертую вкладку и нажимаем <strong>Deploy</strong></p>
  <figure id="PDZx" class="m_original">
    <img src="https://img1.teletype.in/files/c2/f9/c2f97254-7ad4-4316-b19f-5e131d02c5b8.png" width="469" />
  </figure>
  <p id="CXuu">Формируется транзакция с большим газом, но мы его изменим</p>
  <p id="VoGk">Нажимаем <strong>Изменить/Дополнительно - Дополнительно - Выставляем 0,1 и 0,1 </strong></p>
  <figure id="0m2p" class="m_original">
    <img src="https://img4.teletype.in/files/fb/80/fb80e58c-c161-4a95-8321-16a5784aab81.png" width="1491" />
  </figure>
  <p id="7FxT">Далее <strong>Сохранить </strong>- <strong>Подтвердить</strong></p>
  <p id="BOWP"><strong>Проверяем развернулся ли контракт!</strong></p>
  <p id="UG6M"></p>
  <p id="cOUe">Чтобы замультиачить достаточно:</p>
  <ol id="tA0y">
    <li id="OTFW">После развертывания открыть метамаск</li>
    <li id="XcUZ">Поменять кошелек</li>
    <li id="PWow">Нажать подключить к сайту</li>
    <li id="rqi7">Нажать <strong>Deploy </strong>на четвертой вкладке</li>
  </ol>
  <p id="rgMz"><strong>Удачи!</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@thomasi/google_crypto</guid><link>https://teletype.in/@thomasi/google_crypto?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi</link><comments>https://teletype.in/@thomasi/google_crypto?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=thomasi#comments</comments><dc:creator>thomasi</dc:creator><title>Как интегрировать Google Shits в крипту</title><pubDate>Wed, 08 Feb 2023 02:38:51 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/05/1e/051ebebb-2016-4ea2-b298-075d49f0b1a3.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/e2/4c/e24c2a91-2779-4159-a86a-5e34dc4e6fb2.png"></img>Говорят эту статью будут продавать на курсе senior-программиста от Литвина. ]]></description><content:encoded><![CDATA[
  <p id="SeZn"><em>Говорят эту статью будут продавать на курсе senior-программиста от Литвина. </em></p>
  <p id="Yd10"></p>
  <p id="KA46">С момента моей первой статьи я получил десятки отзывов и просьб написать какую-нибудь специфическую формулу в ЛС, поэтому решил научить вас, <s>бездарей</s>. </p>
  <p id="k5J3">Расскажу про основные формулы и нет, это не программирование, это блять физика. E=mc2. Это совсем не сложно, поверьте. </p>
  <p id="wqOt"></p>
  <h3 id="VPsG">Основная функция <strong>IMPORTXML</strong></h3>
  <p id="7Umm"></p>
  <p id="Ufjt"><strong>IMPORTXML </strong>- функция, которая импортирует данные с необходимой страницы в таблицу. </p>
  <p id="rKTA">Синтаксис выглядит так: <em>ImportXML(ссылка; запрос_xpath)</em></p>
  <p id="L7Zo"><strong>Ссылка </strong>- ну тут все просто, ссылка откуда берем данные, т.к. она у нас не уникальная, то мы указываем неуникальную часть. К примеру, нам нужно вытащить в таблицу баланс кошелька X, ссылка на страницу будет выглядить так: </p>
  <p id="bLna"><a href="https://etherscan.io/address/0x8AF6727AD0Ad4FB3CEE9c81C29A3C741913c7B5a" target="_blank">https://etherscan.io/address/0x8AF6727AD0Ad4FB3CEE9c81C29A3C741913c7B5a</a></p>
  <p id="7u5d">Но формула должна быть уникальная, поэтому предварительно мы будем помещать адреса кошельков в столбец А, а данные брать из этого столбца, тогда в формуле нам нужно будет указать <strong>&quot;&amp;A2&amp;&quot;:</strong></p>
  <p id="ggsT"><a href="https://etherscan.io/address/0x8AF6727AD0Ad4FB3CEE9c81C29A3C741913c7B5a" target="_blank">https://etherscan.io/address/</a>&quot;&amp;A2&amp;&quot;</p>
  <p id="ZN7x">В таком случае, поместив любой кошелек в ячейку А2, мы получим уникальную ссылку с этим кошельком. </p>
  <p id="NBTS"><strong>запрос_xpath - </strong>гугл все придумал за нас. Открываете любую страницу, выделяете нужный текст -&gt; ПКМ -&gt; Посмотреть код:</p>
  <figure id="tsQv" class="m_original">
    <img src="https://img3.teletype.in/files/e2/4c/e24c2a91-2779-4159-a86a-5e34dc4e6fb2.png" width="2696" />
  </figure>
  <p id="L44v">Гугл подсвечивает нужный тег, останется только его скопировать ПКМ -&gt; Копировать -&gt; Копировать полную строку Xpath</p>
  <figure id="EciT" class="m_original">
    <img src="https://img3.teletype.in/files/e5/5b/e55b7194-f72e-4266-a539-7f73f5f3dd1c.png" width="2936" />
  </figure>
  <p id="yBTd">Получаем такую белеберду /html/body/div[1]/main/div[4]/div[1]/div[1]/div/div[2]/div[1]/div[2] чтобы формула понимала что нам нужно достать именно текст или значение из этого тега. </p>
  <p id="li0j"></p>
  <p id="ZNT0">Вот такая формула получается:</p>
  <p id="k5bf"><code>=ImportXML(&quot;<a href="https://etherscan.io/address/" target="_blank">https://etherscan.io/address/</a>&quot;&amp;A2&amp;&quot;&quot;; &quot;/html/body/div[1]/main/div[4]/div[1]/div[1]/div/div[2]/div[1]/div[2]&quot;)</code></p>
  <figure id="CF9V" class="m_original">
    <img src="https://img3.teletype.in/files/68/fe/68fe4c7a-a33a-4130-882d-2b0ddb3adc2b.png" width="1075" />
  </figure>
  <p id="Bn5x"></p>
  <p id="GJxm">Но что-то не то, да? почему то данные разъехались в 3 столбца. Так бывает когда внутри тега, если еще теги, но это не беда. Есть такая функция JOIN, которая так сказать объединяет.</p>
  <p id="FS6f">И вот тут начинается матрешка. </p>
  <p id="NOO9"></p>
  <p id="aKGD"></p>
  <h3 id="P6MT">Функция JOIN</h3>
  <p id="1pN9"></p>
  <p id="I1sd">Синтаксис выглядит так: <em>JOIN(разделитель; значение_или_массив1)</em></p>
  <p id="Mqv3"><strong>Разделитель </strong>- соответственно знак разделения (он нам не нужен)</p>
  <p id="pViz"><strong>Значение </strong>- тут все просто вставляем нашу формулу выше.</p>
  <p id="qHJE"></p>
  <p id="mRNc">Формула у нас будет выглядеть так: </p>
  <p id="U1gE"><code>=JOIN(&quot;&quot;;предыдущая функция)</code></p>
  <p id="0Qov">С данными: </p>
  <p id="wyga"><code>=JOIN(&quot;&quot;;ImportXML(&quot;<a href="https://etherscan.io/address/" target="_blank">https://etherscan.io/address/</a>&quot;&amp;A2&amp;&quot;&quot;; &quot;/html/body/div[1]/main/div[4]/div[1]/div[1]/div/div[2]/div[1]/div[2]&quot;))</code></p>
  <p id="fZN3"></p>
  <figure id="B5dH" class="m_original">
    <img src="https://img3.teletype.in/files/6f/5a/6f5a7de0-da37-48ab-89a6-19e2ab7ab8ce.png" width="1078" />
  </figure>
  <p id="fPbM">Что дальше по плану? Мне не нравится буквы <em>Ether -</em> эта хуйня не даст нам интерпретировать ячейку как число, соответственно считать суммы мы не сможем. </p>
  <p id="7Rpp">А чтобы убрать из ячейки все буквы у нас есть формула <strong>REGEXREPLACE</strong></p>
  <p id="uYJO"></p>
  <p id="Yc7t"></p>
  <h3 id="tzzy">Формула REGEXREPLACE</h3>
  <p id="YIkX"></p>
  <p id="iPjF">Синтаксис: <em>REGEXREPLACE(текст; регулярное_выражение; замена)</em></p>
  <p id="4NIR"><strong>текст</strong> - наша предыдущая формула</p>
  <p id="sCGR"><strong>регулярное_выражение</strong> - их множество разных видов и как вы поняли они регулярные, поэтому расписывать каждую не вижу смысла. </p>
  <p id="YmC0"><strong>замена </strong>- чем мы заменим символы, которые найдем по регулярному выражению</p>
  <p id="Xl7M"></p>
  <p id="Fu4F">В нашем случае регулярное выражение будет <strong>[a-zA-Z\s] - </strong>по факту оно ищет все буквы в ячейке, а заменять мы их будет пустотой. </p>
  <p id="XXnh"></p>
  <p id="RIMB">Формула у нас будет выглядеть так:</p>
  <p id="Ip9E"><code>=REGEXREPLACE(предыдущие_функции);&quot;[a-zA-Z\s]&quot;;&quot;&quot;)</code></p>
  <p id="5mqN">С данными: </p>
  <p id="XDXr"><code>=REGEXREPLACE(JOIN(&quot;&quot;;ImportXML(&quot;<a href="https://etherscan.io/address/" target="_blank">https://etherscan.io/address/</a>&quot;&amp;A2&amp;&quot;&quot;; &quot;/html/body/div[1]/main/div[4]/div[1]/div[1]/div/div[2]/div[1]/div[2]&quot;));&quot;[a-zA-Z\s]&quot;;&quot;&quot;)</code></p>
  <p id="iqhD"></p>
  <figure id="nCS0" class="m_original">
    <img src="https://img4.teletype.in/files/f0/93/f09357b9-1fe0-4351-8a5f-d813925d9a1e.png" width="1082" />
  </figure>
  <p id="WY0r">Вау уже круто, но мне не нравится три тысячи знаков после запятой (а, то есть точки). </p>
  <p id="3s3D">И здесь у нас есть формула, а называется она <strong>ЛЕВСИМВ</strong></p>
  <p id="7q8U"></p>
  <p id="BZl3"></p>
  <h3 id="sJtP">Формула ЛЕВСИМВ</h3>
  <p id="io6H"></p>
  <p id="Xolb">Синтаксис: <em>ЛЕВСИМВ(строка; [число_символов])</em></p>
  <p id="IY6u"><strong>строка</strong> - наша предыдущая формула </p>
  <p id="RLNm"><strong>число_символов</strong> - которое мы хотим оставить слева</p>
  <p id="juKC"><br />Давайте ради исключения для эфира оставим 5 символа после точки, получается 6 (точку тоже считаем). </p>
  <p id="u72P"></p>
  <p id="lQYx">Формула у нас будет выглядеть так:</p>
  <p id="oMW9"><code>=ЛЕВСИМВ(предыдущие_функции;7)</code></p>
  <p id="Ggp1">С данными: </p>
  <p id="KRUP"><code>=ЛЕВСИМВ(REGEXREPLACE(JOIN(&quot;&quot;;ImportXML(&quot;<a href="https://etherscan.io/address/" target="_blank">https://etherscan.io/address/</a>&quot;&amp;A2&amp;&quot;&quot;; &quot;/html/body/div[1]/main/div[4]/div[1]/div[1]/div/div[2]/div[1]/div[2]&quot;));&quot;[a-zA-Z\s]&quot;;&quot;&quot;);7)</code></p>
  <figure id="1HLP" class="m_original">
    <img src="https://img4.teletype.in/files/be/ab/beabb8c5-d6cc-4938-9e92-a37859b5fd4a.png" width="1076" />
  </figure>
  <p id="p08V">И это уже ближе к истине, только проблема - гугл не считает данные с точкой числом. </p>
  <figure id="rVRF" class="m_original">
    <img src="https://img1.teletype.in/files/ce/22/ce228de7-a531-4aa9-8680-7056df4aec90.png" width="1077" />
  </figure>
  <p id="tMyy">Но это легко решается заменой точки на запятую (ну или настройки там еще чет есть, не разбирался), а как заменить? ... </p>
  <p id="KWsJ"></p>
  <p id="gRGJ"></p>
  <h3 id="Rqns">Формула ПОДСТАВИТЬ</h3>
  <p id="KPvs"></p>
  <p id="d9RV">Синтаксис: <em>ПОДСТАВИТЬ(text_to_search, search_for, replace_with, [occurrence_number])</em></p>
  <p id="WjF0"><strong>text_to_search</strong> - наша формула</p>
  <p id="buqN"><strong>search_for </strong>- что заменяем</p>
  <p id="8jFn"><strong>replace_with </strong>- НА что заменяем</p>
  <p id="9wx4"></p>
  <p id="Gy54">В нашем случае мы меняем &quot;.&quot; на &quot;,&quot; и выглядит формула так:</p>
  <p id="3WNE"><code>=ПОДСТАВИТЬ(предыдущая_формула;&quot;.&quot;;&quot;,&quot;)</code></p>
  <p id="UZW9">С данными: </p>
  <p id="Zr67"><code>=ПОДСТАВИТЬ(ЛЕВСИМВ(REGEXREPLACE(JOIN(&quot;&quot;;ImportXML(&quot;<a href="https://etherscan.io/address/" target="_blank">https://etherscan.io/address/</a>&quot;&amp;A2&amp;&quot;&quot;; &quot;/html/body/div[1]/main/div[4]/div[1]/div[1]/div/div[2]/div[1]/div[2]&quot;));&quot;[a-zA-Z\s]&quot;;&quot;&quot;);7);&quot;.&quot;;&quot;,&quot;)</code></p>
  <figure id="gbhx" class="m_original">
    <img src="https://img4.teletype.in/files/36/1f/361fa1bf-ee8a-4002-8f7f-eda60375fc2a.png" width="1080" />
  </figure>
  <p id="o4So">И вот мы наконец получили рабочую формулу, чуть-чуть наведем красоту: </p>
  <figure id="cEsx" class="m_original">
    <img src="https://img4.teletype.in/files/31/70/31702832-f6b7-4611-88e3-8265595da648.png" width="1270" />
  </figure>
  <p id="cDT0">А вот тут у вас будет логический вопрос, а почему ячейка с формулой в отдельном столбце, а я отвечу - гугл. Сумму по значении формулы он не хочет считать, а поэтому я интерпретирую получившиеся значение в число с помощью формулы в отдельную ячейку. </p>
  <p id="WV2N"></p>
  <p id="hSgu"></p>
  <h3 id="UPz9">Формула ЗНАЧЕН</h3>
  <p id="MCxB"></p>
  <p id="HPmU">Синтаксис: <em>=ЗНАЧЕН(ячейка с формулой)</em></p>
  <p id="BNc5"></p>
  <p id="gWMf">В моем случае формула в ячейке H2:</p>
  <figure id="fC5E" class="m_original">
    <img src="https://img1.teletype.in/files/44/52/44523b6e-5282-47a1-a40c-1c883ba7eff1.png" width="1280" />
  </figure>
  <p id="EuAe">И о чудо: </p>
  <figure id="J6mf" class="m_original">
    <img src="https://img1.teletype.in/files/c6/32/c6323f3c-404e-48ae-96df-ca8ff0bcbedd.png" width="1271" />
  </figure>
  <p id="6g1m">Все работает, все считает. </p>
  <p id="AwdP">Кстати, посчитать все значения тоже легко!</p>
  <figure id="Lqn6" class="m_original">
    <img src="https://img2.teletype.in/files/d6/f3/d6f32f3a-1f6f-4529-b67b-9c1432478737.png" width="1275" />
  </figure>
  <p id="dNcG"><code>=СУММ(ЕСЛИОШИБКА(B2:B51;0))<br /><br /></code>B2:B51 - диапазон ячеек для суммирования.</p>
  <p id="U8AL">В данном случае ЕСЛИОШИБКА нужна для ячеек с #Н/Д, когда вы размножаете формулу, пока нет кошельков формула будет писать #Н/Д</p>
  <figure id="I6FK" class="m_original">
    <img src="https://img2.teletype.in/files/19/13/1913219e-504b-453a-ba9c-11056b90e36a.png" width="1281" />
  </figure>
  <p id="51EU">Последний ваш вопрос - как множить формулы, неужели руками? Нет</p>
  <p id="affA">Выделяйте формулу и видите справа внизу квадратик? </p>
  <figure id="wOGh" class="m_original">
    <img src="https://img3.teletype.in/files/a8/d0/a8d00fb3-0d0e-4f75-9e43-e72a2dd4d88d.png" width="1277" />
  </figure>
  <p id="uaRB">Тяните его вниз, данные в формуле будут заменять автоматически. Если формула с кошельком из А2, то он дальше будет брать с А3, А4 и т.д. Короче все будет заебись.</p>
  <figure id="OyKL" class="m_original">
    <img src="https://img4.teletype.in/files/38/14/38144c9d-fb77-4c7f-a8ce-030578c54a43.png" width="2707" />
    <figcaption>Видите на 20 строке берет данные из А20</figcaption>
  </figure>
  <p id="H9pB">Вот <a href="https://docs.google.com/spreadsheets/d/136ObjTtkc4OOrv-ru9KRxaFngb-W4FiumHOYOLxnX_c/edit?usp=sharing" target="_blank">тестовая таблица</a> с итогом.</p>
  <p id="rslF"></p>
  <p id="tP4X"></p>
  <h3 id="Icsg">FAQ</h3>
  <p id="RXd3"></p>
  <p id="LZxx"><em>Тут будут вопросы, которые мне будут задавать в лс, а я их сюда</em></p>
  <p id="L4pR"><br /><strong>Как проверять балансы определенных токенов? <br /><br /></strong>Легко, используйте ссылку: <br /><br /><em>https://etherscan.io/token/контракт?a=кошелек</em></p>
  <p id="mV16">Где контракт - адрес контракта, а кошелек - адрес кошелька. И в xpath используйте путь до тега с балансом (выделил на скрине)<br /></p>
  <figure id="GaP6" class="m_original">
    <img src="https://img2.teletype.in/files/58/42/58425512-865e-4e57-86c2-4a67b0eb2657.png" width="1792" />
  </figure>
  <p id="M1wm"></p>
  <h3 id="ezz8">Заключение</h3>
  <p id="CbVK">Я описал самый сложный кейс, в других случаях будет намного проще с меньшим количеством формул, я подготовил вас к любой хуйне. </p>
  <p id="smdw">Основная проблема - ограничение гугла, он будет обрабатывать IMPORTXML только 100 запросов в час, есть решения этой проблемы, сложные и легкие, платные и бесплатные. В следующей статье соберу все варианты (но не точно).<br /></p>
  <p id="vCo8">Можете задавать вопросы <strong>@th0masi </strong><em>(один хуй и так через день по таблицам пишут)</em></p>
  <p id="ArIp"></p>
  <p id="YVnT">Если вы хотите отблагодарить, то без проблем, <s>богачи ебучие</s>: </p>
  <p id="8jRM"><strong>TRC-228</strong> <code>TR8VSXhDUWQKmBswJ1R69NsvrhXgyENbya </code><br /><strong>BSC-696</strong> <code>0x303175c889263D8fD7Bc95887a0cE92A93AEe671</code></p>

]]></content:encoded></item></channel></rss>