Вызывайте методы RPC и отправляйте события на свой URL с ERPC CLI

erpc rpc call отправляет из терминала один JSON-RPC-запрос с аккаунтом ERPC, в который вы вошли, или оплачивает каждый вызов через x402. erpc webhook отправляет события RPC POST-запросами на ваш URL.
Эта страница описывает ERPC CLI v0.1.0-rc.4 — пререлиз.

Вызов метода RPC

Обращайтесь к mainnet Solana или Ethereum с аккаунтом ERPC, в который вы вошли. CLI выбирает общий endpoint по методу, либо вы можете выбрать сеть сами.
sh
erpc login
erpc rpc call getSlot
erpc --json rpc call eth_getBlockByNumber '["latest", false]' --network ethereum-mainnet
erpc rpc call eth_call --params-file params.json
printf '%s' '["finalized", false]' | erpc rpc call eth_getBlockByNumber -
erpc rpc call getHealth --endpoint-url http://127.0.0.1:8899
  • Параметры — это JSON-массив или объект, файл с --params-file или - для стандартного ввода. Без них вызов отправляет [].
  • Сети — solana-mainnet и ethereum-mainnet (также eth-mainnet). erpc rpc list-networks выводит список сетей, где есть общий RPC ERPC и RPC через x402.
  • Собственный endpoint: --endpoint-url использует только учётные данные из этого URL. Это должен быть защищённый URL или loopback, без данных пользователя.

Какие ключи аккаунта использует вызов

У аккаунта может быть несколько RPC-ключей. erpc rpc call и erpc webhook run перебирают их по порядку, начиная с основного, и перед собственным вызовом делают по одному вызову getHealth для каждого ключа. Ключ проверяется на общем RPC Solana, какой бы блокчейн ни вызывался после этого.
Если RPC не принимает ни одного ключа, а об одном из них спросить не удалось, команда продолжает работу с первым ключом, о котором спросить не удалось, и результат покажет её собственный вызов. Если отклонены все ключи, команда завершается ошибкой the shared RPC takes none of the account's API keys from this machine (<n> tried): см. Если произошёл сбой.

Оплата каждого вызова через x402

Чтобы платить за каждый вызов без аккаунта, запросите котировку x402. --quote выводит котировку, не читая кошелёк и не выполняя платёж.
Чтобы заплатить, выполните команду без --quote в терминале. CLI показывает сумму, запрашивает подтверждение и подписывает указанный в котировке платёж в EURC в сети Base кошельком, который настроила команда erpc wallet create. Держите EURC в сети Base на этом кошельке (Оплата из кошелька).
sh
erpc rpc call getSlot --network solana-mainnet --x402 --quote
erpc rpc call eth_blockNumber --x402

Отправка событий на ваш URL

Локальный вебхук подписывается на WebSocket RPC и отправляет события POST-запросами на ваш URL. Запустите приёмник, создайте подписку, затем запустите её по ID, который вернула команда create, — в терминале или под вашим супервизором процессов.
sh
erpc webhook create --name slots --network solana-mainnet \
  --url http://127.0.0.1:8080/events --method slotSubscribe
erpc webhook create --name heads --network ethereum-mainnet \
  --url http://127.0.0.1:8080/events --method eth_subscribe --params '["newHeads"]'
erpc webhook list
erpc webhook run 1
Для активности кошелька в Solana используйте --template solana-wallet --wallet ADDRESS вместо --method. Для логов контрактов Ethereum используйте --template evm-contract-events --address CONTRACT. URL обратного вызова — это HTTPS или HTTP на loopback, а сети те же, что у erpc rpc call.

Что получает ваш приёмник

  • Каждый POST-запрос содержит webhook_id, network и исходное JSON-RPC-уведомление notification. Чтобы принять его, верните HTTP 2xx.
  • Доставка начинается с текущей подписки в реальном времени. При перезапуске раннер подписывается на новые события.
  • Обрыв соединения или неудачный обратный вызов завершает раннер с ненулевым кодом завершения.
  • erpc webhook run принимает --once, чтобы проверить одну доставку, и --endpoint-url, чтобы использовать собственный WebSocket RPC.

Управление вебхуками

КомандаЧто делает
erpc webhook listВыводит список сохранённых подписок
erpc webhook show IDПоказывает подписку. Учётные данные обратного вызова не выводятся
erpc webhook enabled-countСчитает подписки, включённые на этой машине
erpc webhook pause IDОтключает доставку. Работающий раннер завершается
erpc webhook activate IDРазрешает последующий run
erpc webhook delete IDУдаляет определение подписки
Эти команды просматривают и изменяют только локальную конфигурацию. В скриптах передавайте --yes командам pause, activate и delete.