fix(pyth): accept signed router governance rotations - #2082
Conversation
Separate signed router governance from price emitter validation and test the unchanged published production set-1 VAA. Preserve existing router state when migrating an already-converted verifier. Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: akash-network/node/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Sandbox validation completed for the contract: proposal 36 migrated the live verifier to code 9, checksum 89c12c7596b7500073423ffe0c386d1c9b8484d8484591acf25d8bf3fc2fce05. Configuration and active set 1 were preserved; prices continued advancing. A separate sandbox instance using that code was initialized at production set 0. A non-admin successfully submitted Pyth's unchanged published set-1 rotation VAA (tx 6229DDF8122A38E73CF8F51D39B42A372E346A420E7CA324D0F737490F404DD3). Tampering failed with RouterSignatureError; replay failed with InvalidRouterSetIndex; rejected messages left state unchanged. The standalone instance is not connected to the live oracle. No mainnet transaction was submitted. |
Separates router-rotation governance emitter checks from Pyth price emitter checks. Uses Pyth's unchanged production set-0 to set-1 VAA as a regression fixture. Keeps quorum, signature, sequential-index, target-chain, and replay checks intact. Migration preserves both legacy and already-converted router state.
Validation: 61 contract tests, verifier clippy, optimized Wasm build. On a sandbox-snapshot local fork, the old verifier rejected the authentic VAA; after migration, Hermes automatically submitted it and retried a live AKT price successfully. Replay was rejected. The historical VAA was served through a local HTTP endpoint; a future live rotation has not been observed.
Sandbox proposal 36 passed with the tested Wasm. No mainnet migration performed.