Перейти к основному содержимому

Примеры кода

Готовые к запуску примеры для рабочих процессов, которые нужны большинству интеграций, — в виде командной строки и на Python.

Выбор целевого интерфейса​

ЗадачаПоверхностьУчётные данные
Статус узла, пирыNode API /v2/ownerБазовый, секрет создаётся автоматически
Блоки, заголовки, ядра (kernels), мемпулNode /v2/foreignНет
Опубликовать сырую транзакциюNode /v2/foreignНет
Всё, что связано с ключами или балансомWallet Owner API /v3/ownerБазовая аутентификация с .owner_api_secret, затем ECDH-обмен и токен кошелька
Получить переводForeign API кошелька, или epic-wallet listenНет

JSON-RPC методы узла разделены по двум путям: /v2/owner — администрирование, а все операции чтения цепочки — на /v2/foreign. См. API узла.

Предварительные требования​

curl и jq.

sudo apt install curl jq # Debian и Ubuntu
winget install jqlang.jq # Windows, где curl уже установлен

Соглашения в примерах​

  • Запускайте команды из каталога examples репозитория — именно там находятся модули Python. import each other from.
  • Узел доступен на порту 3413, Owner API кошелька — на 3420, Foreign API кошелька — на 3415. Каждый клиент поддерживает NODE_URL, EPIC_OWNER_URL и EPIC_FOREIGN_URL, так что можно указать другой адрес.
  • Суммы — целые числа, в единицах freeman. 1 EPIC равен 100,000,000.
  • Секреты считываются из файлов, а пароль кошелька — из EPIC_WALLET_PASSWORD.

Конверт ответа​

Каждый JSON-RPC метод Epic возвращает HTTP 200 с JSON-RPC result, внутри которого находится второй конверт. Успешная операция содержит Ok:

{"id": 1, "jsonrpc": "2.0", "result": {"Ok": {"...": "the actual data"}}}

Неуспешная содержит Err на той же позиции:

{"id": 1, "jsonrpc": "2.0", "result": {"Err": {"NotEnoughFunds": {"available": 0, "needed": 100000000}}}}

Напишите один вспомогательный метод разворачивания и используйте его везде. _unwrap в клиенте кошелька на странице подключения и чтения вызывает исключение при Err и возвращает значение при Ok, и все вызовы в этом клиенте проходят через него.

Поле за полем конверт описан в обзоре API.

Расположение референсных клиентов​

Репозиторий кошелька поставляется с клиентом на Python, который выполняет то же рукопожатие: doc/samples/python/secure_api_example.py.

Сигнатуры методов определены в api/src/owner_rpc_s.rs; в комментарии к документации почти каждого метода приведены готовые примеры JSON-запроса и ответа.