Делрой Боско

Этот учебник будет служить руководством для пошагового процесса понимания и использования Matic JS, который является самым простым способом взаимодействия с Matic Network. Это руководство предназначено для разработчиков, начинающих свой путь в Ethereum. Если вы хотите сразу же погрузиться в работу, пролистайте статью или перейдите непосредственно на https://docs.matic.network/getting-started/.

Предпосылки:

Немного ETH на Ropsten в вашем аккаунте

Для совершения каких-либо транзакций вам также понадобится некоторое количество эфира на тестовых счетах, которые вы будете использовать во время обучения. Если у вас нет ETH на Ropsten, вы можете использовать приведенные здесь ссылки на сборщики — https://faucet.metamask.io/ или https://faucet.ropsten.be/.

Матический кран

В этом руководстве мы будем использовать токен ERC20 MTX в сети Ropsten в качестве примера. Это тестовый токен. В своем DApp вы можете заменить его любым токеном ERC20. Чтобы получить токены Test MTX в сети Matic, вы можете получить доступ к Matic Faucet: https://wallet.matic.today/faucet.

Все, что вам нужно сделать, это выполнить простые шаги по ссылке выше, и вы получите деньги на свой счет:

  1. Перейдите по ссылке и введите свой адрес
  2. Скопируйте содержимое твита и опубликуйте его
  3. Теперь вставьте идентификатор твита в последнее поле и нажмите Get Test Matic.

Использование MaticJS

В этом руководстве мы покажем процесс передачи активов в сети Matic и то, как вы можете сделать то же самое с помощью Matic.js:

  • Пользователь вносит токены в контракт Matic на основной цепочке
  • Как только депонированные токены будут подтверждены в основной цепочке, соответствующие токены будут отражены в цепочке Matic.
  • Теперь пользователь может мгновенно передавать токены кому угодно с незначительной комиссией. Цепочка Matic имеет более быстрые блоки (примерно 1 секунду). Таким образом, перевод будет выполнен практически мгновенно.
  • Когда пользователь будет готов, он может вывести оставшиеся токены из основной цепи, установив подтверждение наличия оставшихся токенов в корневом контракте (контракт, развернутый в цепочке Ropsten/Ethereum) в течение 7 дней.
  • Пользователь также может получить быстрый выход через 0x или Dharma (скоро!)

Базовая установка для туториала

Чтобы легко визуализировать поток средств в сети Matic, полезно настроить тестовую сеть Matic на Metamask. Обратите внимание, что здесь мы используем Metamask исключительно для целей визуализации. Нет необходимости использовать Metamask для использования Matic Network.

Прежде чем приступить к руководству, подготовьте 3 тестовых аккаунта Ethereum. Если вы новичок в Ethereum и Metamask, вы можете обратиться к https://docs.matic.network/newbies/create-accounts-metamask/ за инструкциями о том, как это сделать.

Для справки, в этом руководстве мы будем использовать следующие учетные записи.

Account #1: 0x74FE3F2b084062dEe9AE0662cA14ecf5C85b94a8 Account #2: 0x05446221202a128a10978D4C9c4500C780455429 Account #3: 0x552A00De3aa5953efe4caE8c2c8a04b48554B359

Когда вы создаете несколько учетных записей на своем конце, ваши адреса будут отличаться от показанных здесь.

Чтобы легко просматривать поток средств в сети Matic с помощью Matic.js, вы можете настроить URL-адрес тестовой сети Matic в Metamask. Перейдите по этой ссылке — https://docs.matic.network/newbies/conf-testnet-metamask/, чтобы быстро настроить его. Обратите внимание, что это необязательно. Вы можете запросить с помощью web3, если хотите.

Настройка токенов Matic Test на Metamask

Токен MTX, взятый в качестве примера для этого руководства, можно настроить в Metamask, чтобы легко визуализировать балансы счетов. Еще раз обратите внимание, что это необязательно. Вы можете очень легко запросить балансы токенов и другие переменные, используя web3

Эти тестовые токены необходимо добавить ко всем 3 тестовым учетным записям в Metamask по одному разу в тестовых сетях Ropsten и Matic:

Token name: MTX Where: Ropsten Network Contract address: 0x6b0b0e265321e788af11b6f1235012ae7b5a6808 ---------------------- Token name: MTX (Note: When adding the Matic Testnet token in Metamask, make sure you edit the ticker symbol from CHE to MTX) Where: Matic Testnet (Custom RPC: https://testnet2.matic.network) Contract address: 0xcc5de81d1af53dcb5d707b6b33a50f4ee46d983e

Если вы новичок в Ethereum и Metamask, вы можете обратиться к https://docs.matic.network/newbies/conf-custom-tokens-metamask/ за инструкциями о том, как это сделать.

Представляем Matic.js

Репозиторий Matic.js размещен на Github по адресу https://github.com/maticnetwork/matic.js/.

Для справки я создам тестовую папку, чтобы продемонстрировать пошаговую настройку Matic.js. Идите вперед и создайте папку для этого урока — я собираюсь с $ mkdir matic-js-test

Установите пакет maticjs через npm:

$ npm install --save web3 maticjs

Если вы хотите напрямую сослаться на набор примеров кода, вы можете сделать это по адресу https://github.com/maticnetwork/matic.js/tree/master/examples.

Примечание. Возможно, вам потребуется установить некоторые зависимости, например [email protected].34 на случай возникновения ошибок при запуске matic.js. Чтобы установить это, вы можете запустить команду $ npm [email protected]

Внесение средств с Ropsten на Matic

В папке matic-js-test создайте новый файл и назовите его deposit-ERC20.js.

Давайте разберемся в этом немного подробнее.

token — это адрес контракта токена MTX TEST ERC20, взятого в качестве примера в этом руководстве. Вы замените его на соответствующий адрес токена ERC20 в своем DApp.

const token = "config.ROPSTEN_TEST_TOKEN" // test token address

amount - сумма, которую необходимо внести. Сумма указана в wei . Для новичков в этой области токен 1 MTX эквивалентен 10¹⁸ wei . Во фрагменте кода 0.01 MTX = 10¹⁶ wei.

const amount = "10000000000000000" // amount in wei (0.01 TEST)

from — ваш адрес. Это будет адрес, с которого будут списаны средства. Обратите внимание, что это адрес моей тестовой учетной записи — вам нужно будет указать здесь свой собственный адрес.

const from = "0xdcd53258BA8A69C6a505300BE75447A772bFd3d6" // from address

matic.wallet — ваш закрытый ключ. Никогда не храните закрытый ключ в рабочем коде — это добавлено в файл config.js для наглядности. Обычно закрытый ключ пользователя будет храниться в кошельке браузера, таком как Metamask, или мобильном кошельке, таком как кошелек Matic, Status или аппаратный кошелек.

matic.wallet = config.PRIVATE_KEY // prefix with `0x`

Вам также потребуется создать еще один файл config.js. Он будет содержать всю конфигурацию, связанную с Matic.js.

Пока не беспокойтесь об этих значениях — просто оставьте их как есть.

Вам нужно будет добавить свой закрытый ключ здесь. Для подписания транзакций потребуется ваш закрытый ключ. Опять же, НЕ РЕКОМЕНДУЕТСЯ жестко закодировать закрытый ключ во время работы. Позже вы можете строить с учетом того, что пользователь будет обрабатывать свои ключи на своем конце с помощью MetaMask, Matic Wallet или любого другого совместимого пользовательского кошелька.

PRIVATE_KEY: "<insert-your-private-key-here>"

Депозит — это двухэтапный процесс

  • Токены должны быть сначала одобрены для контракта корневой цепи Matic на Ethereum.
  • После утверждения должна быть запущена функция депозита, когда токены депонируются в контракт Matic и становятся доступными для использования в сети Matic.

В справочных целях на приведенных ниже снимках экрана будет показан контекст во время фактического депозита.

В настоящее время у нас есть 10 MTX токенов и 0.5 ETH по нашему адресу 0xdcd53258BA8A69C6a505300BE75447A772bFd3d6 в сети Ropsten,

в то время как в Matic Network у нас есть токены 0 MTX.

$ node deposit-ERC20.js

Мы внесем 1 MTX токенов в Matic Testnet.

Запустим функцию Депозит. Для запуска используйте:

Мы добавили ведение журнала консоли для обоих событий, которые при успешном запуске будут отображать хэш транзакции, а также сообщение "Deposit Tokens from Ropsten/Ethereum to Matic - Transaction Approved.".. После завершения депозита вы увидите хеш транзакции и сообщение "Tokens deposited from Ropsten/Ethereum to Matic.". быть настроены на что-нибудь по вашему выбору. По умолчанию отображается только хэш транзакции.

Давайте проверим баланс нашего счета на Metamask.

Наш баланс на Ropsten теперь показывает 9 MTX, что означает, что наша транзакция депозита 1 MTX была успешной.

Проверка нашего баланса в Matic Testnet также показывает, что наш баланс увеличился на 1 MTX.

Поздравляем! Вы успешно перевели средства с Ropsten на Matic.

Чтобы убедиться, что у вас есть больше средств, внесите токен 1 MTX в Matic, повторив описанный выше процесс. Убедитесь, что вы изменили значение amount в приведенном выше скрипте.

Перевод средств с Matic

Если у вас есть средства на Matic, вы можете использовать эти средства для мгновенной отправки другим.

Создайте новый файл — transfer-ERC20.js — в вашем каталоге кода.

recipient — адрес получателя, которому должны быть отправлены средства.

const recipient = "0x05446221202a128a10978D4C9c4500C780455429" // to address

token — адрес контракта токена Matic TEST в тестовой сети Matic. Обратите внимание, что это отличается от адреса контракта токена Ropsten MTX.. Это автоматически берется из файла config.js.

const token = config.MATIC_TEST_TOKEN // test token address

Затем детали конфигурации упоминаются соответствующим образом. Вам не нужно вносить в него никаких изменений.

Здесь вызывается передаточная функция.

Примечание: вы можете изменить параметр parent на TRUE, если вы используете Matic.js для перевода средств в основной сети Ethereum.

Перевод №1

Мы добавили ведение журнала консоли для обоих событий, которые при успешном запуске будут отображать "Transfer done!", чтобы убедиться, что транзакция успешно завершена. Эти сообщения полностью настроены для этого руководства, по умолчанию будет отображаться только хэш транзакции.

Мы совершим 2 разных перевода на сумму 0.100 MTX и 0.010 MTX токенов соответственно.

Скриншоты ниже предоставят контекст во время фактической передачи.

Мы будем переводить 0.100 MTX с учетной записи 1 на учетную запись 2 в Matic Network.

Счет 1- 0x74FE3F2b084062dEe9AE0662cA14ecf5C85b94a8. В настоящее время эта учетная запись содержит 9 MTX токенов.

$ node transfer-ERC20.js

Счет 2- 0x05446221202a128a10978D4C9c4500C780455429. В настоящее время эта учетная запись содержит 0 MTX токенов.

Теперь запустим передаточную функцию. Запустите это на терминале:

После успешного выполнения кода появится сообщение "Transfer done!".

Давайте проверим наши балансы на Metamask.

Наш баланс по адресу аккаунта — 0xdcd53258BA8A69C6a505300BE75447A772bFd3d6 теперь обновлен до 0.900 MTX токенов.

Перевод №2

И чтобы подтвердить, что на счету нашего получателя наш баланс теперь обновлен до 0.100 MTX токенов.

В этой транзакции мы попытаемся перевести 0.01 MTX со счета 1 на счет 3.

От — 0x74FE3F2b084062dEe9AE0662cA14ecf5C85b94a8

К — 0x552A00De3aa5953efe4caE8c2c8a04b48554B359. Аккаунт 3 в настоящее время имеет 0 MTX токенов.

Мы снова запустим $ node transfer-ERC20.js из терминала. Как только мы получим сообщение 'Transfer done!', мы проверим наш баланс.

Баланс на счете 1 теперь показывает баланс 0.890MTX,

тогда как баланс на счете 3 показывает нам 0.010 MTX.

Вывод средств с Matic

Средства, доступные в сети Matic, можно вывести обратно в сеть Ethereum.

В Matic снятие средств – это трехэтапный процесс, в котором:

  1. Вывод средств инициируется из Matic Network. Устанавливается интервал контрольной точки 5 минут, когда все блоки на слое блоков Matic проверяются с момента последней контрольной точки.
  2. Как только контрольная точка передается в контракт основной цепи Ethereum, создается токен NFT Exit (ERC721) эквивалентной стоимости. Пользователям необходимо дождаться 7-дневного периода испытания
  3. После завершения периода вызова снятые средства могут быть запрошены обратно на вашу учетную запись Ethereum из контракта основной цепи с использованием процедуры выхода из процесса.

А пока просто примите во внимание тот факт, что контрольный период для снятия средств является важной частью платформы Plasma для обеспечения безопасности ваших транзакций. Позже, когда вы лучше узнаете систему, вам станет ясна причина 7-дневного окна вывода средств.

Initiate WithdrawConfirm WithdrawProcess ExitПримечание. Контрольная точка, которая представляет собой представление всех транзакций, происходящих в сети Matic в цепочке Ethereum каждые ~5 минут, отправляется в контракт основной цепи Ethereum. эм>

Просто для справки: будет активный рынок выхода, который позволит торговать выходными токенами (ERC721), что приведет к более быстрому снятию средств — но это тема для другого дня.

Чтобы упростить процесс вывода средств в тестовой сети Matic, мы не ввели 7-дневный процесс вывода средств. Это означает, что при прохождении этого руководства и разработке приложений в тестовой сети на данный момент вы получите снятые средства сразу после запуска процедуры process-exit.

Создайте 3 новых файла и назовите их initiate-withdraw-ERC20.js, confirm-withdraw-ERC20.js и process-exit-ERCO20.js.

Вывод средств с Matic на Ethereum

Теперь мы начнем процесс вывода средств.

В настоящее время у нас есть 0.890 MTX токенов по нашему адресу на Matic - 0x74FE3F2b084062dEe9AE0662cA14ecf5C85b94a8

Мы выведем 0.010 MTX со счета Matic.

Чтобы инициировать вывод, мы запустим $ node initiate-withdraw-ERC20.js.

Как только этот процесс будет инициирован, вы получите хэш транзакции. Хэш транзакции будет использоваться в качестве входных данных для запуска следующего шага, то есть процесса подтверждения-вывода.

Добавлю в код хэш транзакции — 0x25af48b8699bf51140d74cd2d1e035c5d5ffdd0b1f86ea61ce2e2c6139b1c8d4. Обратите внимание, что в вашем случае этот хэш транзакции будет другим.

Как только процесс инициации-снятия будет завершен, мы подождем ~ 5 минут, прежде чем запустить второй скрипт $ node confirm-withdraw.js.

Для проверки мы также проверим баланс аккаунта в Metamask.

Баланс на учетной записи 1 в Matic Network теперь показывает 0.880 MTX токенов.

Теперь, чтобы запросить свои средства после завершения периода вызова, вам нужно будет запустить process-exit-ERC20.js

Итак, давайте запустим $ process-exit-ERC20.js

Как только это будет завершено, вы увидите средства на своем счету Ropsten.

Вот так, народ! Вы успешно сняли свои средства и подошли к концу этого руководства 🙂

Надеюсь, теперь вы поняли, что взаимодействовать с Matic Network довольно просто. Мы углубимся и рассмотрим расширенные возможности взаимодействия с Matic в следующих постах.

Точно так же в качестве упражнения вы можете вносить, переводить и снимать ERC721 и эфир с помощью Matic.js, выполняя те же действия, что и выше.

Не стесняйтесь обращаться к нам по адресу https://stack.matic.network/, если у вас возникнут какие-либо проблемы.

Первоначально опубликовано на https://blog.matic.network 27 мая 2018 г.