API цепи COOPOS (1.0.0)

Download OpenAPI specification:

Спецификация Chain API узла COOPOS (nodeos). Подробности — в документации на https://coopenomics.world.

Сведения об учётной записи

Возвращает объект с подробностями об указанной учётной записи в блокчейне.

Request Body schema: application/json

JSON-объект с единственным полем «account_name»

required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "head_block_num": 0,
  • "head_block_time": "string",
  • "last_code_update": "string",
  • "created": "string",
  • "refund_request": {
    },
  • "ram_quota": 0,
  • "net_limit": {
    },
  • "cpu_limit": {
    },
  • "total_resources": {
    },
  • "core_liquid_balance": "string",
  • "self_delegated_bandwidth": {
    },
  • "net_weight": 0,
  • "cpu_weight": 0,
  • "ram_usage": 0,
  • "privileged": true,
  • "permissions": [
    ],
  • "voter_info": {
    }
}

Получить блок

Возвращает объект с подробностями об указанном блоке блокчейна.

Request Body schema: application/json
block_num_or_id
required
string

Укажите номер блока или идентификатор блока

Responses

Request samples

Content type
application/json
{
  • "block_num_or_id": "string"
}

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "producer": "",
  • "confirmed": 0,
  • "previous": "string",
  • "transaction_mroot": "string",
  • "action_mroot": "string",
  • "schedule_version": 0,
  • "new_producers": {
    },
  • "header_extensions": {
    },
  • "new_protocol_features": [
    ],
  • "producer_signature": "string",
  • "transactions": [
    ],
  • "block_extensions": {
    },
  • "id": "string",
  • "block_num": 0,
  • "ref_block_prefix": 0
}

Краткие сведения о блоке

Аналогично get_block, но возвращает фиксированный урезанный набор данных блока меньшего размера.

Request Body schema: application/json
block_num
required
integer

Укажите номер блока

Responses

Request samples

Content type
application/json
{
  • "block_num": 0
}

Response samples

Content type
application/json
{
  • "block_num": 0,
  • "ref_block_num": 0,
  • "id": "string",
  • "timestamp": "string",
  • "producer": "",
  • "confirmed": 0,
  • "previous": "string",
  • "transaction_mroot": "string",
  • "action_mroot": "string",
  • "schedule_version": 0,
  • "producer_signature": "string",
  • "ref_block_prefix": 0
}

Общие сведения о цепи

Возвращает объект с общими сведениями о блокчейне.

Responses

Response samples

Content type
application/json
{
  • "server_version": "string",
  • "chain_id": "string",
  • "head_block_num": 0,
  • "head_block_id": "string",
  • "head_block_time": "string",
  • "head_block_producer": "string",
  • "last_irreversible_block_num": 0,
  • "last_irreversible_block_id": "string",
  • "virtual_block_cpu_limit": 0,
  • "virtual_block_net_limit": 0,
  • "block_cpu_limit": 0,
  • "block_net_limit": 0,
  • "server_version_string": "string",
  • "fork_db_head_block_num": 0,
  • "fork_db_head_block_id": "string"
}

Применить транзакцию (push)

Ожидает транзакцию в формате JSON и пытается применить её к блокчейну.

Request Body schema: application/json
signatures
Array of strings (Подпись) [ items^SIG_([RK]1|WA)_[1-9A-HJ-NP-Za-km-z]+$ ]

Массив подписей, необходимых для авторизации транзакции

compression
boolean

Использование сжатия; обычно false

packed_context_free_data
string

JSON в шестнадцатеричном виде

packed_trx
string

Объект транзакции (JSON) в шестнадцатеричном виде

Responses

Request samples

Content type
application/json
{
  • "signatures": [
    ],
  • "compression": true,
  • "packed_context_free_data": "string",
  • "packed_trx": "string"
}

Response samples

Content type
application/json
null

Применить транзакцию (send)

Ожидает транзакцию в формате JSON и пытается применить её к блокчейну.

Request Body schema: application/json
signatures
Array of strings (Подпись) [ items^SIG_([RK]1|WA)_[1-9A-HJ-NP-Za-km-z]+$ ]

Массив подписей, необходимых для авторизации транзакции

compression
boolean

Использование сжатия; обычно false

packed_context_free_data
string

JSON в шестнадцатеричном виде

packed_trx
string

Объект транзакции (JSON) в шестнадцатеричном виде

Responses

Request samples

Content type
application/json
{
  • "signatures": [
    ],
  • "compression": true,
  • "packed_context_free_data": "string",
  • "packed_trx": "string"
}

Response samples

Content type
application/json
null

Применить несколько транзакций

Ожидает одну или несколько транзакций в формате JSON и пытается применить их к блокчейну.

Request Body schema: application/json
Array
expiration
required
string (Дата и время)

Момент времени, до которого транзакция должна быть принята в блок.

ref_block_num
required
integer
ref_block_prefix
required
integer

32-битная часть идентификатора блока.

max_net_usage_words
required
integer (Неотрицательное целое) >= 0

Неотрицательное целое (в цепи часто соответствует uint64).

max_cpu_usage_ms
required
integer (Неотрицательное целое) >= 0

Неотрицательное целое (в цепи часто соответствует uint64).

delay_sec
required
integer
required
Array of objects (Действие (action))
required
Array of objects (Действие (action))
Array of objects (Расширение (extension))

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
null

Состояние заголовка блока

Возвращает состояние заголовка блока.

Request Body schema: application/json
block_num_or_id
required
string

Укажите номер блока или идентификатор блока

Responses

Request samples

Content type
application/json
{
  • "block_num_or_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "block_num": 0,
  • "header": {
    },
  • "dpos_proposed_irreversible_blocknum": 0,
  • "dpos_irreversible_blocknum": 0,
  • "bft_irreversible_blocknum": 0,
  • "pending_schedule_lib_num": 0,
  • "pending_schedule_hash": "string",
  • "pending_schedule": {
    },
  • "active_schedule": {
    },
  • "blockroot_merkle": {
    },
  • "producer_to_last_produced": [
    ],
  • "producer_to_last_implied_irb": [
    ],
  • "block_signing_key": "string",
  • "confirm_count": [
    ],
  • "confirmations": [
    ]
}

ABI контракта

Возвращает ABI контракта по имени учётной записи.

Request Body schema: application/json
required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "version": "string",
  • "types": [
    ],
  • "structs": [
    ],
  • "actions": [
    ],
  • "tables": [
    ],
  • "abi_extensions": [
    ],
  • "error_messages": [
    ],
  • "ricardian_clauses": [
    ],
  • "variants": [
    ]
}

Баланс токена

Возвращает текущий баланс токена.

Request Body schema: application/json
required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)
required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)
symbol
required
string (Символ актива) ^([0-9]{1,32}.[0-9]{4} [A-Z]{1,7})$

Строка актива COOPOS — дробная часть с точностью 4 и символ из 1–7 заглавных букв через пробел, например «1.0000 ABC».

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "account": "string",
  • "symbol": "string"
}

Response samples

Content type
application/json
[
  • "string"
]

Статистика токена

Возвращает статистику по выпуску валюты (токена).

Request Body schema: application/json
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)
symbol
string (Символ актива) ^([0-9]{1,32}.[0-9]{4} [A-Z]{1,7})$

Строка актива COOPOS — дробная часть с точностью 4 и символ из 1–7 заглавных букв через пробел, например «1.0000 ABC».

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "symbol": "string"
}

Response samples

Content type
application/json
null

Ключи для подписи транзакции

Возвращает ключи, необходимые для подписи транзакции.

Request Body schema: application/json
required
object (Транзакция) >= 8 properties
available_keys
required
Array of strings (Публичный ключ) [ items^(EOS|PUB_([RK]1|WA)_)[1-9A-HJ-NP-Za-km-z]+$ ]

Доступные публичные ключи

Responses

Request samples

Content type
application/json
{
  • "transaction": {
    },
  • "available_keys": [
    ]
}

Response samples

Content type
application/json
null

Список продюсеров

Возвращает список продюсеров блокчейна.

Request Body schema: application/json
limit
required
string

Сколько продюсеров вернуть

lower_bound
required
string

Вместе с limit задаёт постраничную выборку; например limit=10 и lower_bound=10 — вторая страница

json
boolean

Вернуть результат в формате JSON

Responses

Request samples

Content type
application/json
{
  • "limit": "string",
  • "lower_bound": "string",
  • "json": true
}

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "total_producer_vote_weight": "string",
  • "more": "string"
}

Сырой WASM и ABI

Возвращает сырой WASM и ABI контракта по имени учётной записи.

Request Body schema: application/json
required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "wasm": "string",
  • "abi": "string"
}

Запланированные транзакции

Возвращает отложенные (запланированные) транзакции.

Request Body schema: application/json
lower_bound
string (Дата и время с секундами) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}...

Дата и время в формате YYYY-MM-DDTHH:MM:SS.sss

limit
integer

Максимальное число транзакций в ответе

json
boolean

true — упакованная транзакция преобразуется в JSON

Responses

Request samples

Content type
application/json
{
  • "lower_bound": "string",
  • "limit": 0,
  • "json": true
}

Response samples

Content type
application/json
{
  • "transactions": [
    ]
}

Области таблиц (scopes)

Возвращает области (scopes) таблиц контракта.

Request Body schema: application/json
code
required
string

Имя (name) контракта, для которого нужны данные таблиц

table
string

Фильтр по имени таблицы

lower_bound
string

Первый элемент не меньше указанного значения в упорядоченном наборе

upper_bound
string

Первый элемент строго больше указанного значения в упорядоченном наборе

limit
integer <int32>
Default: 10

Ограничение числа записей в ответе.

reverse
boolean
Default: false

Обратить порядок строк

show_payer
boolean
Default: false

Показывать плательщика RAM

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "table": "string",
  • "lower_bound": "string",
  • "upper_bound": "string",
  • "limit": 10,
  • "reverse": false,
  • "show_payer": false
}

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "more": "string"
}

Строки таблицы состояния

Возвращает строки указанной таблицы состояния контракта.

Request Body schema: application/json
code
required
string

Имя смарт-контракта, которому принадлежит таблица

table
required
string

Имя таблицы

scope
required
string

Учётная запись-владелец данных (scope)

index_position
string

Позиция индекса; допустимые значения primary, secondary, tertiary, fourth, fifth, sixth, seventh, eighth, ninth, tenth

key_type
string

Тип ключа для index_position (например uint64_t или name)

encode_type
string
lower_bound
string

Первый элемент не меньше указанного значения

upper_bound
string

Первый элемент строго больше указанного значения

limit
integer <int32>
Default: 10

Ограничение числа строк в ответе.

reverse
boolean
Default: false

Обратить порядок строк

show_payer
boolean
Default: false

Показывать плательщика RAM

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "table": "string",
  • "scope": "string",
  • "index_position": "string",
  • "key_type": "string",
  • "encode_type": "string",
  • "lower_bound": "string",
  • "upper_bound": "string",
  • "limit": 10,
  • "reverse": false,
  • "show_payer": false
}

Response samples

Content type
application/json
{
  • "rows": [
    ]
}

Код контракта (WASM)

Возвращает объект с WASM-кодом смарт-контракта.

Request Body schema: application/json
required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)
code_as_wasm
required
integer
Default: 1

Должно быть 1 (истина)

Responses

Request samples

Content type
application/json
{
  • "account_name": "string",
  • "code_as_wasm": 1
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "code_hash": "string",
  • "wast": "string",
  • "wasm": "string",
  • "abi": {
    }
}

Сырой ABI контракта

Возвращает объект с сырым ABI смарт-контракта.

Request Body schema: application/json
required
Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string) (Имя учётной записи)

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "code_hash": "string",
  • "abi_hash": "string",
  • "abi": "string"
}

Активированные возможности протокола

Возвращает активированные на узле продюсера протокольные возможности.

Request Body schema: application/json
lower_bound
integer

Нижняя граница

upper_bound
integer

Верхняя граница

limit
integer

Лимит записей; по умолчанию 10

search_by_block_num
boolean

Искать по номеру блока

reverse
boolean

Обратный порядок обхода

Responses

Request samples

Content type
application/json
{
  • "lower_bound": 0,
  • "upper_bound": 0,
  • "limit": 0,
  • "search_by_block_num": true,
  • "reverse": true
}

Response samples

Content type
application/json
{
  • "activated_protocol_features": [
    ],
  • "more": 0
}

Учётные записи по авторизующим

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

Request Body schema: application/json
Array of (Имя учётной записи (Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string))) or Уровень разрешения (object)

Список учётных записей и/или пар actor/permission

keys
Array of strings (Публичный ключ) [ items^(EOS|PUB_([RK]1|WA)_)[1-9A-HJ-NP-Za-km-z]+$ ]

Список авторизующих ключей

Responses

Request samples

Content type
application/json
{
  • "accounts": [
    ],
  • "keys": [
    ]
}

Response samples

Content type
application/json
{
  • "accounts": [
    ]
}

Статус транзакции (финальность)

Возвращает состояние цепи и при наличии — информацию о транзакции по её идентификатору. Требуется включённая функция статуса финальности транзакций в плагине chain (параметр nodeos --transaction-finality-status-max-storage-size-gb).

Request Body schema: application/json
id
required
string

Идентификатор транзакции для запроса статуса.

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "state": "string",
  • "block_number": 0,
  • "block_id": "string",
  • "block_timestamp": "string",
  • "expiration": "string",
  • "head_number": 0,
  • "head_id": "string",
  • "head_timestamp": "string",
  • "irreversible_number": 0,
  • "irreversible_id": "string",
  • "irreversible_timestamp": "string",
  • "last_tracked_block_id": "string"
}

Применить транзакцию (send v2)

Пытается применить транзакцию в формате JSON к блокчейну. Поддерживает полную трассировку неудачной транзакции и повторные попытки через nodeos, если они включены на узле. При включённом повторе API-узел досылает транзакцию в P2P-сеть до истечения срока, включения в блок или необратимости. Внимание: по умолчанию вместо исключений возвращается полная трассировка ошибки. Не путайте наличие трассировки с успешным выполнением — проверяйте поля «receipt» и «except».

Request Body schema: application/json
return_failure_trace
boolean

Если true — исключения транзакции вкладываются в возвращаемую трассировку.

retry_trx
boolean

Если true — повторять отправку до блока заданной высоты (см. retry_trx_num_blocks), необратимости или истечения срока.

retry_trx_num_blocks
integer

При retry_trx — повторять до блока с этой высотой; если не задано — до lib.

object

Responses

Request samples

Content type
application/json
{
  • "return_failure_trace": true,
  • "retry_trx": true,
  • "retry_trx_num_blocks": 0,
  • "transaction": {
    }
}

Response samples

Content type
application/json
null

Симуляция транзакции без записи

Выполняет указанную транзакцию, формирует трассировку (включая расход ресурсов), затем откатывает все изменения состояния; субъективный биллинг для аккаунта не увеличивается. Подписи, если есть, обрабатываются, ошибки подписи игнорируются. Неуспешные транзакции всё равно содержат трассировку сбоя. Внимание: на публичных узлах с включённым compute_transaction нужно ограничивать частоту запросов (защита от DoS).

Request Body schema: application/json
signatures
Array of strings (Подпись) [ items^SIG_([RK]1|WA)_[1-9A-HJ-NP-Za-km-z]+$ ]

Массив подписей для авторизации транзакции

compression
boolean

Сжатие; обычно false

packed_context_free_data
string

JSON в hex

packed_trx
string

Объект транзакции, JSON в hex

Responses

Request samples

Content type
application/json
{
  • "signatures": [
    ],
  • "compression": true,
  • "packed_context_free_data": "string",
  • "packed_trx": "string"
}

Response samples

Content type
application/json
null

Хеш кода контракта

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

Request Body schema: application/json
account_name
string

Имя учётной записи владельца кода контракта.

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "code_hash": "string"
}

Идентификатор транзакции

Возвращает идентификатор транзакции (хеш транзакции) для переданной транзакции.

Request Body schema: application/json

Тело запроса — объект транзакции в формате JSON.

>= 8 properties
expiration
required
string (Дата и время)

Момент времени, до которого транзакция должна быть принята в блок.

ref_block_num
required
integer
ref_block_prefix
required
integer

32-битная часть идентификатора блока.

max_net_usage_words
required
integer (Неотрицательное целое) >= 0

Неотрицательное целое (в цепи часто соответствует uint64).

max_cpu_usage_ms
required
integer (Неотрицательное целое) >= 0

Неотрицательное целое (в цепи часто соответствует uint64).

delay_sec
required
integer
required
Array of objects (Действие (action))
required
Array of objects (Действие (action))
Array of objects (Расширение (extension))

Responses

Request samples

Content type
application/json
{
  • "expiration": "string",
  • "ref_block_num": 0,
  • "ref_block_prefix": 0,
  • "max_net_usage_words": 0,
  • "max_cpu_usage_ms": 0,
  • "delay_sec": 0,
  • "context_free_actions": [
    ],
  • "actions": [
    ],
  • "transaction_extensions": [
    ]
}

Response samples

Content type
application/json
"string"

Расписание продюсеров

Возвращает текущее расписание продюсеров — активный список и порядок ротации.

Responses

Response samples

Content type
application/json
{
  • "active": {
    },
  • "pending": {
    },
  • "proposed": {
    }
}

Транзакция только для чтения

Отправляет транзакцию только для чтения в формате JSON; она не предназначена для включения в блокчейн. Если транзакция меняет состояние цепи, узел отклонит её.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "transaction": {
    }
}

Response samples

Content type
application/json
null

Передать блок в цепь

Передаёт блок в блокчейн (для специальных сценариев узла).

Request Body schema: application/json
>= 9 properties
timestamp
required
string (Дата и время с секундами) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}...

Дата и время в формате YYYY-MM-DDTHH:MM:SS.sss

required
Пустая строка (string) or (Имя учётной записи (Привилегированное имя (string) or Базовое имя (string) or Имя из аукциона (string) or Прочее имя (string)))
confirmed
required
integer

Число предыдущих блоков, подтверждённых этим продюсером в текущем расписании.

previous
required
string (Хеш SHA-256) ^[0-9A-Fa-f]{64}$

64-символьная шестнадцатеричная строка (хеш SHA-256).

transaction_mroot
required
string (Хеш SHA-256) ^[0-9A-Fa-f]{64}$

64-символьная шестнадцатеричная строка (хеш SHA-256).

action_mroot
required
string (Хеш SHA-256) ^[0-9A-Fa-f]{64}$

64-символьная шестнадцатеричная строка (хеш SHA-256).

schedule_version
required
integer

Сколько раз расписание продюсеров менялось с генезиса.

required
object (ProducerSchedule)

Расписание продюсеров и его версия.

object (Расширение (extension))
new_protocol_features
Array of objects

Новые протокольные возможности, активированные в блоке.

producer_signature
required
string (Подпись) ^SIG_([RK]1|WA)_[1-9A-HJ-NP-Za-km-z]+$

Криптографическая подпись в Base58 (префикс SIG_ и тип ключа R1/K1/WA).

Array of objects (Квитанция транзакции)

Квитанции транзакций, включённых в блок.

object (Расширение (extension))
id
string (Хеш SHA-256) ^[0-9A-Fa-f]{64}$

64-символьная шестнадцатеричная строка (хеш SHA-256).

block_num
integer

Высота блока в цепи.

ref_block_prefix
integer

32-битная часть идентификатора блока.

Responses

Request samples

Content type
application/json
{
  • "timestamp": "string",
  • "producer": "",
  • "confirmed": 0,
  • "previous": "string",
  • "transaction_mroot": "string",
  • "action_mroot": "string",
  • "schedule_version": 0,
  • "new_producers": {
    },
  • "header_extensions": {
    },
  • "new_protocol_features": [
    ],
  • "producer_signature": "string",
  • "transactions": [
    ],
  • "block_extensions": {
    },
  • "id": "string",
  • "block_num": 0,
  • "ref_block_prefix": 0
}

Response samples

Content type
application/json
null