Move WrappedFungible ABI to linera-sdk#5913
Merged
Merged
Conversation
ma2bd
approved these changes
Apr 3, 2026
deuszx
added a commit
that referenced
this pull request
Apr 21, 2026
Up until now a `WrappedFungible` was living entirely in the `/examples` directory. Since it's an importand and common abstraction we want to have it in `linera-sdk`, like `fungible`. Move `WrappedFungible`'s ABI to `linera-sdk/src/abis`. CI None right now. - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
deuszx
added a commit
that referenced
this pull request
Apr 21, 2026
examples/wrapped-fungible/src/lib.rs:
- Take cherry-pick's re-export: `pub use linera_sdk::abis::wrapped_fungible::*`
(drops ~100 LOC of inline WrappedParameters / WrappedFungibleOperation /
WrappedFungibleTokenAbi definitions). Keep the `pub use fungible::Message`
line — the linera-sdk abi doesn't re-export it.
examples/wrapped-fungible/src/contract.rs:
- Take cherry-pick's imports (Account + Message from wrapped_fungible).
`Account` is now imported only via wrapped_fungible to avoid duplicate
imports with linera_sdk::linera_base_types.
linera-sdk/src/abis/wrapped_fungible.rs:
- The cherry-pick's `pub use super::fungible::{Account, ...}` fails
because Account is private in abis/fungible.rs. Re-export it directly:
`pub use linera_base::identifiers::Account;`
pull Bot
pushed a commit
to ndr-ds/linera-protocol
that referenced
this pull request
Apr 24, 2026
## Motivation Backport the Linera↔EVM bridge work from `testnet_conway` to `main`. The bridge has evolved on `testnet_conway` through a series of PRs (linera-io#5684, linera-io#5754, linera-io#5760, linera-io#5763, linera-io#5764, linera-io#5793, linera-io#5814, linera-io#5817, linera-io#5821, linera-io#5897, linera-io#5913, linera-io#5914, linera-io#5929, linera-io#5994). Main has since diverged — some structural moves that the bridge depends on never made it back, and several bridge-adjacent APIs on main went in different directions. This PR brings the full bridge functionality to main while adapting to main's current APIs. ## Proposal Cherry-pick each bridge PR from `testnet_conway` in order, followed by a dedicated `Resolve conflicts after #XXXX cherry-pick` commit that records the adaptations. The pattern keeps each upstream PR verbatim so future backports line up cleanly, and isolates the main-specific adjustments for review. Functionally the bridge behaves the same as on `testnet_conway`. What changed is almost entirely API-shape adaptation on main: - **Storage cache config field names**: the `linera-io#5793` cherry-pick referenced `lite_certificate_cache_size` in `linera-bridge::main`, but main's `StorageCacheConfig` calls that field `certificate_cache_size` (testnet_conway later adopted the same name). Adapted the call sites and the clap arg. - **`Bytecode::load_from_file`**: sync on `testnet_conway` (via a prep PR that never made it to main), async on main. Added `.await?` at all call sites. - **clap `with_operation` / `call_contract`**: take `&T` on main where `testnet_conway` had `T`. Added `&` at several test and relay call sites. - **`authenticated_signer` → `authenticated_owner`**: API rename on main, applied to the relevant contracts and tests. - **Tracing init**: `testnet_conway` has `linera_base::tracing::init(name)`; main does not. Reverted to `tracing_subscriber::fmt::init()` in `linera-bridge::main`. A few minor clippy cleanups applied on top of `testnet_conway` source where main's clippy config is stricter (`map(...).unwrap_or_else(...)` → `map_or_else`, useless `Ok(x?)` wraps, boxing of large futures, no needless `collect()`). ## Test Plan - CI ## Release Plan - Nothing to do / These changes follow the usual release cycle. ## Links - Upstream bridge PRs merged (cherry-picked in this order): linera-io#5684, linera-io#5754, linera-io#5760, linera-io#5763, linera-io#5764, linera-io#5793, linera-io#5814, linera-io#5817, linera-io#5821, linera-io#5897, linera-io#5913, linera-io#5914, linera-io#5929, linera-io#5994 - Related issue: "Linera EVM adapter rejects valid EVM successful terminations" (filed separately — `revm.rs` currently only whitelists `Return`; `Stop`, `SelfDestruct`, `EofReturnContract` are rejected) - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Up until now a
WrappedFungiblewas living entirely in the/examplesdirectory. Since it's an importand and common abstraction we want to have it inlinera-sdk, likefungible.Proposal
Move
WrappedFungible's ABI tolinera-sdk/src/abis.Test Plan
CI
Release Plan
None right now.
Links