December 3, 2023

Смена приватника в Starknet

Картинку сгенерила нейросетка

!! DISCLAIMER !!

Любые действия с кодом вы делаете на свой страх и риск, потеря приватника или старого адреса кошелька сулит потерю доступа к средствам! Сначала тестируйте на пустых кошельках с балансом около 1$.

Материалы основаны на статьях Разнорабочего, а именно с этим постов - Argent, Braavos. Прочитай сначала их, а потом возвращайтесь. И сделайте человеку подарок, подпишитесь на его канал, чтобы к новому году был 1к подписчиков :)

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

Статья будет поделена на разделы отдельно Braavos и Argent, т.к. там используются разные методы, с Argent'ом будет сильно легче.

Содержание:

Argent 2fa

У Argent есть функция Argent Shield - это типо двухфакторка, которая вяжет ваше железо с аккаунтом к почте. Детально, в посте у Ильдара или у Аллерии.

Я на этом останавливаться не буду, ребята уже сделали хорошие гайды, как это всё сделать.

Argent софтом

В первую очередь надо скачать с гитхаба сам скрипт - https://github.com/Tawer95/starknet-change-owner/tree/main

Я добавил туда масс-ченджер и сейчас поясню почему:

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

Поэтому касательно Argent'а я составил скрипт по смене приватников, а для Braavos этого делать не будем, т.к. с нуля скамеры вряд ли смогут написать(только очень маленькая часть этих скамеров).

Дальше, пояснение для не-кодеров, как сделать так, чтобы заработало.

Вам нужно выполнить следующие шаги:

  1. Установка Node.js: Если у вас его нет, установите Node.js. Вы можете скачать его с официального сайта Node.js. При установке Node.js у вас также устанавливается менеджер пакетов npm.
  2. Откройте терминал, командную строку или терминал VSCode : Переходим в папку со скриптом, оттуда будем делать все остальные кодовые непотребства.
  3. Установка зависимостей: Выполните следующую команду для установки зависимостей:
    npm install Эта команда просмотрит файл package.json, установит все зависимости и создаст папку node_modules.
  4. Пошаговая настройка скрипта: а) Убедитесь, что поменяли в файле constants.ts RPC на свою. Проблема в том, что эта RPC может лагать, рекомендую взять с Алхимии или с LavaNet.

    б) Заполните файлы original-private-key.txt и new-private-key.txt старым и новым приватников соответственно. Новый можно выбрать самому, изменить пару символов в старом будет достаточно. Если вы только тестируете функционал, то заполнять нужно только ОДНИМ старым приватником и ОДНИМ новым, чтобы не потерять средства и не сделать что-то не то. Запуск тестового ченджа запускается командой
    npm run ts-loader index.ts

    в) Как только убедитесь, что всё работает и в сканере ваш кошелёк изменил собственника(картинка под текстом), можете приступать к тестам с отправкой старым и новым приватником.
Произошла смена приватного ключа

Теперь идём в файл transfer.ts и меняем там переменную address на адрес, который у вас был в кошельке Argent, который мы меняли, это делается для того, что из-за смены приватника у вас сменился и публичный адрес, который формируется из этого приватника, почему так - детально читайте в статье Разнорабочего.

Как только замените свой адрес/публичный ключ в этой переменной, можете запускать код командой
npm run ts-loader transfer.ts

Должны произойти примерно так:

Проверка старого и нового ключа

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

Масс-ченджер для Argent

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

Я добавил новый файл в скрипт(поэтому и указал мой гитхаб, а не с разнорабочего), который позволяет массово менять приватники у Argent кошельков, а не по одному.

Как это сделать:

  • Заполняем файлы original-private-key.txt и new-private-key.txt парами старый приватник-новый приватник. Каждый ключ должен находится в той же строке, что и его собрат, на которого будем менять.
Как приватники заполнять

После заполнения всех приватников, мы готовы запускать код, команда для этого такая:
npm run ts-loader mass-change.ts

И вам в консоль польётся сообщение с тем, что транзы отправлены, можете проверить пару кошельков, что всё прошло успешно, как это сделать описал чуть выше. Массово проверить кошельки не получится, я пока не писал новый скрипт под масс-проверку, может допишу чуть позже.

Что из важного стоит упомянуть:

1) Во-первых, теперь из веб-морды аргента вы не сможете посылать транзы, даже если грузанетё новый приватник. Новый приватник выводит новый адрес, но работает только со старым адресом. Такая вот чехарда.

2) Этот пункт вытекает из прошлого, вам теперь нужно хранить новый приватник + старый адрес, чтобы скрипты работали.

3) Исходя из двух предыдущих, все скрипты, которые сейчас написаны на публику (сибилл-вейв и другие) - НЕ БУДУТ РАБОТАТЬ. Их нужно переписать, чтобы они брали адрес из вашего списка старых адресов, а сейчас они выводят из приватника эти адреса.

Braavos

Тут я тоже расписывать не буду, сам Разнорабочий уже всё сделал чётко, советую просто прочитать его статью, как привязывать свой Braavos к телефону.

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

Короче, не теряйтесь и не теряйте приватники, это слишком дорого в нашем деле :)