Skip to content

Rebase stellar onto main#77

Closed
dkgoutham wants to merge 198 commits into
stellar-backupfrom
stellar-rebased
Closed

Rebase stellar onto main#77
dkgoutham wants to merge 198 commits into
stellar-backupfrom
stellar-rebased

Conversation

@dkgoutham

Copy link
Copy Markdown

Rebases the stellar branch onto the latest main.

johnsaigle and others added 30 commits December 18, 2025 17:49
…ation#4621)

* ci: Remove Terra classic when running tilt in ci mode

* delete terra integration test

* remove references to terra in JS SDK tests

* remove references to terra in guardian set init

* delete terra from deploy wormchain script

* remove terra classic token bridge VAA from testnet CSV

* remove terra classic token bridge registration from Terra2 deploy script

* delete terra classic entries from testing libraries

* revert change to JS client

* attempt to bust docker cache for constants

* fix: remove Terra Classic token bridge registration from .env.test template

The ethereum/.env.test file is used as a template by guardian-set-init.sh,
which copies it to .env.0x. The devnetInitialization.sh script then reads
all REGISTER_*_TOKEN_BRIDGE_VAA variables and registers them on BSC.

Having REGISTER_TERRA_TOKEN_BRIDGE_VAA in this file was causing BSC to
register chain 3 (Terra Classic) in its token bridge, corrupting the chain
registry and causing the accountant test to fail with 'invalid emitter'.

* remove terra classic integration tests

* remove another reference to terra classic
Co-authored-by: Adam <20446095+aadam-10@users.noreply.github.com>
…ion#4615)

* docs: Clarify EVM transfer verifier is not "strict"
…error (wormhole-foundation#4614)

* node(txverifier): skip logs with parsing errors instead of returning error

Modifies the design philosophy in the EVM Transfer Verifier with respect
to error-handling.

Previously, the code would return a "receipt error" when encountering an
EVM log that was not well-formed or else was extremely unusual. Instead,
that code now skips those logs and does not include them in the
invariant calculations.

Practically, this results in fewer cases where the watcher will give the
`CouldNotVerify` status to Message Publications that have unusual logs
in their receipts. This should limit the ability for a user to control the outcome of
querying the Transfer Verifier by passing in logs that are irrelevant
but malformed.

The logs that remain after this filtering will still be subject to the
invariant checks.

- Changes instances of log parsing to skip instead of return errors
- Adds more happy path unit tests to demonstrate that problematic logs
  are skipped
- Add additional comments and cleanup helper functions in unit tests

* Reorder checks in LogMessagePublished parsing

- Move checks that result in skipping a log to be the first in the
  sequence. This makes it more clear when a log should be ignored vs.
  when it should return an error
- Describe the security concerns and warn around refactoring
- Improve commenting around related methods
- Remove redundant IsTransfer check that is already performed by both
  the caller and by the subsequent header payload parsing

* Delay CouldNotVerify
…e-foundation#4618)

* node(governor): Add defense in depth checks for computeValue

- Modify computeValue to validate its parameters. The callers are
  already safe in each instance, but this helps to facilitate unit tests
  and refactoring
- Add Price validation for mainnet tokens (must be non-nil and
  non-negative)

* add missing check for token price Sign()

* rename computeValue --> usdValue

- Fix comment for computeValue to avoid confusion with the `transfer`
  type
- Rename function to `usdValue()` (presumably most of what we are doing
  here is computing things)
Co-authored-by: Adam <20446095+aadam-10@users.noreply.github.com>
- Moca's mainnet block explorer is unavailable so contract verification is pending

- The RPC used for Moca Mainnet required authentication

```

-- Wormhole Core Addresses --------------------------------------------------
| Setup address                | 0xe74F20a5A07921f63F2d55B8aE6d14f4AD490938 |
| Implementation address       | 0x32b3b68e9f053E724Da0A9e57F062BFaE6695350 |
| Wormhole address             | 0xaBf89de706B583424328B54dD05a8fC986750Da8 |
-----------------------------------------------------------------------------

./verify -r $RPC_URL -c Moca build-forge/Implementation.sol/Implementation.json 0x32b3b68e9f053E724Da0A9e57F062BFaE6695350
Deployed bytecode of 0x32b3b68e9f053E724Da0A9e57F062BFaE6695350 on Moca matches build-forge/Implementation.sol/Implementation.json

./verify -r $RPC_URL -c Moca build-forge/Setup.sol/Setup.json 0xe74F20a5A07921f63F2d55B8aE6d14f4AD490938
Deployed bytecode of 0xe74F20a5A07921f63F2d55B8aE6d14f4AD490938 on Moca matches build-forge/Setup.sol/Setup.json

./verify -r $RPC_URL -c Moca build-forge/Wormhole.sol/Wormhole.json 0xaBf89de706B583424328B54dD05a8fC986750Da8
Deployed bytecode of 0xaBf89de706B583424328B54dD05a8fC986750Da8 on Moca matches build-forge/Wormhole.sol/Wormhole.json
```

Co-authored-by: Adam <20446095+aadam-10@users.noreply.github.com>
- MonadTestnet is added after Monad testnet's re-genesis

- add new MonadTestnet to sdk and proto defs

- add MonadTestnet to watcher, node, and query modules

- deploy Core and WTT contracts

```
-- Wormhole Core Addresses --------------------------------------------------
| Setup address                | 0xe74F20a5A07921f63F2d55B8aE6d14f4AD490938 |
| Implementation address       | 0x32b3b68e9f053E724Da0A9e57F062BFaE6695350 |
| Wormhole address             | 0xaBf89de706B583424328B54dD05a8fC986750Da8 |
-----------------------------------------------------------------------------

-- TokenBridge Addresses ----------------------------------------------------
| Token Implementation address | 0x0B2719cdA2F10595369e6673ceA3Ee2EDFa13BA7 |
| BridgeSetup address          | 0x81705b969cDcc6FbFde91a0C6777bE0EF3A75855 |
| BridgeImplementation address | 0x7C0faFc4384551f063e05aee704ab943b8B53aB3 |
| TokenBridge address          | 0xF97B81E513f53c7a6B57Bd0b103a6c295b3096C5 |
-----------------------------------------------------------------------------

./verify -r https://testnet-rpc.monad.xyz/ -c MonadTestnet build-forge/Implementation.sol/Implementation.json 0x32b3b68e9f053E724Da0A9e57F062BFaE6695350
Deployed bytecode of 0x32b3b68e9f053E724Da0A9e57F062BFaE6695350 on MonadTestnet matches build-forge/Implementation.sol/Implementation.json

./verify -r https://testnet-rpc.monad.xyz/ -c MonadTestnet build-forge/Setup.sol/Setup.json 0xe74F20a5A07921f63F2d55B8aE6d14f4AD490938
Deployed bytecode of 0xe74F20a5A07921f63F2d55B8aE6d14f4AD490938 on MonadTestnet matches build-forge/Setup.sol/Setup.json

./verify -r https://testnet-rpc.monad.xyz/ -c MonadTestnet build-forge/Wormhole.sol/Wormhole.json 0xaBf89de706B583424328B54dD05a8fC986750Da8
Deployed bytecode of 0xaBf89de706B583424328B54dD05a8fC986750Da8 on MonadTestnet matches build-forge/Wormhole.sol/Wormhole.json

```
* feat: 0g

- reserve ZeroGravity chain id

- deploy core to testnet

```
-- Wormhole Core Addresses --------------------------------------------------
| Setup address                | 0x3D5c2c2BEA15Af5D45F084834c535628C48c42A4 |
| Implementation address       | 0x31EbE11D1cA20293d7fa90a4fCC45d5b6c1d7eEb |
| Wormhole address             | 0x059560c0D626bdB982454b5EBd65DC8E7cF7973c |
-----------------------------------------------------------------------------

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/Setup.sol/Setup.json 0x3D5c2c2BEA15Af5D45F084834c535628C48c42A4
Deployed bytecode of 0x3D5c2c2BEA15Af5D45F084834c535628C48c42A4 on ZeroGravity matches build-forge/Setup.sol/Setup.json

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/Implementation.sol/Implementation.json 0x31EbE11D1cA20293d7fa90a4fCC45d5b6c1d7eEb
Deployed bytecode of 0x31EbE11D1cA20293d7fa90a4fCC45d5b6c1d7eEb on ZeroGravity matches build-forge/Implementation.sol/Implementation.json

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/Wormhole.sol/Wormhole.json 0x059560c0D626bdB982454b5EBd65DC8E7cF7973c
Deployed bytecode of 0x059560c0D626bdB982454b5EBd65DC8E7cF7973c on ZeroGravity matches build-forge/Wormhole.sol/Wormhole.json
```

- deploy wtt to testnet

```
-- TokenBridge Addresses ----------------------------------------------------
| Token Implementation address | 0x97791aB7E653c1E6D87Bf421B3B71e0154Dfb225 |
| BridgeSetup address          | 0x27ab99256eCbE78876Abb3671262c61F937D6eC2 |
| BridgeImplementation address | 0xC699482c17d43b7D5349F2D3f58d61fEFA972B8c |
| TokenBridge address          | 0x7d8eBc211C4221eA18E511E4f0fD50c5A539f275 |
-----------------------------------------------------------------------------

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/TokenImplementation.sol/TokenImplementation.json 0x97791aB7E653c1E6D87Bf421B3B71e0154Dfb225
Deployed bytecode of 0x97791aB7E653c1E6D87Bf421B3B71e0154Dfb225 on ZeroGravity matches build-forge/TokenImplementation.sol/TokenImplementation.json

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/BridgeSetup.sol/BridgeSetup.json 0x27ab99256eCbE78876Abb3671262c61F937D6eC2
Deployed bytecode of 0x27ab99256eCbE78876Abb3671262c61F937D6eC2 on ZeroGravity matches build-forge/BridgeSetup.sol/BridgeSetup.json

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/BridgeImplementation.sol/BridgeImplementation.json 0xC699482c17d43b7D5349F2D3f58d61fEFA972B8c
Deployed bytecode of 0xC699482c17d43b7D5349F2D3f58d61fEFA972B8c on ZeroGravity matches build-forge/BridgeImplementation.sol/BridgeImplementation.json

./verify -r https://rpc.ankr.com/0g_galileo_testnet_evm -c ZeroGravity build-forge/TokenBridge.sol/TokenBridge.json 0x7d8eBc211C4221eA18E511E4f0fD50c5A539f275
Deployed bytecode of 0x7d8eBc211C4221eA18E511E4f0fD50c5A539f275 on ZeroGravity matches build-forge/TokenBridge.sol/TokenBridge.json
```

- deploy core to mainnet

```
-- Wormhole Core Addresses --------------------------------------------------
| Setup address                | 0x27ab99256eCbE78876Abb3671262c61F937D6eC2 |
| Implementation address       | 0x97791aB7E653c1E6D87Bf421B3B71e0154Dfb225 |
| Wormhole address             | 0xC699482c17d43b7D5349F2D3f58d61fEFA972B8c |
-----------------------------------------------------------------------------

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/Setup.sol/Setup.json 0x27ab99256eCbE78876Abb3671262c61F937D6eC2
Deployed bytecode of 0x27ab99256eCbE78876Abb3671262c61F937D6eC2 on ZeroGravity matches build-forge/Setup.sol/Setup.json

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/Implementation.sol/Implementation.json 0x97791aB7E653c1E6D87Bf421B3B71e0154Dfb225
Deployed bytecode of 0x97791aB7E653c1E6D87Bf421B3B71e0154Dfb225 on ZeroGravity matches build-forge/Implementation.sol/Implementation.json

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/Wormhole.sol/Wormhole.json 0xC699482c17d43b7D5349F2D3f58d61fEFA972B8c
Deployed bytecode of 0xC699482c17d43b7D5349F2D3f58d61fEFA972B8c on ZeroGravity matches build-forge/Wormhole.sol/Wormhole.json
```

- deploy wtt to mainnet

```
-- TokenBridge Addresses ----------------------------------------------------
| Token Implementation address | 0x556B259cFaCd9896B2773310080c7c3bcE90Ff01 |
| BridgeSetup address          | 0x2AA486342B1a2767Aa57fA29c663dc1bC92a0Ff7 |
| BridgeImplementation address | 0x29C46F51008F43F7e2A026dDDc20302bD032c93a |
| TokenBridge address          | 0xee12EBDdF6E34A206e1798D185317C846BC21638 |
-----------------------------------------------------------------------------

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/TokenImplementation.sol/TokenImplementation.json 0x556B259cFaCd9896B2773310080c7c3bcE90Ff01
Deployed bytecode of 0x556B259cFaCd9896B2773310080c7c3bcE90Ff01 on ZeroGravity matches build-forge/TokenImplementation.sol/TokenImplementation.json

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/BridgeSetup.sol/BridgeSetup.json 0x2AA486342B1a2767Aa57fA29c663dc1bC92a0Ff7
Deployed bytecode of 0x2AA486342B1a2767Aa57fA29c663dc1bC92a0Ff7 on ZeroGravity matches build-forge/BridgeSetup.sol/BridgeSetup.json

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/BridgeImplementation.sol/BridgeImplementation.json 0x29C46F51008F43F7e2A026dDDc20302bD032c93a
Deployed bytecode of 0x29C46F51008F43F7e2A026dDDc20302bD032c93a on ZeroGravity matches build-forge/BridgeImplementation.sol/BridgeImplementation.json

./verify -r https://evmrpc.0g.ai -c ZeroGravity build-forge/TokenBridge.sol/TokenBridge.json 0xee12EBDdF6E34A206e1798D185317C846BC21638
Deployed bytecode of 0xee12EBDdF6E34A206e1798D185317C846BC21638 on ZeroGravity matches build-forge/TokenBridge.sol/TokenBridge.json
```

* add 0g to governor mainnet chains

* fix: add 0g to ignoredChains in TestGovernedChainHasGovernedAssets

* chore: rename 0g envs

* add WOG zerogravity governed token

* chore: fix comment

* chore: format
* Fix typo in KMS signer docs

* add SECG to cspell custom words
* node(governor): Add governed tokens

* format
Also add transaction error checks for hack scripts.
dkgoutham and others added 27 commits June 4, 2026 17:02
* Added testnet script with corresponding testnet vaas

* feat: add deployment script

* refactor: use new deployment script for the core contract

---------

Co-authored-by: Goutham <dkgoutham1806@gmail.com>
* docs: Added comments/docs to every file

* docs: Updated README.md file

* chore: better explanation of "action"

* docs: move architecture sections to ARCHITECTURE.md

* chore: rewrite README.md

* chore: update cspell-custom-words

---------

Co-authored-by: Matteo Lisotto <matteo.lisotto@gmail.com>
feat: Removed existing initialisation function and added __constructor implementation
feat: let contractclient creates `WormholeClient` struct
…ss (#72)

* Update core contract to use only contract addresses for emitter address

* Bump stellar dependencies to latest

* Use Address:to_payload to get the 32-byte address

* deps: remove unused deps and `stellar-strkey`

---------

Co-authored-by: Matteo Lisotto <matteo.lisotto@gmail.com>
* Add unit tests for stellar core contract

* Add unit tests for stellar core contract

* Add integration tests for Wormhole contract functionality on Stellar

* Refactor test `nonce` to use runtime-generated values in Wormhole contract

* chore: simplify integration test scripts

* chore: use `stellar keys fund` command instead of calling friendbot through curl

* chore: apply clippy

* chore: apply cargo fmt

* chore: delete redundant scritps.

These operations are handled in the `integration-tests` crate

* chore: add a cleanup trap

---------

Co-authored-by: Matteo Lisotto <matteo.lisotto@gmail.com>
* fix: Reject governance payloads with trailing bytes after parsing

* fix: Extend TTL for CurrentGuardianSetIndex on write

* fix: Remove unused StorageKey::Admin and its storage write

* fix: Replace governance_emitter storage with const in getter

* fix: Extend MessageFee TTL on read in post_message_with_fee

* fix: Eliminate double VAA parsing in governance flow

* fix: Add parse_and_verify_vaa and eliminate double parsing

* fix: Fix is_governance_vaa_consumed to return Result<bool>

* fix: Remove MINIMUM_CONTRACT_BALANCE check from transfer_fees

* doc: edit docs on MINIMUM_CONTRACT_BALANCE check

* fix: Reject VAAs with version != 1 during parsing

* fix: Remove TTL extension from consume_vaa

* test: Fix tests for removed StorageKey::Admin, GovernanceEmitter storage, and MINIMUM_CONTRACT_BALANCE
* fix: Remove posted message hash storage and getter

* fix: Remove last fee transfer timestamp storage and getter

* fix: Remove get_contract_balance on-chain getter
* Implement Soroban executor contract

* chore: use `soroban_client` crate interface

* chore: fix executor dev-dependencies for tests

* refactor: use `BytesReader` instead of manuel byte parsing

* refactor: replace `init` with `__constructor`

* refactor: use new `contractevent` macro

* refactor: `request_execution` returns `Result`

* chore: drop unused `NotInitialized` executor error

* chore: apply cargo fmt

* chore: apply cargo clippy

* refactor: `Executor` to reflect EVM implementation

* refactor: move test into `tests.rs`

* refactor: move types, error and interface in `wormhole-soroban-client`

* chore: add missing documentation

---------

Co-authored-by: Matteo Lisotto <matteo.lisotto@gmail.com>
* feat: add lookup table

* chore: apply cargo fmt
@dkgoutham
dkgoutham requested a review from cupicmarko June 4, 2026 11:34
@cupicmarko cupicmarko closed this Jun 4, 2026
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.