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

v1 source realm

Package impl is version 1 of the implementation realm of the "self-registering implementation" upgrade pattern (patte...

Readme View source

gno.land/r/moul/x/upgrade/selfreg/impl/v1

Version 1 of the implementation realm of pattern E. Identical wiring to v0, different behaviour: deploying it takes the facade over on the spot, with no transaction from anybody.

See the pattern and the exploration.


Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.

Dependency graph:

gno.land/r/moul/x/upgrade/selfreg/impl/v1 dependency graph

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.

Overview

Package impl is version 1 of the implementation realm of the "self-registering implementation" upgrade pattern (pattern E; see ../../README.md).

Identical wiring to v0, different behaviour. Deploying it takes the facade over on the spot, with no transaction from anybody.

Functions 3

func Instance

Action
1func Instance() facade.Impl
source

Instance exposes the singleton so a test (or a rollback) can re-register it without redeploying.

func Register

crossing Action
1func Register(cur realm)
source

Register re-registers this implementation with the facade. init does it once at deploy; exposing it as a transaction is what makes a rollback to an already-deployed version a single call.

func Seal

crossing Action
1func Seal(cur realm)
source

Seal asks the facade to end its upgradeability, forever. It only succeeds while this implementation is the live one: the facade reads the caller off the crossing frame, so this cannot be used to seal somebody else's tenure.

Imports 1

Source Files 4