@@ -54,7 +54,14 @@ func CreateUpgradeHandler(
5454 }
5555
5656 // ---------------------------------------------------------------
57- // 3. Run module migrations (consensus version bumps)
57+ // 3. Register usigverifier V2 precompile in EVM params
58+ // ---------------------------------------------------------------
59+ if err := registerPrecompileV2 (sdkCtx , ak , logger ); err != nil {
60+ return nil , fmt .Errorf ("registerPrecompileV2: %w" , err )
61+ }
62+
63+ // ---------------------------------------------------------------
64+ // 4. Run module migrations (consensus version bumps)
5865 // - uexecutor: 5 → 6 (PendingOutbounds collection)
5966 // - utss: 1 → 2 (TssEvents collections)
6067 // ---------------------------------------------------------------
@@ -220,3 +227,28 @@ func backfillTssEvents(ctx context.Context, ak *upgrades.AppKeepers, logger log.
220227 logger .Info ("TssEvents backfill complete" )
221228 return nil
222229}
230+
231+ // registerPrecompileV2 adds the usigverifier V2 address to EVM ActiveStaticPrecompiles
232+ // so the EVM recognizes it as a callable precompile.
233+ func registerPrecompileV2 (sdkCtx sdk.Context , ak * upgrades.AppKeepers , logger log.Logger ) error {
234+ const usigVerifierV2Addr = "0xEC00000000000000000000000000000000000001"
235+
236+ evmParams := ak .EVMKeeper .GetParams (sdkCtx )
237+
238+ // Check if already registered
239+ for _ , addr := range evmParams .ActiveStaticPrecompiles {
240+ if addr == usigVerifierV2Addr {
241+ logger .Info ("usigverifier V2 precompile already registered in EVM params" )
242+ return nil
243+ }
244+ }
245+
246+ evmParams .ActiveStaticPrecompiles = append (evmParams .ActiveStaticPrecompiles , usigVerifierV2Addr )
247+
248+ if err := ak .EVMKeeper .SetParams (sdkCtx , evmParams ); err != nil {
249+ return fmt .Errorf ("failed to set EVM params with new precompile: %w" , err )
250+ }
251+
252+ logger .Info ("Registered usigverifier V2 precompile in EVM params" , "address" , usigVerifierV2Addr )
253+ return nil
254+ }
0 commit comments