Claim Hyperlane infrastructure ownership for governance

Status update: everything on the code side is done and verified on-chain — the only thing left is submitting the governance proposal for approval.

  • New code built from cw-hyperlane main (commit cd972f84), carrying upstream #142 (the duplicate-signature fix) plus 3 unrelated commits already merged upstream (#138, #139, #143).
  • All 20 contracts in the workspace rebuilt and uploaded to Terra Classic mainnet as new code_ids (11687–11706), checksums verified against the local build.
  • Full audit doc — old/new code_id + sha256 for every single contract, including the ones that aren’t migrating, so nothing here has to be taken on faith: GOVERNANCE-PROPOSAL-MIGRATE-CONTRACTS-AUDIT.md and Migrate Hyperlane infrastructure contracts to fix duplicate-signature-counting bug (upstream #142)
  • Scope: 13 governance-owned contract instances, not just the 3 multisig ISMs — mailbox, validator announce, ISM routing, the 3 multisig ISMs, both hook aggregates, IGP, hook pausable, hook fee, hook merkle, and the IGP oracle (its admin was moved to governance separately on 2026-09-30).
  • Left out, permanently: Warp LUNC and Warp USTC — their contract admin is empty/immutable by protocol design, no proposal can ever migrate them.
  • Every MsgMigrateContract uses an empty msg; cw2 crate name + version were checked individually for all 10 contract types (not just multisig) so the atomic proposal can’t partially revert on execution.

Next step is submitting migrate-contracts-proposal.json on-chain for a vote. Will post the proposal ID here once it’s live — feel free to review the doc in the meantime.