使用 ERPC CLI 呼叫 RPC 方法並將事件傳送到您的 URL

erpc rpc call 使用您已登入的 ERPC 帳戶,從終端機傳送一個 JSON-RPC 請求,或透過 x402 按次付費。erpc webhook 以 POST 方式將 RPC 事件傳送到您的 URL。
本頁說明 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 或 loopback,且不得包含使用者資訊。

呼叫會使用帳戶的哪一組金鑰

一個帳戶可以有多組 RPC 金鑰。erpc rpc call 與 erpc webhook run 會依序嘗試這些金鑰,從主要金鑰開始,並在執行自身的呼叫之前,對每組金鑰各進行一次 getHealth 呼叫。無論之後呼叫的是哪條鏈,金鑰都是在共享的 Solana RPC 上判定。
若 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

本機 Webhook 會訂閱 RPC WebSocket,並以 POST 方式將事件傳送到您的 URL。請先啟動接收端,再建立訂閱,然後在終端機中或在您的行程監督程式下,執行 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 上的錢包活動,請使用 --template solana-wallet --wallet ADDRESS 取代 --method。針對 Ethereum 合約日誌,請使用 --template evm-contract-events --address CONTRACT。回呼 URL 須為 HTTPS 或 loopback HTTP,網路則與 erpc rpc call 的相同。

接收端會收到什麼

  • 每個 POST 都包含 webhook_id、network 與原始的 JSON-RPC notification。請回傳 HTTP 2xx 以接受它。
  • 傳遞從目前的即時訂閱開始。重新啟動執行器會訂閱新的事件。
  • 斷線或回呼失敗會使執行器以非零狀態結束。
  • erpc webhook run 可使用 --once 測試單次傳遞,也可透過 --endpoint-url 使用您自己的 WebSocket RPC。

管理 Webhook

命令作用
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。