Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node/Hack: Add tool to test go-ethereum subscriptions #4214

Conversation

bruce-riley
Copy link
Contributor

@bruce-riley bruce-riley commented Jan 10, 2025

This PR creates a tool to test that go-ethereum subscriptions work for a given endpoint. This can be used to verify a new chain before adding guardian support.

This PR was originally created to facilitate testing of any changes made to address this SeiEVM issue. It uses the go-ethereum library to subscribe for log events from the wormhole core contract and just logs them out.

To run the app for SeiEVM:

$ git clone -b node/hack_seievm_test_app https://github.com/wormholelabs-xyz/wormhole
$ cd wormhole/node/hack/evm_test
$ go run wstest.go --rpc wss://evm-ws-testnet.sei-apis.com --contract 0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd

To generate an event from the core contract:

$ cast send --rpc-url https://evm-rpc-testnet.sei-apis.com/ --private-key $YOUR_WALLET_KEY 0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd "publishMessage(uint32,bytes,uint8)" 43 0xdeadbeef 202

Using the current testnet public RPC, this does not see events. If you use the evm proxy instead, it does see events.

Ideally, this should see new events generated using the testnet public RPC. (Note that it should not see historical events.)

@bruce-riley bruce-riley force-pushed the node/hack_seievm_test_app branch from 31d16c0 to e64d85d Compare January 27, 2025 16:06
@bruce-riley bruce-riley changed the title Node/Hack: SeiEVM watcher test app Node/Hack: Add tool to test go-ethereum subscriptions Jan 27, 2025
@bruce-riley bruce-riley marked this pull request as ready for review January 27, 2025 16:10
Copy link
Contributor

@evan-gray evan-gray left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks helpful and hack folder appropriate

@bruce-riley bruce-riley merged commit 7d008ed into wormhole-foundation:main Jan 27, 2025
29 checks passed
@bruce-riley bruce-riley deleted the node/hack_seievm_test_app branch January 27, 2025 19:03
kakucodes added a commit that referenced this pull request Feb 3, 2025
wormchain: pulled in the pre-release cw_wormhole ict/integration test

added shutdown tests

lint cleanup

shutdown utils cleanup

Deploy SeiEVM testnet (#4209)

* cli: arbitrary chain registration

* Deploy SeiEVM Testnet

---------

Co-authored-by: Evan Gray <[email protected]>

Node: Update Celo watcher (#4210)

* Node: Update Celo watcher

* Code review rework

docs: add TransferFees conformance note (#4212)

* docs: add TransferFees conformance note

* docs: clarify cosmwasm core contract

* fix: make link relative

Deploy Monad testnet (#4218)

CONTRIBUTING: update to forbid PRs the contain only minor wording adjustments

Node/Solana: Reobservation by transaction ID (#4223)

* Node/Solana: Reobservation by transaction ID

* Code review rework

Double the limits on Ethereum and Solana (#4225)

* Double the limits on Ethereum and Solana

Due to high network volumes on Ethereum and Solana, the limits are being doubled for these 2 chains

* Fixed the hardcoded max daily limit in the tests

chore: add cw wormhole interchain tests (#4189)

* wormchain: cw_wormhole ict start

* wormchain(interchaintest): initial test implementation

* Add Additional Core Contract ICTs

* Finish Core Contract VAA ICTs

* Add Replay Protection Checks

* Extract Helper Commands

* Fix Modify Genesis

* Hook into ICT Workflow

* Add Missing UpgradeContract VAA Test

* Add Additional Fee Checks

---------

Co-authored-by: Kaku <[email protected]>
Co-authored-by: Obie Kaku <[email protected]>

node: Add Transfer Verifier mechanism (#4169)

Adds a new package and command-line tool for Transfer Verification. This is a process of validating message publications from the core contracts. When a message is emitted, Transfer Verification will examine the corresponding receipt or other logs to ensure that funds were sent into the token bridge whenever this kind of message is emitted from the core bridge.
This is a defense-in-depth mechanism to guard against a scenario where an attacker finds a way to spoof message publications.

Node/Solana: Beef up commitment check (#4231)

Github: Update node code owners (#4232)

Node: Change TxHash to TxID in MessagePublication (#4219)

* Node: Change TxHash to TxID in MessagePublication

* Code review rework

* More code review rework

* Limit TxID to 255 bytes and add test for it

* Code review rework

node: Governor token list update (#4208)

* node: governor token list update

* Update based on USD depeg stats

* Update codeowners

---------

Co-authored-by: djb15 <[email protected]>

clients/js: support alternative aptos networks

Node: Add support for Movement (#4236)

pulled in joel's ict based shutdown contract tests

update ict cw_wormhole wasm binary

updated makefile to run the tests with proper features

updated rust tests in workflow

ignore unused variables and functions during shutdown mode

fixing package exclusion

rerendered artifacts

rerendered artifacts

Node: Audit chain IDs

Node: Allow no heartbeating in testnet (#4240)

Deploy token bridge to Monad testnet (#4238)

Node/Aptos: Don't replay old observation on startup (#4243)

Deployment: Add Movement testnet token bridge (#4245)

Node/Solana: Shim support in testnet (#4241)

* Node/Solana: Shim support in testnet

* Code review rework

Node: Remove references to SignedObservation (#4244)

* Node: Remove references to SignedObservation

* Code review rework

Node/Hack: Add tool to test go-ethereum subscriptions (#4214)

* Node/Hack: SeiEVM watcher test app

* Make tool general purpose

Revert #4225 (#4247)

Node: Remove Monad Devnet support (#4248)

Node/Solana: Fix shim observation message (#4249)

feat: mainnet validator hot swaps (#4203)

* Add ICT Local Image

* Fix ICT Workflow

* feat: allow validator hot swapping in mainnet

* Integrate with CI

* fix: comments

* readd state lookup

updated ict workflow versions

updated dockerfile to seperately generate the shutdown contracts

removed unnecessary files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants