Hey @Shikimi ,
Thanks for your patience.
After reviewing the transaction, it appears the ezETH was lost because a change output wasn’t specified in your custom transaction code. Without this, any unused funds in the transaction were burned automatically, meaning they’re unfortunately permanently lost and can’t be recovered on-chain.
Here’s a quick breakdown of what happened:
-
Custom Code Execution: While you used Mira’s script, it was run through a custom Rust code rather than Mira’s pre-built version. Since a change output wasn’t included in your script, any unspent tokens in the transaction were burned. This is a potential risk when working with custom logic on mainnet.
-
Change Output Handling: The Rust SDK typically handles change outputs for standard transactions. However, for fully custom transactions where inputs and outputs are set manually like this one, it’s necessary to add a change output or use a helper like
adjust_for_fee
to ensure any remaining funds are returned.
In the future, test your logics on Testnet first or with smaller amounts first to help avoid similar issues.