• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iotaledger / iota / 27178271483

08 Jun 2026 03:31PM UTC coverage: 67.326% (+0.2%) from 67.109%
27178271483

push

github

web-flow
feat(iota-types): replace `ObjectInner` with the external SDK `Object` type (#11718)

# Description of change

This PR is part of the ongoing effort to consolidate blockchain types in
the
canonical `iota-rust-sdk`. Types that are needed by both clients/SDK
consumers
and the node should live in `iota-rust-sdk` and be imported from there,
instead
of being defined twice (once in `iota-types`, once in the SDK).

This PR replaces `Object` / `ObjectInner` (previously defined in
`iota-types`)
with the SDK version `iota_sdk_types::Object`. The node keeps its
`Object(Arc<ObjectInner>)` wrapper — the `Arc` is an in-memory
cheap-clone
optimization specific to the node and not something SDK consumers need —
and
re-exports the SDK type under the original name `ObjectInner`, so
existing
struct-literal construction and the `#[serde(from = "ObjectInner")]`
wrapper
continue to work unchanged.

## Links to any relevant issues

Fixes #11631

## Changes

- Remove the local `ObjectInner` struct in
[crates/iota-types/src/object.rs](crates/iota-types/src/object.rs) and
re-export `iota_sdk_types::Object as ObjectInner`.
- Move the inherent accessor methods (`id`, `version`, `digest`,
`is_shared`, `compute_object_reference`, `is_package`, …) from `impl
ObjectInner` to `impl Object`. `ObjectInner` is now a foreign type, so
it can no longer carry inherent methods; they remain reachable on
`Object` exactly as before (previously via `Deref`, now directly on the
wrapper), so call sites are unchanged.
- `Object::digest()` now hashes the inner SDK object
(`self.as_inner()`), which carries the `BcsSignable`/`Signable` impl.
- Drop the now-redundant SDK→node `TryFrom<iota_sdk_types::Object>`
conversion in
[crates/iota-types/src/iota_sdk_types_conversions.rs](crates/iota-types/src/iota_sdk_types_conversions.rs):
it collided with the `From<ObjectInner>` impl required by
`#[serde(from)]`. The one checkpoint conversion that used it switches to
the infallible `Object::from`, and a `try_int... (continued)

73 of 110 new or added lines in 44 files covered. (66.36%)

1853 existing lines in 63 files now uncovered.

154570 of 229586 relevant lines covered (67.33%)

453986.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.19
/crates/iota-core/src/execution_cache/writeback_cache.rs


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc