Методы REST API сервиса подготовки данных

Транзакции

Набор методов, позволяющий выводить список транзакций по заданным условиям и фильтрам.

GET /transactions

Возвращает список транзакций, соответствующий условиям поискового запроса и применённым фильтрам.

Важно

За один запрос через метод API GET /transactions возвращается не более 500 транзакций.

Ответ метода:

[
 {
    "id": "string",
    "type": 0,
    "height": 0,
    "fee": 0,
    "sender": "string",
    "senderPublicKey": "string",
    "signature": "string",
    "timestamp": 0,
    "version": 0
 }
]

GET /transactions/count

Возвращает количество транзакций, соответствующих условиям поискового запроса и применённым фильтрам.

Ответ метода:

{
"count": "string"
}

GET /transactions/{id}

Возвращает транзакцию по идентификатору {id}.

Ответ метода:

{
"id": "string",
"type": 0,
"height": 0,
"fee": 0,
"sender": "string",
"senderPublicKey": "string",
"signature": "string",
"timestamp": 0,
"version": 0
}

Наборы токенов

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

GET /assets

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

Ответ метода:

[
  {
    "index": 0,
    "id": "string",
    "name": "string",
    "description": "string",
    "reissuable": true,
    "quantity": 0,
    "decimals": 0
  }
]

POST /assets/count

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

Ответ метода

{
    "count": 0
}

GET /assets/{id}

Возвращает информацию о доступном наборе токенов по его {id}.

Ответ метода

{
  "index": 0,
  "id": "string",
  "name": "string",
  "description": "string",
  "reissuable": true,
  "quantity": 0,
  "decimals": 0
}

Пользователи

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

GET /users

Возвращает список пользователей, соответствующий условиям поискового запроса и применённым фильтрам.

Ответ метода:

[
  {
    "address": "string",
    "aliases": [
      "string"
    ],
    "registration_date": "string",
    "permissions": [
      "string"
    ]
  }
]

GET /users/count

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

Ответ метода:

{
  "count": 0
}

GET /users/{userAddressOrAlias}

Возвращает информацию о пользователе по его адресу или алиасу.

Ответ метода:

{
  "address": "string",
  "aliases": [
    "string"
  ],
  "registration_date": "string",
  "permissions": [
    "string"
  ]
}

GET /users/contract-id/{contractId}

Возвращает список пользователей, вызывавших когда-либо смарт-контракт с указанным {contractId}.

Ответ метода:

{
  "address": "string",
  "aliases": [
    "string"
  ],
  "registration_date": "string",
  "permissions": [
    "string"
  ]
}

POST /users/by-addresses

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

Ответ метода:

[
  {
    "index": 0,
    "id": "string",
    "name": "string",
    "description": "string",
    "reissuable": true,
    "quantity": 0,
    "decimals": 0
  }
]

Блоки

GET /blocks/at/{height}

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

Ответ метода:

{
  "version": 0,
  "timestamp": 0,
  "reference": "string",
  "features": [
    0
  ],
  "generator": "string",
  "signature": "string",
  "blocksize": 0,
  "transactionsCount": 0,
  "fee": 0,
  "height": 0,
  "transactions": [
    {
      "id": "string",
      "type": 0,
      "height": 0,
      "fee": 0,
      "sender": "string",
      "senderPublicKey": "string",
      "signature": "string",
      "timestamp": 0,
      "version": 0
    }
  ]

Смарт-контракты

Набор методов, позволяющий вывести информацию о смарт-контрактах Docker, загруженных в блокчейн.

GET /contracts

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

Ответ метода:

[
  {
    "id": "string",
    "type": 0,
    "height": 0,
    "fee": 0,
    "sender": "string",
    "senderPublicKey": "string",
    "signature": "string",
    "timestamp": 0,
    "version": 0
  }
]

GET /contracts/count

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

Ответ метода:

{
  "count": 0
}

GET /contracts/id/{id}

Возаращает информацию о смарт-контракте по его {id}.

Примечание

Для этого метода предусмотрен вывод стейта смарт-контракта по эндпоинту /state. Для корректного вывода необходимо обработать параметры lastIndex и limit, чтобы ограничить количество выводимых записей. Пример: curl -X GET "https://<your-address>/dataServiceAddress/contracts/id/{id}/state?lastIndex=0&limit=50&q="

Ответ метода:

{
  "id": "string",
  "type": 0,
  "height": 0,
  "fee": 0,
  "sender": "string",
  "senderPublicKey": "string",
  "signature": "string",
  "timestamp": 0,
  "version": 0
}

GET /contracts/id/{id}/versions

Возвращает историю версий смарт-контракта с заданным {id}.

Ответ метода:

[
  {
    "version": 0,
    "image": "string",
    "imageHash": "string",
    "timestamp": "string"
  }
]

GET /contacts/history/{id}/key/{key}

Возвращает историю изменений ключа смарт-контракта по его {id} и {key}.

Ответ метода:

{
  "total": 777,
  "data": [
    {
      "key": "some_key",
      "type": "integer",
      "value": "777",
      "timestamp": 1559347200000,
      "height": 14024
    }
  ]
}

GET /contracts/senders-count

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

Ответ метода:

{
  "count": 777
}

GET /contracts/calls

Возвращает список транзакций 104 на вызов смарт-контрактов с их параметрами и результатами.

Ответ метода:

[
  {
    "id": "string",
    "type": 0,
    "height": 0,
    "fee": 0,
    "sender": "string",
    "senderPublicKey": "string",
    "signature": "string",
    "timestamp": 0,
    "version": 0,
    "contract_id": "string",
    "contract_name": "string",
    "contract_version": "string",
    "image": "string",
    "fee_asset": "string",
    "finished": "string",
    "params": [
      {
        "tx_id": "string",
        "param_key": "string",
        "param_type": "string",
        "param_value_integer": 0,
        "param_value_boolean": true,
        "param_value_binary": "string",
        "param_value_string": "string",
        "position_in_tx": 0,
        "contract_id": "string",
        "sender": "string"
      }
    ],
    "results": [
      {
        "tx_id": "string",
        "result_key": "string",
        "result_type": "string",
        "result_value_integer": 0,
        "result_value_boolean": true,
        "result_value_binary": "string",
        "result_value_string": "string",
        "position_in_tx": 0,
        "contract_id": "string",
        "time_stamp": "string"
      }
    ]
  }
]

Группы доступа

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

GET /privacy/groups

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

Ответ метода:

[
  {
    "id": "string",
    "name": 0,
    "description": "string",
    "createdAt": "string"
  }
]

GET /privacy/groups/count

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

Ответ метода:

{
  "count": 0
}

GET /privacy/groups/{address}

Возвращает список групп доступа, в которые входит заданный {address}.

Ответ метода:

[
  {
    "id": "string",
    "name": 0,
    "description": "string",
    "createdAt": "string"
  }
]

GET /privacy/groups/by-recipient/{address}

Возвращает список групп доступа, в которых заданный {address} фигурирует как получатель данных.

Ответ метода:

[
  {
    "id": "string",
    "name": 0,
    "description": "string",
    "createdAt": "string"
  }
]

GET /privacy/groups/{address}/count

Возвращает количество групп доступа, в которые входит заданный {address}.

Ответ метода:

{
  "count": 0
}

GET /privacy/groups/id/{id}

Возвращает информацию о группе доступа по ее {id}.

Ответ метода:

{
  "id": "string",
  "name": 0,
  "description": "string",
  "createdAt": "string"
}

GET /privacy/groups/id/{id}/history

Возвращает историю изменений группы доступа по ее {id} (в виде списка отправленных транзакций 112-114 с их описанием).

Ответ метода:

{
  "id": "string",
  "name": 0,
  "description": "string",
  "createdAt": "string"
}

GET /privacy/groups/id/{id}/history/count

Возвращает количество отправленных транзакций 112-114 для внесения изменений в группу доступа с указанным {id}.

Ответ метода:

{
  "id": "string",
  "name": 0,
  "description": "string",
  "createdAt": "string"
}

GET /privacy/nodes

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

Ответ метода:

[
  {
    "id": "string",
    "name": 0,
    "description": "string",
    "createdAt": "string"
  }
]

GET /privacy/nodes/count

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

Ответ метода:

{
  "count": 0
}

GET /privacy/nodes/publicKey/{targetPublicKey}

Возвращает информацию о ноде по ее публичному ключу {targetPublicKey}.

Ответ метода:

[
  {
    "id": "string",
    "name": 0,
    "description": "string",
    "createdAt": "string"
  }
]

GET /privacy/nodes/address/{address}

Возвращает информацию о ноде по ее адресу {address}.

Ответ метода:

[
  {
    "id": "string",
    "name": 0,
    "description": "string",
    "createdAt": "string"
  }
]

Транзакции с данными

GET /api/v1/txIds/{key}

Возвращает список идентификаторов транзакций с данными, содержащих указанный ключ {key}.

Ответ метода:

[
  {
    "id": "string"
  }
]

GET /api/v1/txIds/{key}/{value}

Возвращает список идентификаторов транзакций с данными, содержащих указанный ключ {key} и значение {value}.

Ответ метода:

[
  {
        "id": "string"
  }
]

GET /api/v1/txData/{key}

Возвращает тела транзакций с данными, содержащие указанный ключ {key}.

Ответ метода:

[
  {
    "id": "string",
    "type": "string",
    "height": 0,
    "fee": 0,
    "sender": "string",
    "senderPublicKey": "string",
    "signature": "string",
    "timestamp": 0,
    "version": 0,
    "key": "string",
    "value": "string",
    "position_in_tx": 0
  }
]

GET /api/v1/txData/{key}/{value}

Возвращает тела транзакций с данными, содержащие указанный ключ {key} и значение {value}.

Ответ метода:

[
  {
    "id": "string",
    "type": "string",
    "height": 0,
    "fee": 0,
    "sender": "string",
    "senderPublicKey": "string",
    "signature": "string",
    "timestamp": 0,
    "version": 0,
    "key": "string",
    "value": "string",
    "position_in_tx": 0
  }
]

Функции лизинга

GET /leasing/calc

Возвращает сумму выплат за лизинг токенов в указанном интервале высот блоков.

Ответ метода:

{
  "payouts": [
    {
      "leaser": "3P1EiJnPxFxGyhN9sucXfB2rhQ1ws4cmuS5",
      "payout": 234689
    }
  ],
  "totalSum": 4400000,
  "totalBlocks": 1600
}

Вспомогательные функции сервиса подготовки данных

GET /info

Возвращает информацию о сервисе подготовки данных.

Ответ метода:

{
  "version": "string",
  "buildId": "string",
  "gitCommit": "string"
}

GET /status

Возвращает информацию о состоянии сервиса подготовки данных.

Ответ метода:

{
  "status": "string"
}

Функции статистики и мониторинга

GET /stats/transactions

Возвращает информацию о проведенных транзакциях за указанный временной промежуток.

Ответ метода:

{
  "aggregation": "day",
  "data": [
    {
      "date": "2020-03-01T00:00:00.000Z",
      "transactions": [
        {
          "type": 104,
          "count": 100
        }
      ]
    }
  ]
}

GET /stats/contracts

Возвращает информацию о транзакциях вызова смарт-контрактов за указанный временной промежуток.

Ответ метода:

{
  "aggregation": "day",
  "data": [
    {
      "date": "2020-03-01T00:00:00.000Z",
      "transactions": [
        {
          "type": 104,
          "count": 100
        }
      ]
    }
  ]
}

GET /stats/tokens

Возвращает информацию об обороте токенов в блокчейне за указанный временной промежуток.

Ответ метода:

{
  "aggregation": "day",
  "data": [
    {
      "date": "2020-03-01T00:00:00.000Z",
      "sum": "12000.001"
    }
  ]
}

GET /stats/addresses-active

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

Ответ метода:

{
  "aggregation": "day",
  "data": [
    {
      "date": "2020-03-01T00:00:00.000Z",
      "senders": "12",
      "recipients": "12"
    }
  ]
}

GET /stats/addresses-top

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

Ответ метода:

{
  "aggregation": "day",
  "data": [
    {
      "date": "2020-03-01T00:00:00.000Z",
      "senders": "12",
      "recipients": "12"
    }
  ]
}

GET /stats/nodes-top

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

Ответ метода:

{
  "limit": "10",
  "data": [
    {
      "generator": "3NdPsjaFC7NeioGVF6X4J5A8FVaxdtKvAba",
      "count": "120",
      "node_name": "Genesis Node #5"
    }
  ]
}

GET /stats/contract-calls

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

Ответ метода:

{
  "limit": "5",
  "data": [
    {
      "contract_id": "Cm9MDf7vpETuzUCsr1n2MVHsEGk4rz3aJp1Ua2UbWBq1",
      "count": "120",
      "contract_name": "oracle_contract",
      "last_call": "60.321"
    }
  ]
}

GET /stats/contract-last-calls

Возвращает список последних вызовов смарт-контрактов по их id и названию.

Ответ метода:

{
  "limit": "5",
  "data": [
    {
      "contract_id": "Cm9MDf7vpETuzUCsr1n2MVHsEGk4rz3aJp1Ua2UbWBq1",
      "contract_name": "oracle_contract",
      "last_call": "60.321"
    }
  ]
}

GET /stats/contract-types

Возвращает список смарт-контрактов блокчейна по именам образов и их хэшам.

Ответ метода:

{
  "limit": "5",
  "data": [
    {
      "id": "Cm9MDf7vpETuzUCsr1n2MVHsEGk4rz3aJp1Ua2UbWBq1",
      "image": "registry.wvservices.com/waves-enterprise-public/oracle-contract:v0.1",
      "image_hash": "936f10207dee466d051fe09669d5688e817d7cdd81990a7e99f71c1f2546a660",
      "count": "60",
      "sum": "6000"
    }
  ]
}

GET /stats/monitoring

Возвращает информацию о сети.

Ответ метода:

{
  "tps": "5",
  "blockAvgSize": "341.391",
  "senders": "50",
  "nodes": "50",
  "blocks": "500000"
}

Функции анкоринга

GET /anchoring/rounds

Возвращает список транзакций в соответствии с заданными условиями и фильтрами.

Ответ метода:

[
  {
    "height": 0,
    "sideChainTxIds": [
      "string"
    ],
    "mainNetTxIds": [
      "string"
    ],
    "status": "string",
    "errorCode": 0
  }
]

GET /anchoring/round/at/{height}

Возвращает информацию о раунде анкоринга на указанной высоте блоков {height}.

Ответ метода:

{
  "height": 0,
  "sideChainTxIds": [
    "string"
  ],
  "mainNetTxIds": [
    "string"
  ],
  "status": "string",
  "errorCode": 0
}

GET /anchoring/info

Возвращает информацию об анкоринге в блокчейне.

Ответ метода:

{
  "height": 0,
  "sideChainTxIds": [
    "string"
  ],
  "mainNetTxIds": [
    "string"
  ],
  "status": "string",
  "errorCode": 0
}