觸發器
Ethereum Trigger 節點允許您監控區塊鏈事件,並在符合特定條件時自動觸發工作流程。此節點提供三種類型的觸發器以滿足不同的使用場景。
觸發器類型
Event Trigger(事件觸發器)
監控智能合約事件,當合約發出特定事件時觸發工作流程。
所需憑證:Ethereum RPC
參數:
- Contract Address(合約地址)(可選):要監控的一個或多個合約地址。留空則監控所有合約
- Event ABI(事件 ABI)(必需):要監控的事件 ABI 定義
- Event Name(事件名稱)(可選):要篩選的特定事件名稱
- Indexed Parameters(索引參數)(可選):按索引參數值篩選事件
功能特色:
- 監控所有合約或特定地址
- 支援多個合約地址
- 支援多種事件類型
- 按索引事件參數篩選
- 自動解碼事件日誌
使用場景:
- 監控代幣轉帳
- 追蹤 NFT 鑄造/銷售
- 監聽 DAO 投票
- 檢測合約狀態變更
範例 - 監控 ERC20 轉帳:
{
"contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"eventAbi": {
"name": "Transfer",
"type": "event",
"inputs": [
{ "name": "from", "type": "address", "indexed": true },
{ "name": "to", "type": "address", "indexed": true },
{ "name": "value", "type": "uint256" }
]
}
}
工作流程範例:
[Event Trigger: Transfer] → [檢查金額 > 1000] → [發送通知]
Block Trigger(區塊觸發器)
當區塊鏈上創建新區塊時觸發工作流程。
所需憑證:Ethereum RPC
參數:
- Polling Interval(輪詢間隔)(可選):檢查新區塊的頻率(秒)(預設:12)
功能特色:
- 即時區塊監控
- 可設定輪詢間隔
- 提供完整區塊資訊
使用場景:
- 監控區塊鏈進度
- 計算出塊時間
- 追蹤網路活動
- 觸發基於時間的操作
輸出資料:
{
"number": "18500000",
"hash": "0x...",
"parentHash": "0x...",
"timestamp": "1693526411",
"miner": "0x...",
"gasLimit": "30000000",
"gasUsed": "12345678",
"transactions": ["0x...", "0x..."]
}
工作流程範例:
[Block Trigger] → [取得區塊詳情] → [儲存到資料庫]
Transaction Trigger(交易觸發器)
監控特定地址的交易,當交易發生時觸發。
所需憑證:Ethereum RPC
參數:
- Address(地址)(必需):要監控的以太坊地址
- Direction(方向)(可選):篩選交易方向
both:監控進出交易(預設)incoming:僅進入交易outgoing:僅發出交易
- Polling Interval(輪詢間隔)(可選):檢查頻率(秒)(預設:12)
功能特色:
- 監控特定地址
- 按交易方向篩選
- 支援多個地址
- 自動檢測交易
使用場景:
- 監控錢包活動
- 追蹤付款收據
- 大額交易警報
- 檢測可疑活動
輸出資料:
{
"hash": "0x...",
"from": "0x...",
"to": "0x...",
"value": "1000000000000000000",
"gasPrice": "20000000000",
"blockNumber": "18500000",
"direction": "incoming"
}
工作流程範例:
[Transaction Trigger] → [檢查金額] → [更新會計系統]
常見模式
事件驅動工作流程
監控合約事件並自動反應:
[Event Trigger] → [解碼事件資料] → [處理] → [執行動作]
付款監控
追蹤進入您錢包的付款:
[Transaction Trigger: incoming] → [驗證金額] → [發送確認郵件]
多合約監控
同時監控多個合約:
[Event Trigger: 多個地址] → [識別合約] → [路由到處理器]
基於區塊的排程
每 N 個區塊執行任務:
[Block Trigger] → [檢查區塊號 % N == 0] → [執行任務]
效能考量
輪詢間隔
- Block Trigger:預設 12 秒匹配以太坊出塊時間
- Transaction Trigger:根據預期活動調整
- Event Trigger:根據出塊時間自動輪詢
速率限制
- 使用適當的輪詢間隔以避免 RPC 速率限制
- 考慮使用 WebSocket 連接進行即時監控
- 某些 RPC 提供商根據請求量收費
篩選
- 使用索引參數減少資料處理
- 盡可能在觸發器層級篩選
- 指定合約地址以減少不必要的檢查
提示
- 在測試網測試:在主網之前始終在測試網(Sepolia、Goerli)上測試觸發器
- 錯誤處理:為網路問題和 RPC 故障添加錯誤處理
- 去重:觸發器偶爾可能觸發兩次;實施去重邏輯
- 歷史資料:觸發器僅監控新事件;使用常規節點查詢歷史資料
- Gas 成本:觸發器不消耗 gas;它們只監控區塊鏈
- 多個觸發器:您可以在不同工作流程中使用多個觸發器
- ABI 格式:確保事件 ABI 格式正確的 JSON
疑難排解
觸發器未觸發
- 檢查 RPC 連接和憑證
- 驗證合約地址正確
- 確保事件 ABI 與合約匹配
- 檢查輪詢間隔是否過高
- 驗證事件確實被發出
遺漏事件
- RPC 提供商可能有速率限制
- 輪詢間隔過高
- 網路擁塞導致延遲
- 檢查 RPC 提供商的區塊延遲
重複事件
- 在重組期間是正常行為
- 實施事件 ID 追蹤
- 使用交易雜湊進行去重
下一步
- 了解 Account 操作以查詢餘額
- 探索 Contract 操作以與事件互動
- 查看 Transaction 以響應觸發器發送交易