--- apiVersion: v1 kind: Service metadata: name: {{ .NAME }}-source-events-1 namespace: {{ .NAMESPACE }} labels: app: {{ .NAME }}-source-events-1 spec: selector: app: {{ .NAME }}-source-events-1 ports: - port: {{ .PORT }} targetPort: {{ .PORT }} name: {{ .NAME }}-source-events-1 protocol: TCP --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: blockchain-watcher-eth-pvc namespace: {{ .NAMESPACE }} spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Mi storageClassName: gp2 --- apiVersion: v1 kind: ConfigMap metadata: name: {{ .NAME }}-source-events-1-jobs namespace: {{ .NAMESPACE }} data: testnet-jobs.json: |- [ { "id": "poll-log-message-published-ethereum-holesky", "chain": "ethereum-holesky", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 15000, "addresses": ["0xa10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a"], "chain": "ethereum-holesky", "chainId": 10006 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0xa10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-ethereum-sepolia", "chain": "ethereum-sepolia", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 15000, "addresses": ["0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78"], "chain": "ethereum-sepolia", "chainId": 10002 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-karura", "chain": "karura", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "finalized", "interval": 15000, "addresses": [ "0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03" ], "chain": "karura", "chainId": 11 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-fantom", "chain": "fantom", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 15000, "addresses": [ "0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7" ], "chain": "fantom", "chainId": 10 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0x1BB3B4119b7BA9dfad76B0545fb3F531383c3bB7" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-acala", "chain": "acala", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "finalized", "interval": 15000, "addresses": [ "0x4377B49d559c0a9466477195C6AdC3D433e265c0" ], "chain": "acala", "chainId": 12 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0x4377B49d559c0a9466477195C6AdC3D433e265c0" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-avalanche", "chain": "avalanche", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "finalized", "interval": 15000, "addresses": [ "0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C" ], "chain": "avalanche", "chainId": 6, "topics": [] } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-bsc", "chain": "bsc", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 15000, "addresses": ["0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D"], "chain": "bsc", "chainId": 4 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-moonbeam", "chain": "moonbeam", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 15000, "addresses": ["0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901"], "chain": "moonbeam", "chainId": 16 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0xa5B7D85a8f27dd7907dc8FdC21FA5657D5E2F901"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-sui", "chain": "sui", "source": { "action": "PollSuiTransactions", "config": { "interval": 5000, "chain": "sui", "filter": { "MoveFunction": { "package": "0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94", "module": "publish_message", "function": "publish_message" } } } }, "handlers": [ { "action": "HandleSuiTransactions", "target": "sns", "mapper": "suiLogMessagePublishedMapper", "config": { "eventTypes": [ "0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94::publish_message::WormholeMessage" ], "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-aptos", "chain": "aptos", "source": { "action": "PollAptos", "config": { "limitBatchSize": 100, "commitment": "finalized", "interval": 25000, "addresses": ["0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"], "chain": "aptos", "chainId": 22, "filter": { "fieldName": "event", "address": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625", "event": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessageHandle", "type": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessage" } } }, "handlers": [ { "action": "HandleAptosTransactions", "target": "sns", "mapper": "aptosLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "metricName": "process_source_event", "metricLabels": { "job": "poll-log-message-published-aptos", "chain": "aptos", "commitment": "finalized" } } } ] } ] mainnet-jobs.json: |- [ { "id": "poll-log-message-published-ethereum", "chain": "ethereum", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 15000, "addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"], "chain": "ethereum", "chainId": 2 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-karura", "chain": "karura", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "finalized", "interval": 5000, "addresses": [ "0xa321448d90d4e5b0A732867c18eA198e75CAC48E" ], "chain": "karura", "chainId": 11 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0xa321448d90d4e5b0A732867c18eA198e75CAC48E" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-fantom", "chain": "fantom", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 5000, "addresses": [ "0x126783A6Cb203a3E35344528B26ca3a0489a1485" ], "chain": "fantom", "chainId": 10 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0x126783A6Cb203a3E35344528B26ca3a0489a1485" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-acala", "chain": "acala", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "finalized", "interval": 5000, "addresses": [ "0xa321448d90d4e5b0A732867c18eA198e75CAC48E" ], "chain": "acala", "chainId": 12 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0xa321448d90d4e5b0A732867c18eA198e75CAC48E" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-avalanche", "chain": "avalanche", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "finalized", "interval": 5000, "addresses": [ "0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c" ], "chain": "avalanche", "chainId": 6, "topics": [] } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": [ "0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c" ], "topics": [ "0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2" ] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-bsc", "chain": "bsc", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 5000, "addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"], "chain": "bsc", "chainId": 4 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-moonbeam", "chain": "moonbeam", "source": { "action": "PollEvm", "config": { "blockBatchSize": 100, "commitment": "latest", "interval": 5000, "addresses": ["0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3"], "chain": "moonbeam", "chainId": 16 } }, "handlers": [ { "action": "HandleEvmLogs", "target": "sns", "mapper": "evmLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "filter": { "addresses": ["0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3"], "topics": ["0x6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b2"] }, "metricName": "process_source_event" } } ] }, { "id": "poll-log-message-published-sui", "chain": "sui", "source": { "action": "PollSuiTransactions", "config": { "interval": 5000, "chain": "sui", "filter": { "MoveFunction": { "package": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a", "module": "publish_message", "function": "publish_message" } } } }, "handlers": [ { "action": "HandleSuiTransactions", "target": "sns", "mapper": "suiLogMessagePublishedMapper", "config": { "eventTypes": [ "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a::publish_message::WormholeMessage" ], "metricName": "process_source_event", "metricLabels": { "job": "poll-log-message-published-sui", "chain": "sui", "commitment": "immediate" } } } ] }, { "id": "poll-log-message-published-aptos", "chain": "aptos", "source": { "action": "PollAptos", "config": { "limitBatchSize": 100, "commitment": "finalized", "interval": 15000, "addresses": ["0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"], "chain": "aptos", "chainId": 22, "filter": { "fieldName": "event", "address": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625", "event": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessageHandle", "type": "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625::state::WormholeMessage" } } }, "handlers": [ { "action": "HandleAptosTransactions", "target": "sns", "mapper": "aptosLogMessagePublishedMapper", "config": { "abi": "event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel)", "metricName": "process_source_event", "metricLabels": { "job": "poll-log-message-published-aptos", "chain": "aptos", "commitment": "finalized" } } } ] } ] --- apiVersion: apps/v1 kind: Deployment metadata: name: {{ .NAME }}-source-events-1 namespace: {{ .NAMESPACE }} spec: replicas: 1 selector: matchLabels: app: {{ .NAME }}-source-events-1 template: metadata: labels: app: {{ .NAME }}-source-events-1 annotations: prometheus.io/scrape: "true" prometheus.io/port: "{{ .PORT }}" spec: restartPolicy: Always terminationGracePeriodSeconds: 30 serviceAccountName: event-watcher containers: - name: {{ .NAME }} image: {{ .IMAGE_NAME }} env: - name: NODE_ENV value: {{ .NODE_ENV }} - name: PORT value: "{{ .PORT }}" - name: LOG_LEVEL value: {{ .LOG_LEVEL }} - name: BLOCKCHAIN_ENV value: {{ .BLOCKCHAIN_ENV }} - name: DRY_RUN_ENABLED value: "{{ .DRY_RUN_ENABLED }}" - name: SNS_TOPIC_ARN value: {{ .SNS_TOPIC_ARN }} - name: SNS_REGION value: {{ .SNS_REGION }} - name: JOBS_DIR value: /home/node/app/jobs {{ if .FANTOM_RPCS }} - name: FANTOM_RPCS value: '{{ .FANTOM_RPCS }}' {{ end }} {{ if .ETHEREUM_RPCS }} - name: ETHEREUM_RPCS value: '{{ .ETHEREUM_RPCS }}' {{ end }} {{ if .ETHEREUM_SEPOLIA_RPCS }} - name: ETHEREUM_SEPOLIA_RPCS value: '{{ .ETHEREUM_SEPOLIA_RPCS }}' {{ end }} {{ if .MOONBEAM_RPCS }} - name: MOONBEAM_RPCS value: '{{ .MOONBEAM_RPCS }}' {{ end }} {{ if .ETHEREUM_HOLESKY_RPCS }} - name: ETHEREUM_HOLESKY_RPCS value: '{{ .ETHEREUM_HOLESKY_RPCS }}' {{ end }} {{ if .BSC_RPCS }} - name: BSC_RPCS value: '{{ .BSC_RPCS }}' {{ end }} {{ if .AVALANCHE_RPCS }} - name: AVALANCHE_RPCS value: '{{ .AVALANCHE_RPCS }}' {{ end }} resources: limits: memory: {{ .RESOURCES_LIMITS_MEMORY }} cpu: {{ .RESOURCES_LIMITS_CPU }} requests: memory: {{ .RESOURCES_REQUESTS_MEMORY }} cpu: {{ .RESOURCES_REQUESTS_CPU }} volumeMounts: - name: metadata-volume mountPath: /home/node/app/metadata-repo - name: jobs-volume mountPath: /home/node/app/jobs volumes: - name: metadata-volume persistentVolumeClaim: claimName: blockchain-watcher-eth-pvc - name: jobs-volume configMap: name: {{ .NAME }}-source-events-1-jobs items: - key: {{ .BLOCKCHAIN_ENV }}-jobs.json path: jobs.json