feat: add Abstract and Starknet chain support#456
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
🦋 Changeset detectedLatest commit: 12bbe51 The changes in this PR will be included in the next version bump. This PR includes changesets to release 7 packages
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 |
There was a problem hiding this comment.
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/corewithChainKind.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/starknetwith calldata encoding utilities, a Starknet transaction builder, event log extraction/parsing, and encoding test vectors; re-export via@omni-bridge/sdkand 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.
karim-en
left a comment
There was a problem hiding this comment.
Please set the mainnet addresses
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
Co-authored-by: Karim <[email protected]>
93fa8fb to
7df6f25
Compare
Co-authored-by: Karim <[email protected]>
Summary
@omni-bridge/starknetpackage with transaction builder and event parsingChanges
Core (
@omni-bridge/core):ChainKind.Abs = 9,ChainKind.Strk = 10abs:/strk:OmniAddress prefixesEvmChainKind,isEvmChain(),EVM_CHAIN_IDS(mainnet: 2741, testnet: 11124)EVM (
@omni-bridge/evm):Starknet (
@omni-bridge/starknet):Call[]directly — pass straight toaccount.execute()buildTransfer(approve + init_transfer multicall),buildFinalization,buildDeployToken,buildLogMetadatabyteArray.byteArrayFromString,CairoUint256,CallData.compile)parseInitTransferEventfor receipt parsingisTransferFinalisedcontract query (matches bridge-sdk-rs#254)Docs & umbrella:
@omni-bridge/sdkre-exports starknet packageTest plan
bun run test packages/)References: Near-One/bridge-sdk-rs#248, Near-One/bridge-sdk-rs#254