963 lines
37 KiB
YAML
963 lines
37 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: API цепи COOPOS
|
|
description: Спецификация Chain API узла COOPOS (nodeos). Подробности — в документации на https://coopenomics.world.
|
|
version: 1.0.0
|
|
license:
|
|
name: MIT
|
|
url: https://opensource.org/licenses/MIT
|
|
contact:
|
|
url: https://coopenomics.world
|
|
servers:
|
|
- url: "{protocol}://{host}:{port}/v1/chain"
|
|
variables:
|
|
protocol:
|
|
enum:
|
|
- http
|
|
- https
|
|
default: http
|
|
host:
|
|
default: localhost
|
|
port:
|
|
default: "8080"
|
|
components:
|
|
schemas: {}
|
|
paths:
|
|
/get_account:
|
|
post:
|
|
summary: Сведения об учётной записи
|
|
description: Возвращает объект с подробностями об указанной учётной записи в блокчейне.
|
|
operationId: get_account
|
|
requestBody:
|
|
description: JSON-объект с единственным полем «account_name»
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- account_name
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/Account.yaml"
|
|
/get_block:
|
|
post:
|
|
summary: Получить блок
|
|
description: Возвращает объект с подробностями об указанном блоке блокчейна.
|
|
operationId: get_block
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- block_num_or_id
|
|
properties:
|
|
block_num_or_id:
|
|
type: string
|
|
description: Укажите номер блока или идентификатор блока
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/Block.yaml"
|
|
/get_block_info:
|
|
post:
|
|
summary: Краткие сведения о блоке
|
|
description: Аналогично `get_block`, но возвращает фиксированный урезанный набор данных блока меньшего размера.
|
|
operationId: get_block_info
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- block_num
|
|
properties:
|
|
block_num:
|
|
type: integer
|
|
description: Укажите номер блока
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/BlockInfo.yaml"
|
|
/get_info:
|
|
post:
|
|
summary: Общие сведения о цепи
|
|
description: Возвращает объект с общими сведениями о блокчейне.
|
|
operationId: get_info
|
|
security: []
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/Info.yaml"
|
|
|
|
/push_transaction:
|
|
post:
|
|
summary: Применить транзакцию (push)
|
|
description: Ожидает транзакцию в формате JSON и пытается применить её к блокчейну.
|
|
operationId: push_transaction
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
signatures:
|
|
type: array
|
|
description: Массив подписей, необходимых для авторизации транзакции
|
|
items:
|
|
$ref: "schemas/Signature.yaml"
|
|
compression:
|
|
type: boolean
|
|
description: Использование сжатия; обычно false
|
|
packed_context_free_data:
|
|
type: string
|
|
description: JSON в шестнадцатеричном виде
|
|
packed_trx:
|
|
type: string
|
|
description: Объект транзакции (JSON) в шестнадцатеричном виде
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|
|
|
|
/send_transaction:
|
|
post:
|
|
summary: Применить транзакцию (send)
|
|
description: Ожидает транзакцию в формате JSON и пытается применить её к блокчейну.
|
|
operationId: send_transaction
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
signatures:
|
|
type: array
|
|
description: Массив подписей, необходимых для авторизации транзакции
|
|
items:
|
|
$ref: "schemas/Signature.yaml"
|
|
compression:
|
|
type: boolean
|
|
description: Использование сжатия; обычно false
|
|
packed_context_free_data:
|
|
type: string
|
|
description: JSON в шестнадцатеричном виде
|
|
packed_trx:
|
|
type: string
|
|
description: Объект транзакции (JSON) в шестнадцатеричном виде
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|
|
|
|
/push_transactions:
|
|
post:
|
|
summary: Применить несколько транзакций
|
|
description: Ожидает одну или несколько транзакций в формате JSON и пытается применить их к блокчейну.
|
|
operationId: push_transactions
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "schemas/Transaction.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|
|
|
|
/get_block_header_state:
|
|
post:
|
|
summary: Состояние заголовка блока
|
|
description: Возвращает состояние заголовка блока.
|
|
operationId: get_block_header_state
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- block_num_or_id
|
|
properties:
|
|
block_num_or_id:
|
|
type: string
|
|
description: Укажите номер блока или идентификатор блока
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/BlockHeaderState.yaml"
|
|
|
|
/get_abi:
|
|
post:
|
|
summary: ABI контракта
|
|
description: Возвращает ABI контракта по имени учётной записи.
|
|
operationId: get_abi
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- account_name
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/Abi.yaml"
|
|
/get_currency_balance:
|
|
post:
|
|
summary: Баланс токена
|
|
description: Возвращает текущий баланс токена.
|
|
operationId: get_currency_balance
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- code
|
|
- account
|
|
- symbol
|
|
properties:
|
|
code:
|
|
$ref: "schemas/Name.yaml"
|
|
account:
|
|
$ref: "schemas/Name.yaml"
|
|
symbol:
|
|
$ref: "schemas/Symbol.yaml"
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "schemas/Symbol.yaml"
|
|
|
|
/get_currency_stats:
|
|
post:
|
|
summary: Статистика токена
|
|
description: Возвращает статистику по выпуску валюты (токена).
|
|
operationId: get_currency_stats
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
$ref: "schemas/Name.yaml"
|
|
symbol:
|
|
$ref: "schemas/Symbol.yaml"
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: "Объект с одним ключом — запрошенный символ; внутри поля: supply (Symbol), max_supply (Symbol), issuer (Name)"
|
|
|
|
/get_required_keys:
|
|
post:
|
|
summary: Ключи для подписи транзакции
|
|
description: Возвращает ключи, необходимые для подписи транзакции.
|
|
operationId: get_required_keys
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- transaction
|
|
- available_keys
|
|
properties:
|
|
transaction:
|
|
$ref: "schemas/Transaction.yaml"
|
|
available_keys:
|
|
type: array
|
|
description: Доступные публичные ключи
|
|
items:
|
|
$ref: "schemas/PublicKey.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
{}
|
|
|
|
/get_producers:
|
|
post:
|
|
summary: Список продюсеров
|
|
description: Возвращает список продюсеров блокчейна.
|
|
operationId: get_producers
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
title: "GetProducersRequest"
|
|
type: object
|
|
required:
|
|
- limit
|
|
- lower_bound
|
|
properties:
|
|
limit:
|
|
type: string
|
|
description: Сколько продюсеров вернуть
|
|
lower_bound:
|
|
type: string
|
|
description: Вместе с limit задаёт постраничную выборку; например limit=10 и lower_bound=10 — вторая страница
|
|
json:
|
|
type: boolean
|
|
description: Вернуть результат в формате JSON
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
title: "GetProducersResponse"
|
|
type: object
|
|
properties:
|
|
rows:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
$ref: "schemas/Producer.yaml"
|
|
total_producer_vote_weight:
|
|
type: string
|
|
description: Сумма весов голосов за всех продюсеров.
|
|
more:
|
|
type: string
|
|
description: Если не все продюсеры поместились в ответ, здесь нижняя граница для следующего запроса.
|
|
|
|
/get_raw_code_and_abi:
|
|
post:
|
|
summary: Сырой WASM и ABI
|
|
description: Возвращает сырой WASM и ABI контракта по имени учётной записи.
|
|
operationId: get_raw_code_and_abi
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- account_name
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
wasm:
|
|
type: string
|
|
description: WASM в кодировке base64
|
|
abi:
|
|
type: string
|
|
description: ABI в кодировке base64
|
|
|
|
/get_scheduled_transactions:
|
|
post:
|
|
summary: Запланированные транзакции
|
|
description: Возвращает отложенные (запланированные) транзакции.
|
|
operationId: get_scheduled_transactions
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lower_bound:
|
|
$ref: "schemas/DateTimeSeconds.yaml"
|
|
limit:
|
|
description: Максимальное число транзакций в ответе
|
|
type: integer
|
|
json:
|
|
description: true — упакованная транзакция преобразуется в JSON
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
transactions:
|
|
type: array
|
|
items:
|
|
$ref: "schemas/Transaction.yaml"
|
|
|
|
|
|
/get_table_by_scope:
|
|
post:
|
|
summary: Области таблиц (scopes)
|
|
description: Возвращает области (scopes) таблиц контракта.
|
|
operationId: get_table_by_scope
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- code
|
|
properties:
|
|
code:
|
|
type: string
|
|
description: "Имя (`name`) контракта, для которого нужны данные таблиц"
|
|
table:
|
|
type: string
|
|
description: Фильтр по имени таблицы
|
|
lower_bound:
|
|
type: string
|
|
description: Первый элемент не меньше указанного значения в упорядоченном наборе
|
|
upper_bound:
|
|
type: string
|
|
description: Первый элемент строго больше указанного значения в упорядоченном наборе
|
|
limit:
|
|
type: integer
|
|
description: Ограничение числа записей в ответе.
|
|
format: int32
|
|
default: 10
|
|
reverse:
|
|
type: boolean
|
|
description: Обратить порядок строк
|
|
default: false
|
|
show_payer:
|
|
type: boolean
|
|
description: Показывать плательщика RAM
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
rows:
|
|
type: array
|
|
items:
|
|
$ref: "schemas/TableScope.yaml"
|
|
more:
|
|
$ref: "schemas/Name.yaml"
|
|
|
|
/get_table_rows:
|
|
post:
|
|
summary: Строки таблицы состояния
|
|
description: Возвращает строки указанной таблицы состояния контракта.
|
|
operationId: get_table_rows
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- code
|
|
- table
|
|
- scope
|
|
properties:
|
|
code:
|
|
type: string
|
|
description: Имя смарт-контракта, которому принадлежит таблица
|
|
table:
|
|
type: string
|
|
description: Имя таблицы
|
|
scope:
|
|
type: string
|
|
description: Учётная запись-владелец данных (scope)
|
|
index_position:
|
|
type: string
|
|
description: Позиция индекса; допустимые значения `primary`, `secondary`, `tertiary`, `fourth`, `fifth`, `sixth`, `seventh`, `eighth`, `ninth`, `tenth`
|
|
key_type:
|
|
type: string
|
|
description: Тип ключа для index_position (например `uint64_t` или `name`)
|
|
encode_type:
|
|
type: string
|
|
lower_bound:
|
|
type: string
|
|
description: Первый элемент не меньше указанного значения
|
|
upper_bound:
|
|
type: string
|
|
description: Первый элемент строго больше указанного значения
|
|
limit:
|
|
type: integer
|
|
description: Ограничение числа строк в ответе.
|
|
format: int32
|
|
default: 10
|
|
reverse:
|
|
type: boolean
|
|
description: Обратить порядок строк
|
|
default: false
|
|
show_payer:
|
|
type: boolean
|
|
description: Показывать плательщика RAM
|
|
default: false
|
|
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
rows:
|
|
type: array
|
|
items: {}
|
|
|
|
/get_code:
|
|
post:
|
|
summary: Код контракта (WASM)
|
|
description: Возвращает объект с WASM-кодом смарт-контракта.
|
|
operationId: get_code
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- account_name
|
|
- code_as_wasm
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
code_as_wasm:
|
|
type: integer
|
|
default: 1
|
|
description: Должно быть 1 (истина)
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: GetCodeResponse.yaml
|
|
properties:
|
|
name:
|
|
$ref: "schemas/Name.yaml"
|
|
code_hash:
|
|
$ref: "schemas/Sha256.yaml"
|
|
wast:
|
|
type: string
|
|
wasm:
|
|
type: string
|
|
abi:
|
|
$ref: "schemas/Abi.yaml"
|
|
|
|
/get_raw_abi:
|
|
post:
|
|
summary: Сырой ABI контракта
|
|
description: Возвращает объект с сырым ABI смарт-контракта.
|
|
operationId: get_raw_abi
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- account_name
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
code_hash:
|
|
$ref: "schemas/Sha256.yaml"
|
|
abi_hash:
|
|
allOf:
|
|
- $ref: "schemas/Sha256.yaml"
|
|
abi:
|
|
type: string
|
|
|
|
|
|
/get_activated_protocol_features:
|
|
post:
|
|
summary: Активированные возможности протокола
|
|
description: Возвращает активированные на узле продюсера протокольные возможности.
|
|
operationId: get_activated_protocol_features
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lower_bound:
|
|
type: integer
|
|
description: Нижняя граница
|
|
upper_bound:
|
|
type: integer
|
|
description: Верхняя граница
|
|
limit:
|
|
type: integer
|
|
description: Лимит записей; по умолчанию 10
|
|
search_by_block_num:
|
|
type: boolean
|
|
description: Искать по номеру блока
|
|
reverse:
|
|
type: boolean
|
|
description: Обратный порядок обхода
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Активированные протокольные возможности
|
|
required:
|
|
- activated_protocol_features
|
|
properties:
|
|
activated_protocol_features:
|
|
type: array
|
|
description: Массив идентификаторов активированных протокольных возможностей
|
|
items:
|
|
type: string
|
|
more:
|
|
type: integer
|
|
description: "Если активированных возможностей больше, чем limit, здесь порядковый номер следующей не вошедшей в ответ; иначе 0."
|
|
/get_accounts_by_authorizers:
|
|
post:
|
|
summary: Учётные записи по авторизующим
|
|
description: По набору имён учётных записей и публичных ключей находит разрешения (authorities), которые полностью или частично могут быть удовлетворены этими данными.
|
|
operationId: get_accounts_by_authorizers
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
accounts:
|
|
type: array
|
|
description: Список учётных записей и/или пар actor/permission
|
|
items:
|
|
anyOf:
|
|
- $ref: "schemas/Name.yaml"
|
|
- $ref: "schemas/PermissionLevel.yaml"
|
|
keys:
|
|
type: array
|
|
description: Список авторизующих ключей
|
|
items:
|
|
$ref: "schemas/PublicKey.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Учётные записи, авторизация которых целиком или частично покрывается переданными аккаунтами и ключами
|
|
required:
|
|
- accounts
|
|
properties:
|
|
accounts:
|
|
type: array
|
|
description: Массив троек account, permission и данные авторизатора
|
|
items:
|
|
type: object
|
|
description: Одна тройка account — permission — авторизующие данные
|
|
required:
|
|
- account_name
|
|
- permission_name
|
|
- authorizer
|
|
- weight
|
|
- threshold
|
|
properties:
|
|
account_name:
|
|
$ref: "schemas/Name.yaml"
|
|
permission_name:
|
|
$ref: "schemas/Name.yaml"
|
|
authorizer:
|
|
oneOf:
|
|
- $ref: "schemas/PublicKey.yaml"
|
|
- $ref: "schemas/Authority.yaml"
|
|
weight:
|
|
type: "integer"
|
|
description: Вклад этого авторизатора в удовлетворение разрешения
|
|
threshold:
|
|
type: "integer"
|
|
description: Порог — сумма весов, которую нужно достичь или превысить
|
|
/get_transaction_status:
|
|
post:
|
|
summary: Статус транзакции (финальность)
|
|
description: Возвращает состояние цепи и при наличии — информацию о транзакции по её идентификатору. Требуется включённая функция статуса финальности транзакций в плагине chain (параметр nodeos `--transaction-finality-status-max-storage-size-gb`).
|
|
operationId: get_transaction_status
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- id
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Идентификатор транзакции для запроса статуса.
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/TransactionStatus.yaml"
|
|
|
|
/send_transaction2:
|
|
post:
|
|
summary: Применить транзакцию (send v2)
|
|
description: |
|
|
Пытается применить транзакцию в формате JSON к блокчейну. Поддерживает полную трассировку неудачной транзакции и повторные попытки через nodeos, если они включены на узле. При включённом повторе API-узел досылает транзакцию в P2P-сеть до истечения срока, включения в блок или необратимости.
|
|
Внимание: по умолчанию вместо исключений возвращается полная трассировка ошибки. Не путайте наличие трассировки с успешным выполнением — проверяйте поля «receipt» и «except».
|
|
operationId: send_transaction2
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
return_failure_trace:
|
|
type: boolean
|
|
description: Если true — исключения транзакции вкладываются в возвращаемую трассировку.
|
|
retry_trx:
|
|
type: boolean
|
|
description: Если true — повторять отправку до блока заданной высоты (см. retry_trx_num_blocks), необратимости или истечения срока.
|
|
retry_trx_num_blocks:
|
|
type: integer
|
|
description: При retry_trx — повторять до блока с этой высотой; если не задано — до lib.
|
|
transaction:
|
|
type: object
|
|
properties:
|
|
signatures:
|
|
type: array
|
|
description: Массив подписей для авторизации транзакции.
|
|
items:
|
|
$ref: "schemas/Signature.yaml"
|
|
compression:
|
|
type: boolean
|
|
description: Сжатие; обычно false
|
|
packed_context_free_data:
|
|
type: string
|
|
description: JSON в hex
|
|
packed_trx:
|
|
type: string
|
|
description: Транзакция (JSON) в hex
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|
|
|
|
/compute_transaction:
|
|
post:
|
|
summary: Симуляция транзакции без записи
|
|
description: |
|
|
Выполняет указанную транзакцию, формирует трассировку (включая расход ресурсов), затем откатывает все изменения состояния; субъективный биллинг для аккаунта не увеличивается. Подписи, если есть, обрабатываются, ошибки подписи игнорируются. Неуспешные транзакции всё равно содержат трассировку сбоя.
|
|
Внимание: на публичных узлах с включённым compute_transaction нужно ограничивать частоту запросов (защита от DoS).
|
|
operationId: compute_transaction
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
signatures:
|
|
type: array
|
|
description: Массив подписей для авторизации транзакции
|
|
items:
|
|
$ref: "schemas/Signature.yaml"
|
|
compression:
|
|
type: boolean
|
|
description: Сжатие; обычно false
|
|
packed_context_free_data:
|
|
type: string
|
|
description: JSON в hex
|
|
packed_trx:
|
|
type: string
|
|
description: Объект транзакции, JSON в hex
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|
|
|
|
/get_code_hash:
|
|
post:
|
|
summary: Хеш кода контракта
|
|
description: Возвращает хеш кода смарт-контракта в блокчейне. Его можно сравнить с ожидаемым значением, чтобы убедиться, что код не менялся.
|
|
operationId: get_code_hash
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
account_name:
|
|
description: Имя учётной записи владельца кода контракта.
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
account_name:
|
|
description: Учётная запись, на которой развёрнут контракт.
|
|
type: string
|
|
code_hash:
|
|
type: string
|
|
description: Хеш WASM-кода контракта указанной учётной записи.
|
|
|
|
/get_transaction_id:
|
|
post:
|
|
summary: Идентификатор транзакции
|
|
description: Возвращает идентификатор транзакции (хеш транзакции) для переданной транзакции.
|
|
operationId: get_transaction_id
|
|
requestBody:
|
|
description: Тело запроса — объект транзакции в формате JSON.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/Transaction.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
description: Идентификатор транзакции.
|
|
|
|
/get_producer_schedule:
|
|
post:
|
|
summary: Расписание продюсеров
|
|
description: Возвращает текущее расписание продюсеров — активный список и порядок ротации.
|
|
operationId: get_producer_schedule
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
active:
|
|
description: JSON-объект со списком активных продюсеров и версией расписания.
|
|
$ref: "schemas/ProducerSchedule.yaml"
|
|
pending:
|
|
description: JSON-объект с ожидающим расписанием продюсеров и версией.
|
|
$ref: "schemas/ProducerSchedule.yaml"
|
|
proposed:
|
|
description: JSON-объект с предлагаемым расписанием продюсеров и версией.
|
|
$ref: "schemas/ProducerSchedule.yaml"
|
|
|
|
/send_read_only_transaction:
|
|
post:
|
|
summary: Транзакция только для чтения
|
|
description: Отправляет транзакцию только для чтения в формате JSON; она не предназначена для включения в блокчейн. Если транзакция меняет состояние цепи, узел отклонит её.
|
|
operationId: send_read_only_transaction
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
transaction:
|
|
type: object
|
|
properties:
|
|
compression:
|
|
type: boolean
|
|
description: Сжатие; обычно false
|
|
packed_context_free_data:
|
|
type: string
|
|
description: JSON в hex
|
|
packed_trx:
|
|
type: string
|
|
description: Транзакция (JSON) в hex
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|
|
|
|
/push_block:
|
|
post:
|
|
summary: Передать блок в цепь
|
|
description: Передаёт блок в блокчейн (для специальных сценариев узла).
|
|
operationId: push_block
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "schemas/Block.yaml"
|
|
responses:
|
|
"200":
|
|
description: Успешно
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: Тело ответа пустое
|