Abstract - The Moonbeam Foundation is proposing to authorize an upgrade to RT3702 on Moonriver and Moonbeam via the whitelist track to fix two issues:
- Fix an issue related to XCM TransactThroughDerivative with new Foreign Assets implementation
- Add support for XCM MultiLocation V1 for backward compatibility
Details - R3702 addresses two issues encountered by the community:
Fix #1 - Fix an issue related to XCM TransactThroughDerivative with new Foreign Assets implementation
Following the completion of migration to EVM foreign assets on Moonbeam (see this post for more details), users began to have problems when redeeming using StellaSwap’s stDOT liquid staking protocol.
This was due to a bug introduced in RT3600 where the XCM Transactor precompiles would not support a nested call necessary for interacting with ERC20 contracts when used with the new EVM foreign assets. The problem only became apparent following the completion of the migration.
Fix #2 - Add support for XCM MultiLocation V1 for backward compatibility
Following the upgrade to RT3701, some Hydration user funds began getting stuck when users moving assets via Moonbeam’s MRL.
In RT3701, the Polkadot SDK was upgraded to Polkadot-SDK stable 2412. Support for MultiLocations V1 was removed with the introduction of XCMv5 in this Polkadot SDK. However, Hydration was still using V1 for MRL scenarios causing these messages to fail to be processed by the GMP precompile on Moonbeam. The trapped funds are in excess of 100K USD.
RT3702 contains a fix to the GMP precompile that will convert V1 to V3 when possible. This should allow these messages to be executed and the trapped funds to be released.
The Moonriver and Moonbeam technical committee have voted in favour of whitelisting the authorization to upgrade to RT3702. Now it is up to the community to vote on the referenda.