Статьи

Отправка ERC-токенов в MEW в холодном режиме

Для обеспечения максимальной степени безопасности при работе с криптовалютами нужно использовать аппаратные кошельки или программные wallets в холодном режиме.

Для работы с биткоинами можно использовать программный Cold-кошелек Electrum, а для работы с ETH, ETC, MATIC, ELLA, CLO, UBQ, EGEM и другими активами — MewEtherWallet в холодном режиме (к сожалению, он поддерживается в версиях MEW до 5.8.6 включительно, в шестой версии cold-режим не предусмотрен).

Чтобы использовать ERC-токены в MyEtherWallet, работающем в холодном режиме, нужно получить к ним доступ, прописав информацию о контрактном адресе соответствующего актива.

В данной статье этот процесс рассматривается на примере отправки ERC-20 токенов USDT в программе MEW версии 5.8.6.

Как добавить нужный токен в интерфейс MyEtherWallet, работающий в холодном режиме?

Чтобы отправить токены ERC-стандарта с помощью кошелька MyEtherWallet в холодном режиме нужно:

  • распаковать кошелек MyEtherWallet, поддерживающий работу в холодном режиме на онлайн и оффлайн-компьютер (последняя совместимая версия MEW 5.8.6);
  • открыть MEW на обеих компьютерах;
  • на онлайн-компьютере открыть свой адрес кошелька в обозревателе сети Ethereum, узнать точное название отправляемого токена, его контрактный адрес, десятичное значение, а также свой баланс, скопировать эту информацию в текстовый файл для переноса на оффлайн-компьютер;

Баланс нужного токена можно очень быстро найти, введя его название в строке поиска обозревателя блокчейна Ethereum. Пример отображения баланса токенов USDT стандарта ERC-20 (2 монеты) на адресе Ethereum в обозревателе (эксплорере) etherchain:

Для настройки оффлайн-кошелька нужно нажать на название токена, после чего браузер перейдет в окно с детальной информацией о нем:

Из этого окна нужно скопировать адрес контракта (для USDT это 0xdAC17F958D2ee523a2206206994597C13D831ec7), десятичное значение (строка Decimals, для USDT равная шести).

  • подготовить неподписанную оффлайн-транзакцию в программе MEW (раздел send-offline-helper) на онлайн-компьютере (подробнее этот процесс описан в статье Работа с кошельком MEW в «холодном» режиме), скопировать файл generated-offline-tx-*.json на флешку для переноса на оффлайн-компьютер;
  • на оффлайн-компьютере открыть кошелек MEW (открыть файл index.html):

  • войти в свой кошелек и перейти на поле Tokens и нажать на меню Custom Tokens:

  • в выпадающем окошке Add Custom Tokens ввести информацию о контрактном адресе токена (для USDT — 0xdAC17F958D2ee523a2206206994597C13D831ec7), его символ (например, USDT) и значение Decimals (для USDT — 6), а затем сохранить введенные значения (кнопка Save):

  • после этого в меню Send — Send Offline при выборе актива (меню Type) появится нужный токен:

  • для подписи транзакции в оффлайн-кошельке (холодном) открывается файл generated-offline-tx-*.json (кнопка Import JSON), вводится информация о ее размере (сумме), величине Gas Limit, производится ее подписывание и сохранение (Generate Transaction — Download JSON) файла signedTransactionObject-*.json для переноса на онлайн-компьютер. При выборе величины Gas Limit желательно установить значение большее, чем программа выдает по умолчанию (21000), например, установить лимит газа, равный 80000. В противном случае могут возникнуть ошибки, например, транзакция может быть отброшена, а потраченный газ сожжен и списан с баланса (об этом подробнее ниже). Сеть все равно использует текущее значение Gas Limit, неизрасходованный газ вренется на баланс кошелька. При желании сэкономить на стоимости транзакции можно уменьшить значение Gas Price (in Gwei), но при этом время обработки транзакции может очень увеличиться (подробнее в статье Сколько времени может длиться транзакция в сети Ethereum?);
  • на онлайн-кошельке открывается подготовленный шагом ранее файл signedTransactionObject-*.json (кнопка Upload JSON File), нажимается кнопка Continue, проверяется ее содержимое и нажимается кнопка Send.

При отправке ERC-токенов в строке получателя отображается контрактный адрес отправляемого токена (для USDT — 0xdAC17F958D2ee523a2206206994597C13D831ec7):

Посмотреть адрес получателя активов можно на вкладке Signed Transaction, нажав кнопку Raw Transaction (он отображается без приставки 0x, в данном случае это адрес 0xea674fdde714fd979de3edf0f56aa9716b898123, который выделен серым):

В случае успеха транзакция будет обработана и записана в блокчейн, ход ее выполнения можно отследить в обозревателе, например, на etherscan:

По завершению выполнения транзакции в окне обозревателя появится статус Success:

Некоторые проблемы, возникающие при отправке транзакций в MEW

Если при попытке отправить транзакцию в MEW возникает ошибка

Error: Returned error: intrinsic gas too low

нужно увеличить увеличить Gas Limit (подробнее в статье Как отправить транзакцию при ошибке Error: Returned error: intrinsic gas too low).

Иногда случается, что кошелек отправляет транзакцию в сеть, но выставленный лимит газа слишком мал, из-за чего она отбрасывается с ошибкой Error: out of gas или Error: Transaction has been reverted by the EVM: …

Обозреватель при этом отображает статус Fail:

Warning! Error encountered during contract execution [Out of gas]
ERC-20 Token Transfer Error (Unable to locate corresponding Transfer Event Logs), Check with Sender.

Самое обидное в этом случае то, что с баланса отправителя впустую списывается потраченный газ. В связи с этим перед отправкой лучше изучить в обозревателе последние успешно обработанные транзакции, подобные той, которая планируется к исполнению, обращая внимание на Gas Limit и Gas Price.

Размер Gas Price можно немного уменьшить в ущерб времени исполнения транзакции, а величину Gas Limit следует установить такой же, как у последних успешных транзакций отправляемого ERC-токена.

В случае если возникает ошибка:

Error: Returned error: nonce too low

нужно заново открыть оффлайн-кошелек MEW и опять создать транзакцию.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

English English Русский Русский