<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>DELETED BLOG</title><author><name>DELETED BLOG</name></author><id>https://teletype.in/atom/razumv</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/razumv?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@razumv?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/razumv?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-08T05:20:51.625Z</updated><entry><id>razumv:nym-mixnode-stake</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/nym-mixnode-stake?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>NYM stake in mixnode</title><published>2022-05-04T15:02:26.955Z</published><updated>2022-07-04T20:48:24.275Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/69/66/6966262e-27b3-4723-98a2-f1c1d98c95bb.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/7b/da/7bdabe91-79ad-48dc-bac6-f307ea195ca0.png&quot;&gt;Telegram | Twitter | YouTube | GitHub | Medium | Web | Explorer Mixnet | Explorer NYX </summary><content type="html">
  &lt;figure id=&quot;Pui7&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7b/da/7bdabe91-79ad-48dc-bac6-f307ea195ca0.png&quot; width=&quot;708&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;z9EB&quot; data-align=&quot;center&quot;&gt;&lt;a href=&quot;https://t.me/nymchan&quot; target=&quot;_blank&quot;&gt;Telegram&lt;/a&gt; | &lt;a href=&quot;https://twitter.com/NetworkSubspace&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; | &lt;a href=&quot;https://www.youtube.com/nymtech&quot; target=&quot;_blank&quot;&gt;YouTube&lt;/a&gt; | &lt;a href=&quot;https://github.com/nymtech&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; | &lt;a href=&quot;https://blog.nymtech.net/&quot; target=&quot;_blank&quot;&gt;Medium&lt;/a&gt; | &lt;a href=&quot;https://nymtech.net/&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; | &lt;a href=&quot;https://mixnet.explorers.guru/&quot; target=&quot;_blank&quot;&gt;Explorer Mixnet&lt;/a&gt; | &lt;a href=&quot;https://nym.explorers.guru/&quot; target=&quot;_blank&quot;&gt;Explorer NYX&lt;/a&gt; &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;O1BG&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Навигация&lt;/strong&gt;&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;7IpW&quot;&gt;- &lt;a href=&quot;#nWWK&quot;&gt;Описание проекта&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;dwD8&quot;&gt;- &lt;a href=&quot;#X6on&quot;&gt;Как застейкать в миксноду&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;m70O&quot;&gt;- &lt;a href=&quot;#IpTd&quot;&gt;Конвертация ERC-20 -&amp;gt; NYX&lt;/a&gt;&lt;/p&gt;
  &lt;ul id=&quot;9H1c&quot;&gt;
    &lt;li id=&quot;C2qo&quot;&gt;&lt;a href=&quot;#czYk&quot;&gt;Что нужно&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;74IJ&quot;&gt;&lt;a href=&quot;#qXQK&quot;&gt;Подготовка&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;yozx&quot;&gt;&lt;a href=&quot;#Id41&quot;&gt;Как свапнуть на Osmosis&lt;/a&gt; &lt;/li&gt;
    &lt;li id=&quot;pzDd&quot;&gt;&lt;a href=&quot;#RlNw&quot;&gt;Ethereum -&amp;gt; Gravity Bridge&lt;/a&gt; &lt;/li&gt;
    &lt;li id=&quot;OzKM&quot;&gt;&lt;a href=&quot;#fgg1&quot;&gt;Gravity Bridge -&amp;gt; NYX &lt;/a&gt;   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;zEDq&quot;&gt;- &lt;a href=&quot;#I8DR&quot;&gt;Полезные ссылки&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;jmFu&quot;&gt;- &lt;a href=&quot;#Yzah&quot;&gt;Ресурсы DOUBLETOP&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;nWWK&quot; data-align=&quot;center&quot;&gt;Описание проекта&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;O4Ja&quot;&gt;&lt;strong&gt;NYM —  &lt;/strong&gt;это платформа с открытым исходным кодом, децентрализованная, со всеми преимуществами, которые предлагает пространство Defi. Кроме того, сеть позволит разработчикам создавать приложения, обеспечивающие пользователям надежную защиту от утечки метаданных. Безопасность будет охватывать уровень сетевого трафика, а также аутентификацию и платежи.&lt;/p&gt;
  &lt;p id=&quot;IDVc&quot;&gt;Существующие интернет-протоколы вызывают утечку конфиденциальных данных как на сетевом уровне, так и на уровне приложений. Nym разрабатывает инфраструктуру для предотвращения этой утечки данных, защищая метаданные каждого пакета на сетевом уровне.&lt;/p&gt;
  &lt;p id=&quot;diRL&quot;&gt;&lt;strong&gt;NYM &lt;/strong&gt;включили доход от стейкинга в миксноды ,пул вознаграждений составляет 250 млн NYM. Награды начисляются примерно каждый час. Все ваши замороженные токены можно будет закинуть в стейкинг, чтоб они работали пока они в локе. &lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;X6on&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Как застейкать в миксноду&lt;/strong&gt;&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;b38N&quot;&gt;Для стейкинга необходим &lt;a href=&quot;https://nymtech.net/download/&quot; target=&quot;_blank&quot;&gt;кошелёк NYM&lt;/a&gt; с токенами $NYM в сети NYX (COSMOS). Если токены $NYM находятся в сети Ethereum и вы хотите их застейкать, то их можно перевести в сеть NYX следуя соответствующему разделу.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;TdaG&quot;&gt;Условия стейкинга:&lt;/p&gt;
    &lt;ul id=&quot;Db3w&quot;&gt;
      &lt;li id=&quot;XObg&quot;&gt;APR ~7% на момент запуска, актуальный можно узнать &lt;a href=&quot;https://mixnet.explorers.guru/&quot; target=&quot;_blank&quot;&gt;на сайте&lt;/a&gt;;&lt;/li&gt;
      &lt;li id=&quot;2ZRe&quot;&gt;Комиссия валидатора — 10&lt;strong&gt;%&lt;/strong&gt;;&lt;/li&gt;
      &lt;li id=&quot;LOEW&quot;&gt;Снятие токенов со стейкинга — несколько часов.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;p id=&quot;GdOj&quot;&gt;1. Устанавливаем кошелек NYM и импортируем свой кошелек &lt;/p&gt;
  &lt;p id=&quot;QzjF&quot;&gt;2. Проверяем количество токенов в сети «Nym Mainnet» на кошельке и переходим во вкладку &lt;u&gt;&lt;strong&gt;&amp;quot;Delegate&amp;quot;&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;figure id=&quot;PFE5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d2/8b/d28bc1ed-e24c-45fd-96fe-0bbebf38659b.png&quot; width=&quot;3012&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UqZr&quot;&gt;Указываем &lt;u&gt;&lt;strong&gt;&amp;quot;Mixnode identity&amp;quot;&lt;/strong&gt;&lt;/u&gt; - это айди миксноды, в которую вы хотите делегировать. &lt;u&gt;&lt;strong&gt;&amp;quot;Amount to delegate&amp;quot;&lt;/strong&gt;&lt;/u&gt; - это количество токенов,  которые вы хотите заделегировать &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;DDlR&quot;&gt;&lt;strong&gt;Mixnode identity  — 2pGJpJ146TtXA1FzA4FMBSR5Zg7L9nsdoigVqyGyZ1gi&lt;br /&gt;&lt;br /&gt;Second identity — AUe9huPx9cow6Gz9w1CXxyrs28TuhXkX7jQx7YD5sRHg&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;1L9x&quot;&gt;3. Далее нажимаем &lt;u&gt;&amp;quot;&lt;strong&gt;Delegate stake&amp;quot;&lt;/strong&gt;&lt;/u&gt; и тем самым отправляем в стейкинг наши токены.&lt;/p&gt;
  &lt;figure id=&quot;BNVL&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5c/59/5c59502b-2826-466e-b4a6-c2673a31f972.png&quot; width=&quot;404&quot; /&gt;
    &lt;figcaption&gt;Вывод должен быть такой&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 data-align=&quot;center&quot; id=&quot;IpTd&quot;&gt;Конвертация ERC-20 -&amp;gt; NYX&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 data-align=&quot;center&quot; id=&quot;czYk&quot;&gt;Что нужно&lt;/h3&gt;
  &lt;/section&gt;
  &lt;ol id=&quot;Wn2M&quot;&gt;
    &lt;li id=&quot;qVdw&quot;&gt;&lt;a href=&quot;https://nymtech.net/download/&quot; target=&quot;_blank&quot;&gt;Кошелек Nym&lt;/a&gt; и созданный аккаунт «Nym Mainnet» формата который начинается на n1... (пример: n1u5pzdpuufsecnp6k46zgyc48y6tnes3jef5qvw)&lt;/li&gt;
    &lt;li id=&quot;dCLC&quot;&gt;Импортированный в Metamask кошелёк с токенами $NYM и $ETH (~0.01 $ETH на комиссию) в сети ERC-20&lt;/li&gt;
    &lt;li id=&quot;M8cX&quot;&gt;Добавляем в Metamask контракт токена $NYM: 0x525A8F6F3Ba4752868cde25164382BfbaE3990e1&lt;/li&gt;
    &lt;li id=&quot;AuAz&quot;&gt; Далее нам понадобится &lt;a href=&quot;https://www.keplr.app/&quot; target=&quot;_blank&quot;&gt;Кошелёк Keplr&lt;/a&gt; и токены $GRAV (~0.01 $GRAV на комиссию) &lt;br /&gt;[можно взять на Osmosis  &lt;a href=&quot;https://app.osmosis.zone/?from=OSMO&amp;to=GRAV&quot; target=&quot;_blank&quot;&gt;https://app.osmosis.zone/?from=OSMO&amp;amp;to=GRAV&lt;/a&gt;]&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;usxW&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;qXQK&quot; data-align=&quot;center&quot;&gt;Подготовка&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;n3ZB&quot;&gt;Процесс конвертации токенов из сети Ethereum в сеть Nym экосистемы Cosmos проводится посредством моста «Gravity Bridge». Для этого потребуется немного токенов $GRAV, которые получить на &lt;a href=&quot;https://app.osmosis.zone/&quot; target=&quot;_blank&quot;&gt;Osmosis&lt;/a&gt;, обменяв их на любой поддерживаемый токен (достаточно 0.01 $GRAV).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;Id41&quot; data-align=&quot;center&quot;&gt;Как свапнуть на Osmosis&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;1SBA&quot;&gt;Я свапнул $UMEE в токены $GRAV (можете воспользоваться моим примером)&lt;/p&gt;
  &lt;figure id=&quot;8zZH&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/17/5d/175d267c-1248-4beb-827b-c517443204dc.png&quot; width=&quot;3020&quot; /&gt;
    &lt;figcaption&gt;Выбираем нужный токен, который вы хотите задепозитить на осмосис&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Rkzf&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/1e/121e527d-2ebc-4fbe-b4b5-e5d608ad7e46.png&quot; width=&quot;3020&quot; /&gt;
    &lt;figcaption&gt;Выбираем количество и нажимаем Deposit&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;tPUs&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b1/e1/b1e1566d-0628-4498-976d-160d4d731717.png&quot; width=&quot;3016&quot; /&gt;
    &lt;figcaption&gt;Идем во вкладку Trade, выбираем токены и количество и нажимаем Swap&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;u9yu&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/58/24/582486ab-763d-488f-9468-60ef9510cb8d.png&quot; width=&quot;3012&quot; /&gt;
    &lt;figcaption&gt;Возвращаемся в Assets и находим Gravity Bridge&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Ooyd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5c/05/5c05e916-c3b8-424e-b362-98d98093799f.png&quot; width=&quot;3022&quot; /&gt;
    &lt;figcaption&gt;Делаем Withdraw на кошелек кеплера&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;u08y&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/96/90/96900b4a-7fdc-42b8-9f94-06b24c35fab6.png&quot; width=&quot;3020&quot; /&gt;
    &lt;figcaption&gt;Готово! Токены $GRAV на кошельке &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;j0WY&quot;&gt;Если ещё нет кошелька NYM, то необходимо скачать &lt;a href=&quot;https://nymtech.net/download/&quot; target=&quot;_blank&quot;&gt;приложение&lt;/a&gt; и создать его.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;RlNw&quot; data-align=&quot;center&quot;&gt;Ethereum -&amp;gt; Gravity Bridge&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;7HRK&quot;&gt;1. После приобретения токенов $GRAV на кошелёк &lt;a href=&quot;https://www.keplr.app/&quot; target=&quot;_blank&quot;&gt;Keplr&lt;/a&gt; необходимо перейти на сайт &lt;a href=&quot;https://bridge.blockscape.network/&quot; target=&quot;_blank&quot;&gt;Gravity Bridge Portal&lt;/a&gt; и подключить Metamask кошелёк, на котором лежат токены $NYM.&lt;/p&gt;
  &lt;figure id=&quot;3wUl&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a7/4b/a74bae99-4926-4a04-bb4b-556843309e47.png&quot; width=&quot;1638&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mwYd&quot;&gt;2. Нажимаем &lt;u&gt;&amp;quot;Select Token&amp;quot;&lt;/u&gt; и указываем контракт токена $NYM 0x525A8F6F3Ba4752868cde25164382BfbaE3990e1&lt;/p&gt;
  &lt;figure id=&quot;3uJJ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/ff/87/ff879828-1f80-43f6-af93-a2910eb7fc2e.png&quot; width=&quot;1718&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PK3y&quot;&gt;3. Указываем желаемую для конвертации сумму токенов (можно выбрать все токены). Подключаем Keplr и проверяем адрес кошелька сети Gravity Bridge (gravity1...), импортированного в Keplr, на котором лежат токен $GRAV&lt;/p&gt;
  &lt;figure id=&quot;WMn6&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ae/bd/aebdc776-2528-4c9a-8f4b-4f74090cc21a.png&quot; width=&quot;1636&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7P00&quot;&gt;4. Подписываем транзакцию, и платим комиссию в сети ERC-20 ~0.01 $ETH (в зависимости от цены &lt;a href=&quot;https://etherscan.io/gastracker&quot; target=&quot;_blank&quot;&gt;газа&lt;/a&gt;)&lt;/p&gt;
  &lt;figure id=&quot;GJpN&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/eb/81/eb81af16-efb8-41bd-a2c2-d9ca35fad19a.png&quot; width=&quot;1704&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;bYPF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/43/b3/43b3e471-e974-4c24-8c06-384cbe150c03.png&quot; width=&quot;818&quot; /&gt;
    &lt;figcaption&gt;Подтверждаем транзу в метамаске&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;9IBA&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/21/63/2163933b-2f99-484d-827c-5f33e44e6f36.png&quot; width=&quot;918&quot; /&gt;
    &lt;figcaption&gt;Ждем &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;ND4Q&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b3/28/b3288854-afc4-4e05-a887-4cfc6b505918.png&quot; width=&quot;920&quot; /&gt;
    &lt;figcaption&gt;Готово&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;fgg1&quot; data-align=&quot;center&quot;&gt;Gravity Bridge -&amp;gt; NYX&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;PAUu&quot;&gt;После перевода токенов в сеть Gravity Bridge, необходимо вывести их в сеть NYX. Для этого нужно перейти в эксплорер &lt;a href=&quot;https://explorer.postcapitalist.io/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;POSTCAPITALIST&lt;/strong&gt;&lt;/a&gt; и подключить кошелек Keplr.&lt;/p&gt;
  &lt;figure id=&quot;ZQXU&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1e/02/1e02f52f-5b55-4dd8-8a48-d8029cb95702.png&quot; width=&quot;3018&quot; /&gt;
    &lt;figcaption&gt;Переходим в Wallet на главной странице&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;VtS2&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/67/e1/67e11543-c827-4757-9257-70f3d186d4c4.png&quot; width=&quot;3022&quot; /&gt;
    &lt;figcaption&gt;Нажимаем Connect Wallet&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;UQA1&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ce/26/ce269718-978a-49a9-85c7-ce02430ce607.png&quot; width=&quot;3022&quot; /&gt;
    &lt;figcaption&gt;Подключаем Keplr&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;wSZh&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ad/b7/adb71e2d-ff45-44a9-8977-ca63209e91ae.png&quot; width=&quot;3020&quot; /&gt;
    &lt;figcaption&gt;Ввести любое название кошелька в поле &amp;quot;Account Name&amp;quot;, выбрать сеть &lt;code&gt;GRAVITY-BRIDGE&lt;/code&gt; и нажать &amp;quot;Next&amp;quot; &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;tCXN&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0d/9c/0d9c50d8-8394-420a-93e3-470b2dabc1d6.png&quot; width=&quot;3018&quot; /&gt;
    &lt;figcaption&gt;И нажимаем &amp;quot;Save&amp;quot;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;F2KF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7a/fe/7afe3f6c-d448-4c42-a079-ca45840a631f.png&quot; width=&quot;3022&quot; /&gt;
    &lt;figcaption&gt;Открываем детали &lt;code&gt;GRAVITY-BRIDGE&lt;/code&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;9qTX&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/dd/c5/ddc56f93-3325-4af6-bb60-8dbd48ed723e.png&quot; width=&quot;3020&quot; /&gt;
    &lt;figcaption&gt;В разделе &amp;quot;Assets&amp;quot; выбрать &amp;quot;IBC Transfer&amp;quot;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;c85X&quot;&gt;Заполняем данные:&lt;/p&gt;
    &lt;p id=&quot;R0lC&quot;&gt;&amp;quot;Available Token&amp;quot; — выбрать $NYM&lt;/p&gt;
    &lt;p id=&quot;TMsY&quot;&gt;&amp;quot;Amount&amp;quot; — указать сумму токенов для перевода (&lt;u&gt;чуть меньше&lt;/u&gt; токенов, чем есть на кошельке);&lt;/p&gt;
    &lt;p id=&quot;mrd3&quot;&gt;&amp;quot;Recipient&amp;quot; — адрес Nym кошелька (&lt;code&gt;n1…&lt;/code&gt;), созданный ранее в приложении Nym Wallet&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;Tx8o&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/28/cc/28cc2441-dfe8-40a8-b6a8-4365acd1c298.png&quot; width=&quot;3016&quot; /&gt;
    &lt;figcaption&gt;Вводим данные и нажимаем &amp;quot;Withdraw&amp;quot;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;aqgC&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3b/49/3b490a17-73ed-44b5-bcde-68e03f9f88f5.png&quot; width=&quot;357&quot; /&gt;
    &lt;figcaption&gt;Подтверждаем транзакцию в кеплр &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;L1E4&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b8/60/b860d6df-4568-4e04-82c4-206d99463de8.png&quot; width=&quot;3022&quot; /&gt;
    &lt;figcaption&gt;В разделе &amp;quot;Transactions&amp;quot; можете проверить свою транзу кликнув на &amp;quot;TXHASH&amp;quot;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;gH5x&quot;&gt;ВНИМАНИЕ! ТРАНЗАКЦИЯ IBC МОЖЕТ ВЫПОЛНЯТЬСЯ НЕКОТОРОЕ ВРЕМЯ, Я ЖДАЛ СВОИ ТОКЕНЫ ПРИМЕРНО 2 ЧАСА, И ОНИ ПРИШЛИ СО ВТОРОЙ ПОПЫТКИ! БУДТЕ ВНИМАТЕЛЬНЫ ПРИ ОТПРАВКЕ!&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;APPz&quot;&gt;Проверяем баланс $NYM кошелька в приложении Nym Wallet.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;jYol&quot;&gt;Мнемоническая фраза используется для восстановления кошелька, поэтому необходимо сохранить её в надёжном месте.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;tkpI&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 data-align=&quot;center&quot; id=&quot;gYzn&quot;&gt;Полезные ссылки&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;QNan&quot;&gt;&lt;strong&gt;Используемые кошельки:&lt;/strong&gt;&lt;em&gt;&lt;br /&gt;1) &lt;a href=&quot;https://academy.binance.com/ru/articles/how-to-use-metamask&quot; target=&quot;_blank&quot;&gt;Как пользоваться кошельком Metamask&lt;/a&gt; &lt;br /&gt;2) &lt;a href=&quot;https://antropocosmist.medium.com/%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D1%8C%D0%BA%D0%BE%D0%BC-keplr-462d430615b3&quot; target=&quot;_blank&quot;&gt;Как пользоваться кошельком Keplr&lt;/a&gt; &lt;br /&gt;3) &lt;a href=&quot;https://nymtech.net/download/&quot; target=&quot;_blank&quot;&gt;Скачать к&lt;/a&gt;&lt;/em&gt;&lt;a href=&quot;https://nymtech.net/download/&quot; target=&quot;_blank&quot;&gt;ошелек NYM&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;UVj0&quot;&gt;&lt;strong&gt;Для получение токена $GRAV используем&lt;/strong&gt; &lt;a href=&quot;https://app.osmosis.zone/?from=ATOM&amp;to=GRAV&quot; target=&quot;_blank&quot;&gt;Osmosis &lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;NQTI&quot;&gt;&lt;strong&gt;Портал-мост&lt;/strong&gt; &lt;a href=&quot;https://bridge.blockscape.network/&quot; target=&quot;_blank&quot;&gt;Gravity Bridge Portal&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;TQXB&quot;&gt;&lt;strong&gt;Эксплорер&lt;/strong&gt; &lt;a href=&quot;https://explorer.postcapitalist.io/wallet/import&quot; target=&quot;_blank&quot;&gt;POSTCAPITALIST&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Yzah&quot; data-align=&quot;center&quot;&gt;DOUBLE TOP | &lt;a href=&quot;https://bit.ly/3hrXLDf&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt; | &lt;a href=&quot;https://bit.ly/3AngYPs&quot; target=&quot;_blank&quot;&gt;YouTube&lt;/a&gt; | &lt;a href=&quot;https://bit.ly/3whceYo&quot; target=&quot;_blank&quot;&gt;Chat&lt;/a&gt; | &lt;a href=&quot;https://bit.ly/3jCqKXM&quot; target=&quot;_blank&quot;&gt;Services&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>razumv:2top-nodes</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/2top-nodes?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>2TOP NODES</title><published>2022-02-21T16:20:58.302Z</published><updated>2022-02-22T06:59:57.375Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2b/7f/2b7f821d-46a8-46e2-9a35-4a20987b1099.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/f2/b2/f2b2313f-3129-472a-b44c-0103a46adc20.png&quot;&gt;2TOP NODES снова открыты! </summary><content type="html">
  &lt;figure id=&quot;IEc4&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f2/b2/f2b2313f-3129-472a-b44c-0103a46adc20.png&quot; width=&quot;960&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;eE3p&quot;&gt;&lt;em&gt;2TOP NODES снова открыты! &lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;qtAJ&quot;&gt;2TOP NODES – направление по поднятию тестнетов на ранних стадиях. &lt;/h2&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;ixf6&quot;&gt;&lt;strong&gt;✅ Что входит?&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;ul id=&quot;DNfW&quot;&gt;
    &lt;li id=&quot;p2FL&quot;&gt;Каналы с анонсами в Telegram+Discord&lt;/li&gt;
    &lt;li id=&quot;gPbJ&quot;&gt;Доступ к Discord-чатам по каждому проекту&lt;/li&gt;
    &lt;li id=&quot;bAUk&quot;&gt;Чат для начинающих + поддержка&lt;/li&gt;
    &lt;li id=&quot;l114&quot;&gt;Обучение для новичков с уроками и совместными разборами&lt;/li&gt;
    &lt;li id=&quot;BU69&quot;&gt;Еженедельные созвоны с обсуждением новостей&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ndn1&quot;&gt;Бонус:&lt;/p&gt;
  &lt;ul id=&quot;P39X&quot;&gt;
    &lt;li id=&quot;qR8b&quot;&gt;Дружелюбное комьюнити&lt;/li&gt;
    &lt;li id=&quot;5uO9&quot;&gt;Канал и чат с амбассадорскими программами&lt;/li&gt;
    &lt;li id=&quot;YzBO&quot;&gt;Внутренний ОТС&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;QnV4&quot;&gt;&lt;strong&gt;✅ Для кого сделано?&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;ul id=&quot;hyQv&quot;&gt;
    &lt;li id=&quot;WTKO&quot;&gt;Подходит для участников с небольшим депозитом&lt;/li&gt;
    &lt;li id=&quot;klLS&quot;&gt;Для тех кто хочет ознакомится с нодами, поднимать тестовые узлы и развиваться в новых направлениях. Но тут нужно желание и упорство, чтоб разобраться и познакомиться с командной строкой.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;yjkb&quot;&gt;✅ В чем профит?&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lqNF&quot;&gt;Мы заходим в тестнеты проектов на ранних стадиях и помогаем разработчикам, выполняем задания. За что часто разработчики вознаграждают монетами, которые еще не залистились(потенциальные иксы!)&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;80hz&quot;&gt;❓Часто задаваемые вопросы:&lt;/h2&gt;
  &lt;/section&gt;
  &lt;ul id=&quot;jR9s&quot;&gt;
    &lt;li id=&quot;QXcO&quot;&gt;&lt;strong&gt;Насколько нужен мощный компьютер?&lt;/strong&gt;&lt;br /&gt;- Достаточно любого компьютера, который поддерживает браузер и не тормозит. Для работы нод мы не используем мощности ПК, а арендуем сервера и подключаемся к ним через терминал.&lt;/li&gt;
    &lt;li id=&quot;JpZ2&quot;&gt;&lt;strong&gt;Сколько нужно иметь депозит, чтоб заниматься нодами?&lt;/strong&gt;&lt;br /&gt;- По нашим наблюдениям на сервера нужно до 300$ в месяц, иметь запас нужно на 6-12 месяцев или дополнительный доход, который поможет &amp;quot;дожить&amp;quot; до наград в проекте.&lt;/li&gt;
    &lt;li id=&quot;Jqzs&quot;&gt;&lt;strong&gt;Сколько нужно уделять этому времени? &lt;br /&gt;&lt;/strong&gt;- Наша команда работает над тем, чтоб максимально оптимизировать процессы запуска, мониторинга и обновления нод. В большинстве случаев Вы можете следить за анонсами и повторять за нами(все наши действия в проектах мы описываем и публикуем важные моменты). Но если у Вас есть время и желание глубже погрузиться в технические задачи проекта или стать амбассадором - будет даже лучше для &amp;quot;ламбы&amp;quot;. А так должно быть достаточно пары часов в день, когда запустите актуальные проекты.&lt;/li&gt;
    &lt;li id=&quot;p7hN&quot;&gt;На каком хостинге нужно зарегистрироваться для аренды серверов?&lt;br /&gt;- В дискорде опубликованы списки хостингов с комментариями, которые мы использовали&lt;/li&gt;
    &lt;li id=&quot;Uzwm&quot;&gt;Выгодно ли поставить дома сервер и там все запускать?&lt;br /&gt;- В большинстве случаев - нет. Проще арендовать сервер и удалить его сразу после окончания тестнета. &lt;br /&gt;Ситуация: летом 2021 ребята покупали для Solana сервера и ставили у себя дома, а в декабре 2021 они уже были не актуальны, слабы. Сеть быстро развивается и растут нагрузки. И теперь кому-то придется думать как дальше использовать эти сервера, а для проекта брать что-то более мощное.&lt;/li&gt;
    &lt;li id=&quot;aETt&quot;&gt;Есть ли смысл участия в проектах, которые не обещают наград?&lt;br /&gt;- Все проекты изначально не говорят о Incentive программах, но многие из них благодарят свое комьюнити за помощь в развитии проекта. Бывали случаи, что и не давали :)&lt;/li&gt;
    &lt;li id=&quot;IkKs&quot;&gt;Для каждой ноды нужен отдельный сервер или что-то можно комбинировать?&lt;br /&gt;- Желательно, если использовать облачные сервера. Но и там тоже можно совместить для экономии денег. &lt;/li&gt;
    &lt;li id=&quot;DyNr&quot;&gt;Тестнеты могут быть основным заработком? Без спекуляций&lt;br /&gt;- Да, участвуя в хороших проектах вы будете получать со временем награды и аллокации в сейлах. Грубо говоря, получается как NODES+ICO. И на дистанции это начинает приносить доходы на разлоках. &lt;/li&gt;
    &lt;li id=&quot;2n84&quot;&gt;Что делать новичку? &lt;br /&gt;- В дискорде есть закреп, где опубликован мини-гайд по запуску актуальных проектов со ссылками на гайды. Недавно стартовало наше обучение, где так же вы можете поднять скилл. А так всем рекомендую изучать администрирование систем Linux, без глубокого погружения в работу сети и дисков. &lt;/li&gt;
    &lt;li id=&quot;6VDG&quot;&gt;Ноды на медвежьем рынке жить будут?&lt;br /&gt;- Еще как! На булране многие проекты лепят непонятно что, лишь бы собрать денег с рынка. А на медвежьем рынке больше шансов найти какой-то гем, высидеть локи наград и начать масштабироваться в нодах/открывать для себя новые направления.&lt;/li&gt;
    &lt;li id=&quot;mnWt&quot;&gt;Какие результаты за год в 2TOP Nodes?&lt;br /&gt;- По наградам за этот год самыми успешными кейсами оказались &lt;u&gt;&lt;strong&gt;Moonbeam&lt;/strong&gt;&lt;/u&gt;(участники получили 50-150MOVR и переложили их в сейл Moonbeam на Tokensoft. Даже продав 50MOVR по 150 можно было перекрыть все 3 опции сейла и на выходе иметь 30000GLMR), &lt;u&gt;&lt;strong&gt;Solana&lt;/strong&gt;&lt;/u&gt;(Изначально участвовали ради 500$ за месяц в монетах SOL, в итоге собрали около 80SOL с марта по август и многие попали в очередь в mainnet с делегацией от фаундейшна. Вначале получалось до 8,5SOL раз в 3 дня, но сейчас уже около 4SOL), &lt;strong&gt;&lt;u&gt;NYM&lt;/u&gt;&lt;/strong&gt;(после 22го февраля должны узнать о наградах за тестнет + была приоритетка на Coinlist в 1 опции). Так же участвовали в &lt;u&gt;&lt;strong&gt;Meter&lt;/strong&gt;&lt;/u&gt;(забрали примерно по 165MTRG), &lt;u&gt;&lt;strong&gt;Casper&lt;/strong&gt;&lt;/u&gt;(Пока там было не много участников, забирали около 1200$ за квартал с каждой ноды, сейчас уже сложно), &lt;u&gt;&lt;strong&gt;Regen&lt;/strong&gt;&lt;/u&gt;(Закрытый тестнет, мало кто попал, но ребята вынесли с нами оттуда 1000-4500Regen), &lt;u&gt;&lt;strong&gt;Covalent&lt;/strong&gt;&lt;/u&gt;(Делали активности - стикеры, футболки и тд. Кто не ленился - вынесли оттуда 1000-5000CQT и слили примерно по 1$ в тот момент). &lt;u&gt;&lt;br /&gt;&lt;strong&gt;Spacemesh&lt;/strong&gt;&lt;/u&gt; прислал носки и стикеры некоторым участникам(да, такое тоже бывает 🤣)&lt;br /&gt;- Так же были получены аллокации в &lt;u&gt;&lt;strong&gt;Vega&lt;/strong&gt;&lt;/u&gt;(приоритетка с х2 аллокой от первого раунда), &lt;u&gt;&lt;strong&gt;Moonbeam&lt;/strong&gt;&lt;/u&gt;, &lt;u&gt;&lt;strong&gt;Bitcountry&lt;/strong&gt;&lt;/u&gt;(приоритетка в 1 раунд), &lt;u&gt;&lt;strong&gt;NYM&lt;br /&gt;&lt;/strong&gt;&lt;/u&gt;- На дистанции задроты точно побеждают&lt;/li&gt;
    &lt;li id=&quot;Ryci&quot;&gt;Как не пропустить новый Moonbeam?&lt;br /&gt;- Проявлять максимальную активность в хороших проектах, не лениться снимать видео о себе во время регистрации в проекте(многие потом будут кусать локти)&lt;/li&gt;
    &lt;li id=&quot;OXKY&quot;&gt;В чем прикол 2TOP Nodes, если есть открытые комьюнити и сайты с гайдами?&lt;br /&gt;- Да, большинство информации есть в открытом доступе, в документации на гитхабе. Но у нас есть дружелюбное комьюнити и поддержка от команды. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;9Eot&quot;&gt;📨 ПОЛУЧЕНИЕ ДОСТУПА:&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;H3I0&quot;&gt;Оформить подписку можно ТОЛЬКО за крипту и сделать это можно ТОЛЬКО после успешного прохождения &lt;a href=&quot;https://5bo08wzii7z.typeform.com/waitlist-nodes&quot; target=&quot;_blank&quot;&gt;КВИЗА&lt;/a&gt;(получите инвайт в телеге). Вопросы не сложные, нужно немного погуглить и подумать. &lt;/p&gt;
  &lt;p id=&quot;qqiU&quot;&gt;2TOP NODES - 90 дней - $260&lt;br /&gt;2TOP NODES - 180 дней - $400&lt;br /&gt;2TOP NODES - 360 дней - $700&lt;/p&gt;
  &lt;p id=&quot;WOQb&quot;&gt;Перед оплатой ОБЯЗАТЕЛЬНО читаем &lt;a href=&quot;https://docs.google.com/document/d/14XumMsqaExfll7wyJ7Q8kLhqHBIqpWIxdQtEDxIP3ho/edit&quot; target=&quot;_blank&quot;&gt;ИНСТРУКЦИЮ&lt;/a&gt;. &lt;br /&gt;*если есть какие-то проблемы с оплатой, то пишите &lt;a href=&quot;https://t.me/nickodim_b&quot; target=&quot;_blank&quot;&gt;Нику&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;8C7k&quot;&gt;&lt;strong&gt;Здесь нет кнопки “БАБЛО”&lt;br /&gt;Мы не даем гарантий профита – мы лишь транслируем те кейсы, на которых сами пытаемся заработать.&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;3oGB&quot; data-align=&quot;center&quot;&gt;DOUBLE TOP | &lt;a href=&quot;https://bit.ly/3hrXLDf&quot; target=&quot;_blank&quot;&gt;Website&lt;/a&gt; | &lt;a href=&quot;https://bit.ly/3AngYPs&quot; target=&quot;_blank&quot;&gt;YouTube&lt;/a&gt; | &lt;a href=&quot;https://bit.ly/3whceYo&quot; target=&quot;_blank&quot;&gt;Chat&lt;/a&gt; | &lt;a href=&quot;https://bit.ly/3jCqKXM&quot; target=&quot;_blank&quot;&gt;Services&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>razumv:ICO-ERC20_MoonbeamEN</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/ICO-ERC20_MoonbeamEN?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Deploy and test ICO and ERC20 of Moonbeam smart contract using hardhat</title><published>2021-11-24T09:09:43.728Z</published><updated>2022-01-11T19:43:15.888Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c3/fa/c3fa7ddb-c3e4-4541-8cf9-2888e4c140b1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot;&gt;This document is a continuation of the documentation for working with the Moonbeam, check out the first article for installing the local Moonbeam Development Node and hardhat components. In this article, we will tell you how to deploy and test ICO and ERC20 smart contracts Moonbeam using a local node, using a hardhat</summary><content type="html">
  &lt;figure id=&quot;h5Vn&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot; width=&quot;1030&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qy6F&quot;&gt;This document is a continuation of the documentation for working with the Moonbeam, check out the first article for installing the local Moonbeam Development Node and hardhat components. In this article, we will tell you how to deploy and test ICO and ERC20 smart contracts Moonbeam using a local node, using a hardhat&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Vsmv&quot;&gt;1. Go to the contacts folder (which should be located on the hardhatdev/contracts path) and check what is there:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;CL4J&quot;&gt;cd contracts&lt;/pre&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;QaAM&quot;&gt;Checking what is in the folder
| ll 
If there are unnecessary files there, delete them so that they do not interfere with you.
In our case, the file &amp;quot;Greeter.sol&amp;quot; is located there, let&amp;#x27;s delete it
| rm -rf Greeter.sol
And once again check what is in the contract folder:
| ll&lt;/pre&gt;
    &lt;figure id=&quot;eFsw&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/69/2f/692f3444-60c1-4c50-96d8-9df825836b8f.png&quot; width=&quot;687&quot; /&gt;
      &lt;figcaption&gt;Checking the hardhat-dev/contract folder&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Htd3&quot;&gt;2. We create an ERC20 smart contract, here, for example, we use the import of one of the standard ERC20 libraries.&lt;/p&gt;
    &lt;p id=&quot;CAzj&quot;&gt;install the openzeppelin library :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;sJ48&quot;&gt;npm install @openzeppelin/contracts&lt;/pre&gt;
    &lt;figure id=&quot;nhr5&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/49/e1/49e1bc57-74b5-4bf2-bdd5-5144ee47ab60.png&quot; width=&quot;1149&quot; /&gt;
      &lt;figcaption&gt;Output of successful openzeppelin installation&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;KfBE&quot;&gt;Create an ERC20 contract script&lt;/p&gt;
    &lt;pre id=&quot;uWg2&quot;&gt;nano contracts/MyTokenERC20.sol&lt;/pre&gt;
    &lt;p id=&quot;iaLb&quot;&gt;An example of the script we used:&lt;/p&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;9BCa&quot;&gt;pragma solidity ^0.8.1;

import &amp;quot;@openzeppelin/contracts/token/ERC20/ERC20.sol&amp;quot;;

contract MyTokenERC20 is ERC20 {
  /**
   * @dev Constructor that gives msg.sender all of exis&amp;gt;
   */
  constructor(
      string memory name,
      string memory symbol,
      uint256 initialSupply
  ) ERC20(name, symbol) {
      _mint(msg.sender, initialSupply);
  }
}&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;1dr5&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; We check that the version of solidity used in the contract matches the version used in the config file:&lt;/p&gt;
    &lt;pre id=&quot;TZs8&quot;&gt;nano hardhat.config.js&lt;/pre&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;RvVs&quot;&gt;require(&amp;quot;@nomiclabs/hardhat-waffle&amp;quot;);

// This is a sample Hardhat task. To learn how to creat&amp;gt;
// https://hardhat.org/guides/create-task.html
task(&amp;quot;accounts&amp;quot;, &amp;quot;Prints the list of accounts&amp;quot;, async (&amp;gt;
  const accounts = await hre.ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

// You need to export an object to set up your config
// Go to https://hardhat.org/config/ to learn more

/**
 * @type import(&amp;#x27;hardhat/config&amp;#x27;).HardhatUserConfig
 */
const { privateKey } = require(&amp;#x27;./secrets.json&amp;#x27;);



module.exports = {
  solidity: &amp;quot;0.8.1&amp;quot;,

  networks: {
    dev: {
      url: &amp;quot;http://127.0.0.1:9933&amp;quot;,
      chainId: 1281,
      accounts: [privateKey]
    }
  }
};&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;o12G&quot;&gt;3. We create an ICO smart contract:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;kNPf&quot;&gt;nano contracts/ICO.sol&lt;/pre&gt;
    &lt;p id=&quot;oBDd&quot;&gt;An example of the script we used:&lt;/p&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;dqAi&quot;&gt;pragma solidity ^0.8.1;


import &amp;quot;./MyTokenERC20.sol&amp;quot;;

contract ICO {

  uint public buyPrice;
  MyTokenERC20 public token;

  constructor(MyTokenERC20 _token, uint _buyPrice) {
    token = _token;
    buyPrice = _buyPrice;
  }

  function buy() external payable returns (uint) {
    uint tokens = _buy(msg.sender , msg.value);

    return tokens;
  }



  function _buy(address _sender , uint256 _amount) inte&amp;gt;
    uint tokens = _amount / buyPrice;
    token.transfer(_sender , tokens);
    return tokens;
  }
}&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9L1A&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; This contract has a buy function - we will use the buy function to buy tokens. Also, the ICO smart contract has a constructor that accepts the address of the ERC20 token and the token price, the buy function sends tokens to the one who sent the ether in accordance with the specified price.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;icIF&quot;&gt;4. Now we need to change the deploy script that we used in &lt;a href=&quot;https://razumv.tech/smart-contract_MoonBeamEN#UjAt&quot; target=&quot;_blank&quot;&gt;the previous dock&lt;/a&gt;:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;jVep&quot;&gt;nano scripts/deploy.js&lt;/pre&gt;
    &lt;p id=&quot;UtaZ&quot;&gt;This is how our deployment script looks like for the current project:&lt;/p&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;s42N&quot;&gt;async function main() {
    // Weget the contract to deploy
    const MyTokenERC20 = await ethers.getContractFactory(&amp;#x27;MyTokenERC20&amp;#x27;);
    console.log(&amp;#x27;Deploying MyTokenERC20...&amp;#x27;);
    const totalSupply = &amp;#x27;1000000&amp;#x27;;

    // Instantiating a new ERC20 smart contract
    const myTokenERC20 = await MyTokenERC20.deploy(&amp;#x27;DoubleTop&amp;#x27;, &amp;#x27;DoubleTop&amp;#x27;, totalSupply + &amp;#x27;0000000000000000000&amp;#x27;);

    // Waiting for the deployent to resolve 
    await myTokenERC20.deployed();
    console.log(&amp;#x27;MyTokenERC20 deployed to:&amp;#x27;, myTokenERC20.address);

    // We get the contract to deploy
    const ICO = await ethers.getContractFactory(&amp;#x27;ICO&amp;#x27;);
    console.log(&amp;#x27;Deploying ICO...&amp;#x27;);

    // Instantiating a new ICO smart contract
    const ico = await ICO.deploy(myTokenERC20.address, 1000);

    // Waiting for the deployment to resolve
    await ico.deployed();
    console.log(&amp;#x27;ICO deployed to:&amp;#x27;, ico.address);
}


main()
   .then(() =&amp;gt; process.exit(0))
   .catch((error) =&amp;gt; {
      console.error(error);
      process.exit(1);
   });&lt;/pre&gt;
    &lt;p id=&quot;U1b9&quot;&gt;!Replace the name &amp;quot;DoubleTop&amp;quot; on line 8 with the name of your token!&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;G1nO&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; Script designations. For your convenience, we will analyze what each paragraph in the script means (the number is the paragraph number):&lt;/p&gt;
    &lt;p id=&quot;1R7k&quot;&gt;1) Initialization of ERC20 contract&lt;/p&gt;
    &lt;p id=&quot;yLss&quot;&gt;2) Deploy ERC20 contract&lt;/p&gt;
    &lt;p id=&quot;f502&quot;&gt;3) Expectations until the ERC20 contract is deployed&lt;/p&gt;
    &lt;p id=&quot;6UDu&quot;&gt;4) Initialization of ICO smart contract&lt;/p&gt;
    &lt;p id=&quot;M671&quot;&gt;5) Deploy ICO smart contract&lt;/p&gt;
    &lt;p id=&quot;jhit&quot;&gt;6) Waiting for the ICO of a smart contract to be completed&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Z2JD&quot;&gt;5. Now let&amp;#x27;s create a script file for the test:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;dmZc&quot;&gt;cd test &lt;/pre&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;dB9l&quot;&gt;Checking what is in the folder
| ll 
If there are unnecessary files there, delete them so that they do not interfere with you.
In our case, the file &amp;quot;sample-test.js&amp;quot; is located there, let&amp;#x27;s delete it
| rm -rf sample-test.js
And once again check what is in the contract folder:
| ll&lt;/pre&gt;
    &lt;p id=&quot;fNV3&quot;&gt;create a new test file ICO.js&lt;/p&gt;
    &lt;pre id=&quot;vc49&quot;&gt;nano ICO.js&lt;/pre&gt;
    &lt;p id=&quot;jvLq&quot;&gt;This is how our test script looks like :&lt;/p&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;i727&quot;&gt;const { expect } = require(&amp;#x27;chai&amp;#x27;);

describe(&amp;#x27;ICO contract&amp;#x27;, () =&amp;gt; {
  let TokenContract, tokenContract, ICO, ico, owner, addr1, addr2, addr3
  const totalSupply = &amp;#x27;1000000&amp;#x27;;
  const price = &amp;#x27;10&amp;#x27;;

  beforeEach(async () =&amp;gt; {
    TokenContract = await ethers.getContractFactory(&amp;#x27;MyTokenERC20&amp;#x27;);
    tokenContract = await TokenContract.deploy(&amp;#x27;MyTokenERC20&amp;#x27;, &amp;#x27;MTE&amp;#x27;, totalSupply + &amp;#x27;00000000000000000&amp;#x27;);
    await tokenContract.deployed();

   ICO = await ethers.getContractFactory(&amp;#x27;ICO&amp;#x27;);
   ico = await ICO.deploy(tokenContract.address, price);
   await ico.deployed();

   [owner, addr1, addr2, addr3] = await ethers.getSigners();
   await tokenContract.transfer(ico.address, &amp;#x27;2000000&amp;#x27; + &amp;#x27;00000000000000000&amp;#x27;);
 });


  describe(&amp;#x27;Transfer token&amp;#x27;, () =&amp;gt; {

    it(&amp;#x27;Owner balance&amp;#x27;, async () =&amp;gt; {
     const ownerBalance = await tokenContract.balanceOf(owner.address);
     expect(ownerBalance.toString()).to.equal(&amp;#x27;800000&amp;#x27; + &amp;#x27;000000000000000000&amp;#x27;);
   });


   it(&amp;#x27;Buy token&amp;#x27;, async () =&amp;gt; {
     await ico.connect(addr1).buy({ value: ethers.utills.parseEther(&amp;#x27;1&amp;#x27;) });

     const adde1Balance = await tokenContract.balanceOf(addr1.address);
     expect(addr1Balance.toString()).to.equal(ethers.utils.parseEther(&amp;#x27;0.1&amp;#x27;).toString());
   });

  });
});&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D8zy&quot;&gt;!help In the first test (lines 24-26), we take the owner&amp;#x27;s address and check that the balance is correct. In the second test (lines 30-34), we call the token buy function and check that the buy function worked correctly.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ofsi&quot;&gt;6. Let&amp;#x27;s compile a smart contract:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;wEJd&quot;&gt;npx hardhat compile&lt;/pre&gt;
    &lt;figure id=&quot;g81r&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/71/b9/71b9ce20-5186-4f57-b8e2-0b04a078d42c.png&quot; width=&quot;1150&quot; /&gt;
      &lt;figcaption&gt;Successful compilation output&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;2miC&quot;&gt;7. Let&amp;#x27;s run the test and deploy smart contracts:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;1C4m&quot;&gt;npx hardhat test &lt;/pre&gt;
    &lt;pre id=&quot;E0aS&quot;&gt;npx hardhat run scripts/deploy.js --network dev&lt;/pre&gt;
    &lt;figure id=&quot;B0dl&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/4a/79/4a792087-189f-41d2-a956-62f3756cf976.png&quot; width=&quot;704&quot; /&gt;
      &lt;figcaption&gt;Conclusion of a successful deployment&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hbtb&quot;&gt;8. Now let&amp;#x27;s connect to the metamask and test and verify the functionality of our contracts. To do this, we need the metamask extension, the developer account that we used&lt;br /&gt;(&lt;a href=&quot;https://docs.moonbeam.network/snippets/code/setting-up-node/dev-accounts/&quot; target=&quot;_blank&quot;&gt;you can check the developer accounts here&lt;/a&gt;).&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;u95q&quot;&gt;We used Geralt&amp;#x27;s account for our projects :&lt;/p&gt;
    &lt;pre id=&quot;HZik&quot;&gt;Public Address: 0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
Private Key: 0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342&lt;/pre&gt;
    &lt;p id=&quot;kO9N&quot;&gt;We import the private key, connect to the Moonbeam Dev network (&lt;a href=&quot;https://docs.moonbeam.network/tokens/connect/metamask/#connect-metamask-to-moonbeam&quot; target=&quot;_blank&quot;&gt;how to connect metamask to the moonbeam networks&lt;/a&gt;) and make sure that we have Dev tokens on our balance and that you created in the smart contract. In our case, &amp;quot;DoubleTop&amp;quot;.&lt;/p&gt;
    &lt;figure id=&quot;fa5k&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/8f/af/8faf7af2-e130-400a-a021-a5985712bb63.png&quot; width=&quot;1966&quot; /&gt;
      &lt;figcaption&gt;Balances are displayed and everything works correctly&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;INkC&quot;&gt;9. Let&amp;#x27;s make a couple of test transfers between metamask wallets in order to make sure that everything works correctly:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;gGVA&quot;&gt;Let&amp;#x27;s send the Dev tokens and the tokens we created to the second wallet&lt;/p&gt;
    &lt;figure id=&quot;R5hM&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/f8/40/f8406fdf-bd2e-486c-b00d-176c9410f8fc.png&quot; width=&quot;2377&quot; /&gt;
      &lt;figcaption&gt;Sending DoubleTop Tokens&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;mYzM&quot;&gt;We check from the second wallet that the tokens have arrived:&lt;/p&gt;
    &lt;figure id=&quot;cVR0&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/c6/30/c6306327-a851-4514-a29e-3fc37e1e0583.png&quot; width=&quot;2366&quot; /&gt;
      &lt;figcaption&gt;Tokens came to another wallet&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;sAxw&quot;&gt;We send the remaining created tokens to the address of the smart contract&lt;/p&gt;
    &lt;figure id=&quot;s47D&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/19/d8/19d8cc61-2f7b-40a2-8eba-2d8ca637beef.png&quot; width=&quot;2361&quot; /&gt;
      &lt;figcaption&gt;We sent tokens to the smart contract address&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;FCtl&quot;&gt;10. Finally, we check the function of buying tokens in the ICO smart contract. For this we use the Remix development environment:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;nofA&quot;&gt;Connecting to the metamask on the remix platform&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;whKU&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ee/4d/ee4dd28b-82c1-418a-8420-07010bffff6d.png&quot; width=&quot;2414&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;PiZg&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/90/be/90bef691-5b61-4b42-8988-a4bd713a8a30.png&quot; width=&quot;2404&quot; /&gt;
    &lt;figcaption&gt;Connected metamask to the remix platform&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;cmvi&quot;&gt;Go to the Workspace tab and create a new workspace:&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;UuoK&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e2/0d/e20d62bb-b01c-4b3e-a0a6-27d0863c7e2d.png&quot; width=&quot;2405&quot; /&gt;
    &lt;figcaption&gt;Created a working environment Moonbeam ICO contract test&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LW7t&quot;&gt;Create 2 files &amp;quot;ICO.sol&amp;quot; and &amp;quot;MyTokenERC20.sol&amp;quot;. We copy our contracts to the created files, respectively:&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;EEKq&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6f/e6/6fe64edb-f230-4fa6-920f-82048ea443c4.png&quot; width=&quot;2413&quot; /&gt;
    &lt;figcaption&gt;file ICO.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;AsC7&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/78/1d/781d6703-689b-401a-931b-0996a9ad6e33.png&quot; width=&quot;2409&quot; /&gt;
    &lt;figcaption&gt;file MyTokenERC20.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;GQGn&quot;&gt;Let&amp;#x27;s move on to compiling the ICO.sol and MyTokenERC20.sol files that we created:&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;133l&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/13/23/1323791f-287d-4aee-8560-91285b3c5ab5.png&quot; width=&quot;2054&quot; /&gt;
    &lt;figcaption&gt;compile the file MyTokenERC20.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;nmE2&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/85/b8/85b8b8b4-b79c-4798-a4cd-9857565bff8e.png&quot; width=&quot;2409&quot; /&gt;
    &lt;figcaption&gt;compile the ICO.sol file&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;S2Dl&quot;&gt;Now we are trying to buy our tokens using an ICO smart contract deployed in the remix development environment:&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;MaYM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/37/5c/375c4f85-9ec5-4e4f-854f-40a1953d43c0.png&quot; width=&quot;2313&quot; /&gt;
    &lt;figcaption&gt;Initializing the purchase of tokens&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;OYlt&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/06/82/06821781-5a0f-40d3-a343-112e6510ffc8.png&quot; width=&quot;2414&quot; /&gt;
    &lt;figcaption&gt;We look in the history of the token purchase transaction&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;DMzC&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4a/19/4a197d2a-8ba1-4d38-a4fc-c0a48e248bcd.png&quot; width=&quot;1958&quot; /&gt;
    &lt;figcaption&gt;Our tokens are bought and on the balance&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;okUi&quot;&gt;Useful links :&lt;/p&gt;
    &lt;p id=&quot;rhug&quot;&gt;&lt;a href=&quot;/smart-contract_MoonBeam&quot;&gt;https://razumv.tech/smart-contract_Moonbeam&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;74tX&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;BmrE&quot;&gt;&lt;a href=&quot;https://hardhat.org/tutorial/&quot; target=&quot;_blank&quot;&gt;https://hardhat.org/tutorial/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;8oOb&quot;&gt;&lt;a href=&quot;https://remix.ethereum.org/&quot; target=&quot;_blank&quot;&gt;https://remix.ethereum.org/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;Wwkg&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/tokens/connect/metamask/#connect-metamask-to-moonbeam&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/tokens/connect/metamask/#connect-metamask-to-moonbeam&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;VZvU&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/ru/integrations/wallets/metamask/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/ru/integrations/wallets/metamask/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;tCbY&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/builders/interact/remix/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/builders/interact/remix/&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>razumv:smart-contract_MoonbeamEN</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/smart-contract_MoonbeamEN?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Creating and deploying a Moonbeam smart contract using hardhat</title><published>2021-11-24T08:45:59.550Z</published><updated>2022-01-11T19:43:26.971Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c3/fa/c3fa7ddb-c3e4-4541-8cf9-2888e4c140b1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot;&gt;In this document, we will explain how to create and deploy a Moonbeam smart contract using a local node, using a hardhat</summary><content type="html">
  &lt;figure id=&quot;h5Vn&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot; width=&quot;1030&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;H0Bz&quot;&gt;In this document, we will explain how to create and deploy a Moonbeam smart contract using a local node, using a hardhat&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;16Xk&quot;&gt;1. To run the local Moonbeam Development Node, we will use docker in our example. Let&amp;#x27;s prepare our server to use docker:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;zPIN&quot;&gt;sudo apt update&lt;/pre&gt;
    &lt;pre id=&quot;Tfad&quot;&gt;sudo apt install wget -y&lt;/pre&gt;
    &lt;pre id=&quot;j4yP&quot;&gt;wget -O get-docker.sh https://get.docker.com&lt;/pre&gt;
    &lt;pre id=&quot;qzYK&quot;&gt;sudo sh get-docker.sh&lt;/pre&gt;
    &lt;pre id=&quot;xdkT&quot;&gt;sudo apt install -y docker-compose&lt;/pre&gt;
    &lt;pre id=&quot;rxag&quot;&gt;rm -f get-docker.sh&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;j9fa&quot;&gt;2. Install the local Moonbeam Development Node:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;g2oh&quot;&gt;docker pull purestake/moonbeam:v0.14.2&lt;/pre&gt;
    &lt;figure id=&quot;1lqr&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/3a/8a/3a8a0ed2-7698-45d6-b6ff-7f0a3f803553.png&quot; width=&quot;841&quot; /&gt;
      &lt;figcaption&gt;We make a pull request for the current version&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;Mgh1&quot;&gt;docker run --rm --name moonbeam_development --network host \
purestake/moonbeam:v0.14.2 \
--dev&lt;/pre&gt;
    &lt;figure id=&quot;Tz0p&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/98/8c/988cd1cb-1d14-4523-b972-f184dc671501.png&quot; width=&quot;871&quot; /&gt;
      &lt;figcaption&gt;This is the conclusion we should get We launched a local Moonbeam Development Node&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;uK78&quot;&gt;3. The local node is running, now let&amp;#x27;s install Node.js:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;Wfa6&quot;&gt;sudo apt install curl git&lt;/pre&gt;
    &lt;pre id=&quot;Mw3R&quot;&gt;curl https://deb.nodesource.com/setup_12.x | bash  -&lt;/pre&gt;
    &lt;pre id=&quot;XZQM&quot;&gt;sudo apt install nodejs&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hAYj&quot;&gt;Сheck that Node.js is installed and its version:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;2bJ5&quot;&gt;node --version&lt;/pre&gt;
    &lt;figure id=&quot;Je8e&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/64/2a/642aa8b5-9b2e-4d1d-adee-74fc369d2c99.png&quot; width=&quot;878&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;IhfN&quot;&gt;4. Install hardhat&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;PUIw&quot;&gt;mkdir hardhat-dev &amp;amp;&amp;amp; cd hardhat-dev&lt;/pre&gt;
    &lt;pre id=&quot;6UjJ&quot;&gt;npm init --yes&lt;/pre&gt;
    &lt;figure id=&quot;5aVf&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/66/59/66591418-125f-4ab2-951d-a5f06d586f45.png&quot; width=&quot;773&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;v0Yc&quot;&gt;npm install --save-dev hardhat&lt;/pre&gt;
    &lt;figure id=&quot;8aa8&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/a5/c5/a5c56fc9-d492-4653-b3fc-fd65a9bad724.png&quot; width=&quot;1153&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;arGk&quot;&gt;5. Create a hardhat project, for example, the default parameters are used. You can set the parameters that you need:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;LrjM&quot;&gt;npx hardhat&lt;/pre&gt;
    &lt;figure id=&quot;IMgB&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/2c/4d/2c4deb5f-e978-4f04-b9b8-eec34bd428f2.png&quot; width=&quot;767&quot; /&gt;
      &lt;figcaption&gt;Launch hardhat&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;q7eG&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/1f/69/1f699c20-4a5f-4e24-98ee-f90da089fd6f.png&quot; width=&quot;1156&quot; /&gt;
      &lt;figcaption&gt;The example uses the default values for the sample project&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;wkwc&quot;&gt;6. Now compile the project&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;6cHG&quot;&gt;npx hardhat compile&lt;/pre&gt;
    &lt;figure id=&quot;Ykdx&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/5f/6a/5f6a3a6d-741d-4dcb-aa49-5d7b4a8d317f.png&quot; width=&quot;711&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5SvA&quot;&gt;7. Now let&amp;#x27;s prepare files for deploying a smart contract. We need a config file, a script deployment file and a private key file.&lt;br /&gt;First, let&amp;#x27;s set up the network to the config file:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;ln2O&quot;&gt;nano hardhat.config.js&lt;/pre&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;H3VZ&quot;&gt;  networks: {
    dev: {
      url: &amp;quot;http://127.0.0.1:9933&amp;quot;,
      chainId: 1281,
      accounts: [privateKey]
    }
  }&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;M1JD&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; The config file should look like this:&lt;/p&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;MJCS&quot;&gt;require(&amp;quot;@nomiclabs/hardhat-waffle&amp;quot;);

// This is a sample Hardhat task. To learn how to create your own go to
// https://hardhat.org/guides/create-task.html
task(&amp;quot;accounts&amp;quot;, &amp;quot;Prints the list of accounts&amp;quot;, async (taskArgs, hre) =&amp;gt; {
  const accounts = await hre.ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

// You need to export an object to set up your config
// Go to https://hardhat.org/config/ to learn more

/**
 * @type import(&amp;#x27;hardhat/config&amp;#x27;).HardhatUserConfig
 */
const { privateKey } = require(&amp;#x27;./secrets.json&amp;#x27;);


module.exports = {
  solidity: &amp;quot;0.8.4&amp;quot;,

  networks: {
    dev: {
      url: &amp;quot;http://127.0.0.1:9933&amp;quot;,
      chainId: 1281,
      accounts: [privateKey]
    }
  }
};&lt;/pre&gt;
    &lt;figure id=&quot;8uFo&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/fc/db/fcdbc1ae-a2cb-41c8-9af8-93849cd913e6.png&quot; width=&quot;1029&quot; /&gt;
      &lt;figcaption&gt;The config file looks like this&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LdBn&quot;&gt;Now create the deployment script&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;djMt&quot;&gt;nano scripts/deploy.js&lt;/pre&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;Ln8V&quot;&gt;async function main() {
    //  We get the contract to deploy
    const Greeter = await ethers.getContractFactory(&amp;#x27;Greeter&amp;#x27;);
    console.log(&amp;#x27;Deploying...&amp;#x27;);

    // Instantiating a new smart contract
    const greeter = await Greeter.deploy(&amp;#x27;Hi!&amp;#x27;);

    // Waiting for the deployment to resolve
    await greeter.deployed();
    console.log(&amp;#x27;Greeter deployed to:&amp;#x27;, greeter.address);
}

main()
   .then(() =&amp;gt; process.exit(0))
   .catch((error) =&amp;gt; {
      console.error(error);
      process.exit(1);
   });&lt;/pre&gt;
    &lt;figure id=&quot;hZfk&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/53/9b/539b0cef-ead1-41ce-b490-cac47d6d2205.png&quot; width=&quot;1155&quot; /&gt;
      &lt;figcaption&gt;The deployment script should look like this&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;oPRI&quot;&gt;Create a file with a private key from the metamask.&lt;br /&gt;You can get acquainted with the &lt;a href=&quot;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/#pre-funded-development-accounts&quot; target=&quot;_blank&quot;&gt;keys for development here&lt;/a&gt;.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;shu2&quot;&gt;nano secrets.json&lt;/pre&gt;
    &lt;pre data-lang=&quot;typescript&quot; id=&quot;wAcg&quot;&gt;{
   &amp;quot;privateKey&amp;quot;: &amp;quot;0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342&amp;quot;
}&lt;/pre&gt;
    &lt;figure id=&quot;BSos&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/ec/15/ec15b03a-db06-4154-b9a9-7d11b9d554fb.png&quot; width=&quot;730&quot; /&gt;
      &lt;figcaption&gt;Your private key should look like this&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Ne9w&quot;&gt;8. Launching the deployment&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;atVx&quot;&gt;npx hardhat run scripts/deploy.js --network dev&lt;/pre&gt;
    &lt;figure id=&quot;wkiq&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/0e/6d/0e6dfaa7-03d4-4c5f-8829-e3e3fc59e9a6.png&quot; width=&quot;772&quot; /&gt;
      &lt;figcaption&gt;Conclusion of a successful deployment&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;4Yfo&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/98/8c/988cd1cb-1d14-4523-b972-f184dc671501.png&quot; width=&quot;871&quot; /&gt;
      &lt;figcaption&gt;Check the logs that our deployment was successful and passed the block&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;lGOA&quot;&gt;Errors you may encounter:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;QOwu&quot;&gt;If you see this picture, then you have not installed a private key. Check config file and private key file&lt;/p&gt;
    &lt;figure id=&quot;XoM7&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/e8/44/e8444bce-cee8-4b5f-b14f-0bce784714e8.png&quot; width=&quot;1145&quot; /&gt;
      &lt;figcaption&gt;Error due to lack of private key&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;lplO&quot;&gt;If you see such a picture, then you missed the argument in the deployment file. In our example, this is an argument const greeter = await Greeter.deploy (&amp;#x27;Hi!&amp;#x27;);&lt;/p&gt;
    &lt;figure id=&quot;WVGu&quot; class=&quot;m_custom&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/a6/a5/a6a5d0ad-4e56-4bd9-9a67-98d8a2744646.png&quot; width=&quot;922&quot; /&gt;
      &lt;figcaption&gt;Error for missing argument&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;uoHC&quot;&gt;Useful links :&lt;/p&gt;
    &lt;p id=&quot;74tX&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;BmrE&quot;&gt;&lt;a href=&quot;https://hardhat.org/tutorial/&quot; target=&quot;_blank&quot;&gt;https://hardhat.org/tutorial/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;8oOb&quot;&gt;&lt;a href=&quot;https://remix.ethereum.org/&quot; target=&quot;_blank&quot;&gt;https://remix.ethereum.org/&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>razumv:Moonbeam_smart-contractEN</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/Moonbeam_smart-contractEN?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Moonbeam smart-contracts</title><published>2021-11-24T08:35:49.679Z</published><updated>2022-01-11T19:43:38.699Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c3/fa/c3fa7ddb-c3e4-4541-8cf9-2888e4c140b1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot;&gt;In April 2020, the PureStake team announced the Moonbeam smart contract platform, which provides a scalable and affordable alternative to other platform options for developers.</summary><content type="html">
  &lt;figure id=&quot;K34i&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot; width=&quot;1030&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;g75c&quot;&gt;In April 2020, the PureStake team &lt;a href=&quot;https://www.purestake.com/news/announcing-moonbeam-smart-contracts/&quot; target=&quot;_blank&quot;&gt;announced the Moonbeam smart contract platform&lt;/a&gt;, which provides a scalable and affordable alternative to other platform options for developers.&lt;/p&gt;
  &lt;p id=&quot;25Yq&quot;&gt;Moonbeam aims to provide developers with the ability to port existing Ethereum DAPPs or create new DAPPs using familiar Ethereum development tools. This will significantly lower the barrier to entry for new and successful Ethereum DAPPs looking to migrate to a more efficient and cost effective platform. Since Moonbeam is based on Substrate, a blockchain development platform from Parity Technologies, we can create our own Ethereum runtime that provides Web3 RPC and EVM implementations to support most Ethereum DAPPs without major changes. Moonbeam&amp;#x27;s scalability and security are derived from working within Polkadot&amp;#x27;s segmented design and overall security.&lt;/p&gt;
  &lt;p id=&quot;pADe&quot;&gt;As a parachain on the Polkadot network, Moonbeam will also enable a number of interaction scenarios, including integration with other chains to provide services such as Oracles, DEX, and transfer of tokens from blockchains such as Bitcoin and Ethereum.&lt;/p&gt;
  &lt;h2 id=&quot;anC5&quot;&gt;Fully compatible with Ethereum and the Polkadot ecosystem&lt;/h2&gt;
  &lt;figure id=&quot;2CDF&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/79/32/793229d5-52e7-4f89-8039-8ffa2b18ac38.png&quot; width=&quot;6250&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GRQh&quot;&gt;Moonbeam - is much more than just an EVM implementation, it is a highly specialized tier 1 blockchain that mirrors RPCs, accounts, keys, subscriptions, logs, and more Ethereum Web3. The Moonbeam platform extends Ethereum&amp;#x27;s core feature set with additional features such as chain management, staking, and cross-chain integration.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;vtCZ&quot;&gt;Solidity smart contracts&lt;/h3&gt;
    &lt;p id=&quot;904m&quot;&gt;Redeploy existing smart contracts in the Polkadot environment without the need for refactoring or rewriting.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;3xd3&quot;&gt;Publishing and Subscribing Options&lt;/h3&gt;
    &lt;p id=&quot;oDjf&quot;&gt;Subscribe to contract events and updates on online transactions, balances and more.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;TkeR&quot;&gt;H160 Accounts and ECDSA Signatures&lt;/h3&gt;
    &lt;p id=&quot;pXii&quot;&gt;Interact with Moonbeam using your existing Ethereum accounts and keys.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;IUt8&quot;&gt;Complete set of Web3 RPC endpoints&lt;/h3&gt;
    &lt;p id=&quot;gXmF&quot;&gt;Connect existing DAPP tools and interfaces to Moonbeam just like you would to Ethereum.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;URxq&quot;&gt;Moonbeam - as a simple path to multi-chains&lt;/h2&gt;
  &lt;figure id=&quot;OhEw&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/91/c0/91c02fe0-36bf-4372-9e5b-aa60ec2fb3e4.png&quot; width=&quot;1105&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;m3D4&quot;&gt;Minimal configuration changes&lt;/h3&gt;
    &lt;p id=&quot;mqyd&quot;&gt;No need to rewrite or reconfigure smart contracts. They will work right away.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;0Vcp&quot;&gt;Tools you are already using&lt;/h3&gt;
    &lt;p id=&quot;A6dg&quot;&gt;Use the Ethereum-based tools you like, such as MetaMask, Remix, Hardhat, Waffle, and Truffle.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;02r8&quot;&gt;Familiar smart contract languages&lt;/h3&gt;
    &lt;p id=&quot;V2KQ&quot;&gt;Support for Solidity, Vyper and anything that compiles to EVM bytecode.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;H2QL&quot;&gt;Ready integrations&lt;/h3&gt;
    &lt;p id=&quot;B7z5&quot;&gt;Native integrations for assets like DOT and ERC-20 and infrastructure services like Chainlink and TheGraph.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h1 id=&quot;uLlK&quot; data-align=&quot;center&quot;&gt;The future belongs to the multi-chain!&lt;/h1&gt;
  &lt;figure id=&quot;TujR&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/ff/31/ff31afb3-8fe3-4264-bea3-a98a613a6cb5.png&quot; width=&quot;1084&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;P9vG&quot;&gt;You can read the official information in more detail at the links:&lt;/p&gt;
  &lt;p id=&quot;jvoK&quot;&gt;&lt;a href=&quot;https://moonbeam.network/&quot; target=&quot;_blank&quot;&gt;https://moonbeam.network/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;yf5e&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/ru/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/ru/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;0SuT&quot;&gt;&lt;a href=&quot;https://www.purestake.com/blog/moonbeam-smart-contract-parachain/&quot; target=&quot;_blank&quot;&gt;https://www.purestake.com/blog/moonbeam-smart-contract-parachain/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;9Mes&quot;&gt;&lt;a href=&quot;https://www.purestake.com/news/announcing-moonbeam-smart-contracts/&quot; target=&quot;_blank&quot;&gt;https://www.purestake.com/news/announcing-moonbeam-smart-contracts/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;OY4y&quot;&gt;&lt;a href=&quot;https://dotmarketcap.com/blog-detail/153/celebrating-multi-chain-projects-on-moonbeam&quot; target=&quot;_blank&quot;&gt;https://dotmarketcap.com/blog-detail/153/celebrating-multi-chain-projects-on-moonbeam&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>razumv:ICO-ERC20_Moonbeam</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/ICO-ERC20_Moonbeam?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Деплой и тест ICO и ERC20 смарт-контракта Moonbeam используя hardhat</title><published>2021-11-23T00:52:38.730Z</published><updated>2022-01-11T19:43:05.119Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c3/fa/c3fa7ddb-c3e4-4541-8cf9-2888e4c140b1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot;&gt;Данный документ является продолжением документации работы с мунбимом, ознакомьтесь с первой статьей для установки локальной ноды Moonbeam Development Node и комапонентов hardhat. В этой статье мы расскажем как задеплоить и протестировать ICO и ERC20 смарт-контракты Moonbeam используя локальную ноду, с помощью hardhat</summary><content type="html">
  &lt;figure id=&quot;h5Vn&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot; width=&quot;1030&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qy6F&quot;&gt;Данный документ является продолжением документации работы с мунбимом, ознакомьтесь с первой статьей для установки локальной ноды Moonbeam Development Node и комапонентов hardhat. В этой статье мы расскажем как задеплоить и протестировать ICO и ERC20 смарт-контракты Moonbeam используя локальную ноду, с помощью hardhat&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Vsmv&quot;&gt;1. Переходим в папку contacts (которая должна находится по пути hardhat-dev/contracts) и проверям что там находится:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;1Tcv&quot;&gt;cd contracts&lt;/pre&gt;
    &lt;pre id=&quot;E8da&quot; data-lang=&quot;typescript&quot;&gt;Проверяем что лежит в папке
| ll 
Если там находятся лишние файлы, удалите их чтоб они не мешали вам.
В нашем случае там находится файл &amp;quot;Greeter.sol&amp;quot;, давайте удалим его
| rm -rf Greeter.sol
И еще раз проверим что находится в папке contract:
| ll&lt;/pre&gt;
    &lt;figure id=&quot;eFsw&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/69/2f/692f3444-60c1-4c50-96d8-9df825836b8f.png&quot; width=&quot;687&quot; /&gt;
      &lt;figcaption&gt;Проверка папки hardhat-dev/contarct&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Htd3&quot;&gt;2. Создаем ERC20 смарт-контракт, здесь для примера используется импорт одной из стандартной библиотек ERC20.&lt;/p&gt;
    &lt;p id=&quot;8lKR&quot;&gt;устанавливаем бибилотеку openzeppelin :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;PhU2&quot;&gt;npm install @openzeppelin/contracts&lt;/pre&gt;
    &lt;figure id=&quot;nhr5&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/49/e1/49e1bc57-74b5-4bf2-bdd5-5144ee47ab60.png&quot; width=&quot;1149&quot; /&gt;
      &lt;figcaption&gt;Вывод успешной установки openzeppelin&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;KfBE&quot;&gt; Создаем скрипт контракта ERC20&lt;/p&gt;
    &lt;pre id=&quot;0967&quot;&gt;nano contracts/MyTokenERC20.sol&lt;/pre&gt;
    &lt;p id=&quot;iaLb&quot;&gt;Пример скрипта, который мы использовали :&lt;/p&gt;
    &lt;pre id=&quot;QDw7&quot; data-lang=&quot;typescript&quot;&gt;pragma solidity ^0.8.1;

import &amp;quot;@openzeppelin/contracts/token/ERC20/ERC20.sol&amp;quot;;

contract MyTokenERC20 is ERC20 {
  /**
   * @dev Constructor that gives msg.sender all of exis&amp;gt;
   */
  constructor(
      string memory name,
      string memory symbol,
      uint256 initialSupply
  ) ERC20(name, symbol) {
      _mint(msg.sender, initialSupply);
  }
}&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;1dr5&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; Проверяем чтоб версия солидити, которая используется в контракте совпадала с версией используемой в файле конфига:&lt;/p&gt;
    &lt;pre id=&quot;p85G&quot;&gt;nano hardhat.config.js&lt;/pre&gt;
    &lt;pre id=&quot;fW3Q&quot; data-lang=&quot;typescript&quot;&gt;require(&amp;quot;@nomiclabs/hardhat-waffle&amp;quot;);

// This is a sample Hardhat task. To learn how to creat&amp;gt;
// https://hardhat.org/guides/create-task.html
task(&amp;quot;accounts&amp;quot;, &amp;quot;Prints the list of accounts&amp;quot;, async (&amp;gt;
  const accounts = await hre.ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

// You need to export an object to set up your config
// Go to https://hardhat.org/config/ to learn more

/**
 * @type import(&amp;#x27;hardhat/config&amp;#x27;).HardhatUserConfig
 */
const { privateKey } = require(&amp;#x27;./secrets.json&amp;#x27;);



module.exports = {
  solidity: &amp;quot;0.8.1&amp;quot;,

  networks: {
    dev: {
      url: &amp;quot;http://127.0.0.1:9933&amp;quot;,
      chainId: 1281,
      accounts: [privateKey]
    }
  }
};&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;o12G&quot;&gt;3. Создаем ICO смарт-контракт : &lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;UTdi&quot;&gt;nano contracts/ICO.sol&lt;/pre&gt;
    &lt;p id=&quot;oBDd&quot;&gt;Пример скрипта, который мы использовали :&lt;/p&gt;
    &lt;pre id=&quot;mWcX&quot; data-lang=&quot;typescript&quot;&gt;pragma solidity ^0.8.1;


import &amp;quot;./MyTokenERC20.sol&amp;quot;;

contract ICO {

  uint public buyPrice;
  MyTokenERC20 public token;

  constructor(MyTokenERC20 _token, uint _buyPrice) {
    token = _token;
    buyPrice = _buyPrice;
  }

  function buy() external payable returns (uint) {
    uint tokens = _buy(msg.sender , msg.value);

    return tokens;
  }



  function _buy(address _sender , uint256 _amount) inte&amp;gt;
    uint tokens = _amount / buyPrice;
    token.transfer(_sender , tokens);
    return tokens;
  }
}&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9L1A&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; У этого контракта есть функция бай - функцию бай мы будем использовать для покупки токенов. Также у ICO смарт-контракта есть конструктор который принимает адресс ERC20 токена и цену токена, функция бай отправляет токены тому кто прислал эфир в соответсвии с указанной ценой. &lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;icIF&quot;&gt;4. Теперь нам нужно изменить деплой скрипт, который мы использовали в &lt;a href=&quot;https://razumv.tech/smart-contract_MoonBeam#LdBn&quot; target=&quot;_blank&quot;&gt;предидущей доке :&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;tYsm&quot;&gt;nano scripts/deploy.js&lt;/pre&gt;
    &lt;p id=&quot;UtaZ&quot;&gt;Вот так выглядит наш скрипт деплоя для текущего проекта :&lt;/p&gt;
    &lt;pre id=&quot;JyQj&quot; data-lang=&quot;typescript&quot;&gt;async function main() {
    // Weget the contract to deploy
    const MyTokenERC20 = await ethers.getContractFactory(&amp;#x27;MyTokenERC20&amp;#x27;);
    console.log(&amp;#x27;Deploying MyTokenERC20...&amp;#x27;);
    const totalSupply = &amp;#x27;1000000&amp;#x27;;

    // Instantiating a new ERC20 smart contract
    const myTokenERC20 = await MyTokenERC20.deploy(&amp;#x27;DoubleTop&amp;#x27;, &amp;#x27;DoubleTop&amp;#x27;, totalSupply + &amp;#x27;0000000000000000000&amp;#x27;);

    // Waiting for the deployent to resolve 
    await myTokenERC20.deployed();
    console.log(&amp;#x27;MyTokenERC20 deployed to:&amp;#x27;, myTokenERC20.address);

    // We get the contract to deploy
    const ICO = await ethers.getContractFactory(&amp;#x27;ICO&amp;#x27;);
    console.log(&amp;#x27;Deploying ICO...&amp;#x27;);

    // Instantiating a new ICO smart contract
    const ico = await ICO.deploy(myTokenERC20.address, 1000);

    // Waiting for the deployment to resolve
    await ico.deployed();
    console.log(&amp;#x27;ICO deployed to:&amp;#x27;, ico.address);
}


main()
   .then(() =&amp;gt; process.exit(0))
   .catch((error) =&amp;gt; {
      console.error(error);
      process.exit(1);
   });&lt;/pre&gt;
    &lt;p id=&quot;U1b9&quot;&gt;!Замените название &amp;quot;DoubleTop&amp;quot; в строке 8 на название вашего токена!&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;G1nO&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; Обозначения скрипта. Для вашего удобства разберем что означает каждый абзац в скрипте (цифра это номер абзаца) :&lt;/p&gt;
    &lt;p id=&quot;iGqB&quot;&gt;1) Инициализация ERC20 контракта &lt;/p&gt;
    &lt;p id=&quot;GbNH&quot;&gt;2) Деплой ERC20 контракта &lt;/p&gt;
    &lt;p id=&quot;FoVa&quot;&gt;3) Ожидания пока ERC20 контракт задеплоится&lt;/p&gt;
    &lt;p id=&quot;RvzP&quot;&gt;4) Инициализация ICO смарт-контракта&lt;/p&gt;
    &lt;p id=&quot;g9Sw&quot;&gt;5) Деплой ICO смарт-контракта&lt;/p&gt;
    &lt;p id=&quot;dE4u&quot;&gt;6) Ожидание когда ICO смарт-контракта будет задеплоен&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Z2JD&quot;&gt;5. Теперь создадим скрипт-файл для теста  :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;FF8n&quot;&gt;cd test &lt;/pre&gt;
    &lt;pre id=&quot;923X&quot; data-lang=&quot;typescript&quot;&gt;Проверяем что лежит в папке
| ll 
Если там находятся лишние файлы, удалите их чтоб они не мешали вам.
В нашем случае там находится файл &amp;quot;sample-test.js&amp;quot;, давайте удалим его
| rm -rf sample-test.js
И еще раз проверим что находится в папке contract:
| ll&lt;/pre&gt;
    &lt;p id=&quot;fNV3&quot;&gt;создаем новый тестовый файл ICO.js&lt;/p&gt;
    &lt;pre id=&quot;w3uX&quot;&gt;nano ICO.js&lt;/pre&gt;
    &lt;p id=&quot;jvLq&quot;&gt;Вот так выглядит наш скрипт для теста :&lt;/p&gt;
    &lt;pre id=&quot;Tfa3&quot; data-lang=&quot;typescript&quot;&gt;const { expect } = require(&amp;#x27;chai&amp;#x27;);

describe(&amp;#x27;ICO contract&amp;#x27;, () =&amp;gt; {
  let TokenContract, tokenContract, ICO, ico, owner, addr1, addr2, addr3
  const totalSupply = &amp;#x27;1000000&amp;#x27;;
  const price = &amp;#x27;10&amp;#x27;;

  beforeEach(async () =&amp;gt; {
    TokenContract = await ethers.getContractFactory(&amp;#x27;MyTokenERC20&amp;#x27;);
    tokenContract = await TokenContract.deploy(&amp;#x27;MyTokenERC20&amp;#x27;, &amp;#x27;MTE&amp;#x27;, totalSupply + &amp;#x27;00000000000000000&amp;#x27;);
    await tokenContract.deployed();

   ICO = await ethers.getContractFactory(&amp;#x27;ICO&amp;#x27;);
   ico = await ICO.deploy(tokenContract.address, price);
   await ico.deployed();

   [owner, addr1, addr2, addr3] = await ethers.getSigners();
   await tokenContract.transfer(ico.address, &amp;#x27;2000000&amp;#x27; + &amp;#x27;00000000000000000&amp;#x27;);
 });


  describe(&amp;#x27;Transfer token&amp;#x27;, () =&amp;gt; {

    it(&amp;#x27;Owner balance&amp;#x27;, async () =&amp;gt; {
     const ownerBalance = await tokenContract.balanceOf(owner.address);
     expect(ownerBalance.toString()).to.equal(&amp;#x27;800000&amp;#x27; + &amp;#x27;000000000000000000&amp;#x27;);
   });


   it(&amp;#x27;Buy token&amp;#x27;, async () =&amp;gt; {
     await ico.connect(addr1).buy({ value: ethers.utills.parseEther(&amp;#x27;1&amp;#x27;) });

     const adde1Balance = await tokenContract.balanceOf(addr1.address);
     expect(addr1Balance.toString()).to.equal(ethers.utils.parseEther(&amp;#x27;0.1&amp;#x27;).toString());
   });

  });
});&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D8zy&quot;&gt;!help В первом тесте (строка 24-26) - мы берем адрес владельца и проверяем что баланс корректный. Во втором тесте (строка 30-34) - мы вызываем функцию покупки токенов и проверяем что функция покупки отработала корректно.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ofsi&quot;&gt;6. Скомпилируем смарт-контракт :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;5CbU&quot;&gt;npx hardhat compile&lt;/pre&gt;
    &lt;figure id=&quot;g81r&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/71/b9/71b9ce20-5186-4f57-b8e2-0b04a078d42c.png&quot; width=&quot;1150&quot; /&gt;
      &lt;figcaption&gt;Вывод успешной компиляции &lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;2miC&quot;&gt;7. Запустим тест и деплой смарт-контрактов :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;dRmW&quot;&gt;npx hardhat test &lt;/pre&gt;
    &lt;pre id=&quot;dRmW&quot;&gt;npx hardhat run scripts/deploy.js --network dev&lt;/pre&gt;
    &lt;figure id=&quot;B0dl&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/4a/79/4a792087-189f-41d2-a956-62f3756cf976.png&quot; width=&quot;704&quot; /&gt;
      &lt;figcaption&gt;Вывод успешного деплоя&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hbtb&quot;&gt;8. Теперь давайте подключимся к метамаску и протестируем и проверим работоспособность наших контрактов. Для этого нам понадобится расширение метамаска, аккаунт разработчика который мы использовали &lt;br /&gt;(&lt;a href=&quot;https://docs.moonbeam.network/snippets/code/setting-up-node/dev-accounts/&quot; target=&quot;_blank&quot;&gt;можете ознакомится с аккаунтами разработчиков здесь&lt;/a&gt;). &lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;u95q&quot;&gt;Мы для наших проектов использовали аккаунт Геральда :&lt;/p&gt;
    &lt;pre id=&quot;s1Ic&quot;&gt;Public Address: 0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
Private Key: 0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342&lt;/pre&gt;
    &lt;p id=&quot;kO9N&quot;&gt;Импортируем закрытый ключ, подключаемся к сети Moonbeam Dev (&lt;a href=&quot;https://docs.moonbeam.network/tokens/connect/metamask/#connect-metamask-to-moonbeam&quot; target=&quot;_blank&quot;&gt;как подключить метамаск к сетям moonbeam&lt;/a&gt;) и убеждаемся что у нас на балансе токены Dev и которые вы создали в смарт-контракте. В нашем случае &amp;quot;DoubleTop&amp;quot;.&lt;/p&gt;
    &lt;figure id=&quot;fa5k&quot; class=&quot;m_column&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/8f/af/8faf7af2-e130-400a-a021-a5985712bb63.png&quot; width=&quot;1966&quot; /&gt;
      &lt;figcaption&gt;Балансы отображаются и все коректно работает&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;INkC&quot;&gt;9. Сделаем пару тестовых переводов между кошельками метамаска для того чтоб убедится что все корректно работает :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;gGVA&quot;&gt;Отправим токены Dev и созданные нами токены на второй кошелек&lt;/p&gt;
    &lt;figure id=&quot;R5hM&quot; class=&quot;m_column&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/f8/40/f8406fdf-bd2e-486c-b00d-176c9410f8fc.png&quot; width=&quot;2377&quot; /&gt;
      &lt;figcaption&gt;Отправляем токены DoubleTop&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;mYzM&quot;&gt;Проверяем со второго кошелька что токены пришли :&lt;/p&gt;
    &lt;figure id=&quot;cVR0&quot; class=&quot;m_column&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/c6/30/c6306327-a851-4514-a29e-3fc37e1e0583.png&quot; width=&quot;2366&quot; /&gt;
      &lt;figcaption&gt;Токены пришли на другой кошелек&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;sAxw&quot;&gt;Отправляем оставшиеся созданные токены на адрес смарт-контракта&lt;/p&gt;
    &lt;figure id=&quot;s47D&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/19/d8/19d8cc61-2f7b-40a2-8eba-2d8ca637beef.png&quot; width=&quot;2361&quot; /&gt;
      &lt;figcaption&gt;Отправили токены на адрес смарт-контракта&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;FCtl&quot;&gt;10. Напоследок проверяем функцию покупки токенов в ICO смарт-контракте. Для этого мы используем среду разработки Remix :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;nofA&quot;&gt;Подключаемся к метамаску на платформе remix&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;whKU&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ee/4d/ee4dd28b-82c1-418a-8420-07010bffff6d.png&quot; width=&quot;2414&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;PiZg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/90/be/90bef691-5b61-4b42-8988-a4bd713a8a30.png&quot; width=&quot;2404&quot; /&gt;
    &lt;figcaption&gt;Подключили метамаск к платформе remix&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;cmvi&quot;&gt;Переходим во вкладку Workspace и создаем новую рабочую среду :&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;UuoK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e2/0d/e20d62bb-b01c-4b3e-a0a6-27d0863c7e2d.png&quot; width=&quot;2405&quot; /&gt;
    &lt;figcaption&gt;Создали рабочую среду Moonbeam ICO contract test&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LW7t&quot;&gt;Создаем 2 файла &amp;quot;ICO.sol&amp;quot; и &amp;quot;MyTokenERC20.sol&amp;quot;. Копируем в созданные файлы наши контракты соответсвенно :&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;EEKq&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6f/e6/6fe64edb-f230-4fa6-920f-82048ea443c4.png&quot; width=&quot;2413&quot; /&gt;
    &lt;figcaption&gt;файл ICO.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;AsC7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/78/1d/781d6703-689b-401a-931b-0996a9ad6e33.png&quot; width=&quot;2409&quot; /&gt;
    &lt;figcaption&gt;файл MyTokenERC20.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;GQGn&quot;&gt;Переходим к компиляции файлов ICO.sol и MyTokenERC20.sol которые мы создали :&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;133l&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/13/23/1323791f-287d-4aee-8560-91285b3c5ab5.png&quot; width=&quot;2054&quot; /&gt;
    &lt;figcaption&gt;компилируем файл MyTokenERC20.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;nmE2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/85/b8/85b8b8b4-b79c-4798-a4cd-9857565bff8e.png&quot; width=&quot;2409&quot; /&gt;
    &lt;figcaption&gt;компилируем файл ICO.sol&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;S2Dl&quot;&gt;Теперь пробуем купить наши токены с помощь смарт-контракта ICO развернутого в среде разработки remix :&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;iWoa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/01/ea/01ea84b5-9a48-4b4c-9ad6-81636382d18d.png&quot; width=&quot;2406&quot; /&gt;
    &lt;figcaption&gt;Инициализируем покупку токенов &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;OYlt&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/06/82/06821781-5a0f-40d3-a343-112e6510ffc8.png&quot; width=&quot;2414&quot; /&gt;
    &lt;figcaption&gt;Смотрим в истории транзакцию покупки токенов&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;DMzC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4a/19/4a197d2a-8ba1-4d38-a4fc-c0a48e248bcd.png&quot; width=&quot;1958&quot; /&gt;
    &lt;figcaption&gt;Наши токены куплены и на балансе&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;okUi&quot;&gt;Полезные ссылки :&lt;/p&gt;
    &lt;p id=&quot;rhug&quot;&gt;&lt;a href=&quot;https://razumv.tech/smart-contract_MoonBeam&quot; target=&quot;_blank&quot;&gt;https://razumv.tech/smart-contract_Moonbeam&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;74tX&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;BmrE&quot;&gt;&lt;a href=&quot;https://hardhat.org/tutorial/&quot; target=&quot;_blank&quot;&gt;https://hardhat.org/tutorial/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;8oOb&quot;&gt;&lt;a href=&quot;https://remix.ethereum.org/&quot; target=&quot;_blank&quot;&gt;https://remix.ethereum.org/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;Wwkg&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/tokens/connect/metamask/#connect-metamask-to-moonbeam&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/tokens/connect/metamask/#connect-metamask-to-moonbeam&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;VZvU&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/ru/integrations/wallets/metamask/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/ru/integrations/wallets/metamask/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;tCbY&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/builders/interact/remix/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/builders/interact/remix/&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>razumv:AssetMantle_form</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/AssetMantle_form?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Заполняем заявку AssetMantle</title><published>2021-11-17T20:08:34.350Z</published><updated>2021-11-17T20:56:37.840Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/20/8f/208fde7c-7541-40b5-a5f0-919e1a9596d9.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/7c/c0/7cc0047b-2deb-4c82-abe5-1828dab0275a.png&quot;&gt;Discord</summary><content type="html">
  &lt;figure id=&quot;38nr&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7c/c0/7cc0047b-2deb-4c82-abe5-1828dab0275a.png&quot; width=&quot;1238&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sqmM&quot;&gt;&lt;a href=&quot;https://discord.gg/vWpN6GQ8&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;zslz&quot;&gt;&lt;a href=&quot;https://twitter.com/assetmantle&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;oDtR&quot;&gt;Публикую со скринами примера заполнения. Точных ответов мы не пишем, чтобы вы не копировали одно и тоже. Придется немного посочинять от себя ) &lt;strong&gt;Заполняем все разумеется на английском языке!&lt;br /&gt;&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScRhXRvs5A_2xw_Z_GPEK-dRs4cJ9Hsgv8r9BO78AMMC23wcw/viewform&quot; target=&quot;_blank&quot;&gt;Ссылка на форму&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;PcW9&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7b/27/7b278f60-b9b1-4d4e-9407-ad6b0ac098ba.png&quot; width=&quot;742&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ojns&quot;&gt;В последней строке пишем о себе, кто, откуда, можно про опыт написать и навыки. Может быть есть техническое образование.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;X9TL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/06/3a/063aaba3-d296-47d8-815a-b6ac6f7b5183.png&quot; width=&quot;748&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;lLr7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/07/1c/071cd47a-99d4-41b3-923c-3bd881358c4d.png&quot; width=&quot;754&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;X5EH&quot;&gt;&lt;strong&gt;*Total assets under delegation in USD across all the networks you support (please provide a rough estimate).&lt;br /&gt;&lt;/strong&gt;Сумма делегаций на вашем валидаторе в USD, если у вас есть нода в мейнете какого-то проекта. Если нет, ставьте прочерк.&lt;br /&gt;&lt;br /&gt;Отправляем и ждем в дискорде получения роли валидатора если вас выберут.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;p data-align=&quot;center&quot; id=&quot;9OTq&quot;&gt;Готово! Все последующие обновления будут в 2TOP Nodes&lt;/p&gt;
  &lt;p data-align=&quot;center&quot; id=&quot;7Iv0&quot;&gt;DOUBLE TOP | &lt;a href=&quot;https://www.youtube.com/c/DOUBLETOP_IO&quot; target=&quot;_blank&quot;&gt;YouTube&lt;/a&gt; | &lt;a href=&quot;https://t.me/doubletop_chat&quot; target=&quot;_blank&quot;&gt;Chat&lt;/a&gt; | &lt;a href=&quot;https://link.medium.com/eGPx0ZySngb&quot; target=&quot;_blank&quot;&gt;Services&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>razumv:smart-contract_Moonbeam</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/smart-contract_Moonbeam?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Создание и деплой смарт-контракта Moonbeam используя hardhat</title><published>2021-11-16T23:40:44.822Z</published><updated>2022-01-11T19:42:56.772Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c3/fa/c3fa7ddb-c3e4-4541-8cf9-2888e4c140b1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot;&gt;В данном документе мы расскажем как создать и задеплоить смарт-контракт Moonbeam используя локальную ноду, с помощью hardhat</summary><content type="html">
  &lt;figure id=&quot;h5Vn&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot; width=&quot;1030&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;H0Bz&quot;&gt;В данном документе мы расскажем как создать и задеплоить смарт-контракт Moonbeam используя локальную ноду, с помощью hardhat&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;16Xk&quot;&gt;1. Для запуска локальной ноды Moonbeam Development Node мы в нашем примере будем использовать docker. Подготовим наш сервер для использования докера :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;H5Vn&quot; data-lang=&quot;typescript&quot;&gt;sudo apt update&lt;/pre&gt;
    &lt;pre id=&quot;eWxy&quot;&gt;sudo apt install wget -y&lt;/pre&gt;
    &lt;pre id=&quot;jvl3&quot;&gt;wget -O get-docker.sh https://get.docker.com&lt;/pre&gt;
    &lt;pre id=&quot;cr8F&quot;&gt;sudo sh get-docker.sh&lt;/pre&gt;
    &lt;pre id=&quot;o73E&quot;&gt;sudo apt install -y docker-compose&lt;/pre&gt;
    &lt;pre id=&quot;cW1P&quot;&gt;rm -f get-docker.sh&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;j9fa&quot;&gt;2. Устанавливаем локальную ноду Moonbeam Development Node : &lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;mjUx&quot; data-lang=&quot;typescript&quot;&gt;docker pull purestake/moonbeam:v0.14.2&lt;/pre&gt;
    &lt;figure id=&quot;1lqr&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/3a/8a/3a8a0ed2-7698-45d6-b6ff-7f0a3f803553.png&quot; width=&quot;841&quot; /&gt;
      &lt;figcaption&gt;Делаем пулл реквест актуальной версии &lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;kEyx&quot; data-lang=&quot;typescript&quot;&gt;docker run --rm --name moonbeam_development --network host \
purestake/moonbeam:v0.14.2 \
--dev&lt;/pre&gt;
    &lt;figure id=&quot;Tz0p&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/98/8c/988cd1cb-1d14-4523-b972-f184dc671501.png&quot; width=&quot;871&quot; /&gt;
      &lt;figcaption&gt;Вот такой вывод мы должны получить Мы запустили локальную Moonbeam Development Node &lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;uK78&quot;&gt;3. Локальная нода запущена, теперь установим Node.js :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;8dIU&quot; data-lang=&quot;typescript&quot;&gt;sudo apt install curl git&lt;/pre&gt;
    &lt;pre id=&quot;G91j&quot;&gt;curl https://deb.nodesource.com/setup_12.x | bash  -&lt;/pre&gt;
    &lt;pre id=&quot;3OHx&quot;&gt;sudo apt install nodejs&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hAYj&quot;&gt;Проверяем что Node.js установился и его версию:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;Fw4d&quot;&gt;node --version&lt;/pre&gt;
    &lt;figure id=&quot;Je8e&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/64/2a/642aa8b5-9b2e-4d1d-adee-74fc369d2c99.png&quot; width=&quot;878&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;IhfN&quot;&gt;4. Устанавливаем hardhat&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;cEHm&quot;&gt;mkdir hardhat-dev &amp;amp;&amp;amp; cd hardhat-dev&lt;/pre&gt;
    &lt;pre id=&quot;UJum&quot;&gt;npm init --yes&lt;/pre&gt;
    &lt;figure id=&quot;5aVf&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/66/59/66591418-125f-4ab2-951d-a5f06d586f45.png&quot; width=&quot;773&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;7Kxp&quot;&gt;npm install --save-dev hardhat&lt;/pre&gt;
    &lt;figure id=&quot;8aa8&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/a5/c5/a5c56fc9-d492-4653-b3fc-fd65a9bad724.png&quot; width=&quot;1153&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;arGk&quot;&gt;5. Создаем hardhat проект, на примере используются параметры по умолчанию. Вы можете выставить параметры которые нужны вам :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;rmeb&quot;&gt;npx hardhat&lt;/pre&gt;
    &lt;figure id=&quot;IMgB&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/2c/4d/2c4deb5f-e978-4f04-b9b8-eec34bd428f2.png&quot; width=&quot;767&quot; /&gt;
      &lt;figcaption&gt;Запускаем hardhat&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;q7eG&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/1f/69/1f699c20-4a5f-4e24-98ee-f90da089fd6f.png&quot; width=&quot;1156&quot; /&gt;
      &lt;figcaption&gt;На примере используется значения по умолчанию для sample project&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;wkwc&quot;&gt;6. Теперь компилируем проект &lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;CeV3&quot;&gt;npx hardhat compile&lt;/pre&gt;
    &lt;figure id=&quot;Ykdx&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/5f/6a/5f6a3a6d-741d-4dcb-aa49-5d7b4a8d317f.png&quot; width=&quot;711&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5SvA&quot;&gt;7. Теперь подготовим файлы для деплоя смарт контракта. Нам требуется файл конфига, файл скрит-деплоя и файл приватного ключа. &lt;br /&gt;Сначала установим сеть в файл конфига:&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;4aad&quot;&gt;nano hardhat.config.js&lt;/pre&gt;
    &lt;pre id=&quot;iw24&quot; data-lang=&quot;typescript&quot;&gt;  networks: {
    dev: {
      url: &amp;quot;http://127.0.0.1:9933&amp;quot;,
      chainId: 1281,
      accounts: [privateKey]
    }
  }&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;M1JD&quot;&gt;&lt;strong&gt;!help&lt;/strong&gt; Файл конфига должен выглядеть следующим образом :&lt;/p&gt;
    &lt;pre id=&quot;A4oS&quot; data-lang=&quot;typescript&quot;&gt;require(&amp;quot;@nomiclabs/hardhat-waffle&amp;quot;);

// This is a sample Hardhat task. To learn how to create your own go to
// https://hardhat.org/guides/create-task.html
task(&amp;quot;accounts&amp;quot;, &amp;quot;Prints the list of accounts&amp;quot;, async (taskArgs, hre) =&amp;gt; {
  const accounts = await hre.ethers.getSigners();

  for (const account of accounts) {
    console.log(account.address);
  }
});

// You need to export an object to set up your config
// Go to https://hardhat.org/config/ to learn more

/**
 * @type import(&amp;#x27;hardhat/config&amp;#x27;).HardhatUserConfig
 */
const { privateKey } = require(&amp;#x27;./secrets.json&amp;#x27;);


module.exports = {
  solidity: &amp;quot;0.8.4&amp;quot;,

  networks: {
    dev: {
      url: &amp;quot;http://127.0.0.1:9933&amp;quot;,
      chainId: 1281,
      accounts: [privateKey]
    }
  }
};&lt;/pre&gt;
    &lt;figure id=&quot;8uFo&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/fc/db/fcdbc1ae-a2cb-41c8-9af8-93849cd913e6.png&quot; width=&quot;1029&quot; /&gt;
      &lt;figcaption&gt;Файл конфига выглядит таким образом&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LdBn&quot;&gt;Теперь создаем скрипт деплоя&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;6qEJ&quot;&gt;nano scripts/deploy.js&lt;/pre&gt;
    &lt;pre id=&quot;QZkm&quot; data-lang=&quot;typescript&quot;&gt;async function main() {
    //  We get the contract to deploy
    const Greeter = await ethers.getContractFactory(&amp;#x27;Greeter&amp;#x27;);
    console.log(&amp;#x27;Deploying...&amp;#x27;);

    // Instantiating a new smart contract
    const greeter = await Greeter.deploy(&amp;#x27;Hi!&amp;#x27;);

    // Waiting for the deployment to resolve
    await greeter.deployed();
    console.log(&amp;#x27;Greeter deployed to:&amp;#x27;, greeter.address);
}

main()
   .then(() =&amp;gt; process.exit(0))
   .catch((error) =&amp;gt; {
      console.error(error);
      process.exit(1);
   });&lt;/pre&gt;
    &lt;figure id=&quot;hZfk&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/53/9b/539b0cef-ead1-41ce-b490-cac47d6d2205.png&quot; width=&quot;1155&quot; /&gt;
      &lt;figcaption&gt;Скрипт деплоя должен выглядеть таким образом&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;oPRI&quot;&gt;Создаем файл с приватным ключом от метамаска.&lt;br /&gt;Ознакомится с ключами для &lt;a href=&quot;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/#pre-funded-development-accounts&quot; target=&quot;_blank&quot;&gt;разработки можете здесь&lt;/a&gt; .&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;Tkzk&quot;&gt;nano secrets.json&lt;/pre&gt;
    &lt;pre id=&quot;2RIS&quot; data-lang=&quot;typescript&quot;&gt;{
   &amp;quot;privateKey&amp;quot;: &amp;quot;0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342&amp;quot;
}&lt;/pre&gt;
    &lt;figure id=&quot;BSos&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/ec/15/ec15b03a-db06-4154-b9a9-7d11b9d554fb.png&quot; width=&quot;730&quot; /&gt;
      &lt;figcaption&gt;Ваш приватный ключ должен выглядить таким образом&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Ne9w&quot;&gt;8. Запускаем деплой&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;2KDB&quot;&gt;npx hardhat run scripts/deploy.js --network dev&lt;/pre&gt;
    &lt;figure id=&quot;wkiq&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/0e/6d/0e6dfaa7-03d4-4c5f-8829-e3e3fc59e9a6.png&quot; width=&quot;772&quot; /&gt;
      &lt;figcaption&gt;Вывод успешного деплоя &lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;4Yfo&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/98/8c/988cd1cb-1d14-4523-b972-f184dc671501.png&quot; width=&quot;871&quot; /&gt;
      &lt;figcaption&gt;Проверям логи что наш деплой был успешный и прошел блок&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sVAn&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;lGOA&quot;&gt;Ошибки с которыми вы можете столкнутся :&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;QOwu&quot;&gt;Если видите такую картину, то вы не установили приватный ключ. Проверьте файл конфига и файл приватного ключа &lt;/p&gt;
    &lt;figure id=&quot;XoM7&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/e8/44/e8444bce-cee8-4b5f-b14f-0bce784714e8.png&quot; width=&quot;1145&quot; /&gt;
      &lt;figcaption&gt;Ошибка из за отсутствия приватного ключа&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;lplO&quot;&gt;Если видите такую картину, то вы пропустили аргумент в файле деплоя. В нашем примере это аргумент const greeter = await Greeter.deploy(&amp;#x27;Hi!&amp;#x27;);&lt;/p&gt;
    &lt;figure id=&quot;WVGu&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/a6/a5/a6a5d0ad-4e56-4bd9-9a67-98d8a2744646.png&quot; width=&quot;922&quot; /&gt;
      &lt;figcaption&gt;Ошибка из за отсутсвия аргумента&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ghEm&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;uoHC&quot;&gt;Полезные ссылки :&lt;/p&gt;
    &lt;p id=&quot;74tX&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/builders/get-started/moonbeam-dev/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;BmrE&quot;&gt;&lt;a href=&quot;https://hardhat.org/tutorial/&quot; target=&quot;_blank&quot;&gt;https://hardhat.org/tutorial/&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;8oOb&quot;&gt;&lt;a href=&quot;https://remix.ethereum.org/&quot; target=&quot;_blank&quot;&gt;https://remix.ethereum.org/&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>razumv:Moonbeam_smart-contract</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/Moonbeam_smart-contract?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>Смарт-контракты Moonbeam</title><published>2021-11-16T12:41:07.530Z</published><updated>2022-01-11T19:42:46.218Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c3/fa/c3fa7ddb-c3e4-4541-8cf9-2888e4c140b1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot;&gt;В апреле 2020 года команда PureStake анонсировала платформу смарт-контрактов Moonbeam , которая обеспечивает масштабируемую и доступную альтернативу другим вариантам платформы для разработчиков.</summary><content type="html">
  &lt;figure id=&quot;K34i&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19e8640-60f1-4b10-a98c-bd86432cc7d5.png&quot; width=&quot;1030&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;0kZh&quot;&gt;В апреле 2020 года команда PureStake &lt;a href=&quot;https://www.purestake.com/news/announcing-moonbeam-smart-contracts/&quot; target=&quot;_blank&quot;&gt;анонсировала платформу смарт-контрактов Moonbeam&lt;/a&gt; , которая обеспечивает масштабируемую и доступную альтернативу другим вариантам платформы для разработчиков.&lt;/p&gt;
  &lt;p id=&quot;eWP4&quot;&gt;Moonbeam стремится предоставить разработчикам возможность переносить существующие DAPPs Ethereum или создавать новые DAPPs с помощью знакомых инструментов разработки Ethereum. Это существенно снизит входной барьер для новых и успешных DAPPs Ethereum, которые хотят перейти на более производительную и экономную платформу. Поскольку Moonbeam основан на Substrate, платформе разработки блокчейнов от Parity Technologies, мы можем создать собственную среду исполнения Ethereum, которая предоставляет реализации Web3 RPC и EVM для поддержки большинства DAPPs Ethereum без значительных изменений. Масштабируемость и безопасность Moonbeam являются производными от работы в рамках сегментированного дизайна и общей безопасности Polkadot.&lt;/p&gt;
  &lt;p id=&quot;SPp5&quot;&gt;В качестве парачейна в сети Polkadot, Moonbeam также позволит реализовать ряд сценариев взаимодействия, включая интеграцию с другими чейнами для предоставления таких услуг, как Oracles, DEX, и передачи токенов из таких блокчейнов, как Биткойн и Эфириум.&lt;/p&gt;
  &lt;p id=&quot;ZDsk&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;anC5&quot;&gt;Полная совместимость с Ethereum и экосистемой Polkadot&lt;/h2&gt;
  &lt;figure id=&quot;2CDF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/79/32/793229d5-52e7-4f89-8039-8ffa2b18ac38.png&quot; width=&quot;6250&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GRQh&quot;&gt;Moonbeam - это гораздо больше, чем просто реализация EVM, это узкоспециализированный блокчейн уровня 1, которая отражает RPC, учётные записи, ключи, подписки, журналы и многое другое Ethereum Web3. Платформа Moonbeam расширяет базовый набор функций Ethereum дополнительными функциями, такими как управление чейном, стейкинг и кроссчейн интеграция.&lt;/p&gt;
  &lt;p id=&quot;CV7F&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;nKdF&quot;&gt;Смарт-контракты Solidity&lt;/h3&gt;
    &lt;p id=&quot;Ynqh&quot;&gt;Повторно разверните существующие смарт-контракты в среде Polkadot без необходимости рефакторинга или перезаписи.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;tlCG&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;3xd3&quot;&gt;Возможности публикации и подписки&lt;/h3&gt;
    &lt;p id=&quot;bnpq&quot;&gt;Подпишитесь на события контрактов и обновления о транзакциях в сети, балансах и многом другом.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;4O5I&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;TkeR&quot;&gt;Аккаунты H160 и подписи ECDSA&lt;/h3&gt;
    &lt;p id=&quot;cqda&quot;&gt;Взаимодействуйте с Moonbeam, используя существующие учётные записи Ethereum и ключи.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lyNw&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;IUt8&quot;&gt;Полный набор конечных точек Web3 RPC&lt;/h3&gt;
    &lt;p id=&quot;ZGn5&quot;&gt;Подключите существующие инструменты и интерфейсы DAPP к Moonbeam так же, как к Ethereum.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;InaO&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;URxq&quot;&gt;Moonbeam - как простой путь к мультицепям&lt;/h2&gt;
  &lt;figure id=&quot;OhEw&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/91/c0/91c02fe0-36bf-4372-9e5b-aa60ec2fb3e4.png&quot; width=&quot;1105&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;m3D4&quot;&gt;Минимальные изменения конфигурации&lt;/h3&gt;
    &lt;p id=&quot;wNcb&quot;&gt;Не нужно переписывать или перенастраивать смарт-контракты. Они сразу будут работать.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;fVfl&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;0Vcp&quot;&gt;Инструменты, которые вы уже используете&lt;/h3&gt;
    &lt;p id=&quot;2RTa&quot;&gt;Используйте инструменты на основе Ethereum, которые вам нравятся, такие как MetaMask, Remix, Hardhat, Waffle и Truffle.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;hX1E&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;02r8&quot;&gt;Знакомые языки смарт-контрактов&lt;/h3&gt;
    &lt;p id=&quot;nKZ2&quot;&gt;Поддержка Solidity, Vyper и всего, что компилируется в байт-код EVM.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h3 id=&quot;xRBu&quot;&gt;&lt;/h3&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;H2QL&quot;&gt;Готовые интеграции&lt;/h3&gt;
    &lt;p id=&quot;ep40&quot;&gt;Встроенная интеграция для таких активов, как DOT и ERC-20, и инфраструктурных сервисов, таких как Chainlink и TheGraph.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;R9sY&quot;&gt;&lt;/p&gt;
  &lt;h1 id=&quot;uLlK&quot; data-align=&quot;center&quot;&gt;Будущее за мультичейном!&lt;/h1&gt;
  &lt;figure id=&quot;TujR&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/ff/31/ff31afb3-8fe3-4264-bea3-a98a613a6cb5.png&quot; width=&quot;1084&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;P9vG&quot;&gt;Можете ознакомится с официальной информацией детальнее по ссылкам:&lt;/p&gt;
  &lt;p id=&quot;jvoK&quot;&gt;&lt;a href=&quot;https://moonbeam.network/&quot; target=&quot;_blank&quot;&gt;https://moonbeam.network/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;yf5e&quot;&gt;&lt;a href=&quot;https://docs.moonbeam.network/ru/&quot; target=&quot;_blank&quot;&gt;https://docs.moonbeam.network/ru/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;0SuT&quot;&gt;&lt;a href=&quot;https://www.purestake.com/blog/moonbeam-smart-contract-parachain/&quot; target=&quot;_blank&quot;&gt;https://www.purestake.com/blog/moonbeam-smart-contract-parachain/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;9Mes&quot;&gt;&lt;a href=&quot;https://www.purestake.com/news/announcing-moonbeam-smart-contracts/&quot; target=&quot;_blank&quot;&gt;https://www.purestake.com/news/announcing-moonbeam-smart-contracts/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;OY4y&quot;&gt;&lt;a href=&quot;https://dotmarketcap.com/blog-detail/153/celebrating-multi-chain-projects-on-moonbeam&quot; target=&quot;_blank&quot;&gt;https://dotmarketcap.com/blog-detail/153/celebrating-multi-chain-projects-on-moonbeam&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>razumv:staking-near</id><link rel="alternate" type="text/html" href="https://teletype.in/@razumv/staking-near?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=razumv"></link><title>NEAR Staking</title><published>2021-10-26T08:07:22.600Z</published><updated>2021-10-26T08:12:03.410Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2c/84/2c84acd1-9df1-4978-aad7-ca4d7dbeeffe.png"></media:thumbnail><category term="staking" label="Staking"></category><summary type="html">&lt;img src=&quot;https://liquality.io/images/near_logo_wht.png&quot;&gt;Как застейкать свои холдерские NEAR</summary><content type="html">
  &lt;figure id=&quot;a3Zf&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://liquality.io/images/near_logo_wht.png&quot; width=&quot;1242&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9qnf&quot;&gt;&lt;strong&gt;Как застейкать свои холдерские NEAR&lt;/strong&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;OuLM&quot;&gt;Доход от стейкинга сейчас ~11% годовых.&lt;/p&gt;
  &lt;p id=&quot;IEj5&quot;&gt;Валидатор запущен нашей командой и имеет постоянную комиссию 3%&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;YEX3&quot;&gt;&lt;strong&gt;1.Открываем &lt;a href=&quot;https://wallet.near.org/&quot; target=&quot;_blank&quot;&gt;сайт&lt;/a&gt; и логинимся своим кошельком&lt;/strong&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;G9km&quot;&gt;&lt;strong&gt;2.Далее следуем инструкции&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;ozvH&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/72/b3/72b31e7a-f200-470a-a361-619277c677a1.png&quot; width=&quot;347.62812500000007&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;bEwV&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4d/38/4d385d01-f5d1-4e31-9c23-a00a014fe8f3.png&quot; width=&quot;347.95624430264354&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;E3Xj&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8d/1a/8d1aee30-f5b8-443e-909a-9617119e936e.png&quot; width=&quot;344.015625&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;hWEf&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/28/da/28da69a2-63ba-4780-8d78-ca2f1930be6c.png&quot; width=&quot;344.92499999999995&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;ZOjO&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/16/53/16538f23-e2d7-47df-a7ad-ec138082963d.png&quot; width=&quot;343.25156250000003&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;7am6&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2d/17/2d171f34-5386-479f-8726-174bbb13b7ff.png&quot; width=&quot;343.771875&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;ZbUh&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8b/a1/8ba169f6-979a-4ed5-a554-288fd82be210.png&quot; width=&quot;345.6898437500001&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UEWr&quot;&gt;Готово, теперь вы делегировали свои NEAR валидатору doubletop.poolv1.near. В ближайшее время валидатор станет активным и вы начнете получать награды.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;cqlc&quot; data-align=&quot;center&quot;&gt;DOUBLE TOP | &lt;a href=&quot;https://www.youtube.com/c/DOUBLETOP_IO&quot; target=&quot;_blank&quot;&gt;YouTube&lt;/a&gt; | &lt;a href=&quot;https://t.me/doubletop_chat&quot; target=&quot;_blank&quot;&gt;Chat&lt;/a&gt; | &lt;a href=&quot;https://link.medium.com/eGPx0ZySngb&quot; target=&quot;_blank&quot;&gt;Services&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>