Commit Graph

3672 Commits

Author SHA1 Message Date
Csongor Kiss 9620fca895
node: generalised governance (#3895)
* node/admin: add generalised EVM call governance handler

Handles governance requests of the form:

```
current_set_index: 4
messages: {
  sequence: 4513077582118919631
  nonce: 2809988562
  evm_call: {
    chain_id: 3
    governance_contract: "0xD8E4C2DbDd2e2bd8F1336EA691dBFF6952B1a6eB"
    target_contract: "0xF890982f9310df57d00f659cf4fd87e65adEd8d7"
    abi_encoded_call: "6497f75a000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000f890982f9310df57d00f659cf4fd87e65aded8d70000000000000000000000000000000000000000000000000000000000000140bebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebe000000000000000000000000000000000000000000000000000000000000000268690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004beefface00000000000000000000000000000000000000000000000000000000"
  }
}
```

* node/admin: add admin template for evm governance call

* node/admin: add generalised Solana call governance handler

handles governance requests of the form

```
current_set_index: 4
messages: {
  sequence: 4513077582118919631
  nonce: 2809988562
  solana_call: {
    chain_id: 3
    governance_contract: "3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5"
    encoded_instruction: "BEEFFACE"
  }
}
```

* node/admin: check address lengths and fix typo in governance handler

* node/admin: better error handling and fix comments

* sdk/vaa: add constants for general purpose governance actions
2024-04-23 11:28:02 -04:00
Bruce Riley 35f0b343ed Client/js: Add new chains 2024-04-22 17:14:23 -04:00
Jeff Schroeder bda43b2ac7 wormchain: update cosmos ledger bindings
Ran automatically via:

    go get github.com/cosmos/cosmos-sdk/crypto/ledger@v0.45.11

Fixes:

	 => ERROR [15/16] RUN make client                                                                                                                                                                                                                                           0.7s
	------
	 > [15/16] RUN make client:
	0.202 building wormchaind-v0.0.1
	0.202 go build -v -ldflags '-X github.com/cosmos/cosmos-sdk/version.Name=wormchain -X github.com/cosmos/cosmos-sdk/version.ServerName=wormchaind -X github.com/cosmos/cosmos-sdk/version.Version=v0.0.1 -X github.com/cosmos/cosmos-sdk/version.Commit=abc123 -X "github.com/cosmos/cosmos-sdk/version.BuildTags=ledger"' -tags ledger -o build/wormchaind cmd/wormchaind/main.go
	0.649 /go/pkg/mod/github.com/wormhole-foundation/cosmos-sdk@v0.45.9-wormhole-2/crypto/ledger/ledger_real.go:6:8: missing go.sum entry for module providing package github.com/cosmos/ledger-cosmos-go (imported by github.com/cosmos/cosmos-sdk/crypto/ledger); to add:
	0.649 	go get github.com/cosmos/cosmos-sdk/crypto/ledger@v0.45.11
	0.650 make: *** [Makefile:26: build/wormchaind] Error 1
	------
	Dockerfile:37
	--------------------
	  35 |     RUN /bin/bash /app/devnet/create-genesis.sh
	  36 |
	  37 | >>> RUN make client
	  38 |     RUN chmod +x /app/build/wormchaind
	  39 |
	--------------------
	ERROR: failed to solve: process "/bin/sh -c make client" did not complete successfully: exit code: 2
2024-04-22 16:31:18 -04:00
Jeff Schroeder 14d73dafe0 node: run go mod tidy
Necessary when updating the go ledger dependencies.
2024-04-22 16:31:18 -04:00
Michael Nguyen ddf5ba159c Fixes transactions when using a Ledger 2024-04-22 16:31:18 -04:00
bruce-riley 9af1fac9e1
Node/EVM: Linea poller (#3872)
* Node/EVM: Linea poller

* Explicitly check finality type in watcher
2024-04-22 10:11:45 -05:00
Jeff Schroeder 2712dd3f3f
node: upgrade to go 1.21.9 (#3855)
* node: update quic-go

Ran via:

    go get github.com/quic-go/quic-go@v0.42.0

* node: update mongo-drive dependency

Ran via:

    go get go.mongodb.org/mongo-driver@latest

* node: upgrade libp2p-go

Ran via:

    go get github.com/libp2p/go-libp2p@v0.33.1

Refs: #3863

* node: fallout from the go upgrade in the go.sum

Run via:

    go mod tidy

This updates the go.sum and removes unnecessary indirect references.

* docs: use go1.21.8

* github: use go1.21.8

Except for wormchain.

* node: update dockerfiles to use go 1.21.8

This was done with scripts/update-go-version.sh

* scripts: update linter dockerfile to use go 1.21.8

This was done with scripts/update-go-version.sh

* wormchain: update ibc-relayer to use go 1.21.8

This was done with scripts/update-go-version.sh

* scripts: add update-go-version.sh

This is a little helper to make updating the version of go a bit nicer.

* scripts: update-go-version.sh fixes

* set the default docker command to "dokcer"
* update the comment for the humongous sed command for dockerfiles

* github: fix go linting

* Upgrade golangci-lint to a version built with go 1.21.x. The older
  version was a binary version built with go 1.20.x and it was failing
  against the newer code built with go 1.21.x
* print the golangci-lint version in each run to see what version of go
  it was built with in case there are incompatibilties during the next
  upgrade
* remove the linter config skipping over pkg/supervisor entirely and
  instead put in an override to ignore the `unused` linter for the
  pkg/supervisor testhelpers bits for unsed test functions necessary
  to satisfy the test interface.

* scripts: update golang linter cli invocation

* github: use the latest version of golangci-lint

Because 1.52.2 is built with go 1.20.x which has issues with this project
now that it is upgraded to 1.21.8.

* node: remove implicit memory aliasing in a loop

Caught by an upgraded golangci-lint with the gosec linter:

    ::medium file=node/pkg/watchers/evm/connectors/batch_poller.go,line=226,col=8::G601: Implicit memory aliasing in for loop. (gosec)
    ::medium file=node/pkg/watchers/evm/connectors/batch_poller.go,line=285,col=8::G601: Implicit memory aliasing in for loop. (gosec)
    ::medium file=node/pkg/watchers/evm/connectors/batch_poller_test.go,line=128,col=37::G601: Implicit memory aliasing in for loop. (gosec)

See also: https://husni.dev/beware-of-implicit-memory-aliasing-in-go-foor-loop/

* node: update logging

* Update go to 1.21.9

Automated via:

    scripts/update-go-version.sh 1.21.9

* node: update test root context teardown time

Otherwise things get really sad.

* scripts: additions to update-go-versions.sh

* Standardized on prefacing functions with `function` for consistency
* Added a few more comments to explain how things work
* Automatically increment the go version and toolchain in go.mod
* Standardized on prefacing functions with `function` for consistency
* Make the go image debian version a variable for ease of maintenance

* node: update go.mod to specify 1.21.9

* node: update node tests

Review feedback from @pires

* scripts: run go mod tidy in update-go-version.sh

Required after running go mod edit or it refuses to build.

* node: update go.mod

Running `go mod tidy` removes the toolchain so the build works.

* node: update node tests

---------

Co-authored-by: Ryan Hamphrey <hamphreyryan26@gmail.com>
2024-04-19 14:43:36 -04:00
bruce-riley 04a13542d1
Node: Logging cleanup (#3888)
* Node: Logging cleanup

* Code review rework

---------

Co-authored-by: Bruce Riley <bruce@wormhole.labs.xyz>
2024-04-19 13:22:56 -05:00
bruce-riley c797acb7e9
Deploy SeiEVM Read Only to Testnet (#3889)
* Deploy SeiEVM Read Only

* Should be testnet, not mainnet
2024-04-19 11:01:58 -05:00
bruce-riley db9f33a816
Tilt : Deploy with forge instead of truffle (#3877)
* Tilt: Deploy with Forge instead of Truffle

* Move shell scripts
2024-04-19 10:44:04 -04:00
bruce-riley b0f1bd06ea
Deploy EVM Read Only (#3886) 2024-04-17 15:22:06 -05:00
Csongor Kiss 8b7495a7c6 clients/js: fix sui guardian set upgrade handler 2024-04-17 09:59:45 -04:00
Nikhil Suri 8ed75c9bfe
node: add emitters to ntt allowlist (#3884)
* node: add emitters to ntt allowlist

* node: tests: update TestNttVerifyMainnetEmitters
2024-04-16 17:40:43 -04:00
Dirk Brink 25e60611a8 docs: Add latest audit reports 2024-04-16 13:44:55 -04:00
Jeff Schroeder 44a8453ee6
deployments: add RockawayX as a new Guardian (#3880)
* deployments: update for guardian set index v4

Wormholescan returns vaas base64 encoded, but guardianSetVAAs.csv
has them in hex format. This is the correct command to download a
guardian set upgrade vaa and convert it to hex in one go:

    curl -sq 0000000000000000000000000000000004/18252082506122526004 | \
        jq .vaaBytes -r | \
        base64 -d | \
        xxd -p | \
        tr -d '\n'
    echo

Refs: wormhole-foundation/wormhole-networks#53

* node: update admin template gsti to 4

Refs: wormhole-foundation/wormhole-networks#53
2024-04-16 13:02:37 -04:00
bruce-riley 85afd5d1f9
node,sdk: add support for Provenance over IBC (#3879) 2024-04-16 12:21:21 -04:00
djb15 40c51b29dd node: governor token list update 2024-04-16 09:52:23 -04:00
bruce-riley 005c649018
eth,node,sdk: XLayer, Linea and Berachain to testnet (#3871)
* Deploy XLayer and Linea to testnet

* Add Berachain support
2024-04-15 22:45:43 -04:00
bruce-riley f290df6b9b
Ethereum: deploy with forge (#3862)
* eth: deploy with forge

* Delete unused scripts

* Support upgrade, bytecode verify and publish tool

* Add script to register all chains on a new chain
2024-04-15 12:13:37 -05:00
Csongor Kiss a46bccaa9b
Upgrade sui packages and compiler to 1.19.1-mainnet (#3803)
* sui: upgrade to mainnet-1.19.1

* sui: update Dockerfile.base

* sui: update tilt deployment to support new sui binary

* sui: remove faucet and simplify tilt deploy script

* sui: add script for switching Move.toml files between networks

* devnet: update sui addresses, regen config

---------

Co-authored-by: Evan Gray <battledingo@gmail.com>
2024-04-15 17:16:07 +01:00
Nikhil Suri b18a7e61eb node: Fix NTT V1 testnet emitters 2024-04-12 18:30:14 -04:00
Nikhil Suri d4821808a0
node: update ntt_config.go (#3875) 2024-04-12 15:14:20 -04:00
Evan Gray 77b4ddc812 ci: switch from ganache to anvil 2024-04-12 10:13:27 -04:00
Evan Gray fcabf0c99e node: Don't accept replayed heartbeats from other peers 2024-04-11 13:59:36 -04:00
bruce-riley 86ef5bff5a
Ethereum: Move relayer (#3866)
* Ethereum: Move relayer

* JS/SDK: Handle relayer move

* More tweaks

* ci: fix relayer deploy

* Code review rework

* Hack to fix tilt

* Another hack

* ci: revert relayer addresses

* Fix sdk tests

* Move ethereum-relayer to relayer/ethereum

* Yet another fix for tilt

* Code review rework

---------

Co-authored-by: Evan Gray <battledingo@gmail.com>
2024-04-11 08:46:36 -04:00
djb15 b78317b9b5 node: governor token list update 2024-04-04 16:48:37 -07:00
Dirk Brink a648515d68
node: Throttle CoinGecko queries (#3867)
* node: Throttle CoinGecko queries

* Make sure we terminate the goroutine with child context

* Continuous loop rather than loop on channel ticker
2024-04-03 14:49:14 -07:00
Martin Vejmelka b6afbd7154 fix: lifted gossip address override our of AddrsFactory hook
This runs validity checks on the gossip address override only once and avoids spamming the log.
2024-03-31 15:42:04 -04:00
Jeff Schroeder 683c5dfb59 node: a few minor spelling cleanups 2024-03-31 15:42:04 -04:00
Jeff Schroeder c76e247647 node: update GuardianOptionP2P()
Review feedback from @bruce-riley
2024-03-31 15:42:04 -04:00
Jeff Schroeder a4882e12be node: override the p2p advertised address
When behind a private network such as in the case of a guardian running
in Kubernetes, or behind a NAT, the default p2p setup doesn't work. It
looks at all addresses that it is listening on and advertises them on p2p
as the addresses for contacting the guardian. This patch is the first
step towards allowing specifying a custom ip address to be advertised on
the gossip p2p network.

For example, a guardian running inside kubernetes can post a reserved ip
address of the incoming ingress/load balancer that sends the traffic in
to their guardian.
2024-03-31 15:42:04 -04:00
Ben Guidarelli d87024c9df
CI: Change chain id for evm devnet node (#3864)
* CI: Change chain id for evm devnet node

* Set env file to match devnet configured ethereum chain id

* set evm chain id to ganache default

* update test evm chain ids in evm tests
2024-03-29 15:13:45 -04:00
bruce-riley 5077045bb0
Node/EVM: Make it log the message ID (#3865) 2024-03-29 14:11:10 -05:00
bruce-riley 428920acb8
Deploy Blast testnet (#3859)
* Deploy Blast testnet

* Update contract addresses
2024-03-29 09:20:31 -05:00
bruce-riley aa22a2b950
Node/CCQ: Load testing tweaks (#3857) 2024-03-26 13:02:41 -05:00
bruce-riley 2d680058cf
Node/spy: Adds optional VAA signature verification (#3854)
* Node/Spy: VAA Verifier

* Don't use parseAndVerifyVM

* Only verify if VAA will be published
2024-03-25 14:19:46 -05:00
A5 Pickle 22e31affe2
sdk/rust: prepare to publish crate (#3849)
* sdk/rust: organize workspace

* sdk/rust: add serde_wormhole to deps

* sdk/rust: serde_wormhole -> wormhole-raw-serde

* sdk/rust: add supported-chains; serde_wormhole -> wormhole-vaas-serde

* cosmwasm: fix deps

* sdk/rust: fix fmt

* sdk/rust: jk

* sdk/rust: add desc

* sdk/rust: rm Cargo.lock

* .github: fix workflow

---------

Co-authored-by: A5 Pickle <a5-pickle@users.noreply.github.com>
2024-03-25 14:09:54 -04:00
bruce-riley d036e70740
Node/P2P: Add default bootstrap peers (#3852)
* Node/P2P: Add default bootstrap peers

* Rework

* Update ccqlistener
2024-03-22 14:27:03 -05:00
scnale 9634d59035
clients/js: fixes hardcoded Near deployer implicit account id. (#3248)
* clients/js: fixes hardcoded Near deployer implicit account id.

* clients/js: remove near deployerAccount

---------

Co-authored-by: Evan Gray <battledingo@gmail.com>
2024-03-21 17:08:12 -04:00
Jeff Schroeder b175dd43c8
docs: quit the spelling spam typo fix PRs with cspell magic (#3845)
* Add cspell configuration and custom dictionary

The goal is to cut down on both incoming tyops, and well meaning but
spammy tyop fix PRs.

To run cspell locally install it and run:

    cspell '**/*.md' \
        --config cspell.config.yaml \
        --words-only \
        --unique \
        --quiet | sort --ignore-case

* docs: cspell updates

* wormchain: cspell updates

* aptos: cspell updates

* node: cspell updates

* algorand: cspell updates

* whitepapers: cspell updates

* near: cspell updates

* solana: cspell updates

* terra: cspell updates

* cosmwasm: cspell updates

* ethereum: cspell updates

* clients: cspell updates

* cspell updates for DEVELOP document

* github: run cspell github action

* sdk: cspell updates

* github: only run cspell on markdown files

* algorand: EMMITTER --> EMITTER

Suggested-by: @evan-gray

* cspell: removed from dictionary

Suggested-by: @evan-gray

* aptos and node: cspell updates

Suggested-by: @evan-gray

* cosmowasm: doc updates for terra2

Suggested-by: @evan-gray

* algorand: cspell updates

Suggested-by: @evan-gray

* algorand: cspell updates

Suggested-by: @evan-gray

* cspell: updated custom word dictionary

This resorts the dictionary and adds a few new words from the
algorand/MEMORY.md document around varints and integers.

* cspell: sort the dictionary how vscode does it

On macOS the sorting is locale dependent. To do this on macOS, you have
to invert the case, do a character insensitive sort, and then invert the
case again:

    LC_COLLATE="en_US.UTF-8" cspell '**/*.md' --config cspell.config.yaml \
        --words-only \
        --unique \
        --no-progress \
        --quiet \
    | tr 'a-zA-Z' 'A-Za-z' \
    | sort --ignore-case \
    | tr 'a-zA-Z' 'A-Za-z'

This requires the `LC_COLLATE` variable to be set to `en_US.UTF-8`, or it
will not do the right thing.

* docs: grammar clean up

---------

Co-authored-by: Evan Gray <battledingo@gmail.com>
2024-03-20 15:40:02 -04:00
bruce-riley 21eea8c2ed
Node/EVM: Remove obsolete field in logs (#3851)
* Node/EVM: Remove obsolete field in logs

* Rework

* More rework

* More rework
2024-03-20 12:49:10 -05:00
bruce-riley 9514b3562c
Node/CCQ: Concurrent queries (#3844)
* Node/CCQ: Concurrent queries

* Substantial rework
2024-03-20 08:42:31 -05:00
Bruce Riley 281a3514ad Node/NTT/Acct: Add tests to verify emitter config 2024-03-19 12:35:05 -04:00
Evan Gray 3da6ca2a56 sdk/js: uniform test timeouts 2024-03-19 11:55:34 -04:00
bruce-riley 3b0233d50c
Node/NTT/Acct: Defense in depth (#3843) 2024-03-18 13:22:12 -05:00
Bruce Riley 9c645933d6 Tilt: Gateway deployment 2024-03-18 10:51:32 -04:00
Evan Gray 3a8aec6217 ntt-accountant: update comment and add test 2024-03-15 20:49:23 -04:00
bruce-riley fa187bcf73
CCQ/Node/EVM: Backfill cache (#3558)
* CCQ/Node/EVM: Backfill cache

* Code review rework

* Make backfilling configurable

* Code review rework
2024-03-15 14:26:11 -05:00
Bruce Riley d7b647589f Github: Update code owners 2024-03-14 16:30:26 -04:00
bruce-riley 62d4ec899b
Node/EVM: Batch poller refactor (#3823) 2024-03-14 14:41:00 -05:00