Appeler des méthodes RPC et envoyer des événements à votre URL avec ERPC CLI

erpc rpc call envoie une requête JSON-RPC depuis votre terminal avec le compte ERPC auquel vous êtes connecté, ou paie à l'appel avec x402. erpc webhook envoie des événements RPC à votre URL par POST.
Cette page décrit ERPC CLI v0.1.0-rc.4, une préversion.

Appeler une méthode RPC

Utilisez le compte ERPC auquel vous êtes connecté pour appeler le mainnet Solana ou Ethereum. Le CLI choisit l'endpoint partagé d'après la méthode, ou vous pouvez choisir le réseau.
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
  • Les paramètres sont un tableau ou un objet JSON, un fichier avec --params-file, ou - pour l'entrée standard. Sans paramètres, un appel envoie [].
  • Les réseaux sont solana-mainnet et ethereum-mainnet (aussi eth-mainnet). erpc rpc list-networks liste les réseaux qui disposent du RPC partagé d'ERPC et du RPC x402.
  • Votre propre endpoint : --endpoint-url n'utilise que les identifiants contenus dans cette URL. Celle-ci doit être une URL sécurisée ou une adresse de loopback, sans informations d'utilisateur.

Quelle clé du compte un appel utilise

Un compte peut avoir plusieurs clés RPC. erpc rpc call et erpc webhook run les essaient dans l'ordre, la clé principale en premier, avec un appel getHealth par clé avant leur propre appel. La clé est évaluée sur le RPC Solana partagé, quelle que soit la chaîne appelée ensuite.
Lorsque le RPC n'accepte aucune clé et que l'une d'elles n'a pas pu lui être soumise, la commande continue avec la première clé qui n'a pas pu être soumise, et c'est son propre appel qui le dira. Lorsque toutes les clés sont refusées, la commande échoue avec the shared RPC takes none of the account's API keys from this machine (<n> tried) : voir En cas d'échec.

Payer à l'appel avec x402

Pour un accès payé à l'appel sans compte, demandez un devis x402. --quote affiche le devis sans lire de wallet ni effectuer de paiement.
Pour payer, exécutez la commande sans --quote dans un terminal. Le CLI affiche le montant, demande une confirmation et signe, avec le wallet configuré par erpc wallet create, le paiement en EURC sur Base prévu par le devis. Gardez des EURC sur Base dans ce wallet (Payer depuis un wallet).
sh
erpc rpc call getSlot --network solana-mainnet --x402 --quote
erpc rpc call eth_blockNumber --x402

Envoyer des événements à votre URL

Un webhook local s'abonne au WebSocket du RPC et envoie les événements à votre URL par POST. Démarrez un récepteur, créez l'abonnement, puis exécutez l'ID que renvoie create, dans un terminal ou sous votre superviseur de processus.
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
Pour l'activité d'un wallet sur Solana, utilisez --template solana-wallet --wallet ADDRESS à la place de --method. Pour les logs de contrats Ethereum, utilisez --template evm-contract-events --address CONTRACT. L'URL de callback est en HTTPS ou en HTTP en loopback, et les réseaux sont les mêmes que pour erpc rpc call.

Ce que reçoit votre récepteur

  • Chaque POST contient webhook_id, network et la notification JSON-RPC d'origine. Renvoyez un HTTP 2xx pour l'accepter.
  • La livraison commence à partir de l'abonnement en direct actuel. Redémarrer le runner l'abonne aux nouveaux événements.
  • Une déconnexion ou un callback en échec met fin au runner avec un statut non nul.
  • erpc webhook run accepte --once pour tester une seule livraison, et --endpoint-url pour utiliser votre propre RPC WebSocket.

Gérer les webhooks

CommandeCe qu'elle fait
erpc webhook listListe les abonnements enregistrés
erpc webhook show IDAffiche un abonnement. Les identifiants du callback sont omis
erpc webhook enabled-countCompte les abonnements activés sur cette machine
erpc webhook pause IDDésactive la livraison. Un runner en cours d'exécution s'arrête
erpc webhook activate IDAutorise un run ultérieur
erpc webhook delete IDSupprime la définition
Ces commandes ne lisent et ne modifient que la configuration locale. Dans les scripts, passez --yes à pause, activate et delete.