Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

/valopers package

Overview

Package valopers is designed around the permissionless lifecycle of valoper profiles.

Function

UpdateSigningKey

func UpdateSigningKey(cur realm, addr address, newPubKey string)

UpdateSigningKey rotates an operator's consensus signing key.

Auth: caller must be on the operator's auth list (defaults to operator at Register time; extendable via AddToAuthList).

Invariants checked at entry:

  • throttle: ChainHeight() - v.LastRotationHeight >= rotationPeriodBlocks
  • signingRegistry uniqueness: derived(newPubKey) not in registry (active OR retired); permanently blocks key reuse
  • fee: unsafe.OriginSend() >= rotationFee (mirrors Register's fee-check pattern)

Effect: profile's SigningPubKey/SigningAddress/LastRotationHeight updated; old registry entry marked retired (retiredAtHeight = ChainHeight()); new entry inserted into signingRegistry; v3 emits remove+add to sysparams via RotateValoperSigningKey; v3 cache refreshed via NotifyValoperChanged. Rotation lands in consensus at H+2.

Atomicity: Gno tx atomicity rolls back all state if any step panics. If v3.RotateValoperSigningKey panics, the registry insert and profile mutation revert with it.

Params

Command

# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.

gnokey maketx call -pkgpath "gno.land/r/gnops/valopers" -func "UpdateSigningKey" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "topaz-1" -remote "https://rpc.topaz.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.topaz.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/gnops/valopers" -func "UpdateSigningKey" -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "topaz-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.topaz.testnets.gno.land" call.tx