Больше никаких отправок токенов на неправильный адрес

Больше никаких отправок токенов на неправильный адрес

16 февраля 2023 г.

За последние несколько месяцев было несколько историй об отправке токенов на неверный адрес. Среди них Optimism Foundation отправил 20 миллионов токенов OP мультиподписи Wintermute, которая не была развернута, или кит Juno, который отправил токены Juno на 36 миллионов долларов на неправильный адрес из-за опечатки. Есть еще много таких случаев, с которыми вы можете столкнуться, просто изучая контракты токенов на Etherscan (например: 411K USDT находятся в контракте USDT )

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

Что, если вместо отправки токенов вы установите конкретную сумму, которую получатель может «востребовать» с помощью своего кошелька? Лучшее в этом методе то, что он позволяет легко исправить ошибки, поскольку вам нужно будет только отозвать утверждение.

Есть два способа сделать это: один — вручную, а другой — с помощью бесплатного инструмента с открытым исходным кодом под названием SafeTransfer. Оба метода будут представлены в следующих строках.

Использование обозревателя блокчейнов

В этом руководстве рассказывается, как использовать Etherscan для безопасной передачи токенов. Этот метод также работает с любым обозревателем цепочки блоков EVM, таким как Polygonscan, BscScan, Snowtrace, FtmScan и т. д.

Кроме того, доступно следующее видео с пошаговым объяснением процесса: https://youtu.be/K25cwTw1EQI

Подтверждение отправки токенов

Чтобы отправить токены способом, описанным ранее, вам необходимо утвердить сумму, которую вы хотите отправить, и выбрать получателя.

  1. Перейдите на Coingecko или CoinMarketCap, чтобы найти токен, который хотите перевести:

    Страница Coingecko USDT

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

2. Перейдите в Etherscan или в обозреватель блокчейна EVM используемого вами блокчейна.

3. Выберите вкладку «Контракт», нажмите «Записать контракт» и подключите свой кошелек, нажав «Подключиться к Web3». Это должно отобразить страницу, похожую на ту, что показана на снимке экрана ниже

![USDT contract page on Etherscan](https://cdn.hackernoon.com/images/Ep7Sx5DE0fQ7G67qlJiiK6lSFno1-iib3rjz.png)

4. Как только вы подключитесь, найдите функцию «одобрить» и израсходуйте ее. Вы должны увидеть два поля. Один для адреса плательщика и один для суммы, которую вы хотите утвердить. Поскольку я привык умножать на 10**18 каждую сумму, которую хочу перевести, я заранее не заметил, что с контрактом USDT все по-другому, поскольку токен USDT поддерживает только 6 знаков после запятой.

:::информация В поле «Сумма» умножьте сумму, которую вы хотите перевести, на 10**6, где 6 — это десятичные разряды токена USDT ERC-20, который вы переводите.

По умолчанию ERC20 использует значение 18 для десятичных знаков. Всегда проверяйте страницу токена в обозревателе блокчейна EVM.

:::

На снимке экрана ниже я одобряю 40 USDT, которые нужно потратить 0x9d….7A6D. Следующим шагом будет нажатие на кнопку «Написать» и подтверждение вашего кошелька.

Approve function for USDT on Etherscan

Получить токены

  1. Чтобы получить токены, отправьте получателю страницу контракта с токеном.

2. Затем ваш получатель должен будет подключить свой кошелек к Etherscan и выполнить «Запись контракта» так же, как это сделал отправитель, но на этот раз получатель должен будет найти функцию «transferFrom».

3. После заполнения полей получатель должен примерно как на скриншоте ниже.

transferFrom function for USDT on Etherscan

  1. Последний шаг — нажать «Записать» и завершить транзакцию в своей метамаске. В случае ошибки вы все равно можете отозвать одобрение с помощью RevokeCash.

Transaction detail

Вуаля! Получатель, наконец, смог «забрать» токены прямо из вашего кошелька. С помощью этого метода нет возможности отправить токены на неправильный адрес. Самым большим ограничением этого метода является то, сколько времени он может занять. Это также требует, чтобы вы знали, как взаимодействовать с контрактами на Etherscan (что может быть полезно). Второй метод следует той же схеме, но упрощает весь этот процесс.

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

SafeTransfer – это бесплатное решение с открытым исходным кодом, которое делает все вышеперечисленное за вас. В этом руководстве вы узнаете, как использовать Polygonscan для безопасной передачи токенов.

Кроме того, доступно следующее видео с пошаговым объяснением процесса: https://youtu.be/K25cwTw1EQI

Подтверждение отправки токенов

  1. Перейдите на страницу safetransfer.cash. Подключите кошелек, выберите сеть, укажите адрес получателя, выберите токен и сумму, которую хотите перевести.

2. Наконец, нажмите «Подтвердить» и завершите утверждение в своем кошельке. Это должно сгенерировать ссылку, которую вы можете отправить получателю. У вас должно получиться что-то похожее на скриншот ниже.

![SafeTransfer page after approval (screenshot)](https://cdn.hackernoon.com/images/Ep7Sx5DE0fQ7G67qlJiiK6lSFno1-79g3req.png)

Если вы откроете ссылку самостоятельно, вы также сможете отменить утверждение.

Link to receive opened by the sender

Получить токены

  1. Чтобы получить токены, отправьте ссылку, сгенерированную SafeTransfer, своему получателю, где ему просто нужно подключить свой кошелек, нажать кнопку «Получить» и завершить транзакцию в своем кошельке. Страница получения должна выглядеть так, как показано на снимке экрана ниже.

Link to receive opened by the receiver

Вот так просто. Оба метода работают одинаково. Не стесняйтесь использовать тот, который вам нравится, чтобы сделать ваши передачи токенов более безопасными, чем когда-либо прежде.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE