Консольное приложение и библиотека для работы с JSON RPC узла Octez (Tezos). Реализованы запросы к эндпоинтам блокчейна Tezos согласно документации и Shell RPC, Paris RPC.
| Проект | Описание |
|---|---|
| XtzOctezBaker | Консольное приложение (.NET 8.0), вызывает методы библиотеки и выводит результат. |
| XtzOctezBaker.Data | Библиотека классов (.NET 8.0): модели ответов RPC и клиент ITezosRpcClient. |
-
Получение последнего блока
GET /chains/main/blocks/head
Метод:GetHeadBlockAsync()→ модельTezosBlock. -
Чтение конкретного блока
GET /chains/main/blocks/{block_id}
Метод:GetBlockAsync(blockId)
block_id:head,genesis, уровень (число) или хеш блока. -
Чтение всех операций в блоке
GET /chains/main/blocks/{block_id}/operations
Метод:GetBlockOperationsAsync(blockId)
Возвращает список списков операций по проходам валидации (pass 0–3). -
Чтение баланса на адресе
GET /chains/main/blocks/{block_id}/context/contracts/{address}/balance
Метод:GetBalanceAsync(blockId, address)
Возвращает баланс в mutez (строка).
В appsettings.json консольного приложения (или переменные окружения):
{
"TezosRpc": {
"BaseAddress": "http://172.16.10.64:48546",
"ChainId": "main",
"TimeoutSeconds": 30,
"ExampleAddress": "tz1..."
}
}- BaseAddress — базовый URL RPC-узла (без завершающего слеша).
- ChainId — идентификатор цепи (
mainдля основной сети). - ExampleAddress — опционально; адрес для проверки запроса баланса при запуске.
Из корня workspace TEZOS:
dotnet run --project XtzOctezBakerПриложение по очереди выполнит: получение head-блока, чтение блока по идентификатору, чтение операций блока и (если задан ExampleAddress) запрос баланса.
В другом проекте подключите библиотеку и зарегистрируйте клиент:
services.AddTezosRpcClient();
// Конфигурация: секция TezosRpc (BaseAddress, ChainId, TimeoutSeconds)
var client = serviceProvider.GetRequiredService<ITezosRpcClient>();
var head = await client.GetHeadBlockAsync();
var balance = await client.GetBalanceAsync("head", "tz1...");Комментарии и описания методов в коде приведены на русском языке.