- Регистрация
- 10.03.2016
- Сообщения
- 97
- Благодарностей
- 35
- Баллы
- 18
Привет, форумчане!
Прошло не мало времени как я познакомился с ZennoPoster и начал осваивать все прелести автоматизации. За это время я получил много полезной информации от форума, за что всем огромное спасибо!
И вот, наконец-то, решился внести свой небольшой вклад в это замечательное комьюнити. Приступим.
В этой статье хочу поделитсякостылем решением, которое поможет нам расширить функционал Zennoposter с помощью стороннего кода, заранее скомпилированного в exe файл. Понимаю, что для многих я не открою Америки, но для новичков и тех кто "работает в криптовалюте" думаю пригодится
. Покажу на примере C# так как он ближе, роднее, но само собой этот способ можно реализовать используя абсолютно любой ЯП.
Суть поставленной задачи: получить приватный и публичный ключ из сид фразы для Solana чейна. На первый взгляд вроде как все просто, есть библиотеки Solnet.Wallet и SimpleBase которые на раз справятся с этим, но минимальные требования либ - .Net 5.0, а у нас .Net 4.8
Учитывая возникшие несовместимости давайте скомпилируем приведенный ниже код в exe файл и выполним все за бортом ЗП, результат выполнения получим обратно в наш шаблон, для дальнейшего использования.
Код на входе в качестве аргументов получает нашу сид фразу, а на выходе отдает нам ключи.
Для проверки корректности работы нашей будущей программы возьмем валидную сид фразу
privateKey:
publicKey:
Теперь, когда у нас есть верный результат, можем приступить к компиляции кода.
Для компиляции кода :
1. Устанавливаем .NET 6 SDK (если ещё не установлен).
2. Создаем рабочую папку в любом месте на ПК и сохраняем наш код в текстовый файл с расширением .cs
В моем случае это папка по пути
3. Открываем терминал Windows (Win+R > cmd) и переходим в нашу папку командой
4. Создаем консольное приложение
После этой команды у нас создастся папка SolanaKeyGen и в ней структура приложения.
5. Та как в файле Program.cs у нас Hello, World! - удаляем в нем все, вставляем туда наш код из SolanaKeyGen.cs и сохраняем.
6. Далее переходим в папку SolanaKeyGen
7. Устанавливаем необходимые библиотеки
8. Компилируем наш проект
Если все прошло успешно то готовый .exe появится в SolanaKeyGen/bin/Release/net6.0/win-x64/publish/
9. Чтобы не бегать по папкам копируем полученный .exe в папку SolanaKeyGen и прямо в терминале проверяем наш EXEшник
Работает) Обратите внимание в качестве аргументов мы передаем программе нашу сид фразу, ну а на выходе получаем валидные ключи.
Для использования нашего exe файла в ЗП удобно использовать ниже приведенный снипет, хотя можно и с помощью стандартного кирпича "Запуск программы".
Видео процесса:
На этом все, спасибо за внимание, если будут вопросы - пишите комментарии либо в ТГ.
Мои контакты:
Телеграм: https://t.me/z3p3r
Телеграм канал: https://t.me/auto_drops
Прошло не мало времени как я познакомился с ZennoPoster и начал осваивать все прелести автоматизации. За это время я получил много полезной информации от форума, за что всем огромное спасибо!

В этой статье хочу поделится

Суть поставленной задачи: получить приватный и публичный ключ из сид фразы для Solana чейна. На первый взгляд вроде как все просто, есть библиотеки Solnet.Wallet и SimpleBase которые на раз справятся с этим, но минимальные требования либ - .Net 5.0, а у нас .Net 4.8

Учитывая возникшие несовместимости давайте скомпилируем приведенный ниже код в exe файл и выполним все за бортом ЗП, результат выполнения получим обратно в наш шаблон, для дальнейшего использования.
SolanaKeyGen.cs:
using System;
using Solnet.Wallet;
using SimpleBase;
class Program
{
static void Main(string[] args)
{
if (args.Length == 0)
{
Console.WriteLine("Error: No seed phrase provided.");
return;
}
// Получаем seed phrase из аргументов командной строки
string mnemonic = string.Join(" ", args);
try
{
// Создаём кошелёк Solana
Wallet wallet = new Wallet(mnemonic);
// Получаем первый аккаунт (m/44'/501'/0'/0')
Account account = wallet.GetAccount(0);
// Приватный ключ (64 байта, Ed25519)
byte[] privateKeyBytes = account.PrivateKey; // ✅ Используем `account.PrivateKey`, который уже byte[]
// Кодируем приватный ключ в Base58 (Solana формат)
string privateKeyBase58 = Base58.Bitcoin.Encode(privateKeyBytes.AsSpan());
// Публичный ключ (Base58)
string publicKeyBase58 = account.PublicKey.Key;
// Выводим ключи
Console.WriteLine(privateKeyBase58+":"+ publicKeyBase58);
}
catch (Exception ex)
{
Console.WriteLine("❌ Error: " + ex.Message);
}
}
}
Для проверки корректности работы нашей будущей программы возьмем валидную сид фразу
execute bubble involve chief card planet year exhibit book opera beyond reveal
импортируем ее в расширение BackPack и получим ключи:privateKey:
3GdcP9ccbfEZpBwQQF8qwgCL6bPet48k6tHPaCoEYpLFWYtyEVuSXjib2HLBEVsxEZZGjTe59JDYReg9jZJDbuYM
publicKey:
GwwNCFnbNp9KjXiXrbTqjCi1TU74NJJ3gbLFfikSfogm
Теперь, когда у нас есть верный результат, можем приступить к компиляции кода.
Для компиляции кода :
1. Устанавливаем .NET 6 SDK (если ещё не установлен).
2. Создаем рабочую папку в любом месте на ПК и сохраняем наш код в текстовый файл с расширением .cs
В моем случае это папка по пути
F:\sol\
и файл SolanaKeyGen.cs
3. Открываем терминал Windows (Win+R > cmd) и переходим в нашу папку командой
cd /d F:\sol\
4. Создаем консольное приложение
dotnet new console -n SolanaKeyGen
После этой команды у нас создастся папка SolanaKeyGen и в ней структура приложения.
5. Та как в файле Program.cs у нас Hello, World! - удаляем в нем все, вставляем туда наш код из SolanaKeyGen.cs и сохраняем.
6. Далее переходим в папку SolanaKeyGen
cd SolanaKeyGen
7. Устанавливаем необходимые библиотеки
dotnet add package Solnet.Wallet
и dotnet add package SimpleBase
8. Компилируем наш проект
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
Если все прошло успешно то готовый .exe появится в SolanaKeyGen/bin/Release/net6.0/win-x64/publish/
9. Чтобы не бегать по папкам копируем полученный .exe в папку SolanaKeyGen и прямо в терминале проверяем наш EXEшник
SolanaKeyGen.exe "execute bubble involve chief card planet year exhibit book opera beyond reveal"
Работает) Обратите внимание в качестве аргументов мы передаем программе нашу сид фразу, ну а на выходе получаем валидные ключи.
Для использования нашего exe файла в ЗП удобно использовать ниже приведенный снипет, хотя можно и с помощью стандартного кирпича "Запуск программы".
Дерективы Using:
using System.Diagnostics;
run SolanaKeyGen.exe:
// Seed-фраза
string mnemonic = "execute bubble involve chief card planet year exhibit book opera beyond reveal";
// Путь к .exe файлу
string exePath = @"F:\sol\SolanaKeyGen\SolanaKeyGen.exe";
// Запускаем процесс
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = exePath,
Arguments = "\"" + mnemonic + "\"", // Передаём seed как аргумент
RedirectStandardOutput = true, // Читаем результат
UseShellExecute = false,
CreateNoWindow = true
};
Process process = new Process { StartInfo = psi };
process.Start();
// Читаем результат
string result = process.StandardOutput.ReadToEnd().Trim();
process.WaitForExit();
// Присваиваем значения переменным ZennoPoster
project.Variables["solPrivateKey"].Value = result.Split(':')[0];
project.Variables["solPublicKey"].Value = result.Split(':')[1];
return result;
На этом все, спасибо за внимание, если будут вопросы - пишите комментарии либо в ТГ.
Мои контакты:
Телеграм: https://t.me/z3p3r
Телеграм канал: https://t.me/auto_drops
Вложения
-
10,6 КБ Просмотры: 10
Последнее редактирование: