UpgradeAuthorized

Event v151 → current #6

Emitted when a runtime upgrade is authorized for future application.

View events on chain
Useful for: validatorsdevelopersanalytics

The Big Picture

The authorize/apply pattern separates upgrade approval from execution. This event fires when the approval happens. Watch for CodeUpdated to know when it's actually applied.

Use Cases

  • Monitor governance-approved upgrades
  • Track pending runtime changes
  • Alert when upgrades are authorized

From Chain Metadata

An upgrade was authorized.

Triggers

Preconditions

  • Caller is root/sudo
  • Valid code hash provided

Effects

Storage Modified

Postconditions

  • Upgrade hash stored in AuthorizedUpgrade storage
  • Anyone can now apply the upgrade with matching code

Side Effects

  • Previous authorization (if any) is overwritten

Event Data

#NameTypeDescription
0
code_hash
H256 Blake2-256 hash of the authorized runtime code
1
check_version
bool Whether version checks will be performed on application

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Subscribe to UpgradeAuthorized events
api.query.system.events((events) => {
  events
    .filter(({ event }) =>
      event.section === stringCamelCase("System") &&
      event.method === "UpgradeAuthorized"
    )
    .forEach(({ event }) => {
      console.log("UpgradeAuthorized:", event.data.toHuman());
    });
});

Runtime Info

Pallet Index
0
Event Index
6
First Version
v151
Current Version
v393