используем Metamask, Uniswap, PancakeSwap, Tornado cash локально, или защита от возможных санкций
Последнее время часто видим информацию о том, что децентрализованные приложения закрывают доступ для кошельков под санкциями или даже для всех кошельков из определённых стран.
Делают это лишь на уровне сайтов (на уровне фронтенда), т. к. в смартконтракт такое не внедрить.
Поэтому наша задача - научиться использовать локальные версии DApps. Чем в этой статье и займёмся.
1. Metamask
Допустим, новая версия расширения будет блокировать пользователей по IP, причём не Нода это будет делать, а сам кошелёк.
Это означает, что нам придётся искать старую версию и скачивать её, после чего загружать в браузер...
Идём на https://metamask.io/
Находим ссылку Github - она ведёт на https://github.com/MetaMask/metamask-extension/
Переходим - попадаем на соответствующую страницу:
Смотрим блок "Releases" и выбираем версию. Если вы скачали последнюю, но проблемы сохраняются, скачиваете предыдущую. И так до тех пор, пока не найдёте рабочую версию без блокировок и прочей ерунды. Я выбираю последнюю - https://github.com/MetaMask/metamask-extension/releases/tag/v10.13.0
Выбираю "metamask-chrome-10.13.0.zip" в "Assets" и сохраняю.
Переходим в папку загрузок и распаковываем архив, но не в текущую папку, а в свою:
Активируем режим разработчика:
Нажимаем "Загрузить распакованное расширение, выбираем папку с расширением и нажимаем Ok, после чего будет так:
А также появится страница Метамаска:
P. S. Подобным образом делается и с keplr, с Phantom и другими кошельками...
2. Uniswap и другие подобные ему DEX & 1INCH
Рассмотрим на примере Uniswap.
Для начала идём на https://uniswap.org/
Находим и кликаем по Github - попадём сюда: https://github.com/Uniswap
И выбираем Interface - https://github.com/Uniswap/interface
Доходим до релизов и выбираем нужный нам (принцип тот же: идём к более старой версии, пока не будет блокировок, санкций и прочего бреда...):
На странице Выбираем "Source code (zip)", загружаем и переходим в папку загрузок, после чего распаковываем (можно в эту папку):
Как видите, здесь нет index.html или чего-то подобного. Можно конечно зайти в public, но после открытия файла оттуда будет пустая страница, потому что это лишь шаблон...
Для установки нам нужен node.js: переходим на их сайт https://nodejs.org/en/download/
Выбираем версию для своей ОС, например, Windows Installer:
После скачивания запускаем и нажимаем "Next":
Читаем лицензионное соглашение, отмечаем и "Next":
Отмечаем флажок и "Next". Отмечаем, чтоб если какому-то DApp понадобятся устанавливаемые инструменты, не было ошибок (хотя для работы с указанными в статье примерами можно и не отмечать):
Если появится подтверждение действий, делаем это.
Ждём. По окончании нажимаем "Finish":
Не пугаемся этого окна - нажимаем любую клавишу 2 раза:
Далее появится PowerShell, где пойдёт установка:
Ждём окончания. Если зависло надолго, просто нажимаете ctrl+c - окно закроется.
Возвращаемся в папку, по пустому месту кликаем правой кнопкой мыши и выбираем "Открыть PowerShell здесь":
Появится такое окно, где вводим yarn install
Вводим в браузере http://localhost:3000/
В прочем, после запуска он откроется сам.
Metamask доступен - подтверждаю в кошельке подключение и вижу следующее:
Для остановки просто нажимаю ctrl+c и y в ответ на вопрос:
Можно сделать build: в этом случае будет папка с html файлом, но в данном режиме почему-то Uniswap не ловит Metamask. Поэтому только через start...
В качестве альтернативы Uniswap можно использовать 1inch
Репозиторий https://github.com/1inch/desktop-dapp
Вот только здесь лишь одна версия: будут ли развивать её, не знаю... Ссылка на релиз: https://github.com/1inch/desktop-dapp/releases/tag/v1.0.1
Можно скачать .exe файл - вот он в папке:
Но как оно взаимодействует с кошельками, без понятия... К сожалению, я в 1inch даже в браузере не могу подключить кошелёк...
Кстати, у PancakeSwap интерфейс https://github.com/pancakeswap/pancake-frontend
Здесь релизов нет - просто нажимаете "Code", а затем "Download ZIP":
Скаченный и распакованный архив:
Открывается PowerShell также. Сначала выполняем yarn install, после чего иную команду:
После - доступ по localhost:3000 (естественно параллельно запустить оба приложения не получится).
3. Tornado cash
К сожалению, на официальных фронтендах и там есть ограничения для некоторых адресов, по сему и его надо скачать...
Для этого переходим на https://github.com/tornado-repositories/ui-minified
Архив распакован в текущую папку:
Открываем PowerShell стандартным способом, после чего вводим команду:
npm install --global http-server
Переходим на http://localhost:8080/
Я уже авторизовал Metamask для демонстрации работоспособности.
ctrl+c в PowerShell останавливает сервер:
Всё
P. S. Я показал всё, как происходит в Windows, но в других ОС похожим способом.
Разве что в Linux командами больше, но для Линукса чаще всего инструкции пишут на сайтах, да и пользуются ими более опытные. Я же хотел создать инструкции для тех, кто находится в переходном периоде от простого пользователя Винды к пользователю Линукса.
Буду рад распространению статьи и подпискам на канал https://t.me/blind_dev
Есть вопросы? Пишите в https://t.me/blind_dev_chat