[SPOILER= Api]
[SPOILER= AiApi]
Класс AI
Описание Класс AI предназначен для интеграции с различными сервисами искусственного интеллекта в проектах ZennoPoster. Он позволяет отправлять запросы к AI-сервисам (Perplexity, AI.IO) и получать текстовые ответы. Класс поддерживает различные предустановленные функции для генерации твитов, оптимизации кода и создания обращений в службу поддержки Google.
Конструкторы
AI(IZennoPosterProjectModel project, string provider, string model = null, bool log = false)
Описание: Создает экземпляр AI-клиента с указанным провайдером и настройками. Параметры:
- project - модель проекта ZennoPoster
- provider - провайдер AI-сервиса (“perplexity” или “aiio”)
- model - конкретная модель для использования (необязательно)
- log - включить подробное логирование (по умолчанию false)
Пример: [CODE=csharp] var ai = new AI(project, “perplexity”, “llama-3.3-70b”, true); project.SendInfoToLog(“AI клиент создан с провайдером Perplexity”, false); [/CODE]
Публичные методы
Query(string systemContent, string userContent, string aiModel = “rnd”, bool log = false)
Возвращает: string - ответ от AI-сервиса Описание: Отправляет запрос к AI-сервису с системным промптом и пользовательским контентом. Если модель не указана, выбирается случайная из доступных. Параметры:
- systemContent - системный промпт для настройки поведения AI
- userContent - пользовательский запрос или контент для обработки
- aiModel - модель AI для использования (по умолчанию “rnd” - случайная)
- log - включить логирование запроса
Пример: [CODE=csharp] string systemPrompt = “Ты помощник по программированию”; string userQuery = “Объясни что такое циклы в C#”; string response = ai.Query(systemPrompt, userQuery, “deepseek-ai/DeepSeek-R1-0528”); project.SendInfoToLog($“Ответ AI: {response}”, false); [/CODE]
GenerateTweet(string content, string bio = "", bool log = false)
Возвращает: string - сгенерированный текст твита (до 220 символов) Описание: Генерирует твит на основе переданного контента и биографии аккаунта. Автоматически проверяет длину и перегенерирует при превышении лимита. Параметры:
- content - контент или тема для твита
- bio - биография аккаунта для персонализации стиля (необязательно)
- log - включить логирование
Пример: [CODE=csharp] string tweetContent = “Новости из мира криптовалют”; string accountBio = “Криптоэнтузиаст и блокчейн-разработчик”; string tweet = ai.GenerateTweet(tweetContent, accountBio); project.SendInfoToLog($“Сгенерирован твит: {tweet}”, false); [/CODE]
OptimizeCode(string content, bool log = false)
Возвращает: string - оптимизированный код Описание: Оптимизирует переданный код с точки зрения веб3-разработки. Возвращает только чистый код без объяснений и комментариев. Параметры:
- content - исходный код для оптимизации
- log - включить логирование
Пример: [CODE=csharp] string originalCode = “function transfer(address, amount) { /* неоптимальный код */ }”; string optimizedCode = ai.OptimizeCode(originalCode, true); project.SendInfoToLog(“Код оптимизирован”, false); [/CODE]
GoogleAppeal(bool log = false)
Возвращает: string - текст обращения в службу поддержки Google (до 200 символов) Описание: Генерирует обращение в службу поддержки Google для разблокировки аккаунта. Имитирует стиль обычного пользователя с небольшими грамматическими ошибками. Параметры:
- log - включить логирование
Пример: [CODE=csharp] string appealMessage = ai.GoogleAppeal(); project.SendInfoToLog($“Обращение в Google: {appealMessage}”, false); //отправить сообщение в форму поддержки [/CODE][/SPOILER] [SPOILER= BinanceApi]
BinanceApi
Класс для работы с API биржи Binance в ZennoPoster. Позволяет выводить средства, получать информацию о балансах и истории выводов. Автоматически обрабатывает авторизацию и подпись запросов.
Конструкторы
BinanceApi(IZennoPosterProjectModel project, bool log = false)
Создает новый экземпляр класса для работы с Binance API.
Параметры:
project- модель проекта ZennoPosterlog- включить ли логирование (по умолчанию false)
Пример: [CODE=csharp] var binanceApi = new BinanceApi(project, log: true); //создать экземпляр с включенным логированием [/CODE]
Методы
string Withdraw(string coin, string network, string address, string amount)
Возвращает: Ответ сервера в виде JSON строки
Выполняет вывод криптовалюты на указанный адрес через выбранную сеть.
Параметры:
coin- символ монеты (например, “USDT”)network- название сети (например, “ethereum”, “bsc”, “arbitrum”)address- адрес кошелька для выводаamount- сумма вывода
Пример: [CODE=csharp] string result = binanceApi.Withdraw(“USDT”, “ethereum”, “0x742d35Cc6565C42c3928…”, “100”); project.SendInfoToLog($“Результат вывода: {result}”); [/CODE]
Dictionary<string, string> GetUserAsset()
Возвращает: Словарь с балансами всех активов (ключ - символ монеты, значение - доступный баланс)
Получает информацию о всех балансах пользователя.
Пример: [CODE=csharp] var balances = binanceApi.GetUserAsset(); foreach(var balance in balances) { project.SendInfoToLog($“{balance.Key}: {balance.Value}”); //вывести баланс каждой монеты } [/CODE]
string GetUserAsset(string coin)
Возвращает: Доступный баланс указанной монеты в виде строки
Получает баланс конкретной криптовалюты.
Параметры:
coin- символ монеты
Пример: [CODE=csharp] string usdtBalance = binanceApi.GetUserAsset(“USDT”); project.SendInfoToLog($“Баланс USDT: {usdtBalance}”); [/CODE]
List GetWithdrawHistory()
Возвращает: Список строк с историей выводов в формате “id:amount:coin:status”
Получает полную историю всех выводов.
Пример: [CODE=csharp] var history = binanceApi.GetWithdrawHistory(); foreach(string withdrawal in history) { project.SendInfoToLog($“Вывод: {withdrawal}”); //показать каждую транзакцию } [/CODE]
string GetWithdrawHistory(string searchId = "")
Возвращает: Информацию о конкретной транзакции или “NoIdFound: {searchId}”
Поиск конкретной транзакции вывода по ID.
Параметры:
searchId- ID транзакции для поиска (необязательный)
Пример: [CODE=csharp] string transaction = binanceApi.GetWithdrawHistory(“12345”); if(!transaction.Contains(“NoIdFound”)) { project.SendInfoToLog($“Найдена транзакция: {transaction}”); } [/CODE][/SPOILER] [SPOILER= DMailApi]
DMail
Класс для работы с почтовым сервисом DMail. Позволяет авторизоваться в системе, получать список писем, читать сообщения, отмечать их как прочитанные или перемещать в корзину.
Конструкторы
DMail(IZennoPosterProjectModel project, string key = null, bool log = false)
Создает новый экземпляр класса DMail.
Параметры:
project- проект ZennoPosterkey- приватный ключ кошелька (необязательно, может быть получен из базы данных проекта)log- включить логирование (по умолчанию false)
Пример: [CODE=csharp] //создать экземпляр без логирования var dmail = new DMail(project);
//создать экземпляр с логированием и указанным ключом var dmail = new DMail(project, “your_private_key”, true); [/CODE]
Публичные методы
CheckAuth() : void
Проверяет и устанавливает авторизацию в системе DMail. Автоматически пытается получить данные авторизации из переменных проекта или выполнить повторную авторизацию.
Возвращаемое значение: нет
Описание: Проверяет наличие токенов авторизации и при необходимости выполняет процедуру входа в систему.
Пример: [CODE=csharp] var dmail = new DMail(project); //проверить авторизацию dmail.CheckAuth(); [/CODE]
GetAll() : dynamic
Получает список всех писем из папки “Входящие”.
Возвращаемое значение: динамический объект с массивом писем
Описание: Загружает первые 20 писем из папки входящих сообщений.
Пример: [CODE=csharp] var dmail = new DMail(project); //получить все письма dynamic allMails = dmail.GetAll(); project.SendInfoToLog($“Получено писем: {allMails.Count}”); [/CODE]
ReadMsg(int index = 0, dynamic mail = null, bool markAsRead = true, bool trash = true) : Dictionary<string, string>
Читает конкретное письмо по индексу.
Возвращаемое значение: словарь с данными письма (отправитель, дата, тема, содержимое, идентификаторы)
Описание: Извлекает содержимое письма и опционально отмечает его как прочитанное или перемещает в корзину.
Параметры:
index- индекс письма в списке (по умолчанию 0)mail- объект с письмами (если не указан, использует последний загруженный список)markAsRead- отметить как прочитанное (по умолчанию true)trash- переместить в корзину (по умолчанию true)
Пример: [CODE=csharp] var dmail = new DMail(project); dmail.GetAll(); //прочитать первое письмо без удаления var message = dmail.ReadMsg(0, markAsRead: true, trash: false); project.SendInfoToLog($“От: {message[“sender”]}, Тема: {message[“subj”]}”); [/CODE]
GetUnread(bool parse = false, string key = null) : string
Получает информацию о непрочитанных сообщениях.
Возвращаемое значение: JSON-строка с информацией или конкретное значение, если указан ключ
Описание: Возвращает статистику непрочитанных писем и использования почтового ящика.
Параметры:
parse- парсировать ответ (по умолчанию false)key- конкретный ключ для извлечения (“mail_unread_count”, “message_unread_count”, “not_read_count”, “used_total_size”)
Пример: [CODE=csharp] var dmail = new DMail(project); //получить количество непрочитанных писем string unreadCount = dmail.GetUnread(key: “mail_unread_count”); project.SendInfoToLog($“Непрочитанных писем: {unreadCount}”);
//получить полную информацию string fullInfo = dmail.GetUnread(); project.SendInfoToLog($“Полная статистика: {fullInfo}”); [/CODE]
Trash(int index = 0, string dm_scid = null, string dm_smid = null) : void
Перемещает письмо в корзину.
Возвращаемое значение: нет
Описание: Перемещает указанное письмо из папки “Входящие” в корзину.
Параметры:
index- индекс письма (по умолчанию 0)dm_scid- идентификатор беседы (если не указан, получает автоматически)dm_smid- идентификатор сообщения (если не указан, получает автоматически)
Пример: [CODE=csharp] var dmail = new DMail(project); dmail.GetAll(); //переместить первое письмо в корзину dmail.Trash(0); project.SendInfoToLog(“Письмо перемещено в корзину”); [/CODE]
MarkAsRead(int index = 0, string dm_scid = null, string dm_smid = null) : void
Отмечает письмо как прочитанное.
Возвращаемое значение: нет
Описание: Изменяет статус письма на “прочитано” без перемещения в корзину.
Параметры:
index- индекс письма (по умолчанию 0)dm_scid- идентификатор беседы (если не указан, получает автоматически)dm_smid- идентификатор сообщения (если не указан, получает автоматически)
Пример: [CODE=csharp] var dmail = new DMail(project); dmail.GetAll(); //отметить первое письмо как прочитанное dmail.MarkAsRead(0); project.SendInfoToLog(“Письмо отмечено как прочитанное”); [/CODE][/SPOILER] [SPOILER= FirstMail]
FirstMail
Класс для работы с API сервиса временной почты FirstMail. Позволяет получать письма, извлекать из них коды подтверждения и ссылки.
Конструкторы
FirstMail(IZennoPosterProjectModel project, bool log = false)
Создает новый экземпляр класса FirstMail.
Параметры:
project(IZennoPosterProjectModel) - проект ZennoPosterlog(bool) - включить логирование (по умолчанию false)
Пример: [CODE=csharp] // создать экземпляр без логирования var firstMail = new FirstMail(project);
// создать экземпляр с логированием var firstMail = new FirstMail(project, true); [/CODE]
Методы
GetMail(string email)
Получает последнее письмо для указанного email адреса и загружает его в JSON объект проекта.
Возвращает: string - JSON ответ от API
Параметры:
email(string) - email адрес для получения писем
Пример: [CODE=csharp] // получить последнее письмо string jsonResponse = firstMail.GetMail(“user@example.com”);
// данные письма теперь доступны через project.Json string subject = project.Json.subject; // тема письма string text = project.Json.text; // текст письма [/CODE]
GetOTP(string email)
Извлекает 6-значный код подтверждения из последнего письма. Ищет код в теме, тексте и HTML содержимом письма.
Возвращает: string - найденный 6-значный код
Параметры:
email(string) - email адрес для поиска кода
Пример: [CODE=csharp] try { // получить код подтверждения string otpCode = firstMail.GetOTP(“user@example.com”); project.SendInfoToLog("Получен код: {otpCode}"); } catch (Exception ex) { project.SendErrorToLog(“Ошибка получения кода: {ex.Message}”); } [/CODE]
GetLink(string email)
Извлекает первую найденную ссылку (http/https) из текста последнего письма.
Возвращает: string - найденная ссылка
Параметры:
email(string) - email адрес для поиска ссылки
Пример: [CODE=csharp] try { // получить ссылку из письма string link = firstMail.GetLink(“user@example.com”); project.SendInfoToLog($“Найдена ссылка: {link}”);
// можно использовать ссылку для перехода
tab.Navigate(link);
} catch (Exception ex) { project.SendErrorToLog($“Ссылка не найдена: {ex.Message}”); } [/CODE]
Delete(string email, bool seen = false)
Удаляет письма для указанного email адреса.
Возвращает: string - JSON ответ от API
Параметры:
email(string) - email адресseen(bool) - удалить только прочитанные письма (по умолчанию false)
Пример: [CODE=csharp] // удалить все письма string result = firstMail.Delete(“user@example.com”);
// удалить только прочитанные письма string result = firstMail.Delete(“user@example.com”, true); [/CODE]
GetOne(string email)
Получает одно последнее письмо для указанного email адреса.
Возвращает: string - JSON ответ от API
Параметры:
email(string) - email адрес
Пример: [CODE=csharp] // получить одно письмо string message = firstMail.GetOne(“user@example.com”); project.Json.FromString(message); [/CODE]
GetAll(string email)
Получает все письма для указанного email адреса.
Возвращает: string - JSON ответ от API с массивом писем
Параметры:
email(string) - email адрес
Пример: [CODE=csharp] // получить все письма string allMessages = firstMail.GetAll(“user@example.com”); project.Json.FromString(allMessages);
// обработать каждое письмо в цикле for (int i = 0; i < project.Json.messages.Count; i++) { string subject = project.Json.messages[i].subject; project.SendInfoToLog($“Письмо {i}: {subject}”); } [/CODE][/SPOILER] [SPOILER= GalxeApi]
Galxe
Класс для работы с платформой Galxe. Позволяет парсить задания на странице, получать информацию о пользователе и лояльные очки через GraphQL API.
Конструкторы
Galxe(IZennoPosterProjectModel project, Instance instance, bool log = false)
Создает новый экземпляр класса Galxe.
Параметры:
project(IZennoPosterProjectModel) - проект ZennoPosterinstance(Instance) - экземпляр браузераlog(bool) - включить логирование (по умолчанию false)
Пример: [CODE=csharp] // создать экземпляр для работы с Galxe var galxe = new Galxe(project, instance);
// создать экземпляр с логированием var galxe = new Galxe(project, instance, true); [/CODE]
Методы
ParseTasks(string type = “tasksUnComplete”, bool log = false)
Парсит задания на текущей странице Galxe и возвращает список элементов в зависимости от типа.
Возвращает: List<HtmlElement> - список найденных элементов заданий
Параметры:
type(string) - тип заданий для возврата: “tasksComplete”, “tasksUnComplete”, “reqComplete”, “reqUnComplete”, “refComplete”, “refUnComplete” (по умолчанию “tasksUnComplete”)log(bool) - включить логирование (по умолчанию false)
Пример: [CODE=csharp] // получить невыполненные задания var uncompletedTasks = galxe.ParseTasks(“tasksUnComplete”); project.SendInfoToLog($“Найдено невыполненных заданий: {uncompletedTasks.Count}”);
// получить выполненные требования var completedRequirements = galxe.ParseTasks(“reqComplete”);
// пройти по всем невыполненным заданиям foreach (var task in uncompletedTasks) { project.SendInfoToLog($“Задание: {task.InnerText}”); // кликнуть по заданию task.Click(); } [/CODE]
BasicUserInfo(string token, string address)
Получает базовую информацию о пользователе через GraphQL API Galxe.
Возвращает: string - JSON ответ с информацией о пользователе или null при ошибке
Параметры:
token(string) - токен авторизацииaddress(string) - адрес кошелька пользователя
Пример: [CODE=csharp] string userToken = “Bearer your_token_here”; string walletAddress = “0x1234567890abcdef…”;
// получить информацию о пользователе string userInfo = galxe.BasicUserInfo(userToken, walletAddress);
if (userInfo != null) { project.Json.FromString(userInfo);
// извлечь данные пользователя
string username = project.Json.data.addressInfo.username;
string userLevel = project.Json.data.addressInfo.userLevel.level.name;
int experience = project.Json.data.addressInfo.userLevel.exp;
project.SendInfoToLog($"Пользователь: {username}, Уровень: {userLevel}, Опыт: {experience}");
} else { project.SendErrorToLog(“Не удалось получить информацию о пользователе”); } [/CODE]
GetLoyaltyPoints(string alias, string address)
Получает информацию о лояльных очках пользователя в конкретном пространстве Galxe.
Возвращает: string - JSON ответ с информацией об очках лояльности или null при ошибке
Параметры:
alias(string) - псевдоним (алиас) пространства в Galxeaddress(string) - адрес кошелька пользователя
Пример: [CODE=csharp] string spaceAlias = “example-space”; string walletAddress = “0x1234567890abcdef…”;
// получить очки лояльности string loyaltyInfo = galxe.GetLoyaltyPoints(spaceAlias, walletAddress);
if (loyaltyInfo != null) { project.Json.FromString(loyaltyInfo);
// извлечь данные об очках
int points = project.Json.data.space.addressLoyaltyPoints.points;
int rank = project.Json.data.space.addressLoyaltyPoints.rank;
project.SendInfoToLog($"Очки лояльности: {points}, Ранг: {rank}");
} else { project.SendErrorToLog(“Не удалось получить очки лояльности”); } [/CODE][/SPOILER] [SPOILER= GasZipApi]
GazZip
Класс для выполнения операций межсетевого перевода токенов (рефьюел) через протокол GasZip. Позволяет автоматически находить подходящую сеть с достаточным балансом и выполнять переводы в указанную целевую сеть.
Конструкторы
GazZip(IZennoPosterProjectModel project, string key = null, bool log = false)
Создает новый экземпляр класса GazZip для работы с межсетевыми переводами.
Параметры:
project- проект ZennoPoster для работы с логами и переменнымиkey- ключ для операций (опционально)log- включить подробное логирование операций
Пример: [CODE=csharp] // создать экземпляр с логированием var gazZip = new GazZip(project, log: true);
// создать экземпляр без логирования var gazZip = new GazZip(project); [/CODE]
Методы
Refuel(string chainTo, decimal value, string rpc = null, bool log = false)
Возвращает: string - хеш транзакции или сообщение об ошибке
Выполняет межсетевой перевод указанной суммы ETH в целевую сеть через протокол GasZip.
Параметры:
chainTo- целевая сеть (поддерживает: “sepolia”, “soneum”, “bsc”, “gravity”, “zero”, “opbnb” или hex-адрес)value- сумма для перевода в ETHrpc- RPC эндпоинт исходной сети (если не указан, автоматически выбирается подходящая)log- включить детальное логирование процесса
Пример: [CODE=csharp] var gazZip = new GazZip(project, log: true);
// автоматический выбор исходной сети string txHash = gazZip.Refuel(“sepolia”, 0.001m); project.SendInfoToLog($“Транзакция: {txHash}”);
// использование конкретной исходной сети string rpcUrl = “https://rpc.ankr.com/eth”; string result = gazZip.Refuel(“bsc”, 0.005m, rpcUrl, true);
if (result.StartsWith(“fail:”)) { project.SendErrorToLog("Ошибка: {result}"); } else { project.SendInfoToLog(“Успешно: {result}”); } [/CODE][/SPOILER] [SPOILER= GitHubApi]
GitHubApi
Класс для работы с GitHub API, позволяющий управлять репозиториями, коллабораторами и их правами доступа. Предоставляет простые методы для создания репозиториев, изменения их видимости, добавления и удаления участников проекта.
Конструкторы
GitHubApi(string token, string username)
Создает новый экземпляр для работы с GitHub API.
Параметры:
token- токен доступа к GitHub APIusername- имя пользователя GitHub
Пример: [CODE=csharp] //создать подключение к GitHub API var github = new GitHubApi(“your_token_here”, “your_username”); [/CODE]
Методы
GetRepositoryInfo(string repoName)
Возвращает: string - информация о репозитории в формате JSON или сообщение об ошибке
Получает подробную информацию о указанном репозитории.
Параметры:
repoName- название репозитория
Пример: [CODE=csharp] //получить информацию о репозитории string repoInfo = github.GetRepositoryInfo(“my-project”); project.SendInfoToLog(repoInfo); [/CODE]
GetCollaborators(string repoName)
Возвращает: string - список коллабораторов в формате JSON или сообщение об ошибке
Получает список всех участников репозитория.
Параметры:
repoName- название репозитория
Пример: [CODE=csharp] //получить список участников репозитория string collaborators = github.GetCollaborators(“my-project”); project.SendInfoToLog(collaborators); [/CODE]
CreateRepository(string repoName)
Возвращает: string - данные созданного репозитория в формате JSON или сообщение об ошибке
Создает новый приватный репозиторий.
Параметры:
repoName- название нового репозитория
Пример: [CODE=csharp] //создать новый приватный репозиторий string result = github.CreateRepository(“new-project”); project.SendInfoToLog(“Репозиторий создан: ” + result); [/CODE]
ChangeVisibility(string repoName, bool makePrivate)
Возвращает: string - результат операции в формате JSON или сообщение об ошибке
Изменяет видимость репозитория (публичный/приватный).
Параметры:
repoName- название репозиторияmakePrivate- true для приватного, false для публичного
Пример: [CODE=csharp] //сделать репозиторий публичным string result = github.ChangeVisibility(“my-project”, false); project.SendInfoToLog(“Видимость изменена: ” + result); [/CODE]
AddCollaborator(string repoName, string collaboratorUsername, string permission = “pull”)
Возвращает: string - результат операции в формате JSON или сообщение об ошибке
Добавляет нового участника в репозиторий с указанными правами.
Параметры:
repoName- название репозиторияcollaboratorUsername- имя пользователя нового участникаpermission- права доступа: “pull”, “push”, “admin”, “maintain”, “triage” (по умолчанию “pull”)
Пример: [CODE=csharp] //добавить участника с правами на запись string result = github.AddCollaborator(“my-project”, “developer123”, “push”); project.SendInfoToLog(“Участник добавлен: ” + result); [/CODE]
RemoveCollaborator(string repoName, string collaboratorUsername)
Возвращает: string - результат операции или сообщение об ошибке
Удаляет участника из репозитория.
Параметры:
repoName- название репозиторияcollaboratorUsername- имя пользователя для удаления
Пример: [CODE=csharp] //удалить участника из репозитория string result = github.RemoveCollaborator(“my-project”, “old-developer”); project.SendInfoToLog(“Участник удален: ” + result); [/CODE]
ChangeCollaboratorPermission(string repoName, string collaboratorUsername, string permission = “pull”)
Возвращает: string - результат операции или сообщение об ошибке
Изменяет права доступа существующего участника репозитория.
Параметры:
repoName- название репозиторияcollaboratorUsername- имя пользователяpermission- новые права: “pull”, “push”, “admin”, “maintain”, “triage” (по умолчанию “pull”)
Пример: [CODE=csharp] //изменить права участника на администраторские string result = github.ChangeCollaboratorPermission(“my-project”, “developer123”, “admin”); project.SendInfoToLog(“Права изменены: ” + result); [/CODE][/SPOILER] [SPOILER= OkxApi]
OkxApi
Класс для работы с OKX API, предоставляющий функциональность для управления криптовалютными счетами, субсчетами, выводом средств и получением рыночных данных.
Конструктор
OkxApi(IZennoPosterProjectModel project, bool log = false)
Создает новый экземпляр OkxApi для работы с биржей OKX.
Параметры:
project- экземпляр проекта ZennoPosterlog- включить ли логирование (по умолчанию false)
[CODE=csharp] // Создание экземпляра OkxApi var okx = new OkxApi(project, log: true); [/CODE]
Методы
OKXGetSubAccs(string proxy = null, bool log = false)
Возвращает: List<string> - список имен субсчетов
Получает список всех субсчетов на основном аккаунте OKX.
Параметры:
proxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Получить список всех субсчетов var subAccounts = okx.OKXGetSubAccs(); foreach (string subName in subAccounts) { project.SendInfoToLog($“Найден субсчет: {subName}”); } [/CODE]
OKXGetSubMax(string accName, string proxy = null, bool log = false)
Возвращает: List<string> - список в формате “валюта:максимальная_сумма_вывода”
Получает максимальные суммы для вывода с торгового счета указанного субаккаунта.
Параметры:
accName- имя субаккаунтаproxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Получить максимальные суммы для вывода с торгового счета var maxWithdrawals = okx.OKXGetSubMax(“sub1”); foreach (string balance in maxWithdrawals) { project.SendInfoToLog($“Доступно для вывода: {balance}”); } [/CODE]
OKXGetSubTrading(string accName, string proxy = null, bool log = false)
Возвращает: List<string> - список торговых балансов
Получает торговые балансы указанного субаккаунта.
Параметры:
accName- имя субаккаунтаproxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Получить торговые балансы субсчета var tradingBalances = okx.OKXGetSubTrading(“sub1”); [/CODE]
OKXGetSubFunding(string accName, string proxy = null, bool log = false)
Возвращает: List<string> - список в формате “валюта:доступный_баланс”
Получает балансы фандинг-счета указанного субаккаунта.
Параметры:
accName- имя субаккаунтаproxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Получить балансы фандинг-счета var fundingBalances = okx.OKXGetSubFunding(“sub1”); foreach (string balance in fundingBalances) { string[] parts = balance.Split(’:’); project.SendInfoToLog($“Валюта: {parts[0]}, Баланс: {parts[1]}”); } [/CODE]
OKXGetSubsBal(string proxy = null, bool log = false)
Возвращает: List<string> - список в формате “субсчет:валюта:баланс”
Получает все ненулевые балансы со всех субсчетов (как с фандинг, так и с торговых счетов).
Параметры:
proxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Получить все балансы со всех субсчетов var allBalances = okx.OKXGetSubsBal(log: true); foreach (string balance in allBalances) { project.SendInfoToLog($“Баланс: {balance}”); } [/CODE]
OKXWithdraw(string toAddress, string currency, string chain, decimal amount, decimal fee, string proxy = null, bool log = false)
Возвращает: void
Выводит криптовалюту на указанный адрес.
Параметры:
toAddress- адрес получателяcurrency- валюта для вывода (например, “USDT”)chain- блокчейн сеть (ethereum, bsc, polygon и др.)amount- сумма для выводаfee- комиссия за выводproxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Вывести 100 USDT на Ethereum okx.OKXWithdraw( “0x1234567890abcdef1234567890abcdef12345678”, “USDT”, “ethereum”, 100m, 1m ); [/CODE]
OKXCreateSub(string subName, string accountType = “1”, string proxy = null, bool log = false)
Возвращает: void
Создает новый субаккаунт.
Параметры:
subName- имя нового субаккаунтаaccountType- тип аккаунта (по умолчанию “1”)proxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp] // Создать новый субаккаунт okx.OKXCreateSub(“myNewSubAccount”); [/CODE]
OKXDrainSubs()
Возвращает: void
Переводит все доступные средства со всех субсчетов на основной счет.
[CODE=csharp] // Собрать все средства с субсчетов на основной счет okx.OKXDrainSubs(); project.SendInfoToLog(“Все средства переведены на основной счет”); [/CODE]
OKXAddMaxSubs()
Возвращает: void
Создает максимально возможное количество субсчетов до достижения лимита.
[CODE=csharp] // Создать максимальное количество субсчетов okx.OKXAddMaxSubs(); project.SendInfoToLog(“Созданы все возможные субсчета”); [/CODE]
OKXPrice(string pair, string proxy = null, bool log = false)
Возвращает: T - цена в указанном типе данных
Получает текущую рыночную цену торговой пары.
Параметры:
pair- торговая пара (например, “BTC-USDT”)proxy- прокси для запроса (необязательно)log- включить логирование (по умолчанию false)
[CODE=csharp]
// Получить цену BTC в USDT как decimal
decimal btcPrice = okx.OKXPrice
// Получить цену как строку
string priceString = okx.OKXPrice
UnlockApi
Класс для работы с Unlock Protocol смарт-контрактами в блокчейне Optimism. Позволяет получать информацию о владельцах NFT-ключей и времени истечения их действия.
Конструкторы
UnlockApi(IZennoPosterProjectModel project, bool log = false)
Создает новый экземпляр UnlockApi для работы с Unlock Protocol.
Параметры:
project- ссылка на проект ZennoPoster для логированияlog- включить дополнительное логирование (по умолчанию false)
Пример: [CODE=csharp] //создать экземпляр UnlockApi var unlockApi = new UnlockApi(project, true); [/CODE]
Методы
string keyExpirationTimestampFor(string addressTo, int tokenId, bool decode = true)
Возвращает: string - временную метку истечения ключа
Получает временную метку истечения действия NFT-ключа по его ID.
Параметры:
addressTo- адрес смарт-контракта UnlocktokenId- ID токена (ключа)decode- декодировать результат в читаемый формат (по умолчанию true)
Пример: [CODE=csharp] //получить время истечения ключа с ID 1 string expiration = unlockApi.keyExpirationTimestampFor(“0x1234567890abcdef”, 1); project.SendInfoToLog($“Ключ истекает: {expiration}”); [/CODE]
string ownerOf(string addressTo, int tokenId, bool decode = true)
Возвращает: string - адрес владельца ключа
Получает адрес владельца NFT-ключа по его ID.
Параметры:
addressTo- адрес смарт-контракта UnlocktokenId- ID токена (ключа)decode- декодировать результат в читаемый формат (по умолчанию true)
Пример: [CODE=csharp] //получить владельца ключа с ID 1 string owner = unlockApi.ownerOf(“0x1234567890abcdef”, 1); project.SendInfoToLog($“Владелец ключа: {owner}”); [/CODE]
string Decode(string toDecode, string function)
Возвращает: string - декодированное значение
Декодирует результат вызова функции смарт-контракта из HEX формата в читаемый вид.
Параметры:
toDecode- HEX строка для декодированияfunction- имя функции для определения типа декодирования
Пример: [CODE=csharp] //декодировать HEX результат string result = unlockApi.Decode(“0x000000000000000000000000a1b2c3d4e5f6”, “ownerOf”); project.SendInfoToLog($“Декодированный результат: {result}”); [/CODE]
Dictionary<string, string> Holders(string contract)
Возвращает: Dictionary<string, string> - словарь где ключ это адрес владельца, значение - время истечения
Получает всех держателей NFT-ключей контракта и время истечения их ключей.
Параметры:
contract- адрес смарт-контракта Unlock
Пример: [CODE=csharp] //получить всех держателей ключей var holders = unlockApi.Holders(“0x1234567890abcdef”); foreach(var holder in holders) { //вывести информацию о каждом держателе project.SendInfoToLog($“Владелец: {holder.Key}, истекает: {holder.Value}”); } [/CODE][/SPOILER] [/SPOILER]