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

Примеры кода

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

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

ЗадачаПоверхностьУчётные данные
Статус узла, пирыNode API /v2/ownerБазовый, секрет создаётся автоматически
Блоки, заголовки, ядра (kernels), мемпулNode /v2/foreignНет
Опубликовать сырую транзакциюNode /v2/foreignНет
Всё, что связано с ключами или балансомWallet Owner API /v3/ownerECDH-хендшейк и токен кошелька
Получить переводWallet 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.

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

Каждый метод Epic JSON-RPC возвращает 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-запроса и ответа.