Non-EVM and Prefills Migration
Support non-EVM chains and deterministic relay hashes for prefills.
This migration introduces two major features: non-EVM chain support (extending Across beyond EVM-only) and prefills (deterministic relay hashes enabling fills that occur simultaneously with or before deposits).
Contract migration occurred January 23, 2025. Breaking changes took effect on that date.
What Changed
Non-EVM Expansion
Multiple SpokePool functions and events now use bytes32 addresses instead of address, facilitating cross-compatibility between EVM and non-EVM deployments (like Solana).
Prefills
A new unsafeDeposit function enables prefills — fills that occur simultaneously with or before deposits. Deterministic relay hashes ensure deposit inclusion timing on origin chains doesn't affect destination fill correctness.
Event Renaming
Four SpokePool events are renamed and updated:
| Old Event | New Event |
|---|---|
V3FundsDeposited | FundsDeposited |
RequestedSpeedUpV3Deposit | RequestedSpeedUpDeposit |
FilledV3Relay | FilledRelay |
RequestedV3SlowFill | RequestedSlowFill |
All replacement events convert address types to bytes32 and change depositId from uint32 to uint256.
Repayment Flexibility
The new fillRelay function allows relayers to designate a repayment address different from the fill-executing address.
Who Is Affected
Indexers
Must update to track 4 new SpokePool events. Old events are deprecated.
API Users
Must include exclusiveRelayer, exclusivityDeadline, and fillDeadline from API responses in deposit transactions.
Relayers
Must handle new event structures and migrate to fillRelay.
Testnet
Testnet environment with sample deposits and fills for migration testing.
Recommended (Non-Breaking) Changes
- Adopt
/deposit/statusendpoint instead of independently indexing Across events (~60 second latency) - Use the new
depositmethod (notdepositV3) for future non-EVM destination support - Relayers: migrate toward
fillRelayfor repayment address selection and non-EVM fill capabilities