Commit b32c29f
committed
Return an error from
The uniffi-exposed `from_bip39_mnemonic` constructor was infallible
and took the `Mnemonic` custom type, which parses the string during
argument lifting. An invalid mnemonic would fail the lift and surface
as an unexpected-error call status. The generated Swift wrapper for an
infallible function wraps the call in `try!`, so passing an invalid
mnemonic (e.g., a user typo during wallet restore) aborts the process
with an uncatchable EXC_BREAKPOINT. Kotlin and Python raise their
generic internal exceptions instead.
Following the `from_seed_bytes` precedent, give the constructor a
uniffi-specific signature that takes the mnemonic as a plain string
and returns `Result<NodeEntropy, EntropyError>`, parsing inside the
function and reporting failures via a new
`EntropyError::InvalidMnemonic` variant. The non-uniffi Rust API is
unchanged.NodeEntropy::from_bip39_mnemonic in bindings1 parent aa6d051 commit b32c29f
2 files changed
Lines changed: 43 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
| |||
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
33 | 36 | | |
| |||
45 | 48 | | |
46 | 49 | | |
47 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
48 | 63 | | |
49 | 64 | | |
50 | 65 | | |
| |||
63 | 78 | | |
64 | 79 | | |
65 | 80 | | |
| 81 | + | |
| 82 | + | |
66 | 83 | | |
67 | 84 | | |
68 | | - | |
69 | | - | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
70 | 91 | | |
71 | | - | |
72 | | - | |
| 92 | + | |
| 93 | + | |
73 | 94 | | |
74 | 95 | | |
75 | 96 | | |
| |||
166 | 187 | | |
167 | 188 | | |
168 | 189 | | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
169 | 205 | | |
170 | 206 | | |
171 | 207 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
591 | 591 | | |
592 | 592 | | |
593 | 593 | | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
594 | 597 | | |
595 | 598 | | |
596 | 599 | | |
| |||
0 commit comments