mainnet/upgrade.json: fix C-Chain warpConfig + drop bls12381 entries

Two surgical fixes that get lux-mainnet C-Chain past the
`PrecompileUpgrade verification` gate in luxd v1.28.21 (evm@v0.18.18):

1. warpConfig toggle (disable@1766708399 + enable@1766708400)
   C-Chain genesis already enables warp at blockTimestamp 1730446786
   (luxfi/genesis@v1.7.1 cchain.json). Per the validator at
   evm/params/extras/precompile_upgrade.go:133, the next upgrade for
   an enabled precompile MUST flip state — a re-enable without an
   intermediate disable trips "disable should be [true]". Inserting a
   disable upgrade 1s before Quasar (1766708399) followed by re-enable
   at Quasar (1766708400) satisfies the toggle requirement and
   activates the new warp config (requirePrimaryNetworkSigners=true)
   at the network-wide PQ rollout, consistent with #114 intent.

   Also moved the two warp entries to AFTER the at-zero precompile
   block so the monotonicity check at line 129 (timestamps must be
   non-decreasing across the entire list) passes.

2. Dropped bls12381 sub-config entries (G1Add/Mul/MSM, G2Add/Mul/MSM,
   Pairing). All 7 share a single Configurator.MakeConfig() in
   luxfi/precompile@v0.5.23/bls12381/module.go that returns a Config
   whose Key() method hard-codes G1AddConfigKey:

       func (c *Config) Key() string { return G1AddConfigKey }

   This makes the EVM plugin's verifyPrecompileUpgrades loop see all
   7 entries as "bls12381G1AddConfig", the 2nd-7th fail the
   disabled/enabled toggle check with "disable should be [true]" even
   though the entries are byte-distinct in the JSON.

   Underlying fix is in luxfi/precompile (instance-field key like
   `dead`/`graph`/etc — not a const). Until that lands and a new
   EVM plugin ships to s3://lux-plugins/, mainnet upgrade.json must
   not enumerate bls12381 sub-modules. The plugin still gates them
   correctly via strictPQTimestamp; the loss is only explicit
   activation scheduling for the bls12381 sub-keys.

After these two fixes lux-mainnet C-Chain bootstraps cleanly
(info.isBootstrapped=true, /ext/health C check OK).
This commit is contained in:
Hanzo AI
2026-06-03 09:42:01 -07:00
parent 7d4eab387a
commit 8a40886c25
+3 -9
View File
@@ -8,8 +8,6 @@
"strictPQTimestamp": 1766708400
},
"precompileUpgrades": [
{"warpConfig": {"blockTimestamp": 1766708400, "quorumNumerator": 67, "requirePrimaryNetworkSigners": true}},
{"aiMiningConfig": {"blockTimestamp": 0}},
{"blake3Config": {"blockTimestamp": 0}},
{"cggmp21Verify": {"blockTimestamp": 0}},
@@ -41,18 +39,14 @@
{"slhdsaVerify": {"blockTimestamp": 0}},
{"zkConfig": {"blockTimestamp": 0}},
{"warpConfig": {"blockTimestamp": 1766708399, "disable": true}},
{"warpConfig": {"blockTimestamp": 1766708400, "quorumNumerator": 67, "requirePrimaryNetworkSigners": true}},
{"pulsarVerify": {"blockTimestamp": 1782864000}},
{"magnetarVerify": {"blockTimestamp": 1782864000}},
{"p3qVerify": {"blockTimestamp": 1782864000}},
{"coronaThreshold": {"blockTimestamp": 1782864000}},
{"hqcEncapsulate": {"blockTimestamp": 1782864000}},
{"bls12381G1AddConfig": {"blockTimestamp": 1782864000}},
{"bls12381G1MulConfig": {"blockTimestamp": 1782864000}},
{"bls12381G1MSMConfig": {"blockTimestamp": 1782864000}},
{"bls12381G2AddConfig": {"blockTimestamp": 1782864000}},
{"bls12381G2MulConfig": {"blockTimestamp": 1782864000}},
{"bls12381G2MSMConfig": {"blockTimestamp": 1782864000}},
{"bls12381PairingConfig": {"blockTimestamp": 1782864000}},
{"curve25519Config": {"blockTimestamp": 1782864000}},
{"x25519Config": {"blockTimestamp": 1782864000}},
{"sr25519Verify": {"blockTimestamp": 1782864000}},