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 state

Back to all declarations

updateInstructions

func(int, rlm .uverse.realm, newInstructions string)
Open
OID
023699…434b:6
updateInstructions details

Inspect func

NewInstructionsProposalCallback

func(newInstructions string) func(...)
Open
OID
023699…434b:7
NewInstructionsProposalCallback details

Inspect func

MonikerMaxLength

untyped bigint

Value

(32 <untyped> bigint)

DescriptionMaxLength

untyped bigint

Value

(2048 <untyped> bigint)

ServerTypeCloud

untyped string

Value

"cloud"

ServerTypeOnPrem

untyped string

Value

"on-prem"

ServerTypeDataCenter

untyped string

Value

"data-center"

ErrValoperExists

*errors.errorString
Open
OID
023699…434b:11
ErrValoperExists details

Inspect pointer

ErrValoperMissing

*errors.errorString
Open
OID
023699…434b:14
ErrValoperMissing details

Inspect pointer

ErrInvalidAddress

*errors.errorString
Open
OID
023699…434b:17
ErrInvalidAddress details

Inspect pointer

ErrInvalidMoniker

*errors.errorString
Open
OID
023699…434b:20
ErrInvalidMoniker details

Inspect pointer

ErrInvalidDescription

*errors.errorString
Open
OID
023699…434b:23
ErrInvalidDescription details

Inspect pointer

ErrInvalidServerType

*errors.errorString
Open
OID
023699…434b:26
ErrInvalidServerType details

Inspect pointer

ErrOperatorSquatGuard

*errors.errorString
Open
OID
023699…434b:29
ErrOperatorSquatGuard details

Inspect pointer

ErrSigningKeyTaken

*errors.errorString
Open
OID
023699…434b:32
ErrSigningKeyTaken details

Inspect pointer

ErrFrontrunValidator

*errors.errorString
Open
OID
023699…434b:35
ErrFrontrunValidator details

Inspect pointer

ErrRotationThrottled

*errors.errorString
Open
OID
023699…434b:38
ErrRotationThrottled details

Inspect pointer

ErrRegistryEntryMissing

*errors.errorString
Open
OID
023699…434b:41
ErrRegistryEntryMissing details

Inspect pointer

ErrDisallowedPubKeyType

*errors.errorString
Open
OID
023699…434b:44
ErrDisallowedPubKeyType details

Inspect pointer

valopers

*v0.Tree

// operator-address -> Valoper

Open
OID
023699…434b:148
valopers details

Inspect pointer

instructions

string

// markdown instructions for valoper's registration

Value

"\n# Welcome to the **Valopers** realm\n\n## 📌 Purpose of this Contract\n\nThe **Valopers** contract is designed to maintain a registry of **validator profiles**. This registry provides essential information to **GovDAO members**, enabling them to make inform"...

monikerMaxLengthMiddle

string

Value

"30"

validateMonikerRe

*regexp.Regexp

// 32 characters, including spaces, hyphens or underscores in the middle

Open
OID
023699…434b:53
validateMonikerRe details

Inspect pointer

regEntry

type

regEntry tracks signing-address -> operator with retirement metadata. retiredAtHeight == 0 means the entry is currently active for the operator.

Value

valopers.regEntry

Valoper

type

Valoper represents a validator operator profile.

Value

valopers.Valoper

AddToAuthList

func(addr .uverse.address, member .uverse.address)
Open
OID
023699…434b:128
AddToAuthList details

Inspect func

DeleteFromAuthList

func(addr .uverse.address, member .uverse.address)
Open
OID
023699…434b:130
DeleteFromAuthList details

Inspect func

Register

func(moniker string, description string, serverType string, addr .uverse.address, pubKey string)

Register registers a new valoper. The \`addr\` parameter is the operator address (stable identity, profile key); \`pubKey\` is the consensus signing pubkey, from which the signing address is derived. Auth shape: - Post-genesis: OriginCaller must equal addr (operator-slot squat guard). Genesis-mode replay (ChainHeight()==0) bypasses, so migration .jsonl txs and historical Register replays succeed. - Signing-address uniqueness: derived(pubKey) must not already be in signingRegistry, active or retired. - Front-running guard: post-genesis, derived(pubKey) must not already be an active validator (a fresh registration cannot squat on the consensus address of an existing validator). Why OriginCaller==addr is sufficient (no IsUserCall): squatting requires the attacker to be able to satisfy OriginCaller==victim, which requires the victim's signing key. r/sys/namereg/v1.Register also gates on IsUserCall, but that's because IT reads unsafe.OriginSend() for the anti-squatting payment and IsUserCall is needed to ensure the OriginSend envelope reflects what landed at this realm rather than a phantom payment from a previous frame. valopers.Register has no per-call payment-receipt check (fees are validated against banker.OriginSend in a way that's symmetric to IsUserCall via direct comparison), so the IsUserCall tightening would only block legitimate \`maketx run\` flows (operator-authored scripts that legitimately set OriginCaller==operator) without adding identity-squat protection. Auth-list seeding: the profile's Authorizable owner is set to addr (NOT OriginCaller). At H>0 the squat guard makes them equal anyway; at H==0 the deployer pattern (one signer registers many operators) requires owner == addr so each operator can manage their own profile post-genesis without needing the deployer's auth.

Open
OID
023699…434b:131
Register details

Inspect func

UpdateMoniker

func(addr .uverse.address, moniker string)

UpdateMoniker updates an existing valoper's moniker.

Open
OID
023699…434b:132
UpdateMoniker details

Inspect func

UpdateDescription

func(addr .uverse.address, description string)

UpdateDescription updates an existing valoper's description.

Open
OID
023699…434b:133
UpdateDescription details

Inspect func

UpdateKeepRunning

func(addr .uverse.address, keepRunning bool)

UpdateKeepRunning updates an existing valoper's active status. Calls v3.NotifyValoperChanged because the cache stores KeepRunning.

Open
OID
023699…434b:134
UpdateKeepRunning details

Inspect func

UpdateServerType

func(addr .uverse.address, serverType string)

UpdateServerType updates an existing valoper's server type.

Open
OID
023699…434b:135
UpdateServerType details

Inspect func

UpdateSigningKey

func(addr .uverse.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.

Open
OID
023699…434b:136
UpdateSigningKey details

Inspect func

GetByAddr

func(addr .uverse.address) valopers.Valoper

GetByAddr fetches the valoper using the operator address, if present.

Open
OID
023699…434b:137
GetByAddr details

Inspect func

Render

func(fullPath string) string

Render renders a single valoper with their information.

Open
OID
023699…434b:138
Render details

Inspect func

renderHome

func(path string) string
Open
OID
023699…434b:139
renderHome details

Inspect func

isValoper

func(addr .uverse.address) bool

isValoper checks if the valoper exists.

Open
OID
023699…434b:140
isValoper details

Inspect func

validateMoniker

func(moniker string) .uverse.error

validateMoniker checks if the moniker is valid.

Open
OID
023699…434b:141
validateMoniker details

Inspect func

validateDescription

func(description string) .uverse.error

validateDescription checks if the description is valid.

Open
OID
023699…434b:142
validateDescription details

Inspect func

validateBech32

func(addr .uverse.address) .uverse.error

validateBech32 checks if the value is a valid bech32 address.

Open
OID
023699…434b:143
validateBech32 details

Inspect func

validatePubKey

func(pubKey string) .uverse.error

validatePubKey checks if the public key is valid.

Open
OID
023699…434b:144
validatePubKey details

Inspect func

assertPubKeyTypeAllowed

func(pubKey string)

assertPubKeyTypeAllowed panics if pubKey's type is not in the chain's validator allow-list (empty list accepts any).

Open
OID
023699…434b:145
assertPubKeyTypeAllowed details

Inspect func

pubKeyTypeURL

func(pubKey string) (string, .uverse.error)

pubKeyTypeURL returns the amino type URL (e.g. "/tm.PubKeyEd25519") of a bech32 consensus pubkey.

Open
OID
023699…434b:146
pubKeyTypeURL details

Inspect func

validateServerType

func(serverType string) .uverse.error

validateServerType checks if the server type is valid.

Open
OID
023699…434b:147
validateServerType details

Inspect func
auth : *authz.Authorizer Inspect
Auth : func() *authz.Authorizer Inspect
updateInstructions : func(int, rlm .uverse.realm, newInstructions string) Inspect
NewInstructionsProposalCallback : func(newInstructions string) func(...) Inspect
init.4 : func() Inspect
MonikerMaxLength : untyped bigint =(32 <untyped> bigint)
DescriptionMaxLength : untyped bigint =(2048 <untyped> bigint)
ServerTypeCloud : untyped string ="cloud"
ServerTypeOnPrem : untyped string ="on-prem"
ServerTypeDataCenter : untyped string ="data-center"
ErrValoperExists : *errors.errorString Inspect
ErrValoperMissing : *errors.errorString Inspect
ErrInvalidAddress : *errors.errorString Inspect
ErrInvalidMoniker : *errors.errorString Inspect
ErrInvalidDescription : *errors.errorString Inspect
ErrInvalidServerType : *errors.errorString Inspect
ErrOperatorSquatGuard : *errors.errorString Inspect
ErrSigningKeyTaken : *errors.errorString Inspect
ErrFrontrunValidator : *errors.errorString Inspect
ErrRotationThrottled : *errors.errorString Inspect
ErrRegistryEntryMissing : *errors.errorString Inspect
ErrDisallowedPubKeyType : *errors.errorString Inspect
valopers : *v0.Tree Inspect
instructions : string ="\n# Welcome to the **Valopers** realm\n\n## 📌 Purpose of this Contract\n\nThe **Valopers** contract is designed to maintain a registry of **validator profiles**. This registry provides essential information to **GovDAO members**, enabling them to make inform"...
signingRegistry : *v0.BPTree Inspect
monikerMaxLengthMiddle : string ="30"
validateMonikerRe : *regexp.Regexp Inspect
regEntry : type =valopers.regEntry
Valoper : type =valopers.Valoper
AddToAuthList : func(addr .uverse.address, member .uverse.address) Inspect
DeleteFromAuthList : func(addr .uverse.address, member .uverse.address) Inspect
Register : func(moniker string, description string, serverType string, addr .uverse.address, pubKey string) Inspect
UpdateMoniker : func(addr .uverse.address, moniker string) Inspect
UpdateDescription : func(addr .uverse.address, description string) Inspect
UpdateKeepRunning : func(addr .uverse.address, keepRunning bool) Inspect
UpdateServerType : func(addr .uverse.address, serverType string) Inspect
UpdateSigningKey : func(addr .uverse.address, newPubKey string) Inspect
GetByAddr : func(addr .uverse.address) valopers.Valoper Inspect
Render : func(fullPath string) string Inspect
renderHome : func(path string) string Inspect
isValoper : func(addr .uverse.address) bool Inspect
validateMoniker : func(moniker string) .uverse.error Inspect
validateDescription : func(description string) .uverse.error Inspect
validateBech32 : func(addr .uverse.address) .uverse.error Inspect
validatePubKey : func(pubKey string) .uverse.error Inspect
assertPubKeyTypeAllowed : func(pubKey string) Inspect
pubKeyTypeURL : func(pubKey string) (string, .uverse.error) Inspect
validateServerType : func(serverType string) .uverse.error Inspect