ERPC CLI로 RPC 메서드를 호출하고 사용자의 URL로 이벤트 보내기

erpc rpc call은 로그인한 ERPC 계정으로 터미널에서 JSON-RPC 요청 하나를 보내거나, x402로 호출마다 결제합니다. erpc webhook은 RPC 이벤트를 사용자의 URL로 POST합니다.
이 페이지는 프리릴리스인 ERPC CLI v0.1.0-rc.4를 설명합니다.

RPC 메서드 호출하기

로그인한 ERPC 계정으로 Solana 또는 Ethereum 메인넷을 호출하세요. CLI가 메서드에 따라 공유 엔드포인트를 선택하며, 네트워크를 직접 선택할 수도 있습니다.
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는 ERPC 공유 RPC와 x402 RPC가 있는 네트워크를 나열합니다.
  • 자체 엔드포인트: --endpoint-url은 해당 URL에 들어 있는 자격 증명만 사용합니다. 이 URL은 보안 URL이거나 loopback이어야 하며, 사용자 정보를 포함해서는 안 됩니다.

호출에 사용되는 계정의 키

계정에는 RPC 키가 여러 개 있을 수 있습니다. erpc rpc call과 erpc webhook run은 기본 키부터 순서대로 키를 시도하며, 자체 호출 전에 키마다 getHealth 호출을 한 번씩 보냅니다. 키는 이후 어떤 체인을 호출하든 공유 Solana RPC에서 판정됩니다.
RPC가 어느 키도 받아들이지 않았고 그중 일부 키에 대해서는 확인하지 못한 경우, 명령은 확인하지 못한 첫 번째 키로 계속 진행하며, 결과는 명령 자체의 호출에서 드러납니다. 모든 키가 거부되면 명령은 the shared RPC takes none of the account's API keys from this machine (<n> tried)로 실패합니다. 실패했을 때를 참고하세요.

x402로 호출마다 결제하기

계정 없이 호출마다 결제하여 이용하려면 x402 견적을 요청하세요. --quote는 지갑을 읽거나 결제하지 않고 견적을 출력합니다.
결제하려면 터미널에서 --quote 없이 명령을 실행하세요. CLI가 금액을 보여 주고 확인을 요청한 뒤, erpc wallet create로 설정한 지갑으로 견적에 나온 Base EURC 결제에 서명합니다. 그 지갑에 Base의 EURC를 보관해 두세요(지갑에서 결제).
sh
erpc rpc call getSlot --network solana-mainnet --x402 --quote
erpc rpc call eth_blockNumber --x402

사용자의 URL로 이벤트 보내기

로컬 웹훅은 RPC WebSocket을 구독하고 이벤트를 사용자의 URL로 POST합니다. 수신기를 시작하고 구독을 생성한 다음, create가 반환한 ID를 터미널이나 프로세스 관리자에서 실행하세요.
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의 지갑 활동에는 --method 대신 --template solana-wallet --wallet ADDRESS를 사용하세요. Ethereum 컨트랙트 로그에는 --template evm-contract-events --address CONTRACT를 사용하세요. 콜백 URL은 HTTPS 또는 loopback HTTP이며, 네트워크는 erpc rpc call의 네트워크와 같습니다.

수신기가 받는 내용

  • 각 POST에는 webhook_id, network, 원래의 JSON-RPC notification이 들어 있습니다. 수락하려면 HTTP 2xx를 반환하세요.
  • 전달은 현재의 실시간 구독 시점부터 시작됩니다. 러너를 재시작하면 새 이벤트를 구독합니다.
  • 연결이 끊기거나 콜백이 실패하면 러너가 0이 아닌 종료 상태로 끝납니다.
  • erpc webhook run은 한 번의 전달을 테스트하는 --once와, 자체 WebSocket RPC를 사용하는 --endpoint-url을 받습니다.

웹훅 관리하기

명령하는 일
erpc webhook list저장된 구독을 나열합니다
erpc webhook show ID구독을 보여 줍니다. 콜백 자격 증명은 생략됩니다
erpc webhook enabled-count이 머신에서 활성화된 구독의 수를 셉니다
erpc webhook pause ID전달을 비활성화합니다. 실행 중인 러너는 종료됩니다
erpc webhook activate ID이후의 run을 실행할 수 있게 합니다
erpc webhook delete ID정의를 삭제합니다
이 명령들은 로컬 설정만 조회하고 변경합니다. 스크립트에서는 pause, activate, delete에 --yes를 전달하세요.