Transaction Reverted but Assets Not Returned

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.