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

iotaledger / iota-rust-sdk / 28988065709
38%

Build:
DEFAULT BRANCH: develop
Ran 09 Jul 2026 01:43AM UTC
Jobs 1
Files 187
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Jul 2026 09:28AM UTC coverage: 38.114% (-0.01%) from 38.127%
28988065709

push

github

web-flow
feat: add try_from_object to remaining key-object mirror types (#1246)

* feat: add try_from_object to remaining key-object mirror types

Every mirror of a `key`-ability Move object should be constructible from
an on-chain Object with type-tag validation, but only 16 of them had a
`try_from_object`/`TryFrom<&Object>`. Add constructors for the remaining 22
(coin caps and metadata, closed-loop token and transfer-policy families,
Display, kiosk PurchaseCap, coin-manager caps, Config, zkLogin proofs,
DenyList, Random, AuthenticatorState, PackageMetadataV1, LabelerCap,
UnverifiedValidatorOperationCap), following the existing Coin/Clock pattern.

Add the StructTag predicates these constructors need, and tests: fixtures
reused via the existing macros where available, synthetic values otherwise.

Closes #1226

* refactor: generate Object constructors for Move mirrors via macro

The 38 `TryFrom<&Object>` / `try_from_object_with_type` impls on the Move
mirrors were near-identical boilerplate differing only in the type, its
`StructTag` predicate, and (for generics) the single type parameter. Collapse
them into two macros (`impl_try_from_object!` / `impl_try_from_object_generic!`),
leaving `from_bcs` and the field accessors hand-written. No behaviour change;
the existing constructor tests still guard it.

* refactor: derive the constructor-macro predicate from the type name

The predicate a mirror validates against is `is_<name:snake>` — the same
`paste` snake-casing that generated the predicate in `struct_tag.rs` — so the
constructor macros now derive it from the type and callers pass only the type.
`VerifiedID` keeps an explicit predicate: `:snake` yields `verified_i_d`, not
the hand-written `is_verified_id`.

* chore: drop zklogin VerifiedID/VerifiedIssuer from try_from_object sweep

Exclude the two zklogin verified-ID mirror types from the constructor
completeness work: remove their TryFrom<&Object> constructors, the
is_verified_id/new_verified_id struct-tag ... (continued)

8847 of 23212 relevant lines covered (38.11%)

9987.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
41.98
-0.74% crates/iota-sdk-types/src/object.rs
4
74.33
-0.62% crates/iota-sdk-types/src/crypto/signature.rs
3
19.35
-3.23% crates/iota-sdk-types/src/crypto/secp256k1.rs
3
19.35
-3.23% crates/iota-sdk-types/src/crypto/secp256r1.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest - 28988065709.1 09 Jul 2026 01:43AM UTC 187
38.11
GitHub Action Run
Source Files on build 28988065709
  • Tree
  • List 187
  • Changed 10
  • Source Changed 4
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28988065709
  • 8eb3bda0 on github
  • Prev Build on develop (#28911259174)
  • Next Build on develop (#29062941572)
  • Delete
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