1// Package probe1789429680 is a minimal, throwaway realm deployed ONLY to2// confirm two mainnet-specific behaviors before the real gems5 launch:3// (1) whether a freshly-deployed package is immediately callable or4// held in some "inert until enabled" state, and (2) whether the exact5// AssertOriginCall + OriginSend + BankerTypeRealmSend payment-check6// pattern gems5/v1's MintAssembled relies on still behaves as expected7// on mainnet's current node build. Not part of the Gems collection --8// disposable.9package probe17894296801011import (12 "chain"13 "chain/banker"14 runtime "chain/runtime"15 unsaferealm "chain/runtime/unsafe"16)1718var (19 owner address = "g1gn6t0q9wenwhdda47rkrpfd63kcxjvyp7eqwku"20 received int6421 calls int6422)2324// TestPayment mirrors gems5/v1's MintAssembled payment check exactly.25// Forwards whatever ugnot is attached straight back to owner, so this26// costs only gas + storage deposit, not the attached amount itself.27func TestPayment(cur realm) {28 runtime.AssertOriginCall()29 if !unsaferealm.PreviousRealm().IsUserCall() {30 panic("payment verification requires a direct user call")31 }32 got := unsaferealm.OriginSend().AmountOf("ugnot")33 if got <= 0 {34 panic("attach a small amount of ugnot to test the payment path")35 }36 b := banker.NewBanker(banker.BankerTypeRealmSend, cur)37 b.SendCoins(cur.Address(), owner, chain.Coins{{Denom: "ugnot", Amount: got}})38 received += got39 calls++40}4142func Received() int64 { return received }43func Calls() int64 { return calls }4445func Render(path string) string {46 return "# gems5 mainnet probe\n\nThrowaway realm, not part of the Gems collection. Confirms deploy + payment-check semantics before the real launch."47}48Calls() int64
Received() int64
Render(path string) string
TestPayment(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string})
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.