Skip to content

feat: add Abstract and Starknet chain support#456

Merged
r-near merged 10 commits intomainfrom
feat/abs-strk-support
Apr 2, 2026
Merged

feat: add Abstract and Starknet chain support#456
r-near merged 10 commits intomainfrom
feat/abs-strk-support

Conversation

@r-near
Copy link
Copy Markdown
Collaborator

@r-near r-near commented Mar 23, 2026

Summary

  • Add Abstract (Abs) as a new EVM chain and Starknet (Strk) as a non-EVM chain
  • New @omni-bridge/starknet package with transaction builder and event parsing
  • Calldata encoding verified byte-for-byte against Rust bridge-sdk-rs output

Changes

Core (@omni-bridge/core):

  • ChainKind.Abs = 9, ChainKind.Strk = 10
  • abs: / strk: OmniAddress prefixes
  • Abstract added to EvmChainKind, isEvmChain(), EVM_CHAIN_IDS (mainnet: 2741, testnet: 11124)
  • Bridge addresses, API schema, token mappings updated for both chains

EVM (@omni-bridge/evm):

  • Abstract chain support in proof.ts (RPC URLs, viem chain configs)

Starknet (@omni-bridge/starknet):

  • Builder returns starknet.js Call[] directly — pass straight to account.execute()
  • buildTransfer (approve + init_transfer multicall), buildFinalization, buildDeployToken, buildLogMetadata
  • Uses starknet.js native APIs (byteArray.byteArrayFromString, CairoUint256, CallData.compile)
  • Event log extraction and parseInitTransferEvent for receipt parsing
  • isTransferFinalised contract query (matches bridge-sdk-rs#254)

Docs & umbrella:

  • All READMEs, reference docs, guides updated
  • @omni-bridge/sdk re-exports starknet package

Test plan

  • 256 unit tests pass (bun run test packages/)
  • Encoding tests include ground-truth vectors from Rust SDK
  • Build, typecheck, lint all clean

References: Near-One/bridge-sdk-rs#248, Near-One/bridge-sdk-rs#254

Copilot AI review requested due to automatic review settings March 23, 2026 19:09
@r-near r-near requested review from a team as code owners March 23, 2026 19:09
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 23, 2026

🦋 Changeset detected

Latest commit: 12bbe51

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@omni-bridge/core Minor
@omni-bridge/evm Minor
@omni-bridge/starknet Minor
@omni-bridge/sdk Minor
@omni-bridge/btc Minor
@omni-bridge/near Minor
@omni-bridge/solana Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds two new chains to the Omni Bridge SDK surface area: Abstract (EVM) and Starknet (non‑EVM), including a new @omni-bridge/starknet package for Starknet transaction building + receipt/event parsing, plus core config/type/docs updates to recognize abs: / strk: addresses and token prefixes.

Changes:

  • Extend @omni-bridge/core with ChainKind.Abs / ChainKind.Strk, new OmniAddress prefixes, updated bridge/token config, and updated API chain schema.
  • Add Abstract support to @omni-bridge/evm (chain configs + RPCs) and builder tests.
  • Introduce @omni-bridge/starknet with calldata encoding utilities, a Starknet transaction builder, event log extraction/parsing, and encoding test vectors; re-export via @omni-bridge/sdk and update docs.

Reviewed changes

Copilot reviewed 31 out of 33 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
tsconfig.json Adds packages/starknet as a TS project reference.
packages/starknet/tsconfig.json New TS config for building the Starknet package.
packages/starknet/tests/encoding.test.ts Adds cross-SDK encoding vector tests + roundtrips.
packages/starknet/tests/builder.test.ts Adds tests for Starknet builder call construction and calldata layout.
packages/starknet/src/index.ts Public exports for Starknet builder and event utilities.
packages/starknet/src/events.ts Starknet receipt event extraction/parsing + isTransferFinalised.
packages/starknet/src/encoding.ts Starknet ByteArray/signature encoding + ByteArray decoding utility.
packages/starknet/src/builder.ts Starknet transaction builder producing starknet.js Call[].
packages/starknet/package.json New published package definition and dependencies.
packages/sdk/tsconfig.json Adds ../starknet to TS project references for SDK umbrella.
packages/sdk/src/index.ts Re-exports @omni-bridge/starknet.
packages/sdk/package.json Adds @omni-bridge/starknet dependency.
packages/evm/tests/builder.test.ts Adds Abstract mainnet/testnet builder creation tests.
packages/evm/src/proof.ts Adds Abstract RPC URLs and viem chain config selection.
packages/evm/README.md Documents Abstract chain ID support and typing updates.
packages/core/tests/token.test.ts Extends token parsing/recognition tests for abs/strk.
packages/core/tests/address.test.ts Extends OmniAddress and isEvmChain tests for abs/strk.
packages/core/src/utils/token.ts Adds known bridge tokens + wrapped token prefixes for abs/strk.
packages/core/src/utils/address.ts Adds abs/strk prefixes and includes Abs in EvmChainKind.
packages/core/src/types.ts Adds ChainKind.Abs/Strk, OmniAddress templates, ChainPrefix union.
packages/core/src/config.ts Adds Abs/Strk addresses + EVM chain IDs (incl. Abstract).
packages/core/src/bridge.ts Maps Abs/Strk into API chain names and contract address selection.
packages/core/src/api.ts Extends Zod ChainSchema to include Abs and Strk.
docs/reference/evm.mdx Updates EVM reference docs to include Abstract.
docs/reference/core.mdx Updates core reference docs for new prefixes/chain kinds.
docs/introduction.mdx Updates intro supported chains and adds Starknet card.
docs/guides/evm.mdx Updates EVM guide to include Abstract chain option/table row.
docs/guides/advanced/manual-finalization.mdx Updates manual finalization guide to mention Abs among L2s.
docs/getting-started.mdx Updates getting started chain list to include Abstract.
docs/docs.json Updates site description to include Abstract and Starknet.
docs/core-concepts/omni-addresses.mdx Documents abs: / strk: OmniAddresses and ChainKind additions.
bun.lock Adds workspace package entry and starknet dependency tree updates.
README.md Updates root README supported chains and OmniAddress examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Collaborator

@karim-en karim-en left a comment

Choose a reason for hiding this comment

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

Please set the mainnet addresses

@r-near r-near enabled auto-merge (squash) April 2, 2026 17:49
r-near and others added 9 commits April 2, 2026 11:00
Add Abstract (Abs) as a new EVM chain and Starknet (Strk) as a new
non-EVM chain with its own @omni-bridge/starknet builder package.

Core changes (all packages):
- ChainKind.Abs = 9, ChainKind.Strk = 10
- OmniAddress prefixes: abs:, strk:
- Abstract added to EvmChainKind, isEvmChain(), EVM_CHAIN_IDS
- Bridge addresses, token mappings, API schema updated

@omni-bridge/starknet:
- Transaction builder returning starknet.js Call[] directly
- Supports init_transfer, fin_transfer, deploy_token, log_metadata
- Encoding uses starknet.js native APIs (byteArray, CairoUint256, CallData)
- Calldata verified byte-for-byte against Rust bridge-sdk-rs output
- Event parsing (InitTransfer, DeployToken, FinTransfer) and
  isTransferFinalised query

References: Near-One/bridge-sdk-rs#248, Near-One/bridge-sdk-rs#254
@r-near r-near force-pushed the feat/abs-strk-support branch from 93fa8fb to 7df6f25 Compare April 2, 2026 18:01
@r-near r-near requested a review from karim-en April 2, 2026 18:09
@r-near r-near merged commit d22ee53 into main Apr 2, 2026
2 checks passed
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