Skip to content

Add EVM v2.0.0 SDK bindings#816

Merged
dvgui merged 6 commits intomainfrom
evm-v2-sdk
Feb 9, 2026
Merged

Add EVM v2.0.0 SDK bindings#816
dvgui merged 6 commits intomainfrom
evm-v2-sdk

Conversation

@dvgui
Copy link
Copy Markdown
Contributor

@dvgui dvgui commented Feb 5, 2026

  • Update NttManager version to 2.0.0
  • Update WormholeTransceiver version to 2.0.0
  • Generate TypeScript ABI bindings for v2.0.0
  • Update SDK to support v2.0.0 contract ABI

Summary by CodeRabbit

  • New Features

    • Added support for NttManager and WormholeTransceiver v2.0.0 and updated visible contract version strings.
    • Added comprehensive TypeScript bindings and factories for v2.0.0 for improved type-safe contract interaction.
    • Added runtime feature-detection and descriptive guards for transceiver capabilities to prevent unsupported operations.
  • Tests

    • Improved test initialization with a runtime RPC fallback for more robust network-based tests.

- Update NttManager version to 2.0.0
- Update WormholeTransceiver version to 2.0.0
- Generate TypeScript ABI bindings for v2.0.0
- Update SDK to support v2.0.0 contract ABI
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 5, 2026

📝 Walkthrough

Walkthrough

Bumps on-chain version constants to "2.0.0" and adds autogenerated v2.0.0 TypeScript ethers bindings, factories, and strong-typing foundations; also updates runtime bindings registry, test RPC fallback, and adds runtime feature-detection guards for transceiver methods.

Changes

Cohort / File(s) Summary
Version Constants
evm/src/NttManager/NttManager.sol, evm/src/Transceiver/WormholeTransceiver/WormholeTransceiver.sol
Updated public constant values NTT_MANAGER_VERSION and WORMHOLE_TRANSCEIVER_VERSION from previous versions to "2.0.0".
Bindings Registry & Public API
evm/ts/src/bindings.ts
Added ["2.0.0", _2_0_0] to abiVersions, declared abiVersions as a const tuple, introduced internal AbiBindings type, adjusted Ntt*Bindings types to use AbiBindings[...], and changed loadAbiVersion(targetVersion: string) to return NttBindings.
Type Foundation (common)
evm/ts/src/ethers-contracts/2_0_0/common.ts
Added dense, generic TypeScript types and utilities (TypedContractEvent, TypedContractMethod, TypedListener, Overrides types, factory helpers) to support strongly-typed autogenerated contract bindings.
NttManager bindings & factory
evm/ts/src/ethers-contracts/2_0_0/NttManager.ts, evm/ts/src/ethers-contracts/2_0_0/factories/NttManager__factory.ts
New autogenerated, fully-typed TypeScript contract interface for NttManager (structs, functions, events, typed methods/filters) and a ContractFactory with ABI/bytecode, linking, deploy/connect/getDeployTransaction helpers.
WormholeTransceiver bindings & factory
evm/ts/src/ethers-contracts/2_0_0/WormholeTransceiver.ts, evm/ts/src/ethers-contracts/2_0_0/factories/WormholeTransceiver__factory.ts
New autogenerated, fully-typed TypeScript contract interface for WormholeTransceiver (structs, encode/parse helpers, events, typed methods/filters) and a ContractFactory with ABI/bytecode, linking, deploy/connect/getDeployTransaction helpers.
v2.0.0 Index & Exports
evm/ts/src/ethers-contracts/2_0_0/index.ts, evm/ts/src/ethers-contracts/2_0_0/factories/index.ts, evm/ts/src/ethers-contracts/index.ts
Added v2.0.0 index and factories exports; introduced public _2_0_0 namespace mapping to new factories.
Runtime feature guards (transceiver)
evm/ts/src/ntt.ts
Added runtime ABI feature-detection for several transceiver capabilities: is*/set* methods now check ABI presence; unsupported queries return false and unsupported setters throw descriptive errors.
Tests (RPC fallback)
evm/ts/__tests__/versions.test.ts
Added getWormholeInstance() helper implementing RPC fallback logic (default SDK RPC then hardcoded Sepolia DRPC) and updated tests to obtain wormhole instance at runtime.
Autogenerated bindings index
evm/ts/src/ethers-contracts/2_0_0/index.ts
New top-level re-export module exposing v2.0.0 types and factories.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I hopped through bytes and version strings,
Two-dot-oh now fluffs my springs.
Bindings, factories, types so neat,
I twitch my nose at every feat.
A tiny thump — the release is sweet! 🍃

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add EVM v2.0.0 SDK bindings' directly and clearly describes the main change: introducing version 2.0.0 bindings for the EVM SDK.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch evm-v2-sdk

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dvgui dvgui requested a review from kev1n-peters February 5, 2026 19:32
evgeniko
evgeniko previously approved these changes Feb 6, 2026
@dvgui dvgui merged commit cb3f53f into main Feb 9, 2026
19 checks passed
@dvgui dvgui deleted the evm-v2-sdk branch February 9, 2026 18:20
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